From 4495b9ec5b8fefb37ed9b69c87945d771cf6e92d Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sat, 11 Sep 2021 18:40:14 +1000 Subject: [PATCH] SPIGOT-6249: Add Missing Effect Constants By: DerFrZocker --- .../org/bukkit/craftbukkit/CraftEffect.java | 26 +++++++++++++++++++ .../org/bukkit/craftbukkit/CraftWorld.java | 5 ++-- .../craftbukkit/entity/CraftPlayer.java | 5 ++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftEffect.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftEffect.java index 5da619366d..151a6db2a3 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftEffect.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftEffect.java @@ -3,6 +3,7 @@ package org.bukkit.craftbukkit; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import org.apache.commons.lang.Validate; +import org.bukkit.Axis; import org.bukkit.Color; import org.bukkit.Effect; import org.bukkit.Material; @@ -61,6 +62,31 @@ public class CraftEffect { Validate.isTrue(((Material) data).isBlock(), "Material is not a block!"); datavalue = Block.getCombinedId(CraftMagicNumbers.getBlock((Material) data).getBlockData()); break; + case COMPOSTER_FILL_ATTEMPT: + datavalue = ((Boolean) data) ? 1 : 0; + break; + case BONE_MEAL_USE: + datavalue = (Integer) data; + break; + case ELECTRIC_SPARK: + if (data == null) { + datavalue = -1; + } else { + switch ((Axis) data) { + case X: + datavalue = 0; + break; + case Y: + datavalue = 1; + break; + case Z: + datavalue = 2; + break; + default: + throw new IllegalArgumentException("Bad electric spark axis!"); + } + } + break; default: datavalue = 0; } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 08934eedee..6bcc47e831 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1091,10 +1091,11 @@ public class CraftWorld extends CraftRegionAccessor implements World { if (data != null) { Validate.isTrue(effect.getData() != null && effect.getData().isAssignableFrom(data.getClass()), "Wrong kind of data for this effect!"); } else { - Validate.isTrue(effect.getData() == null, "Wrong kind of data for this effect!"); + // Special case: the axis is optional for ELECTRIC_SPARK + Validate.isTrue(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for this effect!"); } - int datavalue = data == null ? 0 : CraftEffect.getDataValue(effect, data); + int datavalue = CraftEffect.getDataValue(effect, data); playEffect(loc, effect, datavalue, radius); } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 09532a8374..45a6f5231f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -527,10 +527,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (data != null) { Validate.isTrue(effect.getData() != null && effect.getData().isAssignableFrom(data.getClass()), "Wrong kind of data for this effect!"); } else { - Validate.isTrue(effect.getData() == null, "Wrong kind of data for this effect!"); + // Special case: the axis is optional for ELECTRIC_SPARK + Validate.isTrue(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for this effect!"); } - int datavalue = data == null ? 0 : CraftEffect.getDataValue(effect, data); + int datavalue = CraftEffect.getDataValue(effect, data); playEffect(loc, effect, datavalue); }