Taterzens [Fabric]

Taterzens [Fabric]

86.3k Downloads

Taterzens with `npc edit tags leashable true` set still can't be leashed

James103 opened this issue · 8 comments

commented

When you try to leash a Taterzen that has /npc edit tags leashable true set, instead of the leash appearing as expected, the leash pops off immediately. This is likely caused by NucleoidMC/DisguiseLib#9, though I'm also reporting here as Taterzens have a tag saying that they can be leashed but that does not work.

To reproduce:

  1. Install the following mods:
  2. Create a new world with cheats enabled.
  3. Run /npc create 101 (creates and auto-selects the NPC).
  4. Run /npc edit tags leashable true.
  5. Run /give @p lead 64.
  6. Try to attach the leash to the Taterzen.
  7. Notice the leash immediately pops off instead of staying on the Taterzen.
Minecraft 1.16.5
Mods:
  [✔️] cloth-config-4.11.26-fabric
  [✔️] disguiselib-1.0.3-fabric
  [✔️] fabric-api-0.34.6+1.16
  [✔️] mobdisguises-1.0.1-fabric
  [✔️] modmenu-1.16.9
  [✔️] notenoughcrashes-3.2.0-fabric
  [✔️] taterzens-1.1.0-fabric
commented

I can reproduce this issue in Minecraft 1.17.1 and Taterzens 1.4.0. However, installing carpet mod and using /player to issue the use action from the server-side does work correctly.

To summarize,

  1. /npc create 111
  2. /npc edit tags leashable true
  3. /npc edit movement FREE
  4. /give @p lead 64
  5. Right-click on the NPC with the lead. In Creative, this just consumes the lead. In survival, this causes the NPC to drop the lead at it's position. Either way, the NPC does not get leashed.
  6. Run /player [player] use (replace [player] with your in-game name). This does leash the NPC to you and it does work properly server-side, but the leash does not show up client-side.
commented

Might need some additional packets, not sure ... 🤔

commented

Wait, it works for your name with /player? Does it render the lead?

commented

I can still reproduce the same issue with the same steps listed above.
Minimal mod list: Minecraft 1.18.1, Fabric Loader 0.13.0, Taterzens 1.8.2, DisguiseLib 1.2.1, and Carpet Mod 1.4.57

When attempting to leash a Taterzen that has npc edit tags leashable true set,

  • Simply right-clicking on the Taterzen fails, thereby dropping the lead and failing the leash.
  • player [your name] use works as it executes entirely server-side.
commented

To be more specific, for Taterzens that have npc edit tags leashable true, if the Taterzen is of type player, it can't be leashed with right-click. Even if the Taterzen is leashed using a server-side action, the leash does not render. Otherwise,

  • Taterzens with type armor_stand or similar nonliving entities do not render the leash.
    • Right-clicking only performs a single server-side leash action, which is expected.
  • Taterzens that have their type changed do not render the leash until updated.
  • Taterzens with type that can be leashed (pig, cow, iron_golem, etc) as listed in the Minecraft Wiki) can be leashed and the leash does render.
    • Right-clicking performs two leash actions in one game tick (one client-side, one server-side). These two actions cancel out, leaving the leash status unchanged.
  • Taterzens with type that can't normally be leashed (blaze, husk, wither, etc) can be leashed and (for the most part) the leash does render, but right-clicking may do one of two things to the leash:
    • If the type was changed after the leash was started, right-clicking again will remove the leash.
    • If the type was changed before the leash was started, right-clicking again will again leave the leash status unchanged.

For other disguised entities through DisguiseLib, assuming that the original entity can be leashed,

  • If the disguise is of a type that can't normally be leashed, right-clicking will remove the leash but will not start the leash.
  • If the disguise is of a type that can be leashed, right-clicking to start or remove the leash works as normal.

For other disguised entities through DisguiseLib, assuming that the original entity can't be leashed,

  • If the disguise is of a type that can't normally be leashed, everything works fine.
  • If the disguise is of a type that can be leashed, right-clicking to start or remove the leash does it on the client side only.
commented

Whoops, wrong issue 😅

commented

Do you actually plan on fixing this issue (and/or it's underlying cause of NucleoidMC/DisguiseLib#9)? It would be cool to see players raising their own pet zombie for example, and being able to leash such disguised entities would increase the immersion in that respect.

commented

Yeah, it's caused by the same thing that causes DisguiseLib issues as well.