|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Jake Potrebic <jake.m.potrebic@gmail.com> |
| 3 | +Date: Thu, 19 Aug 2021 18:45:42 -0700 |
| 4 | +Subject: [PATCH] Configurable sculk sensor listener range |
| 5 | + |
| 6 | + |
| 7 | +diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkSensorBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkSensorBlockEntity.java |
| 8 | +index 2b1e61dacaf4338d7584dea197c7439251951d81..16506b950bbe12f28cf0217b6131128723019e54 100644 |
| 9 | +--- a/src/main/java/net/minecraft/world/level/block/entity/SculkSensorBlockEntity.java |
| 10 | ++++ b/src/main/java/net/minecraft/world/level/block/entity/SculkSensorBlockEntity.java |
| 11 | +@@ -26,12 +26,15 @@ public class SculkSensorBlockEntity extends BlockEntity implements VibrationList |
| 12 | + public void load(CompoundTag nbt) { |
| 13 | + super.load(nbt); |
| 14 | + this.lastVibrationFrequency = nbt.getInt("last_vibration_frequency"); |
| 15 | ++ if (nbt.contains(PAPER_LISTENER_RANGE_NBT_KEY)) this.listener.listenerRange = nbt.getInt(PAPER_LISTENER_RANGE_NBT_KEY); // Paper |
| 16 | + } |
| 17 | + |
| 18 | ++ private static final String PAPER_LISTENER_RANGE_NBT_KEY = "Paper.ListenerRange"; // Paper |
| 19 | + @Override |
| 20 | + protected void saveAdditional(CompoundTag nbt) { |
| 21 | + super.saveAdditional(nbt); |
| 22 | + nbt.putInt("last_vibration_frequency", this.lastVibrationFrequency); |
| 23 | ++ if (this.listener.listenerRange != ((SculkSensorBlock) net.minecraft.world.level.block.Blocks.SCULK_SENSOR).getListenerRange()) nbt.putInt(PAPER_LISTENER_RANGE_NBT_KEY, this.listener.listenerRange); // Paper - only save if it's different from the default |
| 24 | + } |
| 25 | + |
| 26 | + public VibrationListener getListener() { |
| 27 | +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSculkSensor.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSculkSensor.java |
| 28 | +index 2733154f569002e426690dfcf362ff20da8cba72..34362768f38fb3122abcbd5e63fee38a631b9ee3 100644 |
| 29 | +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftSculkSensor.java |
| 30 | ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSculkSensor.java |
| 31 | +@@ -21,4 +21,16 @@ public class CraftSculkSensor extends CraftBlockEntityState<SculkSensorBlockEnti |
| 32 | + Preconditions.checkArgument(0 <= lastVibrationFrequency && lastVibrationFrequency <= 15, "Vibration frequency must be between 0-15"); |
| 33 | + getSnapshot().lastVibrationFrequency = lastVibrationFrequency; |
| 34 | + } |
| 35 | ++ // Paper start |
| 36 | ++ @Override |
| 37 | ++ public int getListenerRange() { |
| 38 | ++ return this.getSnapshot().getListener().listenerRange; |
| 39 | ++ } |
| 40 | ++ |
| 41 | ++ @Override |
| 42 | ++ public void setListenerRange(int range) { |
| 43 | ++ Preconditions.checkArgument(range > 0, "Vibration listener range must be greater than 0"); |
| 44 | ++ this.getSnapshot().getListener().listenerRange = range; |
| 45 | ++ } |
| 46 | ++ // Paper end |
| 47 | + } |
0 commit comments