From 56b5c660ceec5cacd8316e22a73e37648fff812a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 19 May 2019 06:50:35 -0500 Subject: [PATCH] Add permission nodes for silk spawners --- patches/server/0009-Silk-touch-spawners.patch | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/patches/server/0009-Silk-touch-spawners.patch b/patches/server/0009-Silk-touch-spawners.patch index a72fd19f7..c2a986938 100644 --- a/patches/server/0009-Silk-touch-spawners.patch +++ b/patches/server/0009-Silk-touch-spawners.patch @@ -1,4 +1,4 @@ -From 3d81446a71c62cdc61ee17dfee17d1f4fb77132a Mon Sep 17 00:00:00 2001 +From fd11f5a1efda406919f07995d24ab6cc97ac9ac1 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 9 May 2019 14:27:37 -0500 Subject: [PATCH] Silk touch spawners @@ -7,9 +7,9 @@ Subject: [PATCH] Silk touch spawners src/main/java/net/minecraft/server/Block.java | 1 + .../net/minecraft/server/BlockMobSpawner.java | 35 +++++++++++++++++++ .../net/minecraft/server/EntityTypes.java | 13 +++++++ - .../net/minecraft/server/ItemSpawner.java | 20 +++++++++++ + .../net/minecraft/server/ItemSpawner.java | 22 ++++++++++++ src/main/java/net/minecraft/server/Items.java | 2 +- - 5 files changed, 70 insertions(+), 1 deletion(-) + 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/minecraft/server/ItemSpawner.java diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java @@ -25,7 +25,7 @@ index 5b98c5255..b5c8f2cb3 100644 if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean("doTileDrops")) { float f = 0.5F; diff --git a/src/main/java/net/minecraft/server/BlockMobSpawner.java b/src/main/java/net/minecraft/server/BlockMobSpawner.java -index bb77d916a..01b7e10a7 100644 +index bb77d916a..974a5d281 100644 --- a/src/main/java/net/minecraft/server/BlockMobSpawner.java +++ b/src/main/java/net/minecraft/server/BlockMobSpawner.java @@ -11,6 +11,40 @@ public class BlockMobSpawner extends BlockTileEntity { @@ -35,7 +35,7 @@ index bb77d916a..01b7e10a7 100644 + // Purpur start + @Override + public void a(World world, EntityHuman entityhuman, BlockPosition blockposition, IBlockData iblockdata, TileEntity tileentity, ItemStack itemstack) { -+ if (isSilkTouch(itemstack)) { ++ if (entityhuman.getBukkitEntity().hasPermission("purpur.drop.spawners") && isSilkTouch(itemstack)) { + MinecraftKey type = ((TileEntityMobSpawner) tileentity).getSpawner().getMobName(); + if (type != null) { + ItemStack item = new ItemStack(Blocks.SPAWNER.getItem()); @@ -117,10 +117,10 @@ index 77d4bbce1..fb0c6bce0 100644 this.bf = new ChatMessage(this.e(), new Object[0]); diff --git a/src/main/java/net/minecraft/server/ItemSpawner.java b/src/main/java/net/minecraft/server/ItemSpawner.java new file mode 100644 -index 000000000..17da40083 +index 000000000..05dbc162f --- /dev/null +++ b/src/main/java/net/minecraft/server/ItemSpawner.java -@@ -0,0 +1,20 @@ +@@ -0,0 +1,22 @@ +package net.minecraft.server; + +public class ItemSpawner extends ItemBlock { @@ -131,11 +131,13 @@ index 000000000..17da40083 + @Override + protected boolean a(BlockPosition blockposition, World world, EntityHuman entityhuman, ItemStack itemstack, IBlockData iblockdata) { + boolean handled = super.a(blockposition, world, entityhuman, itemstack, iblockdata); -+ TileEntity te = world.getTileEntity(blockposition); -+ if (te instanceof TileEntityMobSpawner && itemstack.hasTag()) { -+ NBTTagCompound tag = itemstack.getTag(); -+ if (tag.hasKey("Purpur.mob_type")) { -+ EntityTypes.a(tag.getString("Purpur.mob_type")).ifPresent(type -> ((TileEntityMobSpawner) te).getSpawner().setMobName(type)); ++ if (entityhuman.getBukkitEntity().hasPermission("purpur.place.spawners")) { ++ TileEntity te = world.getTileEntity(blockposition); ++ if (te instanceof TileEntityMobSpawner && itemstack.hasTag()) { ++ NBTTagCompound tag = itemstack.getTag(); ++ if (tag.hasKey("Purpur.mob_type")) { ++ EntityTypes.a(tag.getString("Purpur.mob_type")).ifPresent(type -> ((TileEntityMobSpawner) te).getSpawner().setMobName(type)); ++ } + } + } + return handled;