From ae8d999b01bf5584bbc7fc03901b0816bc722ecd Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Fri, 3 Feb 2023 09:08:14 +0800 Subject: [PATCH] Fix fakeplayer fatal error (#21) --- patches/server/0009-Fakeplayer-support.patch | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/patches/server/0009-Fakeplayer-support.patch b/patches/server/0009-Fakeplayer-support.patch index f0b53043..46734e58 100644 --- a/patches/server/0009-Fakeplayer-support.patch +++ b/patches/server/0009-Fakeplayer-support.patch @@ -591,10 +591,10 @@ index 0000000000000000000000000000000000000000..d6466ee4db637106e1394bb462d875e5 +} diff --git a/src/main/java/top/leavesmc/leaves/bot/ServerBot.java b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java new file mode 100644 -index 0000000000000000000000000000000000000000..e172fec5648e6a303c5870208c23cb86029e0cbd +index 0000000000000000000000000000000000000000..f5837b3f5fb57b77e237fa59bb53cc4caddb876a --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java -@@ -0,0 +1,747 @@ +@@ -0,0 +1,750 @@ +package top.leavesmc.leaves.bot; + +import com.google.common.collect.Lists; @@ -981,7 +981,7 @@ index 0000000000000000000000000000000000000000..e172fec5648e6a303c5870208c23cb86 + + this.setHealth(amount); + -+ fireDamageCheck(); ++ // fireDamageCheck(); + fallDamageCheck(); + + checkOutOfWorld(); @@ -1135,7 +1135,10 @@ index 0000000000000000000000000000000000000000..e172fec5648e6a303c5870208c23cb86 + + public void setOnFirePackets(boolean onFire) { + entityData.set(new EntityDataAccessor<>(0, EntityDataSerializers.BYTE), onFire ? (byte) 1 : (byte) 0); -+ sendPacket(new ClientboundSetEntityDataPacket(getId(), getEntityData().packDirty())); ++ var list = entityData.packDirty(); ++ if (list != null) { ++ sendPacket(new ClientboundSetEntityDataPacket(getId(), list)); ++ } + } + + private void fallDamageCheck() { @@ -1154,7 +1157,7 @@ index 0000000000000000000000000000000000000000..e172fec5648e6a303c5870208c23cb86 + return; + } + -+ if (type == Material.WATER) { ++ if (type == Material.WATER && fireTicks > 0) { + setOnFirePackets(false); + fireTicks = 0; + return;