-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
None
-
1.20.2 plugin on 1.20.2 server
-
1.20.2
-
Yes
I'm trying to set an item into the main hand of a skeleton after he's been attacked, but it seems that as of 1.20.2 this is no longer possible.
See here my sample code:
package test; import org.bukkit.Material; import org.bukkit.entity.Monster; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.inventory.EntityEquipment; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; import java.util.ArrayList; public class Test implements Listener { private final JavaPlugin plugin; private final ArrayList<ItemStack> swords; private int counter; public Test(JavaPlugin plugin) { this.plugin = plugin; plugin.getServer().getPluginManager().registerEvents(this, plugin); this.swords = new ArrayList<>(); this.swords.add(new ItemStack(Material.IRON_SWORD)); this.swords.add(new ItemStack(Material.GOLDEN_SWORD)); this.swords.add(new ItemStack(Material.DIAMOND_SWORD)); this.counter = 0; } private void incrementCounter() { if (this.counter < this.swords.size() - 1) { this.counter++; } else { this.counter = 0; } } @EventHandler public void test(EntityDamageByEntityEvent event) { if (!(event.getEntity() instanceof Monster)) { return; } Monster monster = (Monster) event.getEntity(); EntityEquipment ee = monster.getEquipment(); ee.setItemInMainHand(this.swords.get(this.counter)); this.incrementCounter(); System.out.println(ee.getItemInMainHand()); System.out.println("Changed sword!"); } }
And see here my example video illustrating the problem: