gpt4 book ai didi

Java Minecraft 彩色玻璃

转载 作者:行者123 更新时间:2023-11-30 02:44:41 27 4
gpt4 key购买 nike

我正在制作一个插件,当你输入/teleport 时,你会得到 9 个地方的 list ,其中一定有一个红色的彩色玻璃板,但我可以得到彩色玻璃板,但我不能让他变成红色因为当我尝试时,项目的名称被破坏了。红色彩色玻璃的代码是 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);
}

}

如果您需要任何其他信息,请告诉我,感谢您的帮助!

最佳答案

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

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来设置名称和知识。

关于Java Minecraft 彩色玻璃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com