以下是使用Java编写的示例代码,用于将Bukkit 1.20.1的GUI设置为54格,并在GUI的边界上设置一圈黑色玻璃板,剩余的中间部分将显示在线玩家的牌子。\n\njava\nimport org.bukkit.Bukkit; \nimport org.bukkit.Material; \nimport org.bukkit.entity.Player; \nimport org.bukkit.event.EventHandler; \nimport org.bukkit.event.Listener; \nimport org.bukkit.event.inventory.InventoryClickEvent; \nimport org.bukkit.inventory.Inventory; \nimport org.bukkit.inventory.ItemStack; \nimport org.bukkit.inventory.meta.ItemMeta; \nimport org.bukkit.plugin.java.JavaPlugin; \n\nimport java.util.ArrayList; \nimport java.util.List; \n\npublic class PluginName extends JavaPlugin implements Listener { \n \n @Override \n public void onEnable() { \n Bukkit.getPluginManager().registerEvents(this, this); \n } \n \n @Override \n public void onDisable() { \n } \n \n @EventHandler \n public void onInventoryClick(InventoryClickEvent event) { \n if (event.getView().getTitle().equals("Gui标题")) { // 替换为你的GUI标题 \n event.setCancelled(true); \n } \n } \n \n public void openGui(Player player) { \n Inventory gui = Bukkit.createInventory(player, 54, "Gui标题"); // 替换为你的GUI标题 \n \n // 设置边界黑色玻璃板 \n for (int i = 0; i < 9; i++) { \n gui.setItem(i, createGlassPane(Material.BLACK_STAINED_GLASS_PANE)); \n gui.setItem(i + 45, createGlassPane(Material.BLACK_STAINED_GLASS_PANE)); \n } \n for (int i = 1; i < 5; i++) { \n gui.setItem(i * 9, createGlassPane(Material.BLACK_STAINED_GLASS_PANE)); \n gui.setItem(i * 9 + 8, createGlassPane(Material.BLACK_STAINED_GLASS_PANE)); \n } \n \n // 设置显示在线玩家的牌子 \n for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { \n ItemStack playerHead = new ItemStack(Material.PLAYER_HEAD); \n ItemMeta playerHeadMeta = playerHead.getItemMeta(); \n playerHeadMeta.setDisplayName(onlinePlayer.getName()); \n playerHead.setItemMeta(playerHeadMeta); \n \n gui.addItem(playerHead); \n } \n \n player.openInventory(gui); \n } \n \n private ItemStack createGlassPane(Material glassPaneColor) { \n ItemStack glassPane = new ItemStack(glassPaneColor); \n ItemMeta glassPaneMeta = glassPane.getItemMeta(); \n glassPaneMeta.setDisplayName(" "); \n glassPane.setItemMeta(glassPaneMeta); \n return glassPane; \n } \n} \n\n\n这段代码将创建一个名为PluginName的Bukkit插件。在openGui方法中,创建了一个54格的GUI,并在边界上设置了黑色玻璃板。然后,使用Bukkit.getOnlinePlayers()方法获取所有在线玩家,并将它们的名字显示在GUI中。最后,使用player.openInventory(gui)方法将GUI打开给玩家。\n\n请注意,你需要将代码中的Gui标题替换为你想要的GUI标题。此外,确保将插件的名称设置为与Java类的名称相同,并将其保存为.java文件。将生成的.java文件编译为.jar插件,并将其放入Bukkit服务器的plugins文件夹中。启动服务器后,插件将自动加载,并在执行/openGui或其他相关命令时打开GUI给玩家。

Bukkit 1.20.1 GUI 设置: 54 格、黑色玻璃板边界和在线玩家牌子

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

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