1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Странный баг в PrepareItemCraftEvent

Тема в разделе "Разработка плагинов для новичков", создана пользователем fx8320e, 4 апр 2021.

  1. Автор темы
    fx8320e

    fx8320e Активный участник Пользователь

    Баллы:
    66
    Приветствую! Столкнулся с такой проблемой: делаю крафт из кастомных предметов и, если положить в сетку крафта более одного предмета, то их остаток рассчитывается по какой-то странной формуле (n-1)*2. Знающие люди, в чем может быть причина, подскажите пожалуйста!
    PHP:
        @EventHandler
        
    public void PallDr(PrepareItemCraftEvent  event) {
       
            
    ItemStack woodendagger = new ItemStack(Material.NAUTILUS_SHELL);
            
    ItemMeta meta = woodendagger.getItemMeta();
                
    meta.setDisplayName(ChatColor.DARK_BLUE + "Палладиевый слиток");
                
    woodendagger.setItemMeta(meta);   
               
                
    ItemStack woodendagge = new ItemStack(Material.NETHERITE_SWORD, 1);
                
    ItemMeta me = woodendagge.getItemMeta();
                
    AttributeModifier modifier = new AttributeModifier(UUID.randomUUID(), "generic.attackDamage", 7, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
                
    me.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, modifier);
                
    AttributeModifier modifier2 = new AttributeModifier(UUID.randomUUID(), "generic.attackSpeed", 2, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
                
    me.addAttributeModifier(Attribute.GENERIC_ATTACK_SPEED, modifier2);
                
    me.setDisplayName(ChatColor.DARK_BLUE + "Палладиевый кинжал");
                
    woodendagge.setItemMeta(me);
                 
            
    CraftingInventory craft = event.getInventory();
            
    ItemStack[] matrix = craft.getMatrix();
            if(
    craft.getType() == InventoryType.WORKBENCH
                    
    && matrix[0] == null
                    
    && matrix[1] == null 
                    
    && matrix[2] == null 
                    
    && matrix[3] == null 
                    
    && matrix[4] != null && matrix[4].getType() == Material.NAUTILUS_SHELL && matrix[4].hasItemMeta() && matrix[4].getItemMeta().equals(meta)
                    && 
    matrix[5] == null 
                    
    && matrix[6] == null
                    
    && matrix[7] != null && matrix[7].getType() == Material.STICK
                    
    && matrix[8] == null) {
               

                        
    event.getInventory().setResult(woodendagge);
            }   
     

    Вложения:

Поделиться этой страницей