Extended Mushrooms makes Bumblezone recipe viewer sync packet explode in size and cause client discounts on server join
TelepathicGrunt opened this issue · 3 comments
Issue:
Chipped is a mod that adds a huge number of Wool blocks and Wool Carpets. Which is fine as it goes into the randomization trade packet which can condense the tags down super tiny without issue (sends tag name over)
Extended Mushrooms adds some honey mushroom caps which are in main trades with Bee Queen. That's fine. Problem is they tag all mushroom caps and and mushroom carpets into Minecraft's wool and carpet tag for no logical reason. Breaking any logic with recipes and other mod behavior. cech12/ExtendedMushrooms#66
Problem is, now that there is an entry in the wool tag that also has a main trade entry. Meaning, the tag cannot live anymore in the randomization trades as it won't accurately show what the items can give in the trades. So the whole tag is moved out of the randomization trades to the main trades. The entire wool and carpet tag that is huge now due to Chipped. And since main trade has to show each individual trade entry separately for the entries of the tag to show proper chances of getting an item... this blows up the main trade packet to extreme size. So large that the game refuses to send the packet at all.
Solutions:
-
Remove Extended Mushroom honey cap blocks from my main trades permanently. No more trade compat allowed for their blocks due to constant issues with their "game design" decision causing me nothing but pain. This will stop the above issue as well.
-
Revisit the main trade packet and make the tag portion only send the tag name over in packet if it is not doing so already. If this wasn't happening, changing it to tag name instead of tag contents will significantly shrink the size of the packet to be under the limit.
-
Packet splitting. Last resort if issue persists even after the above two changes.
For modpack creators reading this and want to implement a fix to stop the issue due to the problematic wool/carpet tagging, use this CraftTweaker script to do so:
import crafttweaker.api.tag.MCTag;
<tag:items:minecraft:wool>.remove(<tag:items:forge:mushroom_caps>);
<tag:items:minecraft:wool_carpets>.remove(<tag:items:extendedmushrooms:mushroom_carpets>);