Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
James103 opened this issue May 27, 2021 · 8 comments
Open

Comments

@James103
Copy link

James103 commented May 27, 2021

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
@James103 James103 changed the title Taterzens with npc set tags leashable true set still can't be leashed Taterzens with npc edit tags leashable true set still can't be leashed May 27, 2021
@samolego samolego closed this as completed Jun 2, 2021
@samolego
Copy link
Owner

samolego commented Jun 2, 2021

Whoops, wrong issue 😅

@samolego samolego reopened this Jun 2, 2021
@James103
Copy link
Author

James103 commented Jun 2, 2021

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.

@samolego
Copy link
Owner

samolego commented Jun 2, 2021

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

@James103
Copy link
Author

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.

@samolego
Copy link
Owner

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

@James103
Copy link
Author

James103 commented Feb 8, 2022

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.

@samolego
Copy link
Owner

samolego commented Feb 8, 2022

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

@James103
Copy link
Author

James103 commented Feb 8, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants