以下是一个示例代码,用于实现你描述的功能:

import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BookMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class DropSignedBooks extends JavaPlugin implements Listener {

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

    @EventHandler
    public void onPlayerDropItem(PlayerDropItemEvent event) {
        ItemStack droppedItem = event.getItemDrop().getItemStack();

        // 检查如果物品是书
        if (droppedItem.getType() == Material.WRITTEN_BOOK || droppedItem.getType() == Material.WRITABLE_BOOK) {
            BookMeta bookMeta = (BookMeta) droppedItem.getItemMeta();

            // 检查书是否有作者
            if (bookMeta.hasAuthor()) {
                event.setCancelled(true);
                event.getPlayer().sendMessage("你不能丢弃已署名的书籍!");
            }
        }
    }
}

请注意,上述代码是基于Bukkit API编写的,因此您需要将其添加到您的Bukkit插件项目中,并确保已经正确设置了Bukkit开发环境。

Bukkit 1.20.1 插件:防止玩家丢弃已署名的书籍

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

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