Enigmatica 6 - E6 - 1.16.5

Enigmatica 6 - E6 - 1.16.5

1M Downloads

Omnidirectional hoppers with entity tracker upgrades have bugged interactions with villagers

Vashal0 opened this issue ยท 9 comments

commented

Modpack Version

1.3.0

Describe your issue.

Placing an omnidirectional hopper with an entity tracking upgrade under a villager, and then holding emeralds in your hand will take the item that they show. In addition, the trade for the item that they show's stack size will increase each time until max stack size.
ae390da6b58d9d945ded3233136c952b

Placing a chest under the hopper, or any other inventory, causes the items to instead decrease in stack size strangely enough, removing the trade from the villager entirely so they just trade emeralds for nothing at all
j8PkPfo

Crash Report

No response

Latest Log

No response

Have you modified the modpack?

No

User Modifications

No response

Did the issue happen in singleplayer or on a server?

Singleplayer

commented

Oh boy that's weird ๐Ÿ˜„

... @desht halp? :D

commented

Interesting. I'll do some debugging, but I might just need to blacklist villagers from being interacted with...

commented

So I did some testing, and I can see the hopper pull items from the villager's hand (which is expected - getting the item capability handler for a villager on a vertical axis gets the 2-slot hands inventory of the villager).

But I definitely don't see any change to the stack size of the traded item in the trade gui (and stepping through with my IDE debugger doesn't give any indication that this should happen - it's just pulling items from the villager's hands, that's all). It's possible some other mod is having an effect here, perhaps?

commented

Oh no, that's gonna be impossible to track down ๐Ÿ˜… thanks for debugging this!

commented

By any chance when you did your testing, did the villager have two in stock trades for emeralds? I tried to reproduce it with different villagers, and found some things that may help you track things down.

If a villager has only one trade for emeralds, AND the item is naturally a single item(i.e. emeralds for pumpkin pie), the hopper takes it nothing happens.
If a villager has two in stock trades for emeralds, the villager will rotate between the items and the bug will occur eventually, takes longer to happen with multi item trades (i.e. emeralds for 6 bread), speed upgrades in the hopper make it happen sooner
If a villager has only one trade for emeralds, AND the item is naturally a single item, and you swap the emeralds back and forth from your hand after the item is taken, the bug activates.

Easy to test with villagers are PNC villagers, which always have two for-emerald base trades, farmer which has a multi item trade early(bread), and butcher which has a reliable 1 for-emerald trade early(rabbit stew)

commented

OK, managed to reproduce it - thanks for the pointers.

As for why... no idea :( I can try to debug further, but I feel like excluding villagers from this is the best option. It's a bit exploity even when not bugging out.

commented

Wonder if you'd consider making that blacklist a tag actually.

It's not a big deal for E6, but I could see people wanting to blacklist things like raccoons from Alex's mobs.

commented

Yeah, probably a good idea!

commented

these are blacklisted by default in PNC now.