diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java index dd84dfcd1..749e8d30e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java @@ -39,19 +39,22 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { private final SoundData onSound; private final SoundData offSound; private final PressurePlateSensitivity pressurePlateSensitivity; + private final int pressedTime; public PressurePlateBlockBehavior( CustomBlock block, Property poweredProperty, SoundData onSound, SoundData offSound, - PressurePlateSensitivity pressurePlateSensitivity + PressurePlateSensitivity pressurePlateSensitivity, + int pressedTime ) { super(block); this.poweredProperty = poweredProperty; this.onSound = onSound; this.offSound = offSound; this.pressurePlateSensitivity = pressurePlateSensitivity; + this.pressedTime = pressedTime; } @Override @@ -115,7 +118,7 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { if (signalForState == 0) { this.checkPressed(args[3], args[1], args[2], state, signalForState, thisBlock); } else { - FastNMS.INSTANCE.method$LevelAccessor$scheduleBlockTick(args[1], args[2], thisBlock, 20); + FastNMS.INSTANCE.method$LevelAccessor$scheduleBlockTick(args[1], args[2], thisBlock, this.pressedTime); } } @@ -159,7 +162,7 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { } if (isActive) { - FastNMS.INSTANCE.method$LevelAccessor$scheduleBlockTick(level, pos, thisBlock, 20); + FastNMS.INSTANCE.method$LevelAccessor$scheduleBlockTick(level, pos, thisBlock, this.pressedTime); } } @@ -225,6 +228,7 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { public BlockBehavior create(CustomBlock block, Map arguments) { Property powered = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("powered"), "warning.config.block.behavior.pressure_plate.missing_powered"); PressurePlateSensitivity pressurePlateSensitivity = PressurePlateSensitivity.byName(arguments.getOrDefault("sensitivity", "everything").toString()); + int pressedTime = ResourceConfigUtils.getAsInt(arguments.getOrDefault("pressed-time", 20), "pressed-time"); Map sounds = (Map) arguments.get("sounds"); SoundData onSound = null; SoundData offSound = null; @@ -232,7 +236,7 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { onSound = Optional.ofNullable(sounds.get("on")).map(obj -> SoundData.create(obj, SoundData.SoundValue.FIXED_1, SoundData.SoundValue.ranged(0.9f, 1f))).orElse(null); offSound = Optional.ofNullable(sounds.get("off")).map(obj -> SoundData.create(obj, SoundData.SoundValue.FIXED_1, SoundData.SoundValue.ranged(0.9f, 1f))).orElse(null); } - return new PressurePlateBlockBehavior(block, powered, onSound, offSound, pressurePlateSensitivity); + return new PressurePlateBlockBehavior(block, powered, onSound, offSound, pressurePlateSensitivity, pressedTime); } } } diff --git a/common-files/src/main/resources/resources/default/configuration/palm_tree.yml b/common-files/src/main/resources/resources/default/configuration/palm_tree.yml index e0a8ff127..7ef443c97 100644 --- a/common-files/src/main/resources/resources/default/configuration/palm_tree.yml +++ b/common-files/src/main/resources/resources/default/configuration/palm_tree.yml @@ -600,6 +600,7 @@ items: behaviors: type: pressure_plate_block sensitivity: all + pressed-time: 20 sounds: on: minecraft:block.wooden_pressure_plate.click_on off: minecraft:block.wooden_pressure_plate.click_off