我正在制作一个插件,当你输入/传送时你会得到9个地方的库存,那里必须有一个红色的彩色玻璃窗格,但我可以得到彩色玻璃窗格但我无法获得他是红色的,因为当我尝试时,物品的名称被打破了。红色彩色玻璃的代码是STANED_GLASS_PANE:14 在代码中我尝试了这个:
ItemStack spawnItem = ItemName(Material.STAINED_GLASS_PANE,ChatColor.AQUA +" Teleport To Spawn!");
这很好但是当我尝试这个时我没有工作
ItemStack spawnItem = ItemName(Material.STAINED_GLASS_PANE,1,14,ChatColor.AQUA +" Teleport To Spawn!");
或者如果我试试这个
ItemStack spawnItem = ItemName(Material.STAINED_GLASS_PANE,1,(短)14,ChatColor.AQUA +" Teleport To Spawn!");
不起作用,但如果我这样做
ItemStack spawnItem = new ItemStack(Material.STAINED_GLASS_PANE,1,(简称14);
现在它是红色的,但该项目没有名称我不知道如何添加名称。这是我的完整代码。
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);
}
}
如果您还需要其他任何内容,请告诉我们,谢谢您的帮助!
答案 0 :(得分:2)
将(short)
替换为(byte)
,数据值是一个字节,而不是短。
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
来设置名称和传说。