Bukkit 1.20 玩家放置物品替换玻璃杯插件

这是一个使用Java编写的Bukkit插件,可以实现玩家将物品放置到GUI中后,将放置位置的玻璃杯替换为指定的防止物品,并发送一条放置消息。

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class GlassReplacementPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        Inventory clickedInventory = event.getClickedInventory();
        InventoryType clickedInventoryType = event.getInventory().getType();

        if (clickedInventoryType == InventoryType.CHEST && clickedInventory != null) {
            if (event.getSlotType() == InventoryType.SlotType.CONTAINER) {
                ItemStack clickedItem = event.getCurrentItem();
                if (clickedItem != null && clickedItem.getType() == Material.GLASS) {
                    Block clickedBlock = player.getTargetBlock(null, 10);
                    if (clickedBlock != null && clickedBlock.getType() == Material.GLASS) {
                        ItemStack replacementItem = new ItemStack(Material.BARRIER);
                        ItemMeta replacementItemMeta = replacementItem.getItemMeta();
                        replacementItemMeta.setDisplayName('防止的物品');
                        replacementItem.setItemMeta(replacementItemMeta);

                        clickedBlock.setType(Material.AIR);
                        clickedBlock.getWorld().dropItem(clickedBlock.getLocation(), replacementItem);

                        player.sendMessage('物品已成功放置并替换为防止的物品!');
                    }
                }
            }
        }
    }
}

请注意,这是一个简单的示例插件,仅实现了基本的功能。你可能需要根据自己的需求进行修改和扩展。确保在Bukkit服务器上安装并加载该插件后,玩家将物品放置到GUI中,被放置位置的玻璃杯将被替换为防止的物品,并向玩家发送一条放置消息。


原文地址: https://www.cveoy.top/t/topic/fS6N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录