From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sceri Date: Fri, 14 May 2021 19:06:51 +0500 Subject: [PATCH] Fix CraftPotionBrewer cache diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java index e20d96ec67dcbe935357b4de7e0e9a6984dc3303..eb28a055ba60bb1da3412cf0dbbe5ce76a779f38 100644 --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java +++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java @@ -15,12 +15,18 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; public class CraftPotionBrewer implements PotionBrewer { - private static final Map> cache = Maps.newHashMap(); + private static final Map> cache = Maps.newHashMap(); // Paper @Override public Collection getEffects(PotionType damage, boolean upgraded, boolean extended) { - if (cache.containsKey(damage)) - return cache.get(damage); + // Paper start + int key = damage.ordinal() << 2; + key |= (upgraded ? 1 : 0) << 1; + key |= extended ? 1 : 0; + + if (cache.containsKey(key)) + return cache.get(key); + // Paper end List mcEffects = Potion.byName(CraftPotionUtil.fromBukkit(new PotionData(damage, extended, upgraded))).getEffects(); @@ -29,9 +35,9 @@ public class CraftPotionBrewer implements PotionBrewer { builder.add(CraftPotionUtil.toBukkit(effect)); } - cache.put(damage, builder.build()); + cache.put(key, builder.build()); // Paper - return cache.get(damage); + return cache.get(key); // Paper } @Override