- Баллы
- 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);
}