From 3f1706f40f564d23eccb6f310ca0ebd38f64b22b Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Mon, 12 Apr 2021 16:07:16 +0200 Subject: [PATCH 01/11] Adding more Record Methods --- .../src/de/steamwar/fightsystem/Config.java | 4 ++-- .../fightsystem/listener/Recording.java | 22 ++++++++++++++---- .../fightsystem/record/RecordSystem.java | 23 +++++++++++++++++-- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index 1fcf4e8..3a03708 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -347,7 +347,7 @@ public class Config { EventTeamRedID = 0; BothTeamsPublic = true; MaximumTeamMembers = Integer.MAX_VALUE; - SpectateSystem = false; + SpectateSystem = true; } String blueLeader = System.getProperty("blueLeader", null); @@ -384,6 +384,6 @@ public class Config { return ArenaMode.Test.contains(mode); } public static boolean recording(){ - return mode == ArenaMode.EVENT; + return true;//mode == ArenaMode.EVENT; } } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index fcefb2f..e483e5b 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -36,10 +36,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.*; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.*; @@ -111,6 +108,21 @@ public class Recording implements Listener { RecordSystem.entityAnimation(e.getPlayer(), AIR); } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onEntityDamage(EntityDamageEvent e) { + if(e.getEntityType() != EntityType.PLAYER) + return; + + Player p = (Player) e.getEntity(); + if(isNotSent(p)) + return; + + RecordSystem.damageAnimation(p); + + if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK) + RecordSystem.setOnFire(p); + } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onTNTSpawn(EntitySpawnEvent e){ //TODO: Falling block @@ -228,4 +240,6 @@ public class Recording implements Listener { FightPlayer fp = Fight.getFightPlayer(p); return fp == null || !fp.isLiving() || FightState.getFightState() == FightState.SPECTATE; } + + } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java index f0282ff..74912ff 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java @@ -64,8 +64,9 @@ public class RecordSystem { * PlayerItemPacket (0x07) + int EntityId + String item + boolean enchanted + String slot * ArrowSpawnPacket (0x08) + int EntityId * FireballSpawnPacket (0x09) + int EntityId - * TODO Bow spanning - * + * BowSpanPacket (0x0A) + int EntityId + boolean hand + * PlayerDamagePacket (0x0B) + int EntityId + * SetOnFire (0x0C) + int EntityId * * * BlockPacket (0x30) + pos int, byte, int + int BlockState @@ -172,6 +173,24 @@ public class RecordSystem { spawnEntity(e); } + public static synchronized void bowSpan(Player p) { + Recorder.rByte(0x0A); + Recorder.rInt(p.getEntityId()); + Recorder.flush(); + } + + public static synchronized void damageAnimation(Player p) { + Recorder.rByte(0x0B); + Recorder.rInt(p.getEntityId()); + Recorder.flush(); + } + + public static synchronized void setOnFire(Player p) { + Recorder.rByte(0x0C); + Recorder.rInt(p.getEntityId()); + Recorder.flush(); + } + public static synchronized void blockChange(Block block){ int blockState = blockToId(block); -- 2.39.2 From d2799bfb8712a3575400ba97cece06b091a2cb11 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Mon, 12 Apr 2021 23:32:28 +0200 Subject: [PATCH 02/11] Add Bow, Damage and Fire --- .../src/de/steamwar/fightsystem/Config.java | 4 +- .../fightsystem/listener/Recording.java | 43 +++++++++++++++++-- .../fightsystem/record/RecordSystem.java | 17 +++++--- 3 files changed, 53 insertions(+), 11 deletions(-) diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index 3a03708..1fcf4e8 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -347,7 +347,7 @@ public class Config { EventTeamRedID = 0; BothTeamsPublic = true; MaximumTeamMembers = Integer.MAX_VALUE; - SpectateSystem = true; + SpectateSystem = false; } String blueLeader = System.getProperty("blueLeader", null); @@ -384,6 +384,6 @@ public class Config { return ArenaMode.Test.contains(mode); } public static boolean recording(){ - return true;//mode == ArenaMode.EVENT; + return mode == ArenaMode.EVENT; } } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index e483e5b..63e4758 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -19,6 +19,12 @@ package de.steamwar.fightsystem.listener; +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.ProtocolLibrary; +import com.comphenix.protocol.events.PacketAdapter; +import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.events.PacketEvent; +import com.comphenix.protocol.wrappers.EnumWrappers; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.fight.Fight; @@ -28,6 +34,7 @@ import de.steamwar.fightsystem.record.RecordSystem; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependent; import de.steamwar.fightsystem.states.StateDependentListener; +import net.minecraft.server.v1_15_R1.PacketPlayInBlockDig; import org.bukkit.*; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -35,6 +42,7 @@ import org.bukkit.entity.TNTPrimed; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.event.entity.*; import org.bukkit.event.inventory.InventoryClickEvent; @@ -68,6 +76,35 @@ public class Recording implements Listener { despawnTNT(); } }.register(); + + //Bow Listener + ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_PLACE) { + @Override + public void onPacketReceiving(PacketEvent event) { + PacketContainer packet = event.getPacket(); + EnumWrappers.Hand hand = packet.getHands().read(0); + Player p = event.getPlayer(); + + if(!((hand == EnumWrappers.Hand.MAIN_HAND && p.getInventory().getItemInMainHand().getType() == Material.BOW) || + (hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW))) + return; + + RecordSystem.bowSpan(p, true, hand == EnumWrappers.Hand.MAIN_HAND?1:0); + ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) { + @Override + public void onPacketReceiving(PacketEvent e) { + if(e.getPlayer() != event.getPlayer()) + return; + + PacketContainer packetDig = e.getPacket(); + if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) { + RecordSystem.bowSpan(e.getPlayer(), false, hand == EnumWrappers.Hand.MAIN_HAND?0:1); + ProtocolLibrary.getProtocolManager().removePacketListener(this); + } + } + }); + } + }); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @@ -110,6 +147,9 @@ public class Recording implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityDamage(EntityDamageEvent e) { + if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK || e.getCause() == EntityDamageEvent.DamageCause.FIRE ||e.getEntity().getFireTicks() > 0) + RecordSystem.setOnFire(e.getEntity(), false); + if(e.getEntityType() != EntityType.PLAYER) return; @@ -118,9 +158,6 @@ public class Recording implements Listener { return; RecordSystem.damageAnimation(p); - - if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK) - RecordSystem.setOnFire(p); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java index 74912ff..526e75d 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java @@ -64,9 +64,9 @@ public class RecordSystem { * PlayerItemPacket (0x07) + int EntityId + String item + boolean enchanted + String slot * ArrowSpawnPacket (0x08) + int EntityId * FireballSpawnPacket (0x09) + int EntityId - * BowSpanPacket (0x0A) + int EntityId + boolean hand + * BowSpanPacket (0x0A) + int EntityId + boolean start + int hand * PlayerDamagePacket (0x0B) + int EntityId - * SetOnFire (0x0C) + int EntityId + * SetOnFire (0x0C) + int EntityId + boolean perma * * * BlockPacket (0x30) + pos int, byte, int + int BlockState @@ -166,6 +166,8 @@ public class RecordSystem { public static synchronized void arrowSpawn(Entity e){ Recorder.rByte(0x08); spawnEntity(e); + if(e.getFireTicks() > 0) + setOnFire(e, true); } public static synchronized void fireballSpawn(Entity e){ @@ -173,9 +175,11 @@ public class RecordSystem { spawnEntity(e); } - public static synchronized void bowSpan(Player p) { + public static synchronized void bowSpan(Entity e, boolean start, int hand) { Recorder.rByte(0x0A); - Recorder.rInt(p.getEntityId()); + Recorder.rInt(e.getEntityId()); + Recorder.rBoolean(start); + Recorder.rInt(hand); Recorder.flush(); } @@ -185,9 +189,10 @@ public class RecordSystem { Recorder.flush(); } - public static synchronized void setOnFire(Player p) { + public static synchronized void setOnFire(Entity e, boolean perma) { Recorder.rByte(0x0C); - Recorder.rInt(p.getEntityId()); + Recorder.rInt(e.getEntityId()); + Recorder.rBoolean(perma); Recorder.flush(); } -- 2.39.2 From be63925b024614c68a53514176a0f464a36f267d Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Mon, 12 Apr 2021 23:33:50 +0200 Subject: [PATCH 03/11] Remove Unused Import --- .../src/de/steamwar/fightsystem/listener/Recording.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index 63e4758..762db4a 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -34,7 +34,6 @@ import de.steamwar.fightsystem.record.RecordSystem; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependent; import de.steamwar.fightsystem.states.StateDependentListener; -import net.minecraft.server.v1_15_R1.PacketPlayInBlockDig; import org.bukkit.*; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -42,7 +41,6 @@ import org.bukkit.entity.TNTPrimed; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.event.entity.*; import org.bukkit.event.inventory.InventoryClickEvent; -- 2.39.2 From 9ca2b6482a667e944f977d1f5d10223735262931 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Tue, 13 Apr 2021 10:12:21 +0200 Subject: [PATCH 04/11] Remove Unused Import --- .../src/de/steamwar/fightsystem/listener/Recording.java | 6 ++---- .../src/de/steamwar/fightsystem/record/RecordSystem.java | 6 +++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index 762db4a..f3bd7c9 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -87,7 +87,7 @@ public class Recording implements Listener { (hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW))) return; - RecordSystem.bowSpan(p, true, hand == EnumWrappers.Hand.MAIN_HAND?1:0); + RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND); ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) { @Override public void onPacketReceiving(PacketEvent e) { @@ -96,7 +96,7 @@ public class Recording implements Listener { PacketContainer packetDig = e.getPacket(); if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) { - RecordSystem.bowSpan(e.getPlayer(), false, hand == EnumWrappers.Hand.MAIN_HAND?0:1); + RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND); ProtocolLibrary.getProtocolManager().removePacketListener(this); } } @@ -275,6 +275,4 @@ public class Recording implements Listener { FightPlayer fp = Fight.getFightPlayer(p); return fp == null || !fp.isLiving() || FightState.getFightState() == FightState.SPECTATE; } - - } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java index 526e75d..9f2cc74 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java @@ -64,7 +64,7 @@ public class RecordSystem { * PlayerItemPacket (0x07) + int EntityId + String item + boolean enchanted + String slot * ArrowSpawnPacket (0x08) + int EntityId * FireballSpawnPacket (0x09) + int EntityId - * BowSpanPacket (0x0A) + int EntityId + boolean start + int hand + * BowSpanPacket (0x0A) + int EntityId + boolean start + hand * PlayerDamagePacket (0x0B) + int EntityId * SetOnFire (0x0C) + int EntityId + boolean perma * @@ -175,11 +175,11 @@ public class RecordSystem { spawnEntity(e); } - public static synchronized void bowSpan(Entity e, boolean start, int hand) { + public static synchronized void bowSpan(Entity e, boolean start, boolean offHand) { Recorder.rByte(0x0A); Recorder.rInt(e.getEntityId()); Recorder.rBoolean(start); - Recorder.rInt(hand); + Recorder.rBoolean(hand); Recorder.flush(); } -- 2.39.2 From 3497e2d1e7f1b90e325a698cc1ed6f25e94b8393 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Tue, 13 Apr 2021 19:52:31 +0200 Subject: [PATCH 05/11] Remove Unused IMoving Checks Around --- .../src/de/steamwar/fightsystem/listener/Recording.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index f3bd7c9..8d0bb26 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -145,11 +145,12 @@ public class Recording implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityDamage(EntityDamageEvent e) { + if(e.getEntityType() != EntityType.PLAYER) + return; + if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK || e.getCause() == EntityDamageEvent.DamageCause.FIRE ||e.getEntity().getFireTicks() > 0) RecordSystem.setOnFire(e.getEntity(), false); - if(e.getEntityType() != EntityType.PLAYER) - return; Player p = (Player) e.getEntity(); if(isNotSent(p)) -- 2.39.2 From 4cc03892c93c804c6d0cb6217ec95c4cd7401ba7 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Tue, 13 Apr 2021 19:56:10 +0200 Subject: [PATCH 06/11] New Method to Register Bow Listener --- .../fightsystem/listener/Recording.java | 63 +++++++++++-------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index 8d0bb26..4acde52 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -55,6 +55,33 @@ public class Recording implements Listener { private static final int AIR = 0; private static final Random random = new Random(); + private static final PacketAdapter BOW_PACKET_PROCESSOR = new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_PLACE) { + @Override + public void onPacketReceiving(PacketEvent event) { + PacketContainer packet = event.getPacket(); + EnumWrappers.Hand hand = packet.getHands().read(0); + Player p = event.getPlayer(); + + if(!((hand == EnumWrappers.Hand.MAIN_HAND && p.getInventory().getItemInMainHand().getType() == Material.BOW) || + (hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW))) + return; + + RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND); + ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) { + @Override + public void onPacketReceiving(PacketEvent e) { + if(e.getPlayer() != event.getPlayer()) + return; + + PacketContainer packetDig = e.getPacket(); + if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) { + RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND); + ProtocolLibrary.getProtocolManager().removePacketListener(this); + } + } + }); + } + }; public Recording() { new StateDependentListener(Config.recording(), FightState.All, this); @@ -74,35 +101,17 @@ public class Recording implements Listener { despawnTNT(); } }.register(); - - //Bow Listener - ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_PLACE) { + new StateDependent(Config.recording(), FightState.All) { @Override - public void onPacketReceiving(PacketEvent event) { - PacketContainer packet = event.getPacket(); - EnumWrappers.Hand hand = packet.getHands().read(0); - Player p = event.getPlayer(); - - if(!((hand == EnumWrappers.Hand.MAIN_HAND && p.getInventory().getItemInMainHand().getType() == Material.BOW) || - (hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW))) - return; - - RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND); - ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) { - @Override - public void onPacketReceiving(PacketEvent e) { - if(e.getPlayer() != event.getPlayer()) - return; - - PacketContainer packetDig = e.getPacket(); - if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) { - RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND); - ProtocolLibrary.getProtocolManager().removePacketListener(this); - } - } - }); + public void enable() { + ProtocolLibrary.getProtocolManager().addPacketListener(BOW_PACKET_PROCESSOR); } - }); + + @Override + public void disable() { + ProtocolLibrary.getProtocolManager().removePacketListener(BOW_PACKET_PROCESSOR); + } + }; } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) -- 2.39.2 From d7a9ce65d4c00c91fa26452b2167ed7224e701b6 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Tue, 13 Apr 2021 19:58:59 +0200 Subject: [PATCH 07/11] Quick Fix --- .../src/de/steamwar/fightsystem/record/RecordSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java index 9f2cc74..52e31ba 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/record/RecordSystem.java @@ -179,7 +179,7 @@ public class RecordSystem { Recorder.rByte(0x0A); Recorder.rInt(e.getEntityId()); Recorder.rBoolean(start); - Recorder.rBoolean(hand); + Recorder.rBoolean(offHand); Recorder.flush(); } -- 2.39.2 From 186b896bf6153f9bf3e4798acefc9d9d789b2ddc Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Tue, 13 Apr 2021 21:30:22 +0200 Subject: [PATCH 08/11] Fix Bow Recording.java --- .../de/steamwar/fightsystem/listener/Recording.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index 4acde52..01ec8f0 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -111,7 +111,7 @@ public class Recording implements Listener { public void disable() { ProtocolLibrary.getProtocolManager().removePacketListener(BOW_PACKET_PROCESSOR); } - }; + }.register(); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @@ -157,7 +157,7 @@ public class Recording implements Listener { if(e.getEntityType() != EntityType.PLAYER) return; - if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK || e.getCause() == EntityDamageEvent.DamageCause.FIRE ||e.getEntity().getFireTicks() > 0) + if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK || e.getCause() == EntityDamageEvent.DamageCause.FIRE) RecordSystem.setOnFire(e.getEntity(), false); @@ -168,6 +168,14 @@ public class Recording implements Listener { RecordSystem.damageAnimation(p); } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onEntityCombust(EntityCombustEvent e) { + if(e.getEntityType() != EntityType.PLAYER) + return; + + RecordSystem.setOnFire(e.getEntity(), false); + } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onTNTSpawn(EntitySpawnEvent e){ //TODO: Falling block -- 2.39.2 From a364f86d1fbbd6c98dd1dc657b08c7b4444d39dc Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Wed, 14 Apr 2021 12:44:40 +0200 Subject: [PATCH 09/11] Fix Bow Recording.java --- .../src/de/steamwar/fightsystem/Config.java | 2 +- .../steamwar/fightsystem/listener/Recording.java | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index 1fcf4e8..59ebb26 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -384,6 +384,6 @@ public class Config { return ArenaMode.Test.contains(mode); } public static boolean recording(){ - return mode == ArenaMode.EVENT; + return true;//mode == ArenaMode.EVENT; } } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index 01ec8f0..5084ae1 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -101,7 +101,7 @@ public class Recording implements Listener { despawnTNT(); } }.register(); - new StateDependent(Config.recording(), FightState.All) { + new StateDependent(Config.recording(), FightState.Ingame) { @Override public void enable() { ProtocolLibrary.getProtocolManager().addPacketListener(BOW_PACKET_PROCESSOR); @@ -157,15 +157,14 @@ public class Recording implements Listener { if(e.getEntityType() != EntityType.PLAYER) return; - if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK || e.getCause() == EntityDamageEvent.DamageCause.FIRE) - RecordSystem.setOnFire(e.getEntity(), false); - - Player p = (Player) e.getEntity(); if(isNotSent(p)) return; RecordSystem.damageAnimation(p); + + if(e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK || e.getCause() == EntityDamageEvent.DamageCause.FIRE) + RecordSystem.setOnFire(p, false); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @@ -173,7 +172,11 @@ public class Recording implements Listener { if(e.getEntityType() != EntityType.PLAYER) return; - RecordSystem.setOnFire(e.getEntity(), false); + Player p = (Player) e.getEntity(); + if(isNotSent(p)) + return; + + RecordSystem.setOnFire(p, false); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) -- 2.39.2 From 48fe87ffa39542e87fb733cd97478ecfaba21772 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Wed, 14 Apr 2021 20:36:49 +0200 Subject: [PATCH 10/11] Fix Bow Recording.java --- .../fightsystem/listener/Recording.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java index 5084ae1..9a414ba 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/Recording.java @@ -67,19 +67,16 @@ public class Recording implements Listener { return; RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND); - ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) { - @Override - public void onPacketReceiving(PacketEvent e) { - if(e.getPlayer() != event.getPlayer()) - return; + } + }; - PacketContainer packetDig = e.getPacket(); - if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) { - RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND); - ProtocolLibrary.getProtocolManager().removePacketListener(this); - } - } - }); + private static final PacketAdapter BOW_PACKET_DEDRAW_PROCESSOR = new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) { + @Override + public void onPacketReceiving(PacketEvent e) { + PacketContainer packetDig = e.getPacket(); + if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) { + RecordSystem.bowSpan(e.getPlayer(), false, false); + } } }; @@ -105,11 +102,13 @@ public class Recording implements Listener { @Override public void enable() { ProtocolLibrary.getProtocolManager().addPacketListener(BOW_PACKET_PROCESSOR); + ProtocolLibrary.getProtocolManager().addPacketListener(BOW_PACKET_DEDRAW_PROCESSOR); } @Override public void disable() { ProtocolLibrary.getProtocolManager().removePacketListener(BOW_PACKET_PROCESSOR); + ProtocolLibrary.getProtocolManager().removePacketListener(BOW_PACKET_DEDRAW_PROCESSOR); } }.register(); } -- 2.39.2 From 573a8e14e405f642f04ee5822c70c45ecb50d6b2 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Wed, 14 Apr 2021 20:40:02 +0200 Subject: [PATCH 11/11] Fix Bow Recording.java --- FightSystem_API/src/de/steamwar/fightsystem/Config.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index 59ebb26..1fcf4e8 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -384,6 +384,6 @@ public class Config { return ArenaMode.Test.contains(mode); } public static boolean recording(){ - return true;//mode == ArenaMode.EVENT; + return mode == ArenaMode.EVENT; } } -- 2.39.2