mirror of
https://github.com/PaperMC/Paper.git
synced 2024-08-31 01:00:22 +02:00
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 9590b610 SPIGOT-6749: Library Loader does not correctly isolate dependencies CraftBukkit Changes: 11c9299f #940: Fixed a NPE during CraftBlockEntityState#update. 960f3109 #937: Fixes related to unplaced BlockStates and the recent world generation changes. 4faf479e SPIGOT-6754: We ignore any still present TileEntity now when we create a BlockState for a block of type AIR. a72d5404 SPIGOT-6754: Temporarily restore previous behaviour for tile entities with removed blocks Spigot Changes: dc75aca8 Remove redundant 'Log null TileEntity Owner' patch
98 lines
4.9 KiB
Diff
98 lines
4.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: LemonCaramel <admin@caramel.moe>
|
|
Date: Sun, 23 May 2021 17:49:51 +0900
|
|
Subject: [PATCH] More Lidded Block API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBarrel.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBarrel.java
|
|
index 9d0c272b1d89a96b0b63603fa8e4649f11fb6c51..d5fdf4504a0ca76fb0483f4ae5861c93fb622b2d 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBarrel.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBarrel.java
|
|
@@ -58,4 +58,11 @@ public class CraftBarrel extends CraftLootable<BarrelBlockEntity> implements Bar
|
|
}
|
|
getTileEntity().openersCounter.opened = false;
|
|
}
|
|
+
|
|
+ // Paper start - More Lidded Block API
|
|
+ @Override
|
|
+ public boolean isOpen() {
|
|
+ return getTileEntity().openersCounter.opened;
|
|
+ }
|
|
+ // Paper end - More Lidded Block API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java
|
|
index 1290a29e90349222b33c32429347250ce6101817..9806697cb7566c5af1df74b7eaa8088d19ee4fdc 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java
|
|
@@ -76,4 +76,11 @@ public class CraftChest extends CraftLootable<ChestBlockEntity> implements Chest
|
|
}
|
|
getTileEntity().openersCounter.opened = false;
|
|
}
|
|
+
|
|
+ // Paper start - More Lidded Block API
|
|
+ @Override
|
|
+ public boolean isOpen() {
|
|
+ return getTileEntity().openersCounter.opened;
|
|
+ }
|
|
+ // Paper end - More Lidded Block API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftEnderChest.java b/src/main/java/org/bukkit/craftbukkit/block/CraftEnderChest.java
|
|
index 950066001b23e7b9aec48b2369163d6196979640..c48d7ec19603962855962c6ae6e1275c1552c906 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftEnderChest.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftEnderChest.java
|
|
@@ -9,4 +9,33 @@ public class CraftEnderChest extends CraftBlockEntityState<EnderChestBlockEntity
|
|
public CraftEnderChest(World world, EnderChestBlockEntity tileEntity) {
|
|
super(world, tileEntity);
|
|
}
|
|
+
|
|
+ // Paper start - More Lidded Block API
|
|
+ @Override
|
|
+ public void open() {
|
|
+ requirePlaced();
|
|
+ if (!getTileEntity().openersCounter.opened) {
|
|
+ net.minecraft.world.level.Level world = getTileEntity().getLevel();
|
|
+ world.blockEvent(getTileEntity().getBlockPos(), getTileEntity().getBlockState().getBlock(), 1, getTileEntity().openersCounter.getOpenerCount() + 1);
|
|
+ world.playSound(null, getPosition(), net.minecraft.sounds.SoundEvents.ENDER_CHEST_OPEN, net.minecraft.sounds.SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.1F + 0.9F);
|
|
+ }
|
|
+ getTileEntity().openersCounter.opened = true;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void close() {
|
|
+ requirePlaced();
|
|
+ if (getTileEntity().openersCounter.opened) {
|
|
+ net.minecraft.world.level.Level world = getTileEntity().getLevel();
|
|
+ world.blockEvent(getTileEntity().getBlockPos(), getTileEntity().getBlockState().getBlock(), 1, 0);
|
|
+ world.playSound(null, getPosition(), net.minecraft.sounds.SoundEvents.ENDER_CHEST_CLOSE, net.minecraft.sounds.SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.1F + 0.9F);
|
|
+ }
|
|
+ getTileEntity().openersCounter.opened = false;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isOpen() {
|
|
+ return getTileEntity().openersCounter.opened;
|
|
+ }
|
|
+ // Paper end - More Lidded Block API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java
|
|
index 2d5205a9adfa66545f40a13bf0e37dc62ac0fdb9..72074b4c0feea8136e80589345538552ce28a2ea 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java
|
|
@@ -55,8 +55,15 @@ public class CraftShulkerBox extends CraftLootable<ShulkerBoxBlockEntity> implem
|
|
if (getTileEntity().opened && getWorldHandle() instanceof net.minecraft.world.level.Level) {
|
|
net.minecraft.world.level.Level world = getTileEntity().getLevel();
|
|
world.blockEvent(getPosition(), getTileEntity().getBlockState().getBlock(), 1, 0);
|
|
- world.playSound(null, getPosition(), SoundEvents.SHULKER_BOX_OPEN, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.1F + 0.9F);
|
|
+ world.playSound(null, getPosition(), SoundEvents.SHULKER_BOX_CLOSE, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.1F + 0.9F); // Paper - More Lidded Block API (Wrong sound)
|
|
}
|
|
getTileEntity().opened = false;
|
|
}
|
|
+
|
|
+ // Paper start - More Lidded Block API
|
|
+ @Override
|
|
+ public boolean isOpen() {
|
|
+ return getTileEntity().opened;
|
|
+ }
|
|
+ // Paper end - More Lidded Block API
|
|
}
|