PaperMC/patches/server/0447-Add-PlayerFlowerPotManipulateEvent.patch

49 lines
2.8 KiB
Diff
Raw Permalink Normal View History

2024-04-24 15:46:45 +02:00
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
2024-12-03 19:54:10 +01:00
index 4c7723b9f369391ab253c4a60510e318fb7cfce3..f45a8741e6707f033b0205eee03c59aa889565e1 100644
2024-04-24 15:46:45 +02:00
--- a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java
2024-12-03 19:54:10 +01:00
@@ -63,6 +63,18 @@ public class FlowerPotBlock extends Block {
2024-04-24 15:46:45 +02:00
} else if (!this.isEmpty()) {
2024-10-23 17:58:11 +02:00
return InteractionResult.CONSUME;
2024-04-24 15:46:45 +02:00
} else {
+ // Paper start - Add PlayerFlowerPotManipulateEvent
+ org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(world, pos);
+ org.bukkit.inventory.ItemStack placedStack = org.bukkit.craftbukkit.inventory.CraftItemStack.asBukkitCopy(stack);
+
+ io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent event = new io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent((org.bukkit.entity.Player) player.getBukkitEntity(), block, placedStack, true);
+ if (!event.callEvent()) {
+ // Update client
+ player.containerMenu.sendAllDataToRemote();
+
2024-10-25 14:55:49 +02:00
+ return InteractionResult.CONSUME;
2024-04-24 15:46:45 +02:00
+ }
+ // Paper end - Add PlayerFlowerPotManipulateEvent
world.setBlock(pos, blockState, 3);
world.gameEvent(player, GameEvent.BLOCK_CHANGE, pos);
player.awardStat(Stats.POT_FLOWER);
2024-12-03 19:54:10 +01:00
@@ -77,6 +89,18 @@ public class FlowerPotBlock extends Block {
2024-04-24 15:46:45 +02:00
return InteractionResult.CONSUME;
} else {
ItemStack itemStack = new ItemStack(this.potted);
+ // Paper start - Add PlayerFlowerPotManipulateEvent
+ org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(world, pos);
+ org.bukkit.inventory.ItemStack pottedStack = new org.bukkit.inventory.ItemStack(org.bukkit.craftbukkit.block.CraftBlockType.minecraftToBukkit(this.potted));
+
+ io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent event = new io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent((org.bukkit.entity.Player) player.getBukkitEntity(), block, pottedStack, false);
+ if (!event.callEvent()) {
+ // Update client
+ player.containerMenu.sendAllDataToRemote();
+
+ return InteractionResult.PASS;
+ }
+ // Paper end - Add PlayerFlowerPotManipulateEvent
if (!player.addItem(itemStack)) {
player.drop(itemStack, false);
}