forked from github-mirror/CoreProtect
Added logging for flowers being placed in flower pots (fixes #509)
This commit is contained in:
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.listener.world.StructureGrowListener;
|
||||||
import net.coreprotect.paper.listener.BlockPreDispenseListener;
|
import net.coreprotect.paper.listener.BlockPreDispenseListener;
|
||||||
import net.coreprotect.paper.listener.CopperGolemChestListener;
|
import net.coreprotect.paper.listener.CopperGolemChestListener;
|
||||||
|
import net.coreprotect.paper.listener.FlowerPotManipulateListener;
|
||||||
import net.coreprotect.paper.listener.PaperChatListener;
|
import net.coreprotect.paper.listener.PaperChatListener;
|
||||||
|
|
||||||
public final class ListenerHandler {
|
public final class ListenerHandler {
|
||||||
@@ -124,6 +125,13 @@ public final class ListenerHandler {
|
|||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
pluginManager.registerEvents(new PlayerChatListener(), plugin);
|
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
|
// Player Listeners
|
||||||
pluginManager.registerEvents(new ArmorStandManipulateListener(), plugin);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user