Помогите Как создать свой предмет при написании плагина.

TeldiGems

Активный участник
Пользователь
Баллы
61
Допустим есть бутылка опыта. Но мне нужна та бутылка опыта которая написана через плагин. То есть её можно получить только командой. И как на неё наложить новое имя и описания?
 
Код:
ItemStack itemStack = new ItemStack(Material.EXPERIENCE_BOTTLE);
ItemMeta meta = itemStack.getItemMeta();
meta.setDisplayName("Name");
itemStack.setItemMeta(meta);

player.getInventory().addItem(itemStack);

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/ItemStack.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/meta/ItemMeta.html
Можно ещё узнать как это совместить с этим скрином?
 

Вложения

  • Скриншот 23-07-2022 195721.jpg
    Скриншот 23-07-2022 195721.jpg
    31,5 КБ · Просмотры: 23
Не совсем ясно, что ты хочешь сделать.
 
Чтобы как бы по нажатию по этому новому предмету выдавалось 30 лвл и сообщение об этом


Код:
    @EventHandler
    public void onAction(PlayerInteractEvent e) {
        
        Player p = e.getPlayer();
        Action a = e.getAction();
        
        if(a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) {
            
            if(p.getItemInHand().getType() == Material.EXP_BOTTLE && bottle.getItemMeta().getDisplayName() ==
                    ChatColor.WHITE + "LEVELS: " + ChatColor.GOLD + "30") {
                
                p.giveExpLevels((int) 30);
                p.sendMessage(ChatColor.GREEN + "Вам был выдан 30-тый уровень.");
                return;
            }
        }else {
            return;
        }
    }
 
Код:
bottle.getItemMeta().getDisplayName() ==
                    ChatColor.WHITE + "LEVELS: " + ChatColor.GOLD + "30")
1. Строку не проверяют через ==, для этого есть: equals(), equalsIgnoreCase().
2. Для начала стоило бы проверить, есть ли у предмета итем мета.
 
Назад
Верх