Added logging for flowers being placed in flower pots (fixes #509)

This commit is contained in:
Intelli committed 2026-04-23 14:22:54 -06:00
1 parent 4d311f5248
commit 7c7013f49f
2 files changed
+60

No files matched your search

@@ -56,6 +56,7 @@ import net.coreprotect.listener.world.PortalCreateListener;
import net.coreprotect.listener.world.StructureGrowListener;
import net.coreprotect.paper.listener.BlockPreDispenseListener;
import net.coreprotect.paper.listener.CopperGolemChestListener;
import net.coreprotect.paper.listener.FlowerPotManipulateListener;
import net.coreprotect.paper.listener.PaperChatListener;
public final class ListenerHandler {
@@ -124,6 +125,13 @@ public final class ListenerHandler {
catch (Exception e) {
pluginManager.registerEvents(new PlayerChatListener(), plugin);
}
try {
Class.forName("io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent");
pluginManager.registerEvents(new FlowerPotManipulateListener(), plugin);
}
catch (Exception e) {
// Ignore registration failures to remain compatible with older servers.
}
// Player Listeners
pluginManager.registerEvents(new ArmorStandManipulateListener(), plugin);
@@ -0,0 +1,52 @@
package net.coreprotect.paper.listener;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import io.papermc.paper.event.player.PlayerFlowerPotManipulateEvent;
import net.coreprotect.config.Config;
import net.coreprotect.consumer.Queue;
public final class FlowerPotManipulateListener extends Queue implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
protected void onPlayerFlowerPotManipulate(PlayerFlowerPotManipulateEvent event) {
Player player = event.getPlayer();
Block flowerPot = event.getFlowerpot();
ItemStack eventItem = event.getItem();
if (player == null || flowerPot == null || eventItem == null || eventItem.getType() == Material.AIR) {
return;
}
World world = flowerPot.getWorld();
if (!Config.getConfig(world).ITEM_TRANSACTIONS) {
return;
}
BlockState oldState = flowerPot.getState();
Material oldType = oldState.getType();
Material newType = Material.FLOWER_POT;
if (event.isPlacing()) {
newType = Material.getMaterial("POTTED_" + eventItem.getType().name());
if (newType == null) {
return;
}
}
if (oldType == newType) {
return;
}
BlockData oldBlockData = oldState.getBlockData();
String oldBlockDataString = oldBlockData != null ? oldBlockData.getAsString() : null;
queueBlockPlace(player.getName(), oldState, oldType, oldState, newType, -1, 0, oldBlockDataString);
}
}