Skip to content

Commit

Permalink
rename 'cancel'
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jul 13, 2020
1 parent d9c7773 commit 3c1f003
Showing 1 changed file with 29 additions and 7 deletions.
Expand Up @@ -59,6 +59,7 @@ public RenameCommand() {
// Optionally specify per_player to reprocess the input tags for each player when renaming a vanilla entity
// (meaning, if you use "- rename <player.name> t:<[someent]> per_player", every player will see their own name on that entity).
// A per_player rename will remain active until the entity is renamed again or the server is restarted.
// Rename to "cancel" per_player to intentionally end a per_player rename.
//
// @Tags
// <NPCTag.name>
Expand All @@ -71,6 +72,12 @@ public RenameCommand() {
// @Usage
// Use to rename a different NPC.
// - rename Bob t:<[some_npc]>
//
// @Usage
// Use to make an entity show players their own name for 10 seconds.
// - rename <green><player.name> t:<[some_entity]> per_player
// - wait 10s
// - rename cancel t:<[some_entity]> per_player
// -->

@Override
Expand Down Expand Up @@ -116,13 +123,28 @@ public void execute(final ScriptEntry scriptEntry) {
for (ObjectTag target : targets.objectForms) {
EntityTag entity = target.asType(EntityTag.class, CoreUtilities.noDebugContext);
if (entity != null) {
final BukkitTagContext originalContext = (BukkitTagContext) scriptEntry.context.clone();
customNames.put(entity.getBukkitEntity().getEntityId(), p -> {
originalContext.player = new PlayerTag(p);
return TagManager.tag(name.asString(), originalContext);
});
for (Player player : NMSHandler.getEntityHelper().getPlayersThatSee(entity.getBukkitEntity())) {
NMSHandler.getPacketHelper().sendRename(player, entity.getBukkitEntity(), "");
Entity bukkitEntity = entity.getDenizenEntity().getBukkitEntity();
if (name.asString().equals("cancel")) {
customNames.remove(bukkitEntity.getEntityId());
if (bukkitEntity.isCustomNameVisible()) {
for (Player player : NMSHandler.getEntityHelper().getPlayersThatSee(bukkitEntity)) {
NMSHandler.getPacketHelper().sendRename(player, bukkitEntity, bukkitEntity.getCustomName());
}
}
else {
bukkitEntity.setCustomNameVisible(true);
bukkitEntity.setCustomNameVisible(false); // Force a metadata update
}
}
else {
final BukkitTagContext originalContext = (BukkitTagContext) scriptEntry.context.clone();
customNames.put(bukkitEntity.getEntityId(), p -> {
originalContext.player = new PlayerTag(p);
return TagManager.tag(name.asString(), originalContext);
});
for (Player player : NMSHandler.getEntityHelper().getPlayersThatSee(bukkitEntity)) {
NMSHandler.getPacketHelper().sendRename(player, bukkitEntity, "");
}
}
}
}
Expand Down

0 comments on commit 3c1f003

Please sign in to comment.