首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java扫雷彩色玻璃

问Java扫雷彩色玻璃
EN

Stack Overflow用户
提问于 2016-11-11 18:28:15
回答 1查看 1.9K关注 0票数 1

我正在制作一个插件,当你输入/teleport时,你会得到9个地方的清单,那里肯定有一个彩色玻璃窗格,它是红色的,但我可以得到彩色玻璃窗格,但我不能让他红色,因为当我试图破坏这些物品的名称时。在我尝试过的代码中,红色彩色玻璃的代码是STANED_GLASS_PANE:14:

ItemStack spawnItem = ItemName(Material.STAINED_GLASS_PANE,ChatColor.AQUA +“传送到产卵!”);

那很好,但是当我尝试这个,我就不工作了

ItemStack spawnItem = ItemName(Material.STAINED_GLASS_PANE,1,14,ChatColor.AQUA +“传送到产卵!”);

或者如果我试试这个

ItemStack spawnItem = ItemName(Material.STAINED_GLASS_PANE,1,(短) 14,ChatColor.AQUA +“传送到产卵!”);

不起作用,但如果我这样做

ItemStack spawnItem =新ItemStack(Material.STAINED_GLASS_PANE,1,(short 14));

它现在是红色的,但是这个项目没有名字,我不知道怎么添加这个名字。这是我的完整代码。

代码语言:javascript
复制
package com.jelles.plugin1.commands;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;

    public class inventoryEquip implements CommandExecutor {

        public boolean onCommand(CommandSender sender, Command cmd, String commadLabel, String[] args) {
            if (!(sender instanceof Player)) {
                sender.sendMessage("You must be a player to run this command!");
                return false;
            }

            Player player = (Player) sender;

            Inventory inv = Bukkit.createInventory(null, 9, "Custom Inventory");

            ItemStack spawnItem = nameItem(Material.STAINED_GLASS_PANE, ChatColor.AQUA + "Teleport To Spawn!");
            ItemStack houseItem = nameItem(Material.APPLE, ChatColor.RED + "Teleport To A House!");
            ItemStack cloudItem = nameItem(Material.FEATHER, ChatColor.LIGHT_PURPLE + "Teleport To A Cloud!");

            inv.setItem(4, spawnItem);
            inv.setItem(5, houseItem);
            inv.setItem(3, cloudItem);

            player.openInventory(inv);

            return true;
        }

        private ItemStack nameItem(ItemStack item, String name) {
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName(name);
            item.setItemMeta(meta);
            return item;
        }

        private ItemStack nameItem(Material item, String name) {
            return nameItem(new ItemStack(item), name);
        }

    }

如果你还需要什么,请告诉我,谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-11-11 18:31:20

将(short)替换为(byte),数据值是一个字节,而不是短字节。

代码语言:javascript
复制
ItemStack spawnItem = nameItem(Material.STAINED_GLASS_PANE, 1,0,(byte) 14);
ItemMeta spawnItemMeta = spawnItem.getItemMeta();
spawnItemMeta.setName(ChatColor.AQUA+"Teleport To Spawn!");
spawnItem.setItemMeta(spawnItemMeta);

您还必须使用ItemMeta来设置名称和知识。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40554040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档