Fixed inventory rollbacks not modifying player equipment slots (#170)

This commit is contained in:
Intelli 2022-03-11 17:20:52 -07:00
parent dedba3c57f
commit 3011aece46
2 changed files with 56 additions and 3 deletions

View file

@ -44,6 +44,7 @@ import org.bukkit.inventory.BlockInventoryHolder;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.io.BukkitObjectOutputStream;
@ -655,6 +656,33 @@ public class Util extends Queue {
return artname;
}
public static boolean setPlayerArmor(PlayerInventory inventory, ItemStack itemStack) {
String itemName = itemStack.getType().name();
boolean isHelmet = (itemName.endsWith("_HELMET") || itemName.endsWith("_HEAD") || itemName.endsWith("_SKULL") || itemName.endsWith("_PUMPKIN"));
boolean isChestplate = (itemName.endsWith("_CHESTPLATE"));
boolean isLeggings = (itemName.endsWith("_LEGGINGS"));
boolean isBoots = (itemName.endsWith("_BOOTS"));
if (isHelmet && inventory.getHelmet() == null) {
inventory.setHelmet(itemStack);
return true;
}
else if (isChestplate && inventory.getChestplate() == null) {
inventory.setChestplate(itemStack);
return true;
}
else if (isLeggings && inventory.getLeggings() == null) {
inventory.setLeggings(itemStack);
return true;
}
else if (isBoots && inventory.getBoots() == null) {
inventory.setBoots(itemStack);
return true;
}
return false;
}
public static ItemStack[] getArmorStandContents(EntityEquipment equipment) {
ItemStack[] contents = new ItemStack[6];
if (equipment != null) {