【发布时间】:2016-11-14 05:05:29
【问题描述】:
我正在制作一个插件,当您输入 /teleport 时,您将获得 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, (short) 14, ChatColor.AQUA + "Teleport To Spawn!");
不工作,但如果我这样做
ItemStack spawnItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short 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);
}
}
如果您需要任何其他帮助,请告诉我,感谢您的帮助!
【问题讨论】:
-
您需要使用
ItemMeta来设置名称。