SPIGOT-7875: Fix PlayerItemConsumeEvent cancellation causing client-side desync

By: Doc <nachito94@msn.com>
This commit is contained in:
CraftBukkit/Spigot
2024-09-07 19:35:16 +10:00
parent 616ec5f700
commit deb7197a64
2 changed files with 31 additions and 10 deletions

View File

@@ -0,0 +1,18 @@
--- a/net/minecraft/world/item/ItemSuspiciousStew.java
+++ b/net/minecraft/world/item/ItemSuspiciousStew.java
@@ -53,4 +53,15 @@
return super.finishUsingItem(itemstack, world, entityliving);
}
+
+ // CraftBukkit start
+ public void cancelUsingItem(net.minecraft.server.level.EntityPlayer entityplayer, ItemStack itemstack) {
+ SuspiciousStewEffects suspicioussteweffects = (SuspiciousStewEffects) itemstack.getOrDefault(DataComponents.SUSPICIOUS_STEW_EFFECTS, SuspiciousStewEffects.EMPTY);
+
+ for (SuspiciousStewEffects.a suspicioussteweffects_a : suspicioussteweffects.effects()) {
+ entityplayer.connection.send(new net.minecraft.network.protocol.game.PacketPlayOutRemoveEntityEffect(entityplayer.getId(), suspicioussteweffects_a.effect()));
+ }
+ entityplayer.server.getPlayerList().sendActivePlayerEffects(entityplayer);
+ }
+ // CraftBukkit end
}