Allow auto equip in nbt serialized kits (#4491)

Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
This commit is contained in:
pop4959 2021-08-28 08:46:38 -07:00 committed by GitHub
parent 4811eb1558
commit e4c179f5ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -188,31 +188,33 @@ public class Kit {
continue; continue;
} }
final ItemStack stack;
if (kitItem.startsWith("@")) { if (kitItem.startsWith("@")) {
if (ess.getSerializationProvider() == null) { if (ess.getSerializationProvider() == null) {
ess.getLogger().log(Level.WARNING, tl("kitError3", kitName, user.getName())); ess.getLogger().log(Level.WARNING, tl("kitError3", kitName, user.getName()));
continue; continue;
} }
itemList.add(ess.getSerializationProvider().deserializeItem(Base64Coder.decodeLines(kitItem.substring(1)))); stack = ess.getSerializationProvider().deserializeItem(Base64Coder.decodeLines(kitItem.substring(1)));
continue; } else {
} final String[] parts = kitItem.split(" +");
final ItemStack parseStack = ess.getItemDb().get(parts[0], parts.length > 1 ? Integer.parseInt(parts[1]) : 1);
final String[] parts = kitItem.split(" +"); if (parseStack.getType() == Material.AIR) {
final ItemStack parseStack = ess.getItemDb().get(parts[0], parts.length > 1 ? Integer.parseInt(parts[1]) : 1); continue;
}
if (parseStack.getType() == Material.AIR) { final MetaItemStack metaStack = new MetaItemStack(parseStack);
continue;
}
final MetaItemStack metaStack = new MetaItemStack(parseStack); if (parts.length > 2) {
// We pass a null sender here because kits should not do perm checks
metaStack.parseStringMeta(null, allowUnsafe, parts, 2, ess);
}
if (parts.length > 2) { stack = metaStack.getItemStack();
// We pass a null sender here because kits should not do perm checks
metaStack.parseStringMeta(null, allowUnsafe, parts, 2, ess);
} }
if (autoEquip) { if (autoEquip) {
final ItemStack stack = metaStack.getItemStack();
final Material material = stack.getType(); final Material material = stack.getType();
final PlayerInventory inventory = user.getBase().getInventory(); final PlayerInventory inventory = user.getBase().getInventory();
if (MaterialUtil.isHelmet(material) && isEmptyStack(inventory.getHelmet())) { if (MaterialUtil.isHelmet(material) && isEmptyStack(inventory.getHelmet())) {
@ -230,7 +232,7 @@ public class Kit {
} }
} }
itemList.add(metaStack.getItemStack()); itemList.add(stack);
} }
final Map<Integer, ItemStack> overfilled; final Map<Integer, ItemStack> overfilled;