mirror of
https://github.com/PaperMC/Paper.git
synced 2024-10-30 23:39:58 +01:00
aa52bf9e33
Mojang made some changes to priorities in 1.17 and it seems that these changes conflict with the changes made in this patch, which in some cases appears to cause excessive rescheduling of tasks. This, however, is not confirmed as such but seems to be the behavior that we're seeing to cause this issue, if mojang has adopted the changes we suggested, then a good chunk of this patch may be unneeded, but, this needs a much better look than I'm currently able to do
45 lines
2.0 KiB
Diff
45 lines
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Sceri <scerimail@gmail.com>
|
|
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 1e4bc0d9f9d2e45157929af685f116988cbb8c03..8fdc9a3bb2f1b6bdc6c2c96f8ade7e9cd88ea4e0 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<PotionType, Collection<PotionEffect>> cache = Maps.newHashMap();
|
|
+ private static final Map<Integer, Collection<PotionEffect>> cache = Maps.newHashMap(); // Paper
|
|
|
|
@Override
|
|
public Collection<PotionEffect> getEffects(PotionType damage, boolean upgraded, boolean extended) {
|
|
- if (CraftPotionBrewer.cache.containsKey(damage))
|
|
- return CraftPotionBrewer.cache.get(damage);
|
|
+ // Paper start
|
|
+ int key = damage.ordinal() << 2;
|
|
+ key |= (upgraded ? 1 : 0) << 1;
|
|
+ key |= extended ? 1 : 0;
|
|
+
|
|
+ if (CraftPotionBrewer.cache.containsKey(key))
|
|
+ return CraftPotionBrewer.cache.get(key);
|
|
+ // Paper end
|
|
|
|
List<MobEffectInstance> 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));
|
|
}
|
|
|
|
- CraftPotionBrewer.cache.put(damage, builder.build());
|
|
+ CraftPotionBrewer.cache.put(key, builder.build()); // Paper
|
|
|
|
- return CraftPotionBrewer.cache.get(damage);
|
|
+ return CraftPotionBrewer.cache.get(key); // Paper
|
|
}
|
|
|
|
@Override
|