mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-12-22 17:18:20 +01:00
fix: search attributes using different key for backwards compatibility (#3178)
This commit is contained in:
parent
63b0125be7
commit
7cc2b0658d
@ -45,7 +45,6 @@ import net.citizensnpcs.api.trait.trait.MobType;
|
|||||||
import net.citizensnpcs.api.trait.trait.Spawned;
|
import net.citizensnpcs.api.trait.trait.Spawned;
|
||||||
import net.citizensnpcs.api.util.DataKey;
|
import net.citizensnpcs.api.util.DataKey;
|
||||||
import net.citizensnpcs.api.util.Messaging;
|
import net.citizensnpcs.api.util.Messaging;
|
||||||
import net.citizensnpcs.api.util.SpigotUtil;
|
|
||||||
import net.citizensnpcs.npc.ai.CitizensNavigator;
|
import net.citizensnpcs.npc.ai.CitizensNavigator;
|
||||||
import net.citizensnpcs.npc.skin.SkinnableEntity;
|
import net.citizensnpcs.npc.skin.SkinnableEntity;
|
||||||
import net.citizensnpcs.trait.AttributeTrait;
|
import net.citizensnpcs.trait.AttributeTrait;
|
||||||
@ -400,7 +399,7 @@ public class CitizensNPC extends AbstractNPC {
|
|||||||
|
|
||||||
if (type == EntityType.PLAYER || Util.isHorse(type)) {
|
if (type == EntityType.PLAYER || Util.isHorse(type)) {
|
||||||
if (SUPPORT_ATTRIBUTES && !hasTrait(AttributeTrait.class) || !getTrait(AttributeTrait.class)
|
if (SUPPORT_ATTRIBUTES && !hasTrait(AttributeTrait.class) || !getTrait(AttributeTrait.class)
|
||||||
.hasAttribute(Registry.ATTRIBUTE.get(SpigotUtil.getKey("step_height")))) {
|
.hasAttribute(Util.getRegistryValue(Registry.ATTRIBUTE, "generic.step_height", "step_height"))) {
|
||||||
NMS.setStepHeight(entity, 1);
|
NMS.setStepHeight(entity, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -916,7 +916,7 @@ public class HologramTrait extends Trait {
|
|||||||
}
|
}
|
||||||
if (SpigotUtil.getVersion()[1] >= 21 && base.getEntity() instanceof LivingEntity) {
|
if (SpigotUtil.getVersion()[1] >= 21 && base.getEntity() instanceof LivingEntity) {
|
||||||
AttributeInstance inst = ((LivingEntity) base.getEntity())
|
AttributeInstance inst = ((LivingEntity) base.getEntity())
|
||||||
.getAttribute(Registry.ATTRIBUTE.get(SpigotUtil.getKey("scale")));
|
.getAttribute(Util.getRegistryValue(Registry.ATTRIBUTE, "generic.scale", "scale"));
|
||||||
if (inst != null) {
|
if (inst != null) {
|
||||||
Transformation tf = disp.getTransformation();
|
Transformation tf = disp.getTransformation();
|
||||||
tf.getScale().set(inst.getValue());
|
tf.getScale().set(inst.getValue());
|
||||||
|
@ -2,6 +2,7 @@ package net.citizensnpcs.trait;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import net.citizensnpcs.util.Util;
|
||||||
import org.bukkit.Registry;
|
import org.bukkit.Registry;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -12,7 +13,6 @@ import net.citizensnpcs.api.persistence.Persist;
|
|||||||
import net.citizensnpcs.api.trait.Trait;
|
import net.citizensnpcs.api.trait.Trait;
|
||||||
import net.citizensnpcs.api.trait.TraitEventHandler;
|
import net.citizensnpcs.api.trait.TraitEventHandler;
|
||||||
import net.citizensnpcs.api.trait.TraitName;
|
import net.citizensnpcs.api.trait.TraitName;
|
||||||
import net.citizensnpcs.api.util.SpigotUtil;
|
|
||||||
|
|
||||||
@TraitName("scaledhealthtrait")
|
@TraitName("scaledhealthtrait")
|
||||||
public class ScaledMaxHealthTrait extends Trait {
|
public class ScaledMaxHealthTrait extends Trait {
|
||||||
@ -41,7 +41,7 @@ public class ScaledMaxHealthTrait extends Trait {
|
|||||||
public void onSpawn() {
|
public void onSpawn() {
|
||||||
if (maxHealth != null && npc.getEntity() instanceof LivingEntity) {
|
if (maxHealth != null && npc.getEntity() instanceof LivingEntity) {
|
||||||
if (SUPPORTS_ATTRIBUTES) {
|
if (SUPPORTS_ATTRIBUTES) {
|
||||||
((LivingEntity) npc.getEntity()).getAttribute(Registry.ATTRIBUTE.get(SpigotUtil.getKey("max_health")))
|
((LivingEntity) npc.getEntity()).getAttribute(Util.getRegistryValue(Registry.ATTRIBUTE, "generic.max_health", "max_health"))
|
||||||
.setBaseValue(Math.min(MAX_VALUE, maxHealth));
|
.setBaseValue(Math.min(MAX_VALUE, maxHealth));
|
||||||
} else {
|
} else {
|
||||||
((LivingEntity) npc.getEntity()).setMaxHealth(maxHealth);
|
((LivingEntity) npc.getEntity()).setMaxHealth(maxHealth);
|
||||||
|
@ -33,7 +33,6 @@ import net.citizensnpcs.api.trait.Trait;
|
|||||||
import net.citizensnpcs.api.trait.TraitName;
|
import net.citizensnpcs.api.trait.TraitName;
|
||||||
import net.citizensnpcs.api.util.Messaging;
|
import net.citizensnpcs.api.util.Messaging;
|
||||||
import net.citizensnpcs.api.util.Placeholders;
|
import net.citizensnpcs.api.util.Placeholders;
|
||||||
import net.citizensnpcs.api.util.SpigotUtil;
|
|
||||||
import net.citizensnpcs.util.NMS;
|
import net.citizensnpcs.util.NMS;
|
||||||
import net.citizensnpcs.util.Util;
|
import net.citizensnpcs.util.Util;
|
||||||
|
|
||||||
@ -143,7 +142,7 @@ public class BossBarTrait extends Trait {
|
|||||||
LivingEntity entity = (LivingEntity) npc.getEntity();
|
LivingEntity entity = (LivingEntity) npc.getEntity();
|
||||||
double maxHealth = entity.getMaxHealth();
|
double maxHealth = entity.getMaxHealth();
|
||||||
if (SUPPORT_ATTRIBUTES) {
|
if (SUPPORT_ATTRIBUTES) {
|
||||||
maxHealth = entity.getAttribute(Registry.ATTRIBUTE.get(SpigotUtil.getKey("max_health")))
|
maxHealth = entity.getAttribute(Util.getRegistryValue(Registry.ATTRIBUTE, "generic.max_health", "max_health"))
|
||||||
.getValue();
|
.getValue();
|
||||||
}
|
}
|
||||||
bar.setProgress(entity.getHealth() / maxHealth);
|
bar.setProgress(entity.getHealth() / maxHealth);
|
||||||
|
@ -61,7 +61,6 @@ import net.citizensnpcs.api.npc.NPC;
|
|||||||
import net.citizensnpcs.api.util.BoundingBox;
|
import net.citizensnpcs.api.util.BoundingBox;
|
||||||
import net.citizensnpcs.api.util.EntityDim;
|
import net.citizensnpcs.api.util.EntityDim;
|
||||||
import net.citizensnpcs.api.util.Messaging;
|
import net.citizensnpcs.api.util.Messaging;
|
||||||
import net.citizensnpcs.api.util.SpigotUtil;
|
|
||||||
import net.citizensnpcs.api.util.SpigotUtil.InventoryViewAPI;
|
import net.citizensnpcs.api.util.SpigotUtil.InventoryViewAPI;
|
||||||
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
|
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
|
||||||
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
|
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
|
||||||
@ -131,7 +130,7 @@ public class NMS {
|
|||||||
return;
|
return;
|
||||||
if (SUPPORTS_ATTRIBUTABLE && npc.getEntity() instanceof Attributable) {
|
if (SUPPORTS_ATTRIBUTABLE && npc.getEntity() instanceof Attributable) {
|
||||||
AttributeInstance attribute = ((Attributable) npc.getEntity())
|
AttributeInstance attribute = ((Attributable) npc.getEntity())
|
||||||
.getAttribute(Registry.ATTRIBUTE.get(SpigotUtil.getKey("knockback_resistance")));
|
.getAttribute(Util.getRegistryValue(Registry.ATTRIBUTE, "generic.knockback_resistance", "knockback_resistance"));
|
||||||
if (attribute != null) {
|
if (attribute != null) {
|
||||||
strength *= 1 - attribute.getValue();
|
strength *= 1 - attribute.getValue();
|
||||||
}
|
}
|
||||||
|
@ -18,8 +18,11 @@ import java.util.stream.Collectors;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.Keyed;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.Registry;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -252,6 +255,17 @@ public class Util {
|
|||||||
return new XORShiftRNG();
|
return new XORShiftRNG();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T extends Keyed> T getRegistryValue(Registry<T> registry, String... keyCandidates) {
|
||||||
|
for (String keyCandidate : keyCandidates) {
|
||||||
|
final NamespacedKey key = SpigotUtil.getKey(keyCandidate);
|
||||||
|
final T value = registry.get(key);
|
||||||
|
if (value != null) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public static String getTeamName(UUID id) {
|
public static String getTeamName(UUID id) {
|
||||||
return "CIT-" + id.toString().replace("-", "").substring(0, 12);
|
return "CIT-" + id.toString().replace("-", "").substring(0, 12);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user