From 058a2f532ed0f1b177d9f614417f26e4329a513b Mon Sep 17 00:00:00 2001 From: P3pp3rF1y Date: Sun, 7 Apr 2024 12:13:24 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20crash=20with=20mob?= =?UTF-8?q?=20charm=20code=20when=20there=20are=20multiple=20players=20in?= =?UTF-8?q?=20the=20world?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- src/main/java/reliquary/items/MobCharmItem.java | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 52003881..afc9929d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ loader_version_range=[2,) mod_id=reliquary mod_name=Reliquary mod_license=GNU General Public License v3.0 -mod_version=2.0.40 +mod_version=2.0.41 mod_group_id=reliquary mod_authors=x3n0ph0b3, TheMike, P3pp3rF1y mod_description=Two words: magical swag. Oh, and a gun. diff --git a/src/main/java/reliquary/items/MobCharmItem.java b/src/main/java/reliquary/items/MobCharmItem.java index c3c6db4f..eb9a01e0 100644 --- a/src/main/java/reliquary/items/MobCharmItem.java +++ b/src/main/java/reliquary/items/MobCharmItem.java @@ -215,8 +215,8 @@ public void setCharmInventoryHandler(CharmInventoryHandler charmInventoryHandler } public static class CharmInventoryHandler { - private static long lastCharmCacheTime = -1; - private static final Map> charmsInInventoryCache = new HashMap<>(); + private long lastCharmCacheTime = -1; + private final Map> charmsInInventoryCache = new HashMap<>(); protected Set getCharmRegistryNames(Player player) { Set ret = new HashSet<>(); @@ -240,9 +240,8 @@ public boolean playerHasMobCharm(Player player, MobCharmDefinition charmDefiniti if (lastCharmCacheTime != player.level().getGameTime()) { lastCharmCacheTime = player.level().getGameTime(); charmsInInventoryCache.clear(); - charmsInInventoryCache.put(player.getUUID(), getCharmRegistryNames(player)); } - return charmsInInventoryCache.get(player.getUUID()).contains(registryName); + return charmsInInventoryCache.computeIfAbsent(player.getUUID(), u -> getCharmRegistryNames(player)).contains(registryName); } public boolean damagePlayersMobCharm(ServerPlayer player, String entityRegistryName) {