summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSenmori <thesenmori@gmail.com>2018-09-22 10:25:27 -0400
committerSenmori <thesenmori@gmail.com>2018-09-22 10:25:27 -0400
commitfc10dec5f369d71a5f0baad17b386ec9706b0773 (patch)
tree41fcc94bad581caf95513961fb591fb94643b35f
parent65bb2d0f7d4d1581a11717784d8c6b6dc023fa91 (diff)
downloadcraftbukkit-fc10dec5f369d71a5f0baad17b386ec9706b0773.tar
craftbukkit-fc10dec5f369d71a5f0baad17b386ec9706b0773.tar.gz
craftbukkit-fc10dec5f369d71a5f0baad17b386ec9706b0773.tar.lz
craftbukkit-fc10dec5f369d71a5f0baad17b386ec9706b0773.tar.xz
craftbukkit-fc10dec5f369d71a5f0baad17b386ec9706b0773.zip
Don't throw error on invalid data in CraftMetaItem.
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 63cd6ba3..a5835479 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -384,22 +384,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
continue;
}
net.minecraft.server.AttributeModifier nmsModifier = GenericAttributes.a(entry);
- Preconditions.checkNotNull(nmsModifier, "Could not create AttributeModifier. %s", entry.toString());
+ if (nmsModifier == null) {
+ continue;
+ }
AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
String attributeName = entry.getString(ATTRIBUTES_IDENTIFIER.NBT);
- Preconditions.checkArgument(!Strings.isNullOrEmpty(attributeName), "Missing Attribute for AttributeModifier. %s", entry.toString());
+ if (attributeName == null || attributeName.isEmpty()) {
+ continue;
+ }
Attribute attribute = CraftAttributeMap.fromMinecraft(attributeName);
- Preconditions.checkNotNull(attribute, "Could not convert to Bukkit Attribute. %s", attributeName);
+ if (attribute == null) {
+ continue;
+ }
if (entry.hasKeyOfType(ATTRIBUTES_SLOT.NBT, CraftMagicNumbers.NBT.TAG_STRING)) {
String slotName = entry.getString(ATTRIBUTES_SLOT.NBT);
- Preconditions.checkArgument(!Strings.isNullOrEmpty(slotName), "Missing Slot when Slot is specified. %s", entry.toString());
+ if (slotName == null || slotName.isEmpty()) {
+ modifiers.put(attribute, attribMod);
+ continue;
+ }
EquipmentSlot slot = CraftEquipmentSlot.getSlot(EnumItemSlot.a(slotName.toLowerCase(Locale.ROOT))); // PAIL rename fromName
- Preconditions.checkNotNull(slot, "No Slot found when Slot was specified. %s", entry.toString());
+ if (slot == null) {
+ modifiers.put(attribute, attribMod);
+ continue;
+ }
attribMod = new AttributeModifier(attribMod.getUniqueId(), attribMod.getName(), attribMod.getAmount(), attribMod.getOperation(), slot);
}
@@ -609,10 +621,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
}
net.minecraft.server.AttributeModifier nmsModifier = CraftAttributeInstance.convert(entry.getValue());
NBTTagCompound sub = GenericAttributes.a(nmsModifier);
- Preconditions.checkState(!sub.isEmpty(), "Could not convert AttributeModifier. It was supplied in an invalid format. The following was supplied: %s", sub.toString());
+ if (sub.isEmpty()) {
+ continue;
+ }
String name = CraftAttributeMap.toMinecraft(entry.getKey());
- Preconditions.checkArgument(!Strings.isNullOrEmpty(name), "Could not convert to Bukkit Attribute. %s", entry.getKey().name());
+ if (name == null || name.isEmpty()) {
+ continue;
+ }
sub.setString(ATTRIBUTES_IDENTIFIER.NBT, name); // Attribute Name
if (entry.getValue().getSlot() != null) {