From 81bc83d15abfc5054d747cca1341d8884949b170 Mon Sep 17 00:00:00 2001 From: fullwall Date: Fri, 1 Mar 2024 01:03:30 +0800 Subject: [PATCH] Utilise new API --- .../main/java/net/citizensnpcs/Citizens.java | 2 + .../citizensnpcs/commands/AdminCommands.java | 4 +- .../citizensnpcs/commands/EditorCommands.java | 6 +- .../citizensnpcs/commands/NPCCommands.java | 231 +++++++++--------- .../commands/TemplateCommands.java | 8 +- .../citizensnpcs/commands/TraitCommands.java | 48 +--- .../commands/WaypointCommands.java | 24 +- .../java/net/citizensnpcs/trait/Powered.java | 17 +- .../trait/versioned/AllayTrait.java | 2 +- .../trait/versioned/AxolotlTrait.java | 2 +- .../trait/versioned/BeeTrait.java | 2 +- .../trait/versioned/BossBarTrait.java | 2 +- .../trait/versioned/CamelTrait.java | 9 +- .../trait/versioned/CatTrait.java | 2 +- .../trait/versioned/EnderDragonTrait.java | 2 +- .../trait/versioned/FoxTrait.java | 2 +- .../trait/versioned/FrogTrait.java | 2 +- .../trait/versioned/GoatTrait.java | 2 +- .../trait/versioned/LlamaTrait.java | 2 +- .../trait/versioned/MushroomCowTrait.java | 6 +- .../trait/versioned/PandaTrait.java | 2 +- .../trait/versioned/ParrotTrait.java | 2 +- .../trait/versioned/PhantomTrait.java | 2 +- .../trait/versioned/PiglinTrait.java | 2 +- .../trait/versioned/PolarBearTrait.java | 2 +- .../trait/versioned/PufferFishTrait.java | 2 +- .../trait/versioned/ShulkerTrait.java | 2 +- .../trait/versioned/SnifferTrait.java | 2 +- .../trait/versioned/SnowmanTrait.java | 2 +- .../trait/versioned/SpellcasterTrait.java | 2 +- .../trait/versioned/TropicalFishTrait.java | 6 +- .../trait/versioned/VillagerTrait.java | 2 +- .../trait/versioned/WardenTrait.java | 2 +- .../java/net/citizensnpcs/util/Messages.java | 5 +- main/src/main/resources/en.json | 172 +++++++++++-- 35 files changed, 319 insertions(+), 263 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/Citizens.java b/main/src/main/java/net/citizensnpcs/Citizens.java index 6cc7925ac..8a533c16a 100644 --- a/main/src/main/java/net/citizensnpcs/Citizens.java +++ b/main/src/main/java/net/citizensnpcs/Citizens.java @@ -418,6 +418,8 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { Template.migrate(); Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); commands.registerTabCompletion(this); + commands.setTranslationPrefixProvider( + cmd -> "citizens.commands." + cmd.aliases()[0] + "." + cmd.modifiers()[0]); // Setup NPCs after all plugins have been enabled (allows for multiworld // support and for NPCs to properly register external settings) diff --git a/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java b/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java index 2a7f6bd01..61c51b9ee 100644 --- a/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java @@ -37,7 +37,7 @@ public class AdminCommands { @Command( aliases = { "citizens" }, usage = "reload", - desc = "Load Citizens fresh from disk, without saving first", + desc = "", modifiers = { "reload", "load" }, min = 1, max = 1, @@ -64,7 +64,7 @@ public class AdminCommands { @Command( aliases = { "citizens" }, usage = "save (-a)", - desc = "Save NPCs", + desc = "", help = Messages.COMMAND_SAVE_HELP, modifiers = { "save" }, min = 1, diff --git a/main/src/main/java/net/citizensnpcs/commands/EditorCommands.java b/main/src/main/java/net/citizensnpcs/commands/EditorCommands.java index 5b5505a45..ec140afe0 100644 --- a/main/src/main/java/net/citizensnpcs/commands/EditorCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/EditorCommands.java @@ -30,7 +30,7 @@ public class EditorCommands { @Command( aliases = { "npc" }, usage = "equip", - desc = "Toggle the equipment editor", + desc = "", modifiers = { "equip" }, min = 1, max = 1, @@ -45,7 +45,7 @@ public class EditorCommands { @Command( aliases = { "npc" }, usage = "path", - desc = "Toggle the waypoint editor", + desc = "", modifiers = { "path" }, min = 1, flags = "*", @@ -66,7 +66,7 @@ public class EditorCommands { @Command( aliases = { "npc" }, usage = "text", - desc = "Toggle the text editor", + desc = "", modifiers = { "text" }, min = 1, permission = "citizens.npc.edit.text") diff --git a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java index 97d5906a9..52fa643bb 100644 --- a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java @@ -176,7 +176,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "activationrange [range]", - desc = "Sets the activation range", + desc = "", modifiers = { "activationrange" }, min = 1, max = 2, @@ -193,8 +193,8 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "age [age] (-l(ock))", - desc = "Set the age of a NPC", - help = Messages.COMMAND_AGE_HELP, + desc = "", + help = "citizens.commands.npc.age.help", flags = "l", modifiers = { "age" }, min = 1, @@ -238,7 +238,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "aggressive [true|false]", - desc = "Sets the aggressive status of the entity", + desc = "", modifiers = { "aggressive" }, min = 1, max = 2, @@ -252,7 +252,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "ai (true|false)", - desc = "Sets whether the NPC should use vanilla AI", + desc = "", modifiers = { "ai" }, min = 1, max = 2, @@ -267,7 +267,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "anchor (--save [name]|--assume [name]|--remove [name]) (-a) (-c)", - desc = "Changes/Saves/Lists NPC's location anchor(s)", + desc = "", flags = "ac", modifiers = { "anchor" }, min = 1, @@ -340,7 +340,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "armorstand --visible [visible] --small [small] --marker [marker] --gravity [gravity] --arms [arms] --baseplate [baseplate] --(head|body|leftarm|leftleg|rightarm|rightleg)pose [angle x,y,z]", - desc = "Edit armorstand properties", + desc = "", modifiers = { "armorstand" }, min = 1, max = 1, @@ -393,7 +393,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "breakblock --location [x,y,z] --radius [radius]", - desc = "Mine a block at the given location or cursor if not specified", + desc = "", modifiers = { "breakblock" }, min = 1, max = 1, @@ -426,7 +426,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "chunkload (-t(emporary))", - desc = "Toggle the NPC forcing chunks to stay loaded", + desc = "", modifiers = { "chunkload", "cload" }, min = 1, max = 1, @@ -446,7 +446,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "collidable", - desc = "Toggles an NPC's collidability", + desc = "", modifiers = { "collidable", "pushable" }, min = 1, max = 1, @@ -462,8 +462,8 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "command|cmd (add [command] | remove [id|all] | permissions [permissions] | sequential | cycle | random | clearerror [type] (name|uuid) | errormsg [type] [msg] | persistsequence [true|false] | cost [cost] (id) | expcost [cost] (id) | itemcost (id)) (-s(hift)) (-l[eft]/-r[ight]) (-p[layer] -o[p]), --cooldown --gcooldown [seconds] --delay [ticks] --permissions [perms] --n [max # of uses]", - desc = "Controls commands which will be run when clicking on an NPC", - help = Messages.NPC_COMMAND_HELP, + desc = "", + help = "citizens.commands.npc.command.help", modifiers = { "command", "cmd" }, min = 1, flags = "lrpos", @@ -613,7 +613,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "configgui", - desc = "Display NPC configuration GUI", + desc = "", modifiers = { "configgui" }, min = 1, max = 1, @@ -625,7 +625,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "controllable|control (-m(ount),-y,-n,-o(wner required))", - desc = "Toggles whether the NPC can be ridden and controlled", + desc = "", modifiers = { "controllable", "control" }, min = 1, max = 1, @@ -657,7 +657,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "copy (--name newname)", - desc = "Copies an NPC", + desc = "", modifiers = { "copy" }, min = 1, max = 1, @@ -697,7 +697,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "create [name] ((-b(aby),u(nspawned),s(ilent),t(emporary),c(enter),p(acket)) --at [x,y,z,world] --type [type] --item (item) --trait ['trait1, trait2...'] --model [model name] --nameplate [true|false|hover] --temporaryticks [ticks] --registry [registry name]", - desc = "Create a new NPC", + desc = "", flags = "bustpc", modifiers = { "create" }, min = 2, @@ -844,7 +844,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "debug -p(aths) -n(avigation)", - desc = "Display debugging information", + desc = "", modifiers = { "debug" }, min = 1, max = 1, @@ -871,7 +871,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "deselect", - desc = "Deselect currently selected NPC", + desc = "", modifiers = { "deselect", "desel" }, min = 1, max = 1, @@ -885,7 +885,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "despawn (id)", - desc = "Despawn a NPC", + desc = "", modifiers = { "despawn" }, min = 1, max = 2, @@ -912,7 +912,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "drops", - desc = "Edit an NPC's drops", + desc = "", modifiers = { "drops" }, min = 1, max = 1, @@ -926,7 +926,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "endercrystal -b(ottom)", - desc = "Edit endercrystal modifiers", + desc = "", modifiers = { "endercrystal" }, min = 1, max = 1, @@ -949,7 +949,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "enderman -a(ngry)", - desc = "Set enderman modifiers", + desc = "", flags = "a", modifiers = { "enderman" }, min = 1, @@ -967,7 +967,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "flyable (true|false)", - desc = "Toggles or sets an NPC's flyable status", + desc = "", modifiers = { "flyable" }, min = 1, max = 2, @@ -988,7 +988,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "follow (player name|NPC id) (-p[rotect]) (--margin [margin]) (--enable [boolean])", - desc = "Toggles NPC following you", + desc = "", flags = "p", modifiers = { "follow" }, min = 1, @@ -1034,7 +1034,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "gamemode [gamemode]", - desc = "Changes the gamemode", + desc = "", modifiers = { "gamemode" }, min = 1, max = 2, @@ -1058,7 +1058,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "glowing --color [minecraft chat color]", - desc = "Toggles an NPC's glowing status", + desc = "", modifiers = { "glowing" }, min = 1, max = 1, @@ -1082,7 +1082,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "gravity", - desc = "Toggles gravity", + desc = "", modifiers = { "gravity" }, min = 1, max = 1, @@ -1096,7 +1096,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "hitbox --scale [scale] --width/height [value]", - desc = "Sets the NPC hitbox", + desc = "", modifiers = { "hitbox" }, min = 1, max = 1, @@ -1119,7 +1119,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "hologram add [text] | set [line #] [text] | remove [line #] | clear | lineheight [height] | viewrange [range] | margintop [line #] [margin] | marginbottom [line #] [margin]", - desc = "Controls NPC hologram text", + desc = "", modifiers = { "hologram" }, min = 1, max = -1, @@ -1218,7 +1218,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "homeloc --location [loc] --delay [delay] --distance [distance] -h(ere) -p(athfind) -t(eleport)", - desc = "Controls home location", + desc = "", modifiers = { "home" }, min = 1, max = 1, @@ -1264,7 +1264,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "horse|donkey|mule (--color color) (--type type) (--style style) (-cb)", - desc = "Sets horse and horse-like entity modifiers", + desc = "", help = "Use the -c flag to make the NPC have a chest, or the -b flag to stop them from having a chest.", modifiers = { "horse", "donkey", "mule" }, min = 1, @@ -1314,7 +1314,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "hurt [damage]", - desc = "Damages the NPC", + desc = "", modifiers = { "hurt" }, min = 2, max = 2, @@ -1335,7 +1335,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "id", - desc = "Sends the selected NPC's ID to the sender", + desc = "", modifiers = { "id" }, min = 1, max = 1, @@ -1347,7 +1347,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "inventory", - desc = "Show's an NPC's inventory", + desc = "", modifiers = { "inventory" }, min = 1, max = 1, @@ -1359,7 +1359,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "item (item) (metadata) (-h(and))", - desc = "Sets the NPC's item", + desc = "", modifiers = { "item", }, min = 1, max = 3, @@ -1386,13 +1386,13 @@ public class NPCCommands { npc.despawn(DespawnReason.PENDING_RESPAWN); npc.spawn(npc.getStoredLocation(), SpawnReason.RESPAWN); } - Messaging.sendTr(sender, Messages.ITEM_SET, Util.prettyEnum(stack.getType())); + Messaging.sendTr(sender, Messages.ITEM_SET, npc.getName(), Util.prettyEnum(stack.getType())); } @Command( aliases = { "npc" }, usage = "jump", - desc = "Makes the NPC jump", + desc = "", modifiers = { "jump" }, min = 1, max = 1, @@ -1404,7 +1404,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "knockback (--explicit true|false)", - desc = "Toggle NPC knockback", + desc = "", modifiers = { "knockback" }, min = 1, max = 1, @@ -1421,7 +1421,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "leashable", - desc = "Toggles leashability", + desc = "", modifiers = { "leashable" }, min = 1, max = 1, @@ -1442,7 +1442,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "list (page) ((-a) --owner (owner) --type (type) --char (char) --registry (name))", - desc = "List NPCs", + desc = "", flags = "a", modifiers = { "list" }, min = 1, @@ -1505,7 +1505,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "lookclose --range [range] -r[ealistic looking] --randomlook [true|false] --perplayer [true|false] --randomswitchtargets [true|false] --randompitchrange [min,max] --randomyawrange [min,max] --disablewhennavigating [true|false] --targetnpcs [true|false]", - desc = "Toggle whether a NPC will look when a player is near", + desc = "", modifiers = { "lookclose", "look" }, min = 1, max = 1, @@ -1612,7 +1612,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "metadata set|get|remove [key] (value) (-t(emporary))", - desc = "Manages NPC metadata", + desc = "", modifiers = { "metadata" }, flags = "t", min = 3, @@ -1676,7 +1676,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "minecart (--item item_name(:data)) (--offset offset)", - desc = "Sets minecart item", + desc = "", modifiers = { "minecart" }, min = 1, max = 1, @@ -1714,7 +1714,7 @@ public class NPCCommands { aliases = { "npc" }, modifiers = { "mirror" }, usage = "mirror --name [true|false]", - desc = "Controls mirroring of NPC skins and more", + desc = "", min = 1, max = 1, permission = "citizens.npc.mirror") @@ -1739,7 +1739,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "mount (--onnpc ) (-c(ancel))", - desc = "Mounts a controllable NPC", + desc = "", modifiers = { "mount" }, min = 1, max = 1, @@ -1787,7 +1787,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "moveto x:y:z:world | x y z world", - desc = "Teleports a NPC to a given location", + desc = "", modifiers = "moveto", min = 1, valueFlags = { "x", "y", "z", "yaw", "pitch", "world" }, @@ -1844,7 +1844,7 @@ public class NPCCommands { aliases = { "npc" }, modifiers = { "name", "hidename" }, usage = "name (-h(over))", - desc = "Toggle nameplate visibility, or only show names on hover", + desc = "", min = 1, max = 1, flags = "h", @@ -1887,7 +1887,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "ocelot (--type type) (-s(itting), -n(ot sitting))", - desc = "Set the ocelot type of an NPC and whether it is sitting", + desc = "", modifiers = { "ocelot" }, min = 1, max = 1, @@ -1918,7 +1918,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "owner [uuid|SERVER]", - desc = "Set the owner of an NPC", + desc = "", modifiers = { "owner" }, min = 1, max = 2, @@ -1949,7 +1949,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "packet --enabled [true|false]", - desc = "Controls packet NPC settings", + desc = "", modifiers = { "packet" }, min = 1, max = 1, @@ -1972,7 +1972,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "painting (--art art)", - desc = "Set painting modifiers", + desc = "", modifiers = { "painting" }, min = 1, max = 1, @@ -1992,7 +1992,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "passive (--set [true|false])", - desc = "Sets whether an NPC damages other entities or not", + desc = "", modifiers = { "passive" }, min = 1, max = 1, @@ -2006,13 +2006,13 @@ public class NPCCommands { @Command( aliases = { "npc" }, - usage = "pathopt --avoid-water|aw [true|false] --stationary-ticks [ticks] --attack-range [range] --distance-margin [margin] --path-distance-margin [margin] --use-new-finder [true|false] --falling-distance [distance]", - desc = "Sets an NPC's pathfinding options", + usage = "pathopt --avoid-water|aw [true|false] --open-doors [true|false] --path-range [range] --stationary-ticks [ticks] --attack-range [range] --distance-margin [margin] --path-distance-margin [margin] --use-new-finder [true|false] --falling-distance [distance]", + desc = "", modifiers = { "pathopt", "po", "patho" }, min = 1, max = 1, permission = "citizens.npc.pathfindingoptions") - public void pathfindingOptions(CommandContext args, CommandSender sender, NPC npc, + public void pathfindingOptions(CommandContext args, CommandSender sender, NPC npc, @Flag("path-range") Float range, @Flag("avoid-water") Boolean avoidwater, @Flag("open-doors") Boolean opendoors, @Flag("stationary-ticks") Integer stationaryTicks, @Flag("distance-margin") Double distanceMargin, @Flag("path-distance-margin") Double pathDistanceMargin, @Flag("attack-range") Double attackRange, @@ -2044,6 +2044,12 @@ public class NPCCommands { + Messaging.tr(Messages.PATHFINDING_OPTIONS_DISTANCE_MARGIN_SET, npc.getName(), distanceMargin); } + if (range != null) { + if (range < 1) + throw new CommandUsageException(); + npc.getNavigator().getDefaultParameters().range(range); + output += " " + Messaging.tr(Messages.PATHFINDING_RANGE_SET, range); + } if (pathDistanceMargin != null) { if (pathDistanceMargin < 0) throw new CommandUsageException(); @@ -2073,24 +2079,10 @@ public class NPCCommands { } } - @Command( - aliases = { "npc" }, - usage = "pathrange [range]", - desc = "Sets an NPC's pathfinding range", - modifiers = { "pathrange", "pathfindingrange", "prange" }, - min = 2, - max = 2, - permission = "citizens.npc.pathfindingrange") - public void pathfindingRange(CommandContext args, CommandSender sender, NPC npc) { - double range = Math.max(1, args.getDouble(1)); - npc.getNavigator().getDefaultParameters().range((float) range); - Messaging.sendTr(sender, Messages.PATHFINDING_RANGE_SET, range); - } - @Command( aliases = { "npc" }, usage = "pathto me | here | cursor | [x] [y] [z] (--margin [distance margin]) (-s[traight line])", - desc = "Starts pathfinding to a certain location", + desc = "", modifiers = { "pathto" }, min = 2, max = 4, @@ -2125,7 +2117,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "pausepathfinding --onrightclick [true|false] --when-player-within [range in blocks] --pauseticks [ticks]", - desc = "Sets pathfinding pause", + desc = "", modifiers = { "pausepathfinding" }, min = 1, max = 1, @@ -2155,7 +2147,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "pickupitems (--set [true|false])", - desc = "Allow NPC to pick up items", + desc = "", modifiers = { "pickupitems" }, min = 1, max = 1, @@ -2170,7 +2162,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "panimate [animation]", - desc = "Plays a player animation", + desc = "", modifiers = { "panimate" }, min = 2, max = 2, @@ -2189,7 +2181,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "playerfilter -a(llowlist) -e(mpty) -d(enylist) --add [uuid] --remove [uuid] --addgroup [group] --removegroup [group] -c(lear) --applywithin [blocks range]", - desc = "Sets the NPC filter", + desc = "", modifiers = { "playerfilter" }, min = 1, max = 1, @@ -2240,7 +2232,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "playerlist (-a(dd),r(emove))", - desc = "Sets whether the NPC is put in the playerlist", + desc = "", modifiers = { "playerlist" }, min = 1, max = 1, @@ -2268,7 +2260,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "playsound [sound] (volume) (pitch) (--at x:y:z:world)", - desc = "Plays a sound at the NPC's location", + desc = "", modifiers = { "playsound" }, min = 2, max = 4, @@ -2284,7 +2276,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "pose (--save [name] (-d) | --mirror [name] (-d) | --assume [name] | --remove [name] | --default [name]) (--yaw yaw) (--pitch pitch) (-a)", - desc = "Manage NPC poses", + desc = "", flags = "ad", modifiers = { "pose" }, min = 1, @@ -2354,22 +2346,23 @@ public class NPCCommands { @Command( aliases = { "npc" }, - usage = "power", - desc = "Toggle a creeper NPC as powered", - modifiers = { "power" }, + usage = "powered (--set true|false)", + desc = "", + modifiers = { "powered" }, min = 1, max = 1, - permission = "citizens.npc.power") + permission = "citizens.npc.powered") @Requirements(selected = true, ownership = true, types = { EntityType.CREEPER }) - public void power(CommandContext args, CommandSender sender, NPC npc) { - Messaging.sendTr(sender, - npc.getOrAddTrait(Powered.class).toggle() ? Messages.POWERED_SET : Messages.POWERED_STOPPED); + public void power(CommandContext args, CommandSender sender, NPC npc, @Flag("set") Boolean explicit) { + boolean value = explicit != null ? explicit : !npc.getOrAddTrait(Powered.class).isPowered(); + npc.getOrAddTrait(Powered.class).setPowered(value); + Messaging.sendTr(sender, value ? Messages.POWERED_SET : Messages.POWERED_STOPPED); } @Command( aliases = { "npc" }, usage = "profession|prof [profession]", - desc = "Set a NPC's profession", + desc = "", modifiers = { "profession", "prof" }, min = 2, max = 2, @@ -2392,7 +2385,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "rabbittype [type]", - desc = "Set the Type of a Rabbit NPC", + desc = "", modifiers = { "rabbittype", "rbtype" }, min = 2, permission = "citizens.npc.rabbittype") @@ -2409,7 +2402,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "remove|rem (all|id|name| --owner [owner] | --eid [entity uuid] | --world [world])", - desc = "Remove a NPC", + desc = "", modifiers = { "remove", "rem" }, min = 1, max = 2) @@ -2508,7 +2501,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "rename [name]", - desc = "Rename a NPC", + desc = "", modifiers = { "rename" }, min = 2, permission = "citizens.npc.rename") @@ -2528,7 +2521,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "respawn [delay]", - desc = "Sets an NPC's respawn delay", + desc = "", modifiers = { "respawn" }, min = 1, max = 2, @@ -2545,7 +2538,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "rotate (--towards [x,y,z]) (--body [yaw]) (--head [yaw]) (--pitch [pitch]) (-s(mooth))", - desc = "Rotate NPC", + desc = "", flags = "s", modifiers = { "rotate" }, min = 1, @@ -2590,7 +2583,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "select|sel [id|name] (--range range) (--registry [name])", - desc = "Select a NPC with the given ID or name", + desc = "", modifiers = { "select", "sel" }, min = 1, max = 2, @@ -2636,7 +2629,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "setequipment [slot] [item]", - desc = "Sets equipment via commands", + desc = "", modifiers = { "setequipment" }, min = 2, max = 3, @@ -2658,7 +2651,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "sheep (--color [color]) (--sheared [sheared])", - desc = "Sets sheep modifiers", + desc = "", modifiers = { "sheep" }, min = 1, max = 1, @@ -2688,7 +2681,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "shop (edit|show|delete) (name)", - desc = "NPC shop edit/show", + desc = "", modifiers = { "shop" }, min = 1, max = 3, @@ -2728,7 +2721,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "sitting (--explicit [true|false]) (--at [at])", - desc = "Sets the NPC sitting", + desc = "", modifiers = { "sitting" }, min = 1, max = 2, @@ -2753,7 +2746,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "skin (-e(xport) -c(lear) -l(atest) -s(kull)) [name] (or --url [url] --file [file] (-s(lim)) or -t [uuid/name] [data] [signature])", - desc = "Sets an NPC's skin name. Use -l to set the skin to always update to the latest", + desc = "", modifiers = { "skin" }, min = 1, max = 4, @@ -2858,8 +2851,10 @@ public class NPCCommands { } else throw new ServerCommandException(); } else { - if (args.argsLength() != 2) - throw new CommandException(Messages.SKIN_REQUIRED); + if (args.argsLength() != 2) { + Messaging.send(sender, trait.getSkinName()); + return; + } if (args.hasFlag('l')) { trait.setShouldUpdateSkins(true); } @@ -2872,7 +2867,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "skinlayers (--cape [true|false]) (--hat [true|false]) (--jacket [true|false]) (--sleeves [true|false]) (--pants [true|false])", - desc = "Sets an NPC's skin layers visibility.", + desc = "", modifiers = { "skinlayers" }, min = 1, max = 5, @@ -2908,7 +2903,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "size [size]", - desc = "Sets the NPC's size", + desc = "", modifiers = { "size" }, min = 1, max = 2, @@ -2928,7 +2923,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "sound (--death [death sound|d]) (--ambient [ambient sound|d]) (--hurt [hurt sound|d]) (-n(one)/-s(ilent)) (-d(efault))", - desc = "Sets an NPC's played sounds", + desc = "", modifiers = { "sound" }, flags = "dns", min = 1, @@ -3006,7 +3001,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "spawn (id|name) -l(oad chunks)", - desc = "Spawn an existing NPC", + desc = "", modifiers = { "spawn" }, min = 1, max = 2, @@ -3050,7 +3045,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "speak [message] --bubble [duration] --target [npcid|player name] --range (range to look for entities to speak to in blocks)", - desc = "Says a message from the NPC", + desc = "", modifiers = { "speak" }, min = 2, permission = "citizens.npc.speak") @@ -3094,7 +3089,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "speed [speed]", - desc = "Sets the movement speed of an NPC as a percentage", + desc = "", modifiers = { "speed" }, min = 2, max = 2, @@ -3109,7 +3104,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "swim (--set [true|false])", - desc = "Sets an NPC to swim or not", + desc = "", modifiers = { "swim" }, min = 1, max = 1, @@ -3124,7 +3119,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "target [name|UUID] (-a[ggressive]) (-c[ancel])", - desc = "Target a given entity", + desc = "", modifiers = { "target" }, flags = "ac", min = 1, @@ -3147,7 +3142,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "targetable (-t(emporary))", - desc = "Toggles an NPC's targetability", + desc = "", modifiers = { "targetable" }, min = 1, max = 1, @@ -3166,7 +3161,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "tp (-e(xact))", - desc = "Teleport in front of an NPC", + desc = "", modifiers = { "tp", "teleport" }, min = 1, max = 1, @@ -3189,7 +3184,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "tphere (cursor) -c(enter) -f(ront)", - desc = "Teleport a NPC to your location", + desc = "", flags = "cf", modifiers = { "tphere", "tph", "move" }, min = 1, @@ -3235,7 +3230,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "tpto [player name|npc id] [player name|npc id]", - desc = "Teleport an NPC or player to another NPC or player", + desc = "", modifiers = { "tpto" }, min = 2, max = 3, @@ -3289,7 +3284,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "trackingrange [range]", - desc = "Sets the tracking range", + desc = "", modifiers = { "trackingrange" }, min = 1, max = 2, @@ -3306,7 +3301,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "type [type]", - desc = "Sets an NPC's entity type", + desc = "", modifiers = { "type" }, min = 2, max = 2, @@ -3322,7 +3317,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "undo (all)", - desc = "Undoes the last action (currently only create/remove supported)", + desc = "", modifiers = { "undo" }, min = 1, max = 2, @@ -3343,7 +3338,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "useitem (-o(ffhand))", - desc = "Sets an NPC to be using their held items", + desc = "", modifiers = { "useitem" }, min = 1, max = 1, @@ -3367,7 +3362,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "vulnerable (-t(emporary))", - desc = "Toggles an NPC's vulnerability", + desc = "", modifiers = { "vulnerable" }, min = 1, max = 1, @@ -3387,7 +3382,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "wander", - desc = "Sets the NPC to wander around", + desc = "", modifiers = { "wander" }, min = 1, max = 1, @@ -3404,7 +3399,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "wither (--invulnerable [true|false]) (--arrow-shield [true|false])", - desc = "Sets wither modifiers", + desc = "", modifiers = { "wither" }, min = 1, requiresFlags = true, @@ -3425,7 +3420,7 @@ public class NPCCommands { @Command( aliases = { "npc" }, usage = "wolf (-s(itting) a(ngry) t(amed) i(nfo)) --collar [hex rgb color|name]", - desc = "Sets wolf modifiers", + desc = "", modifiers = { "wolf" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/commands/TemplateCommands.java b/main/src/main/java/net/citizensnpcs/commands/TemplateCommands.java index e6b766a88..83fef4ca2 100644 --- a/main/src/main/java/net/citizensnpcs/commands/TemplateCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/TemplateCommands.java @@ -30,7 +30,7 @@ public class TemplateCommands { @Command( aliases = { "template", "tpl" }, usage = "apply [template name] (id id2...)", - desc = "Applies a template to the selected NPC", + desc = "", modifiers = { "apply" }, min = 2, permission = "citizens.templates.apply") @@ -63,7 +63,7 @@ public class TemplateCommands { @Command( aliases = { "template", "tpl" }, usage = "create [template name] (-k)", - desc = "Creates a template from the selected NPC", + desc = "", modifiers = { "create" }, min = 2, max = 2, @@ -85,7 +85,7 @@ public class TemplateCommands { @Command( aliases = { "template", "tpl" }, usage = "delete [template name]", - desc = "Deletes a template", + desc = "", modifiers = { "delete" }, min = 2, max = 2, @@ -101,7 +101,7 @@ public class TemplateCommands { @Command( aliases = { "template", "tpl" }, usage = "list", - desc = "Lists available templates", + desc = "", modifiers = { "list" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/commands/TraitCommands.java b/main/src/main/java/net/citizensnpcs/commands/TraitCommands.java index 407e78401..6be5bd621 100644 --- a/main/src/main/java/net/citizensnpcs/commands/TraitCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/TraitCommands.java @@ -29,7 +29,7 @@ public class TraitCommands { @Command( aliases = { "trait" }, usage = "add [trait name]...", - desc = "Adds traits to the NPC", + desc = "", modifiers = { "add", "a" }, min = 2, permission = "citizens.npc.trait") @@ -70,7 +70,7 @@ public class TraitCommands { @Command( aliases = { "traitc", "trc" }, usage = "[trait name] (flags)", - desc = "Configures a trait", + desc = "", modifiers = { "*" }, min = 1, flags = "*", @@ -94,7 +94,7 @@ public class TraitCommands { @Command( aliases = { "trait" }, usage = "remove [trait names]...", - desc = "Removes traits on the NPC", + desc = "", modifiers = { "remove", "rem", "r" }, min = 2, permission = "citizens.npc.trait") @@ -132,46 +132,4 @@ public class TraitCommands { Bukkit.getPluginManager().callEvent(new NPCTraitCommandDetachEvent(npc, clazz, sender)); npc.removeTrait(clazz); } - - @Command( - aliases = { "trait" }, - usage = "[trait name], [trait name]...", - desc = "Toggles traits on the NPC", - modifiers = { "*" }, - min = 1, - permission = "citizens.npc.trait") - public void toggle(CommandContext args, CommandSender sender, NPC npc) throws CommandException { - List added = Lists.newArrayList(); - List removed = Lists.newArrayList(); - List failed = Lists.newArrayList(); - for (String traitName : Splitter.on(',').split(args.getJoinedStrings(0))) { - if (!sender.hasPermission("citizens.npc.trait." + traitName) - && !sender.hasPermission("citizens.npc.trait.*")) { - failed.add(String.format("%s: No permission", traitName)); - continue; - } - Class clazz = CitizensAPI.getTraitFactory().getTraitClass(traitName); - if (clazz == null) { - failed.add(String.format("%s: Trait not found", traitName)); - continue; - } - boolean remove = npc.hasTrait(clazz); - if (remove) { - removeTrait(npc, clazz, sender); - removed.add(StringHelper.wrap(traitName)); - continue; - } - addTrait(npc, clazz, sender); - added.add(StringHelper.wrap(traitName)); - } - if (added.size() > 0) { - Messaging.sendTr(sender, Messages.TRAITS_ADDED, Joiner.on(", ").join(added)); - } - if (removed.size() > 0) { - Messaging.sendTr(sender, Messages.TRAITS_REMOVED, Joiner.on(", ").join(removed)); - } - if (failed.size() > 0) { - Messaging.sendTr(sender, Messages.TRAITS_FAILED_TO_CHANGE, Joiner.on(", ").join(failed)); - } - } } diff --git a/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java b/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java index 2bb563459..8aa1c8a46 100644 --- a/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java @@ -34,7 +34,7 @@ public class WaypointCommands { @Command( aliases = { "waypoints", "waypoint", "wp" }, usage = "add [x] [y] [z] (world) (--index idx)", - desc = "Adds a waypoint at a point", + desc = "", modifiers = { "add" }, min = 4, max = 5, @@ -61,7 +61,7 @@ public class WaypointCommands { @Command( aliases = { "waypoints", "waypoint", "wp" }, usage = "disableteleport", - desc = "Disables teleportation when stuck", + desc = "", modifiers = { "disableteleport", "dt" }, min = 1, max = 1, @@ -99,26 +99,10 @@ public class WaypointCommands { } } - @Command( - aliases = { "waypoints", "waypoint", "wp" }, - usage = "opendoors", - desc = "Enables opening doors when pathfinding", - modifiers = { "opendoors", "od" }, - min = 1, - max = 1, - permission = "citizens.waypoints.opendoors") - public void openDoors(CommandContext args, CommandSender sender, NPC npc) throws CommandException { - boolean opensDoors = !npc.data().get(NPC.Metadata.PATHFINDER_OPEN_DOORS, false); - npc.data().setPersistent(NPC.Metadata.PATHFINDER_OPEN_DOORS, opensDoors); - Messaging.sendTr(sender, - opensDoors ? Messages.PATHFINDER_OPEN_DOORS_ENABLED : Messages.PATHFINDER_OPEN_DOORS_DISABLED, - npc.getName()); - } - @Command( aliases = { "waypoints", "waypoint", "wp" }, usage = "provider [provider name]", - desc = "Sets the current waypoint provider", + desc = "", modifiers = { "provider" }, min = 1, max = 2, @@ -142,7 +126,7 @@ public class WaypointCommands { @Command( aliases = { "waypoints", "waypoint", "wp" }, usage = "remove (x y z world) (--index idx)", - desc = "Adds a waypoint at a point", + desc = "", modifiers = { "remove" }, min = 1, max = 5, diff --git a/main/src/main/java/net/citizensnpcs/trait/Powered.java b/main/src/main/java/net/citizensnpcs/trait/Powered.java index 7352fa82a..7aa4daf77 100644 --- a/main/src/main/java/net/citizensnpcs/trait/Powered.java +++ b/main/src/main/java/net/citizensnpcs/trait/Powered.java @@ -12,7 +12,7 @@ import net.citizensnpcs.api.trait.TraitName; * @see Creeper#setPowered(boolean) */ @TraitName("powered") -public class Powered extends Trait implements Toggleable { +public class Powered extends Trait { @Persist("") private boolean powered; @@ -31,17 +31,8 @@ public class Powered extends Trait implements Toggleable { } } - @Override - public boolean toggle() { - powered = !powered; - if (npc.getEntity() instanceof Creeper) { - ((Creeper) npc.getEntity()).setPowered(powered); - } - return powered; - } - - @Override - public String toString() { - return "Powered{" + powered + "}"; + public void setPowered(boolean value) { + powered = value; + onSpawn(); } } \ No newline at end of file diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/AllayTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/AllayTrait.java index af9166c09..382cbab6b 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/AllayTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/AllayTrait.java @@ -44,7 +44,7 @@ public class AllayTrait extends Trait { @Command( aliases = { "npc" }, usage = "allay (-d(ancing))", - desc = "Sets allay modifiers", + desc = "", modifiers = { "allay" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/AxolotlTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/AxolotlTrait.java index 154d02b97..20fb6954b 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/AxolotlTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/AxolotlTrait.java @@ -59,7 +59,7 @@ public class AxolotlTrait extends Trait { @Command( aliases = { "npc" }, usage = "axolotl (-d) (--variant variant)", - desc = "Sets axolotl modifiers", + desc = "", modifiers = { "axolotl" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java index bb995431d..e1a2b3b49 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java @@ -63,7 +63,7 @@ public class BeeTrait extends Trait { @Command( aliases = { "npc" }, usage = "bee (-s/-n) --anger anger", - desc = "Sets bee modifiers", + desc = "", modifiers = { "bee" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java index b1afe13d3..7abf8ddb8 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java @@ -233,7 +233,7 @@ public class BossBarTrait extends Trait { @Command( aliases = { "npc" }, usage = "bossbar --style [style] --color [color] --title [title] --visible [visible] --viewpermission [permission] --flags [flags] --track [health | placeholder] --range [range]", - desc = "Edit bossbar properties", + desc = "", modifiers = { "bossbar" }, min = 1, max = 1) diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/CamelTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/CamelTrait.java index 365ff1ff7..4c0eb4368 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/CamelTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/CamelTrait.java @@ -32,11 +32,8 @@ public class CamelTrait extends Trait { @Override public void run() { - if (npc.isSpawned() && npc.getEntity() instanceof Camel) { - Camel camel = (Camel) npc.getEntity(); - if (pose != null) { - NMS.setCamelPose(npc.getEntity(), pose); - } + if (pose != null && npc.isSpawned() && npc.getEntity() instanceof Camel) { + NMS.setCamelPose(npc.getEntity(), pose); } } @@ -53,7 +50,7 @@ public class CamelTrait extends Trait { @Command( aliases = { "npc" }, usage = "camel (--pose pose)", - desc = "Sets camel modifiers", + desc = "", modifiers = { "camel" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java index 1f1071431..62272e3d5 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java @@ -96,7 +96,7 @@ public class CatTrait extends Trait { @Command( aliases = { "npc" }, usage = "cat (-s/-n/-l) --type type --ccolor collar color", - desc = "Sets cat modifiers", + desc = "", modifiers = { "cat" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/EnderDragonTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/EnderDragonTrait.java index 9fe414d46..f4e206baa 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/EnderDragonTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/EnderDragonTrait.java @@ -60,7 +60,7 @@ public class EnderDragonTrait extends Trait { @Command( aliases = { "npc" }, usage = "enderdragon --phase [phase] --destroywalls [true|false]", - desc = "Control enderdragon modifiers", + desc = "", modifiers = { "enderdragon" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java index 853802351..6bfd84395 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java @@ -79,7 +79,7 @@ public class FoxTrait extends Trait { @Command( aliases = { "npc" }, usage = "fox --type type --sleeping [true|false] --sitting [true|false] --crouching [true|false]", - desc = "Sets fox modifiers", + desc = "", modifiers = { "fox" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/FrogTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/FrogTrait.java index 7ad913ebb..43774884f 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/FrogTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/FrogTrait.java @@ -46,7 +46,7 @@ public class FrogTrait extends Trait { @Command( aliases = { "npc" }, usage = "frog (--variant variant)", - desc = "Sets frog modifiers", + desc = "", modifiers = { "frog" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/GoatTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/GoatTrait.java index 46de9ed9c..97d8e4144 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/GoatTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/GoatTrait.java @@ -60,7 +60,7 @@ public class GoatTrait extends Trait { @Command( aliases = { "npc" }, usage = "goat -l(eft) -r(ight) -n(either) -b(oth) horn", - desc = "Sets goat modifiers", + desc = "", modifiers = { "goat" }, flags = "lrnb", min = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java index 16a90bf08..744e99699 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java @@ -60,7 +60,7 @@ public class LlamaTrait extends Trait { @Command( aliases = { "npc" }, usage = "llama (--color color) (--strength strength)", - desc = "Sets llama modifiers", + desc = "", modifiers = { "llama" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java index ffd9d53e9..8de113c26 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java @@ -50,9 +50,9 @@ public class MushroomCowTrait extends Trait { @Command( aliases = { "npc" }, - usage = "mcow (--variant [variant])", - desc = "Sets mushroom cow modifiers.", - modifiers = { "mcow", "mushroomcow" }, + usage = "mushroomcow (--variant [variant])", + desc = "", + modifiers = { "mushroomcow" }, min = 1, max = 1, permission = "citizens.npc.mushroomcow") diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java index 4a60b2a19..b109cf131 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java @@ -126,7 +126,7 @@ public class PandaTrait extends Trait { @Command( aliases = { "npc" }, usage = "panda --gene (main gene) --hiddengene (hidden gene) -e(ating) -s(itting) -n (sneezing) -r(olling)", - desc = "Sets panda modifiers", + desc = "", modifiers = { "panda" }, flags = "srne", min = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java index 26f8368f5..5b55f73c0 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java @@ -46,7 +46,7 @@ public class ParrotTrait extends Trait { @Command( aliases = { "npc" }, usage = "parrot (--variant variant)", - desc = "Sets parrot modifiers", + desc = "", modifiers = { "parrot" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java index 09b9b7afd..6e3e1aa72 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java @@ -45,7 +45,7 @@ public class PhantomTrait extends Trait { @Command( aliases = { "npc" }, usage = "phantom (--size size)", - desc = "Sets phantom modifiers", + desc = "", modifiers = { "phantom" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/PiglinTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PiglinTrait.java index 078a56cd2..de96aa1c5 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/PiglinTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PiglinTrait.java @@ -45,7 +45,7 @@ public class PiglinTrait extends Trait { @Command( aliases = { "npc" }, usage = "piglin (--dancing [true|false])", - desc = "Sets piglin modifiers.", + desc = "", modifiers = { "piglin" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/PolarBearTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PolarBearTrait.java index ad9cb96aa..ba2dcbd8d 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/PolarBearTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PolarBearTrait.java @@ -44,7 +44,7 @@ public class PolarBearTrait extends Trait { @Command( aliases = { "npc" }, usage = "polarbear (-r)", - desc = "Sets polarbear modifiers.", + desc = "", modifiers = { "polarbear" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java index a29688b92..c94c75b46 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java @@ -35,7 +35,7 @@ public class PufferFishTrait extends Trait { @Command( aliases = { "npc" }, usage = "pufferfish (--state state)", - desc = "Sets pufferfish modifiers", + desc = "", modifiers = { "pufferfish" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java index c0db15362..677fb6cd9 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java @@ -71,7 +71,7 @@ public class ShulkerTrait extends Trait { @Command( aliases = { "npc" }, usage = "shulker (--peek [peek] --color [color])", - desc = "Sets shulker modifiers.", + desc = "", modifiers = { "shulker" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java index fe7a58fd7..70ac84561 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java @@ -55,7 +55,7 @@ public class SnifferTrait extends Trait { @Command( aliases = { "npc" }, usage = "sniffer (--state [state])", - desc = "Sets sniffer modifiers", + desc = "", modifiers = { "sniffer" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/SnowmanTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/SnowmanTrait.java index 7b47aca74..be4130a20 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/SnowmanTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/SnowmanTrait.java @@ -57,7 +57,7 @@ public class SnowmanTrait extends Trait { @Command( aliases = { "npc" }, usage = "snowman (-d[erp]) (-f[orm snow])", - desc = "Sets snowman modifiers.", + desc = "", modifiers = { "snowman" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/SpellcasterTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/SpellcasterTrait.java index bd41e25e6..2a02cd887 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/SpellcasterTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/SpellcasterTrait.java @@ -47,7 +47,7 @@ public class SpellcasterTrait extends Trait { @Command( aliases = { "npc" }, usage = "spellcaster (--spell spell)", - desc = "Sets spellcaster modifiers", + desc = "", modifiers = { "spellcaster" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java index b36d432fa..98e63dab8 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java @@ -69,9 +69,9 @@ public class TropicalFishTrait extends Trait { @Command( aliases = { "npc" }, - usage = "tfish (--body color) (--pattern pattern) (--patterncolor color)", - desc = "Sets tropical fish modifiers", - modifiers = { "tfish" }, + usage = "tropicalfish (--body color) (--pattern pattern) (--patterncolor color)", + desc = "", + modifiers = { "tropicalfish" }, min = 1, max = 1, permission = "citizens.npc.tropicalfish") diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java index 8694193b4..c8dac730a 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java @@ -63,7 +63,7 @@ public class VillagerTrait extends Trait { @Command( aliases = { "npc" }, usage = "villager (--level level) (--type type) (--profession profession) -s(hake head)", - desc = "Sets villager modifiers", + desc = "", modifiers = { "villager" }, min = 1, max = 1, diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/WardenTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/WardenTrait.java index 40e52b372..76b836ce2 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/WardenTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/WardenTrait.java @@ -50,7 +50,7 @@ public class WardenTrait extends Trait { @Command( aliases = { "npc" }, usage = "warden dig|emerge|roar|anger [entity uuid/player name] [anger]", - desc = "Sets warden modifiers", + desc = "", modifiers = { "warden" }, min = 1, max = 4, diff --git a/main/src/main/java/net/citizensnpcs/util/Messages.java b/main/src/main/java/net/citizensnpcs/util/Messages.java index 1993e18f0..72c554926 100644 --- a/main/src/main/java/net/citizensnpcs/util/Messages.java +++ b/main/src/main/java/net/citizensnpcs/util/Messages.java @@ -56,7 +56,6 @@ public class Messages { public static final String COLLIDABLE_SET = "citizens.commands.npc.collidable.set"; public static final String COLLIDABLE_UNSET = "citizens.commands.npc.collidable.unset"; public static final String COMMAND_ADDED = "citizens.commands.npc.command.command-added"; - public static final String COMMAND_AGE_HELP = "citizens.commands.npc.age.help"; public static final String COMMAND_COST_SET = "citizens.commands.npc.command.cost-set"; public static final String COMMAND_DESCRIBE_TEMPLATE = "citizens.commands.npc.command.describe-format"; public static final String COMMAND_EXPERIENCE_COST_SET = "citizens.commands.npc.command.experience-cost-set"; @@ -272,7 +271,6 @@ public class Messages { public static final String NPC_ALREADY_SELECTED = "citizens.commands.npc.select.already-selected"; public static final String NPC_ALREADY_SPAWNED = "citizens.commands.npc.spawn.already-spawned"; public static final String NPC_COMMAND_ERRORS_CLEARED = "citizens.commands.npc.command.errors-cleared"; - public static final String NPC_COMMAND_HELP = "citizens.commands.npc.command.help"; public static final String NPC_COMMAND_INVALID_ERROR_MESSAGE = "citizens.commands.npc.command.invalid-error-message"; public static final String NPC_COPIED = "citizens.commands.npc.copy.copied"; public static final String NPC_CREATE_INVALID_MOBTYPE = "citizens.commands.npc.create.invalid-mobtype"; @@ -420,7 +418,7 @@ public class Messages { public static final String TOGGLED_USING_HELD_ITEM = "citizens.commands.npc.useitem.held-item-toggled"; public static final String TOGGLED_USING_OFFHAND_ITEM = "citizens.commands.npc.useitem.offhand-item-toggled"; public static final String TPTO_SUCCESS = "citizens.commands.npc.tpto.success"; - public static final String TRACKING_RANGE_SET = "citizens.commands.npc.trackingdistance.set"; + public static final String TRACKING_RANGE_SET = "citizens.commands.npc.trackingrange.set"; public static final String TRAIT_LOAD_FAILED = "citizens.notifications.trait-load-failed"; public static final String TRAIT_NOT_CONFIGURABLE = "citizens.commands.traitc.not-configurable"; public static final String TRAIT_NOT_FOUND = "citizens.commands.traitc.missing"; @@ -428,7 +426,6 @@ public class Messages { public static final String TRAIT_ONSPAWN_FAILED = "citizens.notifications.trait-onspawn-failed"; public static final String TRAITS_ADDED = "citizens.commands.trait.added"; public static final String TRAITS_FAILED_TO_ADD = "citizens.commands.trait.failed-to-add"; - public static final String TRAITS_FAILED_TO_CHANGE = "citizens.commands.trait.failed-to-change"; public static final String TRAITS_REMOVED = "citizens.commands.trait.removed"; public static final String TRIED_TO_MOUNT_NPC_ON_ITSELF = "citizens.commands.npc.mount.mount-on-itself"; public static final String TROPICALFISH_BODY_COLOR_SET = "citizens.commands.npc.tropicalfish.body-color-set"; diff --git a/main/src/main/resources/en.json b/main/src/main/resources/en.json index e5f1b7738..14104fefe 100644 --- a/main/src/main/resources/en.json +++ b/main/src/main/resources/en.json @@ -1,5 +1,7 @@ { "citizens.changed-implementation" : "Citizens implementation changed, disabling plugin.", + "citizens.commands.citizens.reload.description" : "Load Citizens fresh from disk, without saving first", + "citizens.commands.citizens.save.description" : "Save NPCs", "citizens.commands.citizens.save.help" : "Use the -a flag to save async (off the main server thread).", "citizens.commands.console-error" : "Please report this error: [See console]", "citizens.commands.errors.missing-world" : "World not found.", @@ -7,11 +9,13 @@ "citizens.commands.help.command-missing" : "Command /{0} not found.", "citizens.commands.help.header" : "Help", "citizens.commands.id-not-found" : "Couldn''t find any NPC with ID [[{0}]].", - "citizens.commands.invalid.class" : "Invalid external commands class.", "citizens.commands.invalid-mobtype" : "[[{0}]] is not a valid mobtype.", "citizens.commands.invalid-number" : "That is not a valid number.", + "citizens.commands.invalid.class" : "Invalid external commands class.", + "citizens.commands.npc.activationrange.description" : "Sets the activation range", "citizens.commands.npc.activationrange.set" : "Activation range set to [[{0}]].", "citizens.commands.npc.age.cannot-be-aged" : "The mob type {0} cannot be aged.", + "citizens.commands.npc.age.description" : "Set the age of an NPC", "citizens.commands.npc.age.help" : "Can only be used on entities that can become babies. Use the [[-l]] flag to lock age over time (note: relogs may be required to see this).", "citizens.commands.npc.age.invalid-age" : "Invalid age. Valid ages are adult, baby, number between -24000 and 0", "citizens.commands.npc.age.locked" : "Age locked.", @@ -20,27 +24,37 @@ "citizens.commands.npc.age.set-baby" : "[[{0}]] is now a baby.", "citizens.commands.npc.age.set-normal" : "[[{0}]] is now age [[{1}]].", "citizens.commands.npc.age.unlocked" : "Age unlocked.", + "citizens.commands.npc.aggressive.description" : "Sets the aggressive status of the entity", + "citizens.commands.npc.ai.description" : "Sets whether the NPC should use vanilla AI", "citizens.commands.npc.ai.started" : "Now using Minecraft AI.", "citizens.commands.npc.ai.stopped" : "No longer using Minecraft AI.", "citizens.commands.npc.allay.dancing-set" : "[[{0}]] is now dancing.", "citizens.commands.npc.allay.dancing-unset" : "[[{0}]] is no longer dancing.", + "citizens.commands.npc.allay.description" : "Sets allay modifiers", "citizens.commands.npc.anchor.added" : "Anchor added.", "citizens.commands.npc.anchor.already-exists" : "The anchor [[{0}]] already exists.", + "citizens.commands.npc.anchor.description" : "Changes/Saves/Lists NPC''s location anchor(s)", "citizens.commands.npc.anchor.invalid-name" : "Invalid anchor name.", "citizens.commands.npc.anchor.missing" : "The anchor [[{1}]] does not exist.", "citizens.commands.npc.anchor.removed" : "Anchor removed.", + "citizens.commands.npc.armorstand.description" : "Edit armorstand properties", + "citizens.commands.npc.axolotl.description" : "Sets axolotl modifiers", "citizens.commands.npc.axolotl.invalid-variant" : "Invalid variant. Valid variants are [[{0}]].", "citizens.commands.npc.axolotl.playing-dead" : "[[{0}]] now playing dead.", "citizens.commands.npc.axolotl.playing-dead-stopped" : "[[{0}]] no longer playing dead.", "citizens.commands.npc.axolotl.variant-set" : "Variant set to [[{0}]].", "citizens.commands.npc.bee.anger-set" : "Anger set to [[{0}]].", "citizens.commands.npc.bee.bee-stung" : "[[{0}]] has now stung.", + "citizens.commands.npc.bee.description" : "Sets bee modifiers", "citizens.commands.npc.bee.has-nectar" : "[[{0}]] has nectar.", "citizens.commands.npc.bee.invalid-anger" : "Anger should be above zero. ", "citizens.commands.npc.bee.no-nectar" : "[[{0}]] has no nectar.", "citizens.commands.npc.bee.not-stung" : "[[{0}]] has no longer stung.", + "citizens.commands.npc.bossbar.description" : "Edit bossbar properties", + "citizens.commands.npc.camel.description" : "Sets camel modifiers", "citizens.commands.npc.camel.pose-set" : "Pose set to [[{0}]].", "citizens.commands.npc.cat.collar-color-set" : "Collar color set to [[{0}]].", + "citizens.commands.npc.cat.description" : "Sets cat modifiers", "citizens.commands.npc.cat.invalid-collar-color" : "Invalid collar color specified. Valid types are [[{0}]].", "citizens.commands.npc.cat.invalid-type" : "Invalid type specified. Valid types are [[{0}]].", "citizens.commands.npc.cat.lying-start" : "[[{0}]] started lying down.", @@ -48,18 +62,21 @@ "citizens.commands.npc.cat.sitting-start" : "[[{0}]] started sitting.", "citizens.commands.npc.cat.sitting-stop" : "[[{0}]] stopped sitting.", "citizens.commands.npc.cat.type-set" : "Type set to [[{0}]].", + "citizens.commands.npc.chunkload.description" : "Toggle the NPC forcing chunks to stay loaded", "citizens.commands.npc.chunkload.set" : "[[{0}]] will now force chunks to be loaded.", "citizens.commands.npc.chunkload.unset" : "[[{0}]] will no longer force chunks to be loaded.", + "citizens.commands.npc.collidable.description" : "Toggles an NPC''s collidability", "citizens.commands.npc.collidable.set" : "[[{0}]] will now collide with entities.", "citizens.commands.npc.collidable.unset" : "[[{0}]] will no longer collide with entities.", - "citizens.commands.npc.command.cycle-set": "[[{0}]] will now cycle through commands on player click", - "citizens.commands.npc.command.cycle-unset": "[[{0}]] will no longer cycle through commands on player click", + "citizens.commands.npc.command.cleared" : "[[{0}]]''s commands cleared.", "citizens.commands.npc.command.command-added" : "Command [[{0}]] added with id [[{1}]].", "citizens.commands.npc.command.command-removed" : "Command [[{0}]] removed.", - "citizens.commands.npc.command.cleared" : "[[{0}]]''s commands cleared.", "citizens.commands.npc.command.cost-missing" : "Missing cost to set.", "citizens.commands.npc.command.cost-set" : "Set cost per click to [[{0}]].", + "citizens.commands.npc.command.cycle-set": "[[{0}]] will now cycle through commands on player click", + "citizens.commands.npc.command.cycle-unset": "[[{0}]] will no longer cycle through commands on player click", "citizens.commands.npc.command.describe-format" : "
- {0} [{1}s] [cost:{2}] [exp:{3}] [-]", + "citizens.commands.npc.command.description" : "Controls commands which will be run when clicking on an NPC", "citizens.commands.npc.command.errors-cleared" : "Errors cleared for [[{0}]].", "citizens.commands.npc.command.experience-cost-set" : "Set xp level cost per click to [[{0}]].", "citizens.commands.npc.command.help" : "
Use the [[-l]] flag to make the command run on left click, [[-r]] on right click (default).
Set the per-player cooldown before the command can be used again using [[--cooldown]] (in [[seconds]]).
Set the server-wide cooldown in seconds using [[--gcooldown]].
[[--delay]] will wait the specified amount in [[ticks]] before executing the command.
[[--permissions]] will set the command to require specific permissions (separate multiple with commas).
[[--n]] will only let the player run the command that number of times.
Use [[-o]] to temporarily execute the command as an op and [[-p]] to run the command as the clicking player instead of the server.
To give the player temporary permissions instead of op, use [[/npc command permissions]].
Set the cost of each click with [[/npc command cost/expcost/itemcost]].
Commands can be executed one by one instead of all at once by using [[/npc command sequential]] or [[/npc command cycle]].", @@ -73,56 +90,79 @@ "citizens.commands.npc.command.persist-sequence-set" : "Command sequences will now be saved across server restarts.", "citizens.commands.npc.command.persist-sequence-unset" : "Command sequences will no longer be saved across server restarts.", "citizens.commands.npc.command.right-hand-header" : "Commands to run on [[right click]]:", + "citizens.commands.npc.command.temporary-permissions-set" : "Temporary permissions set to [[{0}]].", + "citizens.commands.npc.command.unknown-id" : "Unknown command id [[{0}]] for this NPC.", "citizens.commands.npc.commands.random-set" : "Commands will now execute at random.", "citizens.commands.npc.commands.random-unset" : "Commands will no longer execute at random.", "citizens.commands.npc.commands.sequential-set" : "Commands will now execute sequentially.", "citizens.commands.npc.commands.sequential-unset" : "Commands will no longer execute sequentially.", - "citizens.commands.npc.command.temporary-permissions-set" : "Temporary permissions set to [[{0}]].", - "citizens.commands.npc.command.unknown-id" : "Unknown command id [[{0}]] for this NPC.", + "citizens.commands.npc.configgui.description": "Display NPC configuration GUI", + "citizens.commands.npc.controllable.description" : "Toggles whether the NPC can be ridden and controlled", "citizens.commands.npc.controllable.not-controllable" : "[[{0}]] is not controllable.", "citizens.commands.npc.controllable.removed" : "[[{0}]] can no longer be controlled.", "citizens.commands.npc.controllable.set" : "[[{0}]] can now be controlled.", + "citizens.commands.npc.copier.description" : "Toggle the NPC copier", "citizens.commands.npc.copy.copied" : "[[{0}]] has been copied.", + "citizens.commands.npc.copy.description" : "Copies an NPC", + "citizens.commands.npc.create.description" : "Create a new NPC", "citizens.commands.npc.create.invalid-location" : "Location could not be parsed or was not found.", "citizens.commands.npc.create.invalid-mobtype" : "[[{0}]] is not a valid mob type.", "citizens.commands.npc.create.mobtype-missing" : "[[{0}]] is not supported as an NPC mobtype.", "citizens.commands.npc.create.no-player-for-spawn" : "No player could be found by that name to spawn an NPC at.", "citizens.commands.npc.create.npc-name-too-long" : "NPC names cannot be longer than [[{0}]] characters. The name has been shortened.", + "citizens.commands.npc.debug.description" : "Display debugging information", "citizens.commands.npc.deselect" : "Deselected NPC.", + "citizens.commands.npc.deselect.description" : "Deselect currently selected NPC", + "citizens.commands.npc.despawn.description" : "Despawn a NPC", "citizens.commands.npc.despawn.despawned" : "You despawned [[{0}]].", + "citizens.commands.npc.drops.description" : "Edit an NPC''s drops", + "citizens.commands.npc.endercrystal.description" : "Edit endercrystal modifiers", "citizens.commands.npc.endercrystal.not-showing-bottom" : "[[{0}]] is no longer showing its base.", "citizens.commands.npc.endercrystal.showing-bottom" : "[[{0}]] is now showing its base.", + "citizens.commands.npc.enderdragon.description" : "Sets enderdragon modifiers", "citizens.commands.npc.enderman.angry-set" : "[[{0}]] is now angry.", "citizens.commands.npc.enderman.angry-unset" : "[[{0}]] is no longer angry.", + "citizens.commands.npc.enderman.description" : "Set enderman modifiers", + "citizens.commands.npc.equip.description" : "Toggle the equipment editor", + "citizens.commands.npc.flyable.description" : "Toggles or sets an NPC''s flyable status", "citizens.commands.npc.flyable.set" : "[[{0}]] is now flyable.", "citizens.commands.npc.flyable.unset" : "[[{0}]] is no longer flyable.", + "citizens.commands.npc.follow.description" : "Toggles NPC following you", "citizens.commands.npc.follow.margin-set" : "[[{0}]]''s will now follow [[{1}]] blocks away from the target.", "citizens.commands.npc.follow.set" : "[[{0}]] is now following [[{1}]]. ", "citizens.commands.npc.follow.unset" : "[[{0}]] is no longer following anyone.", "citizens.commands.npc.fox.crouching-set" : "[[{0}]] is now crouching.", "citizens.commands.npc.fox.crouching-unset" : "[[{0}]] is no longer crouching.", + "citizens.commands.npc.fox.description" : "Sets fox modifiers", "citizens.commands.npc.fox.fox-type-set" : "Fox type set to [[{0}]].", "citizens.commands.npc.fox.invalid-fox-type" : "Invalid fox type specified. Valid types are [[{0}]].", "citizens.commands.npc.fox.sitting-set" : "[[{0}]] is now sitting.", "citizens.commands.npc.fox.sitting-unset" : "[[{0}]] is no longer sitting.", "citizens.commands.npc.fox.sleeping-set" : "[[{0}]] is now sleeping.", "citizens.commands.npc.fox.sleeping-unset" : "[[{0}]] is no longer sleeping.", + "citizens.commands.npc.frog.description" : "Sets frog modifiers", "citizens.commands.npc.frog.invalid-variant" : "Invalid frog variant. Valid variants are [[{0}]].", "citizens.commands.npc.frog.variant-set" : "Variant set to [[{0}]].", "citizens.commands.npc.gamemode.describe" : "{0}''s gamemode is [[{1}]].", + "citizens.commands.npc.gamemode.description": "Changes the gamemode", "citizens.commands.npc.gamemode.invalid" : "{0} is not a valid gamemode.", "citizens.commands.npc.gamemode.set" : "Gamemode set to [[{0}]].", "citizens.commands.npc.glowing.color-set" : "[[{0}]]''s glowing color set to {1}]].", + "citizens.commands.npc.glowing.description" : "Toggles an NPC''s glowing status", "citizens.commands.npc.glowing.player-only" : "Glowing color can only be changed for player-type NPCs.", "citizens.commands.npc.glowing.set" : "[[{0}]] is now glowing.", "citizens.commands.npc.glowing.unset" : "[[{0}]] is no longer glowing.", + "citizens.commands.npc.goat.description" : "Sets goat modifiers", "citizens.commands.npc.goat.horns-set" : "[[{0}]]''s horns set to left: [[{1}]] right: [[{2}]]", + "citizens.commands.npc.gravity.description" : "Toggles gravity", "citizens.commands.npc.gravity.disabled" : "Gravity [[disabled]].", "citizens.commands.npc.gravity.enabled" : "Gravity [[enabled]].", "citizens.commands.npc.guardian.elder-set" : "[[{0}]] is now an elder guardian.", "citizens.commands.npc.guardian.elder-unset" : "[[{0}]] is no longer an elder guardian.", + "citizens.commands.npc.hitbox.description" : "Sets the NPC hitbox", "citizens.commands.npc.hitbox.set" : "Hitbox set to [[{0}]].", "citizens.commands.npc.hologram.cleared" : "Hologram lines cleared.", + "citizens.commands.npc.hologram.description" : "Controls NPC hologram text", "citizens.commands.npc.hologram.direction-set" : "Direction set to [[{0}]].", "citizens.commands.npc.hologram.invalid-text-id" : "Invalid line number.", "citizens.commands.npc.hologram.line-add" : "Added a new hologram line: [[{0}]].", @@ -133,9 +173,10 @@ "citizens.commands.npc.hologram.text-describe-header" : "[[{0}]]''s hologram text (in bottom-up order):", "citizens.commands.npc.hologram.text-missing" : "Missing text to add.", "citizens.commands.npc.hologram.text-removed" : "Removed hologram text.", - "citizens.commands.npc.hologram.view-range-set" : "[[{0}]]''s hologram view range set to [[{1}]] blocks.", "citizens.commands.npc.hologram.text-set" : "Set hologram text line [[{0}]] to [[{1}]].", + "citizens.commands.npc.hologram.view-range-set" : "[[{0}]]''s hologram view range set to [[{1}]] blocks.", "citizens.commands.npc.home.delay-set" : "Delay before returning home set to [[{0}]] ticks.", + "citizens.commands.npc.home.description" : "Controls home location", "citizens.commands.npc.home.distance-set" : "Distance before returning home set to [[{0}]] blocks.", "citizens.commands.npc.home.home-set" : "Home set to [[{0}]].", "citizens.commands.npc.home.pathfind-set" : "[[{0}]] will now try to pathfind home.", @@ -144,21 +185,32 @@ "citizens.commands.npc.horse.chest-unset" : "The horse is no longer carrying a chest.", "citizens.commands.npc.horse.color-set" : "The horse''s color was set to [[{0}]]. ", "citizens.commands.npc.horse.describe" : "The horse''s color is [[{0}]], the type is [[{1}]] and the style is [[{2}]].", + "citizens.commands.npc.horse.description" : "Sets horse and horse-like entity modifiers", "citizens.commands.npc.horse.invalid-color" : "Invalid horse color given. Valid colors are: [[{0}]].", "citizens.commands.npc.horse.invalid-style" : "Invalid horse style given. Valid styles are: [[{0}]].", "citizens.commands.npc.horse.invalid-type" : "Invalid horse type given. Valid types are: [[{0}]].", "citizens.commands.npc.horse.style-set" : "The horse''s style was set to [[{0}]].", + "citizens.commands.npc.hurt.description" : "Damages the NPC", "citizens.commands.npc.hurt.not-damageable" : "NPC type [[{0}]] cannot be hurt.", "citizens.commands.npc.hurt.protected" : "NPC is protected and cannot be hurt. [[Click to unprotect", - "citizens.commands.npc.item.item-set" : "NPC item set to [[{0}]].", + "citizens.commands.npc.id.description" : "Sends the selected NPC''s ID to the sender", + "citizens.commands.npc.inventory.description" : "Show''s an NPC''s inventory", + "citizens.commands.npc.item.description": "Sets the NPC''s item", + "citizens.commands.npc.item.item-set" : "[[{0}]]''s item set to [[{1}]].", "citizens.commands.npc.item.unknown-material" : "Unknown material given.", + "citizens.commands.npc.jump.description": "Makes the NPC jump", + "citizens.commands.npc.knockback.description" : "Toggle NPC knockback", "citizens.commands.npc.knockback.set" : "[[{0}]] will now take knockback.", "citizens.commands.npc.knockback.unset" : "[[{0}]] will no longer take knockback.", + "citizens.commands.npc.leashable.description" : "Toggles leashability", "citizens.commands.npc.leashable.set" : "[[{0}]] is now leashable.", "citizens.commands.npc.leashable.stopped" : "[[{0}]] is no longer leashable.", + "citizens.commands.npc.list.description" : "List NPCs", "citizens.commands.npc.llama.color-set" : "Llama color set to [[{0}]].", + "citizens.commands.npc.llama.description" : "Sets llama modifiers", "citizens.commands.npc.llama.invalid-color" : "Invalid llama color given. Valid colors are: [[{0}]].", "citizens.commands.npc.llama.strength-set" : "Llama strength set to [[{0}]].", + "citizens.commands.npc.lookclose.description" : "Toggle whether a NPC will look when a player is near", "citizens.commands.npc.lookclose.disable-when-navigating" : "[[{0}]] will no longer look close when navigating.", "citizens.commands.npc.lookclose.enable-when-navigating" : "[[{0}]] will now look close when navigating.", "citizens.commands.npc.lookclose.error-random-range" : "Invalid range [[{0}]]. Use the format `min,max`.", @@ -182,30 +234,42 @@ "citizens.commands.npc.lookclose.stopped" : "[[{0}]] will no longer rotate when players are nearby.", "citizens.commands.npc.lookclose.target-npcs-set" : "[[{0}]] will now look at NPCs.", "citizens.commands.npc.lookclose.target-npcs-unset" : "[[{0}]] will no longer look at NPCs.", + "citizens.commands.npc.metadata.description" : "Manages NPC metadata", "citizens.commands.npc.metadata.set" : "[[{0}]] set to [[{1}]].", "citizens.commands.npc.metadata.unset" : "Removed [[{0}]] from [[{1}]].", + "citizens.commands.npc.minecart.description" : "Sets minecart item", "citizens.commands.npc.minecart.set" : "[[{0}]] now has item [[{1}]]:[[{2}]] with offset [[{3}]].", + "citizens.commands.npc.mirror.description" : "Controls mirroring of NPC skins and more", "citizens.commands.npc.mirror.namemirror-set" : "[[{0}]] will now mirror player names.", "citizens.commands.npc.mirror.namemirror-unset" : "[[{0}]] will no longer mirror player names.", "citizens.commands.npc.mirror.set" : "[[{0}]] is now mirroring player skins.", "citizens.commands.npc.mirror.unset" : "[[{0}]] is no longer mirroring player skins.", + "citizens.commands.npc.mount.description" : "Mounts a controllable NPC", "citizens.commands.npc.mount.failed" : "Couldn''t mount [[{0}]].", "citizens.commands.npc.mount.mount-on-itself" : "Can''t mount NPC on itself.", "citizens.commands.npc.mount.must-be-spawned" : "Couldn''t mount [[{0}]]. Make sure that the destination NPC ID is correct and it is spawned.", + "citizens.commands.npc.moveto.description" : "Teleports a NPC to a given location", "citizens.commands.npc.moveto.format" : "Format is x:y:z(:world) or x y z( world).", "citizens.commands.npc.moveto.teleported" : "[[{0}]] teleported to [[{1}]].", + "citizens.commands.npc.mushroomcow.description" : "Sets mushroom cow modifiers", "citizens.commands.npc.mushroomcow.invalid-variant" : "Invalid variant. Valid values are: [[{0}]].", "citizens.commands.npc.mushroomcow.variant-set" : "[[{0}]]''s variant set to [[{1}]].", - "citizens.commands.npc.nameplate.set" : "Nameplate visibility set to [[{0}]].", + "citizens.commands.npc.name.description": "Toggle nameplate visibility, or only show names on hover", + "citizens.commands.npc.nameplate.set" : "Nameplate visibility set to [[{0}]].", "citizens.commands.npc.ocelot.deprecated" : "Ocelot types don''t work in this version of Minecraft. Use [[/npc type cat]] if you want to change the colour.", + "citizens.commands.npc.ocelot.description" : "Set the ocelot type of an NPC and whether it is sitting", "citizens.commands.npc.ocelot.invalid-type" : "Invalid ocelot type. Valid types are: [[{0}]].", "citizens.commands.npc.owner.already-owner" : "{0} is already the owner of [[{1}]].", + "citizens.commands.npc.owner.description" : "Set the owner of an NPC", "citizens.commands.npc.owner.owner" : "[[{0}]]''s owner is [[{1}]].", "citizens.commands.npc.owner.set" : "[[{1}]] is now the owner of [[{0}]].", "citizens.commands.npc.owner.set-server" : "[[The server]] is now the owner of [[{0}]].", + "citizens.commands.npc.packet.description" : "Controls packet NPC settings", "citizens.commands.npc.packet.disabled" : "[[{0}]] is no longer a packet NPC.", "citizens.commands.npc.packet.enabled" : "[[{0}]] is now a packet NPC.", "citizens.commands.npc.painting.art-set" : "[[{0}]]''s art set to [[{1}]].", + "citizens.commands.npc.painting.description" : "Set painting modifiers", + "citizens.commands.npc.panda.description" : "Sets panda modifiers", "citizens.commands.npc.panda.eating-set" : "[[{0}]] started eating.", "citizens.commands.npc.panda.eating-unset" : "[[{0}]] stopped eating.", "citizens.commands.npc.panda.hidden-gene-set" : "Hidden gene set to [[{0}]].", @@ -217,77 +281,108 @@ "citizens.commands.npc.panda.sneezing" : "[[{0}]] started sneezing.", "citizens.commands.npc.panda.sneezing-stopped" : "[[{0}]] stopped sneezing.", "citizens.commands.npc.panda.stopped-sitting" : "[[{0}]] stopped sitting.", + "citizens.commands.npc.panimate.description" : "Plays a player animation", "citizens.commands.npc.panimate.unknown-animation" : "Unknown animation. Valid animations are [[{0}]].", + "citizens.commands.npc.parrot.description" : "Sets parrot modifiers", "citizens.commands.npc.parrot.invalid-variant" : "Invalid parrot variant. Valid variants are [[{0}]].", "citizens.commands.npc.parrot.variant-set" : "Variant set to [[{0}]].", + "citizens.commands.npc.passive.description" : "Sets whether an NPC damages other entities or not", "citizens.commands.npc.passive.set" : "[[{0}]] will no longer damage entities.", "citizens.commands.npc.passive.unset" : "[[{0}]] will now damage entities.", + "citizens.commands.npc.path.description" : "Toggle the waypoint editor", "citizens.commands.npc.pathfindingrange.set" : "Pathfinding range set to [[{0}]].", "citizens.commands.npc.pathopt.attack-range-set" : "[[{0}]]''s attack range set to [[{1}]].", "citizens.commands.npc.pathopt.avoid-water-set" : "[[{0}]] will now avoid water.", "citizens.commands.npc.pathopt.avoid-water-unset" : "[[{0}]] will no longer avoid water.", + "citizens.commands.npc.pathopt.description" : "Sets an NPC''s pathfinding options", "citizens.commands.npc.pathopt.distance-margin-set" : "[[{0}]]''s pathfinding distance margin set to [[{1}]].", "citizens.commands.npc.pathopt.falling-distance-set" : "[[{0}]]''s falling distance set to [[{1}]].", "citizens.commands.npc.pathopt.open-doors-set" : "[[{0}]] will now try to open doors.", "citizens.commands.npc.pathopt.open-doors-unset" : "[[{0}]] will no longer try to open doors.", "citizens.commands.npc.pathopt.path-distance-margin-set" : "[[{0}]]''s pathfinding path distance margin set to [[{1}]].", "citizens.commands.npc.pathopt.stationary-ticks-set" : "[[{0}]]''s maximum stationary ticks set to [[{1}]].", - "citizens.commands.npc.pathopt.use-new-finder" : "[[{0}]]''s use new finder set to [[{1}]].", + "citizens.commands.npc.pathopt.use-new-finder" : "[[{0}]]''s use new finder set to [[{1}]].", + "citizens.commands.npc.pathto.description" : "Starts pathfinding to a certain location", + "citizens.commands.npc.pausepathfinding.description" : "Sets pathfinding pause", "citizens.commands.npc.pausepathfinding.pause-range-set" : "[{0}]] will now pause pathfinding when a player is within [[{1}]] blocks.", "citizens.commands.npc.pausepathfinding.pause-ticks-set" : "[[{0}]] will now pause pathfinding for [[{1}]] ticks at a time.", "citizens.commands.npc.pausepathfinding.rightclick-set" : "[[{0}]] will now pause pathfinding on right click.", "citizens.commands.npc.pausepathfinding.rightclick-unset" : "[[{0}]] will no longer pause pathfinding on right click.", + "citizens.commands.npc.phantom.description" : "Sets phantom modifiers", "citizens.commands.npc.phantom.phantom-set" : "Size set to [[{0}]].", + "citizens.commands.npc.pickupitems.description" : "Allow NPC to pick up items", "citizens.commands.npc.pickupitems.set" : "[[{0}]] will now pickup items.", "citizens.commands.npc.pickupitems.unset" : "[[{0}]] will no longer pickup items.", "citizens.commands.npc.piglin.dancing-set" : "[[{0}]] is now dancing.", "citizens.commands.npc.piglin.dancing-unset" : "[[{0}]] is no longer dancing.", + "citizens.commands.npc.piglin.description" : "Sets piglin modifiers", "citizens.commands.npc.playerfilter.added" : "[[{0}]] added to [[{1}]]''s filter players.", "citizens.commands.npc.playerfilter.allowlist-set" : "[[{0}]] filter mode set to allowlist.", + "citizens.commands.npc.playerfilter.applyrange-set": "[[{0}]]''s filter will now apply within [[{1}]] blocks.", "citizens.commands.npc.playerfilter.cleared" : "[[{0}]]''s filter cleared.", "citizens.commands.npc.playerfilter.denylist-set" : "[[{0}]] filter mode set to denylist. ", + "citizens.commands.npc.playerfilter.description" : "Manages the NPC''s player filter", "citizens.commands.npc.playerfilter.emptied" : "[[{0}]]''s filter was emptied.", - "citizens.commands.npc.playerfilter.applyrange-set": "[[{0}]]''s filter will now apply within [[{1}]] blocks.", "citizens.commands.npc.playerfilter.group-added" : "[[{0}]] added to [[{1}]]''s filter groups.", "citizens.commands.npc.playerfilter.group-removed" : "[[{0}]] removed from [[{1}]]''s filter players. ", "citizens.commands.npc.playerfilter.removed" : "[[{0}]] removed from [[{1}]]''s filter players. ", "citizens.commands.npc.playerlist.added" : "Added [[{0}]] to the player list.", + "citizens.commands.npc.playerlist.description" : "Sets whether the NPC is put in the playerlist", "citizens.commands.npc.playerlist.removed" : "Removed [[{0}]] from the player list. ", + "citizens.commands.npc.playsound.description" : "Plays a sound at the NPC''s location", + "citizens.commands.npc.polarbear.description" : "Sets polarbear modifiers", "citizens.commands.npc.polarbear.rearing-set" : "[[{0}]] is now rearing.", "citizens.commands.npc.polarbear.rearing-unset" : "[[{0}]] is no longer rearing.", "citizens.commands.npc.pose.added" : "Pose added.", "citizens.commands.npc.pose.already-exists" : "The pose [[{0}]] already exists.", "citizens.commands.npc.pose.default-pose-set" : "Default pose set to [[{0}]].", + "citizens.commands.npc.pose.description" : "Manage NPC poses", "citizens.commands.npc.pose.invalid-name" : "Invalid pose name.", "citizens.commands.npc.pose.missing" : "The pose [[{0}]] does not exist.", "citizens.commands.npc.pose.removed" : "Pose removed.", + "citizens.commands.npc.powered.description" : "Toggle a creeper NPC as powered", "citizens.commands.npc.powered.set" : "[[{0}]] will now be powered.", "citizens.commands.npc.powered.stopped" : "[[{0}]] will no longer be powered.", + "citizens.commands.npc.profession.description" : "Set a NPC''s profession", "citizens.commands.npc.profession.invalid-profession" : "[[{0}]] is not a valid profession. Try one of the following: [[{1}]].", "citizens.commands.npc.profession.set" : "[[{0}]] is now a [[{1}]].", + "citizens.commands.npc.pufferfish.description" : "Sets pufferfish modifiers", "citizens.commands.npc.pufferfish.state-set" : "State set to [[{0}]].", "citizens.commands.npc.rabbittype.invalid-type" : "Invalid rabbit type. Try one of the following: [[{0}]].", "citizens.commands.npc.rabbittype.type-set" : "[[{0}]]''s rabbit type has been set to [[{1}]]", + "citizens.commands.npc.rabbittype.description" : "Set the NPC''s rabbit type", + "citizens.commands.npc.remove.description" : "Remove a NPC", "citizens.commands.npc.remove.npcs-removed" : "NPCs removed. ", "citizens.commands.npc.remove.removed" : "You permanently removed [[{0}]] ID [[{1}]] (undo).", "citizens.commands.npc.remove.removed-all" : "You permanently removed all NPCs.", + "citizens.commands.npc.rename.description" : "Rename a NPC", "citizens.commands.npc.rename.renamed" : "You renamed [[{0}]] to [[{1}]].", "citizens.commands.npc.respawn.delay-set" : "Respawn delay set to [[{0}]] ticks.", "citizens.commands.npc.respawn.describe" : "Respawn delay is currently [[{0}]] ticks.", + "citizens.commands.npc.respawn.description" : "Sets an NPC''s respawn delay", + "citizens.commands.npc.rotate.description" : "Rotate NPC", "citizens.commands.npc.select.already-selected" : "You already have that NPC selected. ", + "citizens.commands.npc.select.description" : "Select a NPC with the given ID or name", + "citizens.commands.npc.setequipment.description" : "Sets equipment via commands", "citizens.commands.npc.setequipment.set" : "Set [[{0}]] to [[{1}]].", "citizens.commands.npc.sheep.color-set" : "The sheep''s color was set to [[{0}]].", + "citizens.commands.npc.sheep.description" : "Sets sheep modifiers", "citizens.commands.npc.sheep.invalid-color" : "Invalid sheep color given. Valid colors are: [[{0}]]. ", + "citizens.commands.npc.shop.description" : "NPC shop edit/show", "citizens.commands.npc.shulker.color-set" : "[[{0}]]''s color set to [[{1}]].", + "citizens.commands.npc.shulker.description" : "Sets shulker modifiers", "citizens.commands.npc.shulker.invalid-color" : "Invalid shulker color given. Valid colors are: [[{0}]].", "citizens.commands.npc.shulker.peek-set" : "[[{0}]]''s peek amount set to [[{1}]].", + "citizens.commands.npc.sitting.description" : "Sets the NPC sitting", "citizens.commands.npc.sitting.set" : "[[{0}]] is now sitting at [[{1}]].", "citizens.commands.npc.sitting.unset" : "[[{0}]] is no longer sitting.", "citizens.commands.npc.size.description" : "[[{0}]]''s size is [[{1}]].", + "citizens.commands.npc.size.description" : "Sets the NPC''s size", "citizens.commands.npc.size.set" : "[[{0}]]''s size set to [[{1}]].", "citizens.commands.npc.skeletontype.invalid-type" : "Invalid skeleton type. Try one of the following: [[{0}]].", "citizens.commands.npc.skeletontype.set" : "{0}''s skeleton type set to [[{1}]].", "citizens.commands.npc.skin.cleared" : "[[{0}]]''s skin name was cleared.", + "citizens.commands.npc.skin.description" : "Sets an NPC''s skin name. Use -l to set the skin to always update to the latest", "citizens.commands.npc.skin.error-setting-url" : "Error downloading skin texture from [[{0}]]. Are you sure the URL is valid?", "citizens.commands.npc.skin.exported" : "Exported skin to [[{0}]]", "citizens.commands.npc.skin.fetching" : "Attempting to generate skin using https://mineskin.org", @@ -296,51 +391,77 @@ "citizens.commands.npc.skin.missing-skin" : "A skin name is required.", "citizens.commands.npc.skin.set" : "[[{0}]]''s skin name set to [[{1}]].", "citizens.commands.npc.skin.skin-url-set" : "Downloaded [[{0}]]''s skin from [[{1}]].", + "citizens.commands.npc.skinlayers.description" : "Sets an NPC''s skin layers visibility", + "citizens.commands.npc.sniffer.description" : "Sets sniffer modifiers", "citizens.commands.npc.sniffer.state-set" : "[[{0}]]''s state set to [[{1}]].", "citizens.commands.npc.snowman.derp-set" : "[[{0}]] is now in derp mode.", "citizens.commands.npc.snowman.derp-stopped" : "[[{0}]] is no longer in derp mode.", + "citizens.commands.npc.snowman.description" : "Sets snowman modifiers", "citizens.commands.npc.snowman.form-snow-set": "[[{0}]] will now form snow when walking.", "citizens.commands.npc.snowman.form-snow-stopped": "[[{0}]] will no longer form snow when walking.", + "citizens.commands.npc.sound.description" : "Sets an NPC''s played sounds", "citizens.commands.npc.sound.info" : "[[{0}]]''s sounds are: ambient - [[{1}]] hurt - [[{2}]] and death - [[{3}]].

Valid sounds are {4}.", "citizens.commands.npc.sound.invalid-sound" : "Invalid sound.", "citizens.commands.npc.sound.set" : "[[{0}]]''s sounds are now: ambient - [[{1}]] hurt - [[{2}]] and death - [[{3}]].", "citizens.commands.npc.spawn.already-spawned" : "[[{0}]] is already spawned at another location. Use ''/npc tphere'' to teleport the NPC to your location.", + "citizens.commands.npc.spawn.description" : "Spawn an existing NPC", "citizens.commands.npc.spawn.missing-npc-id" : "No NPC with the ID {0} exists.", "citizens.commands.npc.spawn.no-location" : "No stored location available - command must be used ingame. ", "citizens.commands.npc.spawn.spawned" : "You spawned [[{0}]]. ", + "citizens.commands.npc.speak.description" : "Says a message from the NPC", + "citizens.commands.npc.speed.description" : "Sets the movement speed of an NPC as a percentage", "citizens.commands.npc.speed.set" : "NPC speed modifier set to [[{0}]].", + "citizens.commands.npc.spellcaster.description" : "Sets spellcaster modifiers", "citizens.commands.npc.spellcaster.spell-set" : "Spell set to [[{0}]].", + "citizens.commands.npc.swim.description" : "Sets an NPC to swim or not", "citizens.commands.npc.swim.set" : "[[{0}]] will now swim in water.", "citizens.commands.npc.swim.unset" : "[[{0}]] will no longer swim in water.", + "citizens.commands.npc.target.description" : "Target a given entity", + "citizens.commands.npc.targetable.description" : "Toggles an NPC''s targetability", "citizens.commands.npc.targetable.set" : "[[{0}]] can now be targeted by mobs.", "citizens.commands.npc.targetable.unset" : "[[{0}]] can no longer be targeted by mobs.", - "citizens.commands.npc.tphere.missing-cursor-block" : "Please look at a block to teleport to.", - "citizens.commands.npc.tphere.teleported" : "[[{0}]] was teleported to {1}.", + "citizens.commands.npc.text.description" : "Toggle the text editor", + "citizens.commands.npc.tp.description" : "Teleport in front of an NPC", "citizens.commands.npc.tp.location-not-found" : "Couldn''t find the target NPC''s location.", "citizens.commands.npc.tp.teleported" : "You teleported to [[{0}]].", + "citizens.commands.npc.tphere.description" : "Teleport a NPC to your location", + "citizens.commands.npc.tphere.missing-cursor-block" : "Please look at a block to teleport to.", + "citizens.commands.npc.tphere.teleported" : "[[{0}]] was teleported to {1}.", + "citizens.commands.npc.tpto.description" : "Teleport an NPC or player to another NPC or player", "citizens.commands.npc.tpto.from-not-found" : "Source entity not found.", "citizens.commands.npc.tpto.success" : "Teleported successfully.", "citizens.commands.npc.tpto.to-not-found" : "Destination entity not found.", - "citizens.commands.npc.trackingdistance.set" : "Tracking range set to [[{0}]].", + "citizens.commands.npc.trackingrange.description" : "Sets the tracking range", + "citizens.commands.npc.trackingrange.set" : "Tracking range set to [[{0}]].", "citizens.commands.npc.tropicalfish.body-color-set" : "Body color set to [[{0}]].", + "citizens.commands.npc.tropicalfish.description" : "Sets tropical fish modifiers", "citizens.commands.npc.tropicalfish.invalid-color" : "Invalid fish color. Valid colors are: [[{0}]]", "citizens.commands.npc.tropicalfish.invalid-pattern" : "Invalid fish pattern. Valid patterns are: [[{0}]]", "citizens.commands.npc.tropicalfish.pattern-color-set" : "Pattern color set to [[{0}]].", "citizens.commands.npc.tropicalfish.pattern-set" : "Pattern set to [[{0}]].", + "citizens.commands.npc.type.description" : "Sets an NPC''s entity type", "citizens.commands.npc.type.invalid" : "[[{0}]] is not a valid type.", "citizens.commands.npc.type.set" : "[[{0}]]''s type set to [[{1}]].", + "citizens.commands.npc.undo.description" : "Undoes the last action (currently only create/remove supported)", "citizens.commands.npc.undo.successful" : "Undo successful.", "citizens.commands.npc.undo.unsuccessful" : "No commands to undo.", + "citizens.commands.npc.useitem.description" : "Sets an NPC to be using their held items", "citizens.commands.npc.useitem.held-item-toggled" : "Using held item set to [[{0}]].", "citizens.commands.npc.useitem.offhand-item-toggled" : "Using offhand item set to [[{0}]].", + "citizens.commands.npc.villager.description" : "Sets villager modifiers", "citizens.commands.npc.villager.invalid-type" : "Invalid villager type. Valid types are: [[{0}]].", "citizens.commands.npc.villager.level-set" : "Level set to [[{0}]].", "citizens.commands.npc.villager.type-set" : "Type set to [[{0}]].", + "citizens.commands.npc.vulnerable.description" : "Toggles an NPC''s vulnerability", "citizens.commands.npc.vulnerable.set" : "[[{0}]] is now vulnerable.", "citizens.commands.npc.vulnerable.stopped" : "[[{0}]] is no longer vulnerable.", + "citizens.commands.npc.wander.description" : "Sets the NPC to wander around", "citizens.commands.npc.warden.anger-added" : "[[{1}]] anger added towards [[{0}]].", + "citizens.commands.npc.warden.description" : "Sets warden modifiers", "citizens.commands.npc.warden.pose-set" : "[[{0}]]''s pose set to [[{1}]].", + "citizens.commands.npc.wither.description" : "Sets wither modifiers", "citizens.commands.npc.wolf.collar-color-unsupported" : "[[{0}]] is not a RGB color code that can be used on a wolf''s collar.", + "citizens.commands.npc.wolf.description" : "Sets wolf modifiers", "citizens.commands.npc.wolf.unknown-collar-color" : "[[{0}]] is not an RGB-formatted collar color or the name of a DyeColor.", "citizens.commands.page-missing" : "The page [[{0}]] does not exist.", "citizens.commands.requirements.disallowed-mobtype" : "The NPC cannot be the mob type [[{0}]] for that command.", @@ -353,25 +474,36 @@ "citizens.commands.requirements.too-few-arguments" : "Too few arguments.", "citizens.commands.requirements.too-many-arguments" : "Too many arguments. ", "citizens.commands.template.applied" : "Template applied to [[{0}]] NPCs.", + "citizens.commands.template.apply.description" : "Applies a template to the selected NPC", "citizens.commands.template.conflict" : "A template by that name already exists.", + "citizens.commands.template.create.description" : "Creates a template from the selected NPC", "citizens.commands.template.created" : "Template created. Check your Citizens plugin folder.", "citizens.commands.template.delete.deleted" : "Deleted template [[{0}]].", + "citizens.commands.template.delete.description" : "Deletes a template", + "citizens.commands.template.list.description" : "Lists available templates", "citizens.commands.template.list.header" : "]]Available templates[[:]]", "citizens.commands.template.missing" : "Template not found.", + "citizens.commands.trait.add.description" : "Adds traits to the NPC", "citizens.commands.trait.added" : "Added {0} successfully.", + "citizens.commands.trait.failed-to-add" : "Couldn''t add {0}.", + "citizens.commands.trait.failed-to-remove" : "Couldn''t remove {0}.", + "citizens.commands.trait.remove.description" : "Removes traits on the NPC", + "citizens.commands.trait.removed" : "Removed {0} successfully.", + "citizens.commands.trait.toggle.description" : "Toggles traits on the NPC", + "citizens.commands.traitc.*.description" : "Configures a trait", "citizens.commands.traitc.missing" : "Trait not found.", "citizens.commands.traitc.not-configurable" : "That trait is not configurable.", "citizens.commands.traitc.not-on-npc" : "The NPC doesn''t have that trait.", - "citizens.commands.trait.failed-to-add" : "Couldn''t add {0}.", - "citizens.commands.trait.failed-to-change" : "Couldn''t change {0}.", - "citizens.commands.trait.failed-to-remove" : "Couldn''t remove {0}.", - "citizens.commands.trait.removed" : "Removed {0} successfully.", "citizens.commands.unknown-command" : "Unknown command.", + "citizens.commands.waypoints.add.description" : "Adds a waypoint at a point", "citizens.commands.waypoints.add.waypoint-added" : "Added waypoint at [[{0}]] (index [[{1}]]).", + "citizens.commands.waypoints.disableteleport.description" : "Disables teleportation when stuck", "citizens.commands.waypoints.disableteleporting.disabled" : "[[{0}]] will no longer teleport when stuck pathfinding.", "citizens.commands.waypoints.disableteleporting.enabled" : "[[{0}]] will now teleport when stuck pathfinding.", "citizens.commands.waypoints.opendoors.disabled" : "[[{0}]] will no longer doors while pathfinding.", "citizens.commands.waypoints.opendoors.enabled" : "[[{0}]] will now open doors while pathfinding.", + "citizens.commands.waypoints.provider.description" : "Sets the current waypoint provider", + "citizens.commands.waypoints.remove.description" : "Adds a waypoint at a point", "citizens.commands.waypoints.waypoint-removed" : "Removed waypoint at [[{0}]].", "citizens.commands.wolf.traits-updated" : "[[{0}]]''s Traits were updated. Angry:[[{1}]], Sitting:[[{2}]], Tamed:[[{3}]], Collar Color:[[{4}]] ", "citizens.conversations.selection.invalid-choice" : "[[{0}]] is not a valid option.", @@ -389,8 +521,8 @@ "citizens.editors.equipment.sheared-stopped" : "[[{0}]] is no longer sheared.", "citizens.editors.equipment.sheep-coloured" : "[[{0}]] is now coloured [[{1}]].", "citizens.editors.selection.start-prompt" : "There were multiple NPCs with the supplied name.
Please enter an id or number from the list below to select that NPC.", - "citizens.editors.text.added-entry" : "[[Added]] the entry [[{0}]].", "citizens.editors.text.add-prompt" : "Enter text to add to the NPC.", + "citizens.editors.text.added-entry" : "[[Added]] the entry [[{0}]].", "citizens.editors.text.begin" : "Entered the text editor! Type [[exit]] to leave the editor.", "citizens.editors.text.change-page-prompt" : "Enter a page number to view more text entries.", "citizens.editors.text.close-talker-set" : "[[Close talker]] set to [[{0}]]. ", @@ -482,9 +614,9 @@ "citizens.notifications.npc-name-not-found" : "Could not find a name for ID {0}.", "citizens.notifications.npc-not-found" : "No NPC could be found.", "citizens.notifications.npcs-loaded" : "Loaded {0} NPCs.", + "citizens.notifications.reload-warning" : "WARNING: this command will load all data from disk without saving first. Please retype /citizens reload to confirm. You can disable this warning in settings.", "citizens.notifications.reloaded" : "Citizens reloaded.", "citizens.notifications.reloading" : "Reloading Citizens...", - "citizens.notifications.reload-warning" : "WARNING: this command will load all data from disk without saving first. Please retype /citizens reload to confirm. You can disable this warning in settings.", "citizens.notifications.saved" : "Citizens saved.", "citizens.notifications.saving" : "Saving Citizens... ", "citizens.notifications.skipping-invalid-pose" : "Skipping pose {0} - invalid yaw/pitch ({1}).",