Darkhax-Minecraft / BotanyPots

Adds some flower pots that can be used to grow various crops.
GNU Lesser General Public License v2.1
102 stars 77 forks source link

Fix client lag by removing unnecessary soil & crop validation #423

Open MUYUTwilighter opened 3 months ago

MUYUTwilighter commented 3 months ago

Why lag?

In issue #421 , a detailed information is provided. To say simply, the server keeps sending ClientboundBlockEntityDataPacket at intervals, even though nothing has changed about the soil & crop stacks. And client will always validate the crops & soils in the packet, this would cause serious lag on client especially when there are a lot of pots or pot recipes, as the validation invoked by every single pot will iterate all the recipes.

How did I fix it?

In BlockEntityBotanyPot#load, I add a check before invoking inventory syncing. Now only if there are changes on crop & soil stacks, the client would try load super and validate crops & soils.