2016-11-11 63 views
1

我正在製作一個插件,當你輸入/傳送你將得到一個9個地方的庫存,那裏必須有一個紅色的玻璃窗格,但我可以得到彩色玻璃窗格,但我可以'不要讓他變成紅色,因爲當我試圖說明物品的名稱被破壞時。紅色的彩色玻璃的代碼是STANED_GLASS_PANE:14 在我想這的代碼:Java我的世界彩色玻璃

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,(短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); 
     } 

    } 

如果您需要其他任何東西讓我知道謝謝你的幫助!

+1

您需要使用ItemMeta來設置名稱。 – spacegeek224

回答

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設置名稱和絕殺。

+0

仍然如果我這樣做,我不能說這就是多數民衆贊成在我想使它紅色的玻璃,並給它一個名稱的問題:) – Jelles

+0

我修復了它@ user7147407 – spacegeek224