mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
Convert legacy attributes in Item Meta
This commit is contained in:
parent
1d3be17a60
commit
25ed9118c5
2 changed files with 15 additions and 1 deletions
|
@ -9,6 +9,20 @@ import org.bukkit.attribute.AttributeInstance;
|
||||||
public class CraftAttributeMap implements Attributable {
|
public class CraftAttributeMap implements Attributable {
|
||||||
|
|
||||||
private final AttributeMap handle;
|
private final AttributeMap handle;
|
||||||
|
// Paper start - convert legacy attributes
|
||||||
|
private static final com.google.common.collect.ImmutableMap<String, String> legacyNMS = com.google.common.collect.ImmutableMap.<String, String>builder().put("generic.maxHealth", "generic.max_health").put("Max Health", "generic.max_health").put("zombie.spawnReinforcements", "zombie.spawn_reinforcements").put("Spawn Reinforcements Chance", "zombie.spawn_reinforcements").put("horse.jumpStrength", "horse.jump_strength").put("Jump Strength", "horse.jump_strength").put("generic.followRange", "generic.follow_range").put("Follow Range", "generic.follow_range").put("generic.knockbackResistance", "generic.knockback_resistance").put("Knockback Resistance", "generic.knockback_resistance").put("generic.movementSpeed", "generic.movement_speed").put("Movement Speed", "generic.movement_speed").put("generic.flyingSpeed", "generic.flying_speed").put("Flying Speed", "generic.flying_speed").put("generic.attackDamage", "generic.attack_damage").put("generic.attackKnockback", "generic.attack_knockback").put("generic.attackSpeed", "generic.attack_speed").put("generic.armorToughness", "generic.armor_toughness").build();
|
||||||
|
|
||||||
|
public static String convertIfNeeded(String nms) {
|
||||||
|
if (nms == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
nms = legacyNMS.getOrDefault(nms, nms);
|
||||||
|
if (!nms.toLowerCase(java.util.Locale.ROOT).equals(nms) || nms.indexOf(' ') != -1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return nms;
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
|
||||||
public CraftAttributeMap(AttributeMap handle) {
|
public CraftAttributeMap(AttributeMap handle) {
|
||||||
this.handle = handle;
|
this.handle = handle;
|
||||||
|
|
|
@ -816,7 +816,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
||||||
|
|
||||||
AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
|
AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
|
||||||
|
|
||||||
String attributeName = entry.getString(CraftMetaItem.ATTRIBUTES_IDENTIFIER.NBT);
|
String attributeName = org.bukkit.craftbukkit.attribute.CraftAttributeMap.convertIfNeeded(entry.getString(CraftMetaItem.ATTRIBUTES_IDENTIFIER.NBT)); // Paper
|
||||||
if (attributeName == null || attributeName.isEmpty()) {
|
if (attributeName == null || attributeName.isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue