From a01bc9aaaf3398a2a41e0dc07e8b018e58cd2c49 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 5 Mar 2022 20:55:21 +0100 Subject: [PATCH] Replay bugfix? Signed-off-by: Lixfel --- .../fightsystem/record/PacketProcessor.java | 9 +-------- .../steamwar/fightsystem/record/Recorder.java | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java b/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java index 5382015..b24d0bc 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/record/PacketProcessor.java @@ -503,14 +503,7 @@ public class PacketProcessor { boolean drawn = source.readBoolean(); boolean offHand = source.readBoolean(); - execSync(() -> { - REntity entity = REntity.getEntity(entityId); - if(entity != null) { - entity.setBowDrawn(drawn, offHand); - } else { - Bukkit.getLogger().log(Level.SEVERE, "Bow drawn of nonexistent player? " + entityId + " " + Arrays.toString(lastPackets.toArray())); - } - }); + execSync(() -> REntity.getEntity(entityId).setBowDrawn(drawn, offHand)); } private void damage() throws IOException { diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/record/Recorder.java b/FightSystem_Core/src/de/steamwar/fightsystem/record/Recorder.java index a654108..7fc6618 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/record/Recorder.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/record/Recorder.java @@ -316,15 +316,17 @@ public interface Recorder { default void write(int id, Object... objects){ DataOutputStream stream = getStream(); - try { - stream.writeByte(id); - for(Object o : objects) { - writeObject(stream, o); + synchronized (stream) { + try { + stream.writeByte(id); + for(Object o : objects) { + writeObject(stream, o); + } + stream.flush(); + } catch (IOException e) { + Bukkit.getLogger().log(Level.SEVERE, "Could not write", e); + disable(); } - stream.flush(); - } catch (IOException e) { - Bukkit.getLogger().log(Level.SEVERE, "Could not write", e); - disable(); } }