Utilise new API

This commit is contained in:
fullwall 2024-03-01 01:03:30 +08:00
parent 3a5b13c170
commit 81bc83d15a
35 changed files with 319 additions and 263 deletions

View File

@ -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)

View File

@ -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,

View File

@ -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")

View File

@ -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 <npc id|uuid>) (-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,

View File

@ -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,

View File

@ -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<String> added = Lists.newArrayList();
List<String> removed = Lists.newArrayList();
List<String> 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<? extends Trait> 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));
}
}
}

View File

@ -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,

View File

@ -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();
}
}

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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")

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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")

View File

@ -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,

View File

@ -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,

View File

@ -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";

View File

@ -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" : "<br> - {0} [{1}s] [cost:{2}] [exp:{3}] [<click:run_command:/npc cmd remove {4}><hover:show_text:Remove this command><red><u>-</hover></click>]",
"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" : "<br>Use the [[-l]] flag to make the command run on left click, [[-r]] on right click (default).<br>Set the per-player cooldown before the command can be used again using [[--cooldown]] (in [[seconds]]).<br>Set the server-wide cooldown in seconds using [[--gcooldown]].<br>[[--delay]] will wait the specified amount in [[ticks]] before executing the command.<br>[[--permissions]] will set the command to require specific permissions (separate multiple with commas).<br>[[--n]] will only let the player run the command that number of times.<br>Use [[-o]] to temporarily execute the command as an op and [[-p]] to run the command as the clicking player instead of the server.<br>To give the player temporary permissions instead of op, use [[/npc command permissions]].<br>Set the cost of each click with [[/npc command cost/expcost/itemcost]].<br>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:run_command:/npc vulnerable>[[<u>Click to unprotect</click>",
"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}]] (<click:run_command:/npc undo><hover:show_text:Undo this removal><red><u>undo</u></red></hover></click>).",
"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}]].<br><br>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.<br>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}).",