From c6b0cd9d26d8265d129d1b87bb2c554ca385570e Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Wed, 24 Aug 2022 14:03:45 +0900 Subject: [PATCH] More refactoring of check-if-in-battle code --- Changelog.md | 2 ++ .../TurnBasedMinecraft/common/BattleManager.java | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index 1ce708c..e27d61b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,7 @@ # Upcoming changes +More refactoring of check-if-in-battle lookup code. + # Version 1.21.3 Implemented "player-only" battles, which can be enabled in the server-side diff --git a/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/BattleManager.java b/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/BattleManager.java index 28978de..0b5f3c0 100644 --- a/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/BattleManager.java +++ b/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/BattleManager.java @@ -23,6 +23,7 @@ public class BattleManager private Map recentlyLeftBattle; private BattleUpdater battleUpdater; private Map entityToBattleMap; + private EntityIDDimPair tempIDPair; public BattleManager(Logger logger) { @@ -32,6 +33,7 @@ public class BattleManager battleUpdater = new BattleUpdater(this); entityToBattleMap = new HashMap(); MinecraftForge.EVENT_BUS.register(battleUpdater); + tempIDPair = new EntityIDDimPair(); } /** @@ -361,6 +363,10 @@ public class BattleManager } public boolean isInBattle(Entity entity) { - return entityToBattleMap.keySet().contains(new EntityIDDimPair(entity)); + synchronized(tempIDPair) { + tempIDPair.id = entity.getId(); + tempIDPair.dim = entity.level.dimension(); + return entityToBattleMap.keySet().contains(tempIDPair); + } } } \ No newline at end of file