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.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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user