Как будет выглядеть выдача игроку в инвентарь предмета с зачарованиями Неразрушимость 1, Острота 2 и Отбрасывание 1 через код в Spigot (Java Edition), PocketMine-MP и Nukkit (Bedrock Edition)?
Вот примеры кода для выдачи предмета (возьмём алмазный меч) с зачарованиями Неразрушимость 1, Острота 2 и Отбрасывание 1 через:
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class GiveSwordSpigot {
public static void giveSword(Player player) {
ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta meta = sword.getItemMeta();
meta.addEnchant(Enchantment.DURABILITY, 1, true); // Неразрушимость
meta.addEnchant(Enchantment.DAMAGE_ALL, 2, true); // Острота
meta.addEnchant(Enchantment.KNOCKBACK, 1, true); // Отбрасывание
sword.setItemMeta(meta);
player.getInventory().addItem(sword);
}
}
use pocketmine\item\Item;
use pocketmine\item\enchantment\Enchantment;
use pocketmine\item\enchantment\EnchantmentInstance;
use pocketmine\player\Player;
function giveSword(Player $player): void {
$sword = Item::get(Item::DIAMOND_SWORD);
$sword->addEnchantment(new EnchantmentInstance(Enchantment::getEnchantment(Enchantment::UNBREAKING), 1)); // Неразрушимость
$sword->addEnchantment(new EnchantmentInstance(Enchantment::getEnchantment(Enchantment::SHARPNESS), 2)); // Острота
$sword->addEnchantment(new EnchantmentInstance(Enchantment::getEnchantment(Enchantment::KNOCKBACK), 1)); // Отбрасывание
$player->getInventory()->addItem($sword);
}
import cn.nukkit.Player;
import cn.nukkit.item.Item;
import cn.nukkit.item.ItemDiamondSword;
import cn.nukkit.item.enchantment.Enchantment;
public class GiveSwordNukkit {
public static void giveSword(Player player) {
Item sword = new ItemDiamondSword();
sword.addEnchantment(Enchantment.getEnchantment(Enchantment.ID_DURABILITY).setLevel(1)); // Неразрушимость
sword.addEnchantment(Enchantment.getEnchantment(Enchantment.ID_DAMAGE_ALL).setLevel(2)); // Острота
sword.addEnchantment(Enchantment.getEnchantment(Enchantment.ID_KNOCKBACK).setLevel(1)); // Отбрасывание
player.getInventory().addItem(sword);
}
}
Если нужно выдать другой предмет, замените DIAMOND_SWORD / ItemDiamondSword на нужный тип.