你可以使用以下代码来实现你的需求:

首先,在你的插件主类中添加以下代码:

import org.bukkit.Bukkit;
import org.bukkit.Material;
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.InventoryOpenEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class YourPlugin extends JavaPlugin implements Listener {

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

    @EventHandler
    public void onInventoryOpen(InventoryOpenEvent event) {
        Player player = (Player) event.getPlayer();
        Inventory inventory = event.getInventory();
        if (inventory != null && inventory.getName().equals("YourGuiName")) {
            ItemStack item = inventory.getItem(42);
            if (item != null && item.getType() != Material.AIR) {
                player.sendMessage("The slot 43 is not empty.");
            }
        }
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        Inventory inventory = event.getInventory();
        if (inventory != null && inventory.getName().equals("YourGuiName")) {
            ItemStack item = inventory.getItem(42);
            if (item != null && item.getType() != Material.AIR) {
                player.sendMessage("The slot 43 is not empty.");
            }
        }
    }
}

然后,你需要创建一个GUI界面供玩家打开。例如:

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class YourPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        // 在你的插件启用时创建GUI界面
        createGUI();
    }

    private void createGUI() {
        Inventory gui = Bukkit.createInventory(null, 54, "YourGuiName");

        // 在第43个槽位放置一个物品
        ItemStack item = new ItemStack(Material.DIAMOND);
        ItemMeta meta = item.getItemMeta();
        meta.setDisplayName("Example Item");
        item.setItemMeta(meta);
        gui.setItem(42, item);

        // 注册一个命令来打开GUI
        getCommand("opengui").setExecutor((sender, command, label, args) -> {
            if (sender instanceof Player) {
                Player player = (Player) sender;
                player.openInventory(gui);
            }
            return true;
        });
    }
}

现在,当玩家打开GUI并且第43个槽位不为空时,将会发送一条消息给玩家。你可以根据你的需求修改消息内容和GUI界面的设置

用Java写一个Bukkit120的 玩家打开Gui的时候 Gui内第43格不为空的时候 则发送一条消息

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

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