Как будет выглядеть выдача игроку в инвентарь крашенной в красный цвет куртки (кожаного нагрудника) через код в Spigot (Java Edition), PocketMine-MP и Nukkit (Bedrock Edition)?
Ниже приведены минимальные, но рабочие примеры того, как «выдать игроку в инвентарь красную кожаную куртку (leather chestplate)» с помощью кода в трёх популярных API:
import org.bukkit.Color;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.LeatherArmorMeta;
// Внутри команды, события или задачи BukkitRunnable:
Player player = /* полученный игрок */;
ItemStack jacket = new ItemStack(Material.LEATHER_CHESTPLATE);
LeatherArmorMeta meta = (LeatherArmorMeta) jacket.getItemMeta();
meta.setColor(Color.RED); // ярко-красный
jacket.setItemMeta(meta);
player.getInventory().addItem(jacket);
use pocketmine\item\ItemFactory;
use pocketmine\item\ItemIds;
use pocketmine\item\Armor;
use pocketmine\color\Color;
use pocketmine\player\Player;
/** @var Player $player */
$jacket = ItemFactory::getInstance()->get(ItemIds::LEATHER_TUNIC);
$jacket->setCustomColor(new Color(255, 0, 0)); // RGB красный
$player->getInventory()->addItem($jacket);
use cn\nukkit\item\Item;
use cn\nukkit\item\LeatherChestplate;
use cn\nukkit\utils\Color;
use cn\nukkit\Player;
/** @var Player $player */
$jacket = Item::get(Item::LEATHER_CHESTPLATE);
$jacket->setCustomColor(Color::fromRGB(0xFF0000)); // FF0000 = красный
$player->getInventory()->addItem($jacket);
Сводная таблица соответствий:
| Платформа | Класс предмета | Метод окрашивания |
|---|---|---|
| Spigot | Material.LEATHER_CHESTPLATE | LeatherArmorMeta#setColor |
| PocketMine-MP | ItemIds::LEATHER_TUNIC | Armor#setCustomColor(Color) |
| Nukkit | Item::LEATHER_CHESTPLATE | Item#setCustomColor(Color) |
Этих фрагментов достаточно, чтобы игрок получил в инвентарь именно красную кожаную куртку.