diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java index b94528e71..afbd0b082 100644 --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java +++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java @@ -8,7 +8,7 @@ public class CraftPotionEffectType extends PotionEffectType { private final MobEffectList handle; public CraftPotionEffectType(MobEffectList handle) { - super(MobEffectList.getId(handle)); + super(MobEffectList.getId(handle), org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(net.minecraft.core.IRegistry.MOB_EFFECT.getKey(handle))); this.handle = handle; } diff --git a/src/test/java/org/bukkit/PotionEffectTypeTest.java b/src/test/java/org/bukkit/PotionEffectTypeTest.java new file mode 100644 index 000000000..6cbc96641 --- /dev/null +++ b/src/test/java/org/bukkit/PotionEffectTypeTest.java @@ -0,0 +1,33 @@ +package org.bukkit; + +import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; +import com.google.common.collect.Lists; +import java.util.Collections; +import java.util.List; +import net.minecraft.core.IRegistry; +import net.minecraft.resources.MinecraftKey; +import org.bukkit.craftbukkit.util.CraftNamespacedKey; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.support.AbstractTestingBase; +import org.junit.Test; + +public class PotionEffectTypeTest extends AbstractTestingBase { + + @Test + public void verifyMapping() { + List effects = Lists.newArrayList(PotionEffectType.values()); + + for (MinecraftKey key : IRegistry.MOB_EFFECT.keySet()) { + String name = key.getPath(); + PotionEffectType effect = PotionEffectType.getByKey(CraftNamespacedKey.fromMinecraft(key)); + + String message = String.format("org.bukkit.PotionEffectType is missing '%s'", name); + assertNotNull(message, effect); + + effects.remove(effect); + } + + assertThat("org.bukkit.PotionEffectType has too many effects", effects, is(Collections.EMPTY_LIST)); + } +}