geforkt von Mirrors/Paper
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
33 Zeilen
1.9 KiB
Diff
33 Zeilen
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: MisterVector <whizkid3000@hotmail.com>
|
|
Date: Tue, 13 Aug 2019 19:45:06 -0700
|
|
Subject: [PATCH] Add PlayerFlowerPotManipulateEvent
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java
|
|
index c450faf8c043665eab020141f3c27e3d9890cb86..fbe399fa2c27ba283e4a51f9a2559baf86fdff11 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java
|
|
@@ -66,6 +66,21 @@ public class FlowerPotBlock extends Block {
|
|
boolean bl = blockState.is(Blocks.AIR);
|
|
boolean bl2 = this.isEmpty();
|
|
if (bl != bl2) {
|
|
+ // Paper start - Add PlayerFlowerPotManipulateEvent
|
|
+ boolean placing = bl2; // OBFHELPER
|
|
+ org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(world, pos);
|
|
+ org.bukkit.inventory.ItemStack placedStack = org.bukkit.craftbukkit.inventory.CraftItemStack.asBukkitCopy(itemStack);
|
|
+ org.bukkit.inventory.ItemStack pottedStack = new org.bukkit.inventory.ItemStack(org.bukkit.craftbukkit.block.CraftBlockType.minecraftToBukkit(this.potted));
|
|
+ org.bukkit.inventory.ItemStack stack = placing ? placedStack : pottedStack;
|
|
+
|
|
+ io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent event = new io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent((org.bukkit.entity.Player) player.getBukkitEntity(), block, stack, placing);
|
|
+ if (!event.callEvent()) {
|
|
+ // Update client
|
|
+ player.containerMenu.sendAllDataToRemote();
|
|
+
|
|
+ return InteractionResult.PASS;
|
|
+ }
|
|
+ // Paper end - Add PlayerFlowerPotManipulateEvent
|
|
if (bl2) {
|
|
world.setBlock(pos, blockState, 3);
|
|
player.awardStat(Stats.POT_FLOWER);
|