Add way to set custom name directly

This commit is contained in:
fullwall 2022-11-30 06:13:55 +08:00
parent d8a4c73f58
commit 8a65d4a5a0
19 changed files with 149 additions and 52 deletions

View File

@ -17,8 +17,8 @@ import com.comphenix.protocol.wrappers.EnumWrappers;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.SmoothRotationTrait.LocalRotationSession;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.RotationTrait.LocalRotationSession;
public class ProtocolLibListener {
private final Class<?> flagsClass;
@ -42,7 +42,7 @@ public class ProtocolLibListener {
return;
NPC npc = ((NPCHolder) entity).getNPC();
SmoothRotationTrait trait = npc.getTraitNullable(SmoothRotationTrait.class);
RotationTrait trait = npc.getTraitNullable(RotationTrait.class);
if (trait == null)
return;

View File

@ -133,7 +133,7 @@ import net.citizensnpcs.trait.SkinLayers;
import net.citizensnpcs.trait.SkinLayers.Layer;
import net.citizensnpcs.trait.SkinTrait;
import net.citizensnpcs.trait.SlimeSize;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.VillagerProfession;
import net.citizensnpcs.trait.WitherTrait;
import net.citizensnpcs.trait.WolfModifiers;
@ -2135,7 +2135,7 @@ public class NPCCommands {
yaw = NMS.getHeadYaw(npc.getEntity());
}
}
npc.getOrAddTrait(SmoothRotationTrait.class).rotateToHave(yaw, pitch);
npc.getOrAddTrait(RotationTrait.class).rotateToHave(yaw, pitch);
return;
}
if (yaw != null) {
@ -2294,14 +2294,14 @@ public class NPCCommands {
@Command(
aliases = { "npc" },
usage = "shop (edit|show) (name)",
usage = "shop (edit|show|delete) (name)",
desc = "NPC shop edit/show",
modifiers = { "shop" },
min = 1,
max = 3,
permission = "citizens.npc.shop")
public void shop(CommandContext args, Player sender, NPC npc,
@Arg(value = 1, completions = { "edit", "show" }) String action) throws CommandException {
@Arg(value = 1, completions = { "edit", "show", "delete" }) String action) throws CommandException {
ShopTrait trait = npc.getOrAddTrait(ShopTrait.class);
NPCShop shop = trait.getDefaultShop();
if (args.argsLength() > 1) {
@ -2317,6 +2317,8 @@ public class NPCCommands {
shop.displayEditor(trait, sender);
} else if (action.equalsIgnoreCase("show")) {
shop.display(sender);
} else if (action.equalsIgnoreCase("delete")) {
trait.deleteShop(args.getString(2));
} else {
throw new CommandUsageException();
}

View File

@ -7,6 +7,7 @@ import java.util.function.Consumer;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Nameable;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
@ -59,6 +60,7 @@ import net.citizensnpcs.util.Util;
public class CitizensNPC extends AbstractNPC {
private ChunkCoord cachedCoord;
private EntityController entityController;
private Object minecraftComponentCache;
private final CitizensNavigator navigator = new CitizensNavigator(this);
private int updateCounter = 0;
@ -241,6 +243,7 @@ public class CitizensNPC extends AbstractNPC {
@Override
public void setName(String name) {
minecraftComponentCache = Messaging.minecraftComponentFromRawMessage(name);
super.setName(name);
if (requiresNameHologram() && !hasTrait(HologramTrait.class)) {
@ -384,7 +387,7 @@ public class CitizensNPC extends AbstractNPC {
updateFlyableState();
updateCustomNameVisibility();
updateCustomName();
updateScoreboard();
Messaging.debug("Spawned", CitizensNPC.this, "SpawnReason." + reason);
cancel.run();
@ -465,7 +468,7 @@ public class CitizensNPC extends AbstractNPC {
}
}
if (isLiving) {
updateCustomName();
updateScoreboard();
}
updateCounter = 0;
}
@ -505,9 +508,14 @@ public class CitizensNPC extends AbstractNPC {
}
}
private void updateCustomName() {
if (data().has(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME)) {
getOrAddTrait(ScoreboardTrait.class).update();
@Override
public void updateCustomName() {
if (!(getEntity() instanceof Nameable))
return;
if (minecraftComponentCache != null) {
NMS.setCustomName(getEntity(), minecraftComponentCache);
} else {
super.updateCustomName();
}
}
@ -517,7 +525,7 @@ public class CitizensNPC extends AbstractNPC {
nameplateVisible = "false";
}
if (nameplateVisible.equals("true") || nameplateVisible.equals("hover")) {
getEntity().setCustomName(getFullName());
updateCustomName();
}
getEntity().setCustomNameVisible(Boolean.parseBoolean(nameplateVisible));
}
@ -536,6 +544,12 @@ public class CitizensNPC extends AbstractNPC {
}
}
private void updateScoreboard() {
if (data().has(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME)) {
getOrAddTrait(ScoreboardTrait.class).update();
}
}
private void updateUsingItemState(Player player) {
boolean useItem = data().get(NPC.Metadata.USING_HELD_ITEM, false),
offhand = data().get(NPC.Metadata.USING_OFFHAND_ITEM, false);

View File

@ -52,7 +52,7 @@ import net.citizensnpcs.trait.SkinLayers;
import net.citizensnpcs.trait.SkinTrait;
import net.citizensnpcs.trait.SleepTrait;
import net.citizensnpcs.trait.SlimeSize;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.SneakTrait;
import net.citizensnpcs.trait.VillagerProfession;
import net.citizensnpcs.trait.WitherTrait;
@ -91,7 +91,7 @@ public class CitizensTraitFactory implements TraitFactory {
registerTrait(TraitInfo.create(Poses.class));
registerTrait(TraitInfo.create(Powered.class));
registerTrait(TraitInfo.create(RabbitType.class));
registerTrait(TraitInfo.create(SmoothRotationTrait.class));
registerTrait(TraitInfo.create(RotationTrait.class));
registerTrait(TraitInfo.create(Saddle.class));
registerTrait(TraitInfo.create(ScoreboardTrait.class));
registerTrait(TraitInfo.create(ScriptTrait.class));

View File

@ -19,15 +19,15 @@ import net.citizensnpcs.api.util.DataKey;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
@TraitName("smoothrotationtrait")
public class SmoothRotationTrait extends Trait {
@TraitName("rotationtrait")
public class RotationTrait extends Trait {
@Persist(reify = true)
private final RotationParams globalParameters = new RotationParams();
private final RotationSession globalSession = new RotationSession(globalParameters);
private final List<LocalRotationSession> localSessions = Lists.newArrayList();
public SmoothRotationTrait() {
super("smoothrotationtrait");
public RotationTrait() {
super("rotationtrait");
}
public void clearLocalSessions() {

View File

@ -64,6 +64,14 @@ public class ShopTrait extends Trait {
super("shop");
}
public void deleteShop(String name) {
if (StoredShops.GLOBAL_SHOPS.containsKey(name)) {
StoredShops.GLOBAL_SHOPS.remove(name);
} else {
StoredShops.NPC_SHOPS.remove(name);
}
}
public NPCShop getDefaultShop() {
return StoredShops.NPC_SHOPS.computeIfAbsent(npc.getUniqueId().toString(), NPCShop::new);
}

View File

@ -527,6 +527,10 @@ public class NMS {
BRIDGE.setBodyYaw(entity, yaw);
}
public static void setCustomName(Entity entity, Object component) {
BRIDGE.setCustomName(entity, component);
}
public static void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
BRIDGE.setDestination(entity, x, y, z, speed);
}

View File

@ -145,6 +145,8 @@ public interface NMSBridge {
public void setBodyYaw(Entity entity, float yaw);
public void setCustomName(Entity entity, Object component);
public void setDestination(Entity entity, double x, double y, double z, float speed);
public void setEndermanAngry(Enderman enderman, boolean angry);

View File

@ -149,7 +149,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.PolarBearTrait;
import net.citizensnpcs.trait.versioned.ShulkerTrait;
@ -197,6 +197,7 @@ import net.minecraft.server.v1_10_R1.EntityTrackerEntry;
import net.minecraft.server.v1_10_R1.EntityTypes;
import net.minecraft.server.v1_10_R1.EntityWither;
import net.minecraft.server.v1_10_R1.GenericAttributes;
import net.minecraft.server.v1_10_R1.IChatBaseComponent;
import net.minecraft.server.v1_10_R1.IInventory;
import net.minecraft.server.v1_10_R1.MathHelper;
import net.minecraft.server.v1_10_R1.MinecraftKey;
@ -764,7 +765,7 @@ public class NMSImpl implements NMSBridge {
((EntityInsentient) handle).aQ += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -788,7 +789,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aQ += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1024,6 +1025,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName(((IChatBaseComponent) component).getText());
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -163,7 +163,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.LlamaTrait;
import net.citizensnpcs.trait.versioned.PolarBearTrait;
@ -215,6 +215,7 @@ import net.minecraft.server.v1_11_R1.EntityTypes;
import net.minecraft.server.v1_11_R1.EntityWither;
import net.minecraft.server.v1_11_R1.EnumMoveType;
import net.minecraft.server.v1_11_R1.GenericAttributes;
import net.minecraft.server.v1_11_R1.IChatBaseComponent;
import net.minecraft.server.v1_11_R1.IInventory;
import net.minecraft.server.v1_11_R1.MathHelper;
import net.minecraft.server.v1_11_R1.MinecraftKey;
@ -819,7 +820,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aP += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -843,7 +844,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aP += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1080,6 +1081,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName(((IChatBaseComponent) component).getText());
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -165,7 +165,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.LlamaTrait;
import net.citizensnpcs.trait.versioned.ParrotTrait;
@ -219,6 +219,7 @@ import net.minecraft.server.v1_12_R1.EntityTypes;
import net.minecraft.server.v1_12_R1.EntityWither;
import net.minecraft.server.v1_12_R1.EnumMoveType;
import net.minecraft.server.v1_12_R1.GenericAttributes;
import net.minecraft.server.v1_12_R1.IChatBaseComponent;
import net.minecraft.server.v1_12_R1.IInventory;
import net.minecraft.server.v1_12_R1.MathHelper;
import net.minecraft.server.v1_12_R1.MinecraftKey;
@ -826,7 +827,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aP += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -851,7 +852,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aP += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1090,6 +1091,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName(((IChatBaseComponent) component).getText());
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -176,7 +176,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.LlamaTrait;
import net.citizensnpcs.trait.versioned.ParrotTrait;
@ -236,6 +236,7 @@ import net.minecraft.server.v1_13_R2.EntityWither;
import net.minecraft.server.v1_13_R2.EnumMoveType;
import net.minecraft.server.v1_13_R2.GenericAttributes;
import net.minecraft.server.v1_13_R2.IBlockData;
import net.minecraft.server.v1_13_R2.IChatBaseComponent;
import net.minecraft.server.v1_13_R2.IInventory;
import net.minecraft.server.v1_13_R2.IRegistry;
import net.minecraft.server.v1_13_R2.MathHelper;
@ -862,7 +863,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aS += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -886,7 +887,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aS += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1126,6 +1127,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((IChatBaseComponent) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -184,7 +184,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.CatTrait;
import net.citizensnpcs.trait.versioned.FoxTrait;
@ -256,6 +256,7 @@ import net.minecraft.server.v1_14_R1.EntityWither;
import net.minecraft.server.v1_14_R1.EnumMoveType;
import net.minecraft.server.v1_14_R1.GenericAttributes;
import net.minecraft.server.v1_14_R1.IBlockData;
import net.minecraft.server.v1_14_R1.IChatBaseComponent;
import net.minecraft.server.v1_14_R1.IInventory;
import net.minecraft.server.v1_14_R1.IRegistry;
import net.minecraft.server.v1_14_R1.MathHelper;
@ -929,7 +930,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aM += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -953,7 +954,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aM += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1183,6 +1184,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((IChatBaseComponent) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -185,7 +185,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BeeTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.CatTrait;
@ -260,6 +260,7 @@ import net.minecraft.server.v1_15_R1.EntityWither;
import net.minecraft.server.v1_15_R1.EnumMoveType;
import net.minecraft.server.v1_15_R1.GenericAttributes;
import net.minecraft.server.v1_15_R1.IBlockData;
import net.minecraft.server.v1_15_R1.IChatBaseComponent;
import net.minecraft.server.v1_15_R1.IInventory;
import net.minecraft.server.v1_15_R1.IRegistry;
import net.minecraft.server.v1_15_R1.MathHelper;
@ -941,7 +942,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aK += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -965,7 +966,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aK += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1195,6 +1196,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((IChatBaseComponent) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -191,7 +191,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.BeeTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
import net.citizensnpcs.trait.versioned.CatTrait;
@ -269,6 +269,7 @@ import net.minecraft.server.v1_16_R3.EnumMoveType;
import net.minecraft.server.v1_16_R3.Fluid;
import net.minecraft.server.v1_16_R3.GenericAttributes;
import net.minecraft.server.v1_16_R3.IBlockData;
import net.minecraft.server.v1_16_R3.IChatBaseComponent;
import net.minecraft.server.v1_16_R3.IInventory;
import net.minecraft.server.v1_16_R3.IRegistry;
import net.minecraft.server.v1_16_R3.MathHelper;
@ -965,7 +966,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aC += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -989,7 +990,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aC += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1225,6 +1226,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((IChatBaseComponent) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -193,7 +193,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.AxolotlTrait;
import net.citizensnpcs.trait.versioned.BeeTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
@ -223,6 +223,7 @@ import net.minecraft.ReportedException;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry;
import net.minecraft.network.Connection;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket;
@ -970,7 +971,7 @@ public class NMSImpl implements NMSBridge {
((LivingEntity) handle).yHeadRot += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -994,7 +995,7 @@ public class NMSImpl implements NMSBridge {
((LivingEntity) handle).yHeadRot += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1221,6 +1222,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).setYRot(yaw);
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((Component) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -195,7 +195,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.AxolotlTrait;
import net.citizensnpcs.trait.versioned.BeeTrait;
import net.citizensnpcs.trait.versioned.BossBarTrait;
@ -225,6 +225,7 @@ import net.minecraft.ReportedException;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry;
import net.minecraft.network.Connection;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket;
@ -976,7 +977,7 @@ public class NMSImpl implements NMSBridge {
((LivingEntity) handle).yHeadRot += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1001,7 +1002,7 @@ public class NMSImpl implements NMSBridge {
((LivingEntity) handle).yHeadRot += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1228,6 +1229,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).setYRot(yaw);
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((Component) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -200,7 +200,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.versioned.AllayTrait;
import net.citizensnpcs.trait.versioned.AxolotlTrait;
import net.citizensnpcs.trait.versioned.BeeTrait;
@ -234,6 +234,7 @@ import net.minecraft.core.BlockPos;
import net.minecraft.core.PositionImpl;
import net.minecraft.core.Registry;
import net.minecraft.network.Connection;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.contents.LiteralContents;
import net.minecraft.network.protocol.Packet;
@ -324,6 +325,7 @@ public class NMSImpl implements NMSBridge {
@Override
public boolean addEntityToWorld(org.bukkit.entity.Entity entity, SpawnReason custom) {
int viewDistance = -1;
ChunkMap chunkMap = null;
try {
if (entity instanceof Player) {
@ -996,7 +998,7 @@ public class NMSImpl implements NMSBridge {
((LivingEntity) handle).yHeadRot += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1021,7 +1023,7 @@ public class NMSImpl implements NMSBridge {
((LivingEntity) handle).yHeadRot += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -1248,6 +1250,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).setYRot(yaw);
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName((Component) component);
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);

View File

@ -138,7 +138,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.SmoothRotationTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.util.EmptyChannel;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@ -175,6 +175,7 @@ import net.minecraft.server.v1_8_R3.EntityTrackerEntry;
import net.minecraft.server.v1_8_R3.EntityTypes;
import net.minecraft.server.v1_8_R3.EntityWither;
import net.minecraft.server.v1_8_R3.GenericAttributes;
import net.minecraft.server.v1_8_R3.IChatBaseComponent;
import net.minecraft.server.v1_8_R3.IInventory;
import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.Navigation;
@ -711,7 +712,7 @@ public class NMSImpl implements NMSBridge {
((EntityInsentient) handle).aK += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -734,7 +735,7 @@ public class NMSImpl implements NMSBridge {
((EntityLiving) handle).aK += 360F;
}
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).getNPC().getOrAddTrait(SmoothRotationTrait.class).rotateToFace(to);
((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).rotateToFace(to);
}
}
@ -965,6 +966,11 @@ public class NMSImpl implements NMSBridge {
getHandle(entity).yaw = yaw;
}
@Override
public void setCustomName(org.bukkit.entity.Entity entity, Object component) {
getHandle(entity).setCustomName(((IChatBaseComponent) component).getText());
}
@Override
public void setDestination(org.bukkit.entity.Entity entity, double x, double y, double z, float speed) {
Entity handle = NMSImpl.getHandle(entity);