mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-28 23:27:40 +02:00
Implement new flag command API, fix hologram line display
This commit is contained in:
parent
61b71cb2d2
commit
a316a87711
File diff suppressed because it is too large
Load Diff
@ -13,6 +13,7 @@ import net.citizensnpcs.api.ai.TeleportStuckAction;
|
||||
import net.citizensnpcs.api.astar.pathfinder.ChunkBlockSource;
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.hpastar.HPAGraph;
|
||||
@ -39,7 +40,8 @@ public class WaypointCommands {
|
||||
min = 4,
|
||||
max = 5,
|
||||
permission = "citizens.waypoints.add")
|
||||
public void add(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public void add(CommandContext args, CommandSender sender, NPC npc, @Flag("index") Integer index)
|
||||
throws CommandException {
|
||||
WaypointProvider provider = npc.getOrAddTrait(Waypoints.class).getCurrentProvider();
|
||||
if (!(provider instanceof LinearWaypointProvider))
|
||||
throw new CommandException();
|
||||
@ -48,7 +50,7 @@ public class WaypointCommands {
|
||||
if (world == null)
|
||||
throw new CommandException(Messages.WORLD_NOT_FOUND);
|
||||
Location loc = new Location(world, args.getInteger(1), args.getInteger(2), args.getInteger(3));
|
||||
int index = args.getFlagInteger("index", waypoints.size());
|
||||
int idx = index == null ? waypoints.size() : index;
|
||||
waypoints.add(index, new Waypoint(loc));
|
||||
Messaging.sendTr(sender, Messages.WAYPOINT_ADDED, Util.prettyPrintLocation(loc), index);
|
||||
}
|
||||
|
@ -377,6 +377,9 @@ public class HologramTrait extends Trait {
|
||||
}
|
||||
|
||||
public HologramLine(String text, boolean persist, int ticks) {
|
||||
this.text = text;
|
||||
this.persist = persist;
|
||||
this.ticks = ticks;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.EntityType;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -65,11 +66,11 @@ public class AxolotlTrait extends Trait {
|
||||
flags = "d",
|
||||
permission = "citizens.npc.axolotl")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.AXOLOTL)
|
||||
public static void axolotl(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void axolotl(CommandContext args, CommandSender sender, NPC npc,
|
||||
@Flag("variant") Axolotl.Variant variant) throws CommandException {
|
||||
AxolotlTrait trait = npc.getOrAddTrait(AxolotlTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("variant")) {
|
||||
Axolotl.Variant variant = Util.matchEnum(Axolotl.Variant.values(), args.getFlag("variant"));
|
||||
if (variant == null) {
|
||||
throw new CommandException(Messages.INVALID_AXOLOTL_VARIANT,
|
||||
Util.listValuesPretty(Axolotl.Variant.values()));
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.EntityType;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -69,11 +70,11 @@ public class BeeTrait extends Trait {
|
||||
flags = "sn",
|
||||
permission = "citizens.npc.bee")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.BEE)
|
||||
public static void bee(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void bee(CommandContext args, CommandSender sender, NPC npc, @Flag("anger") Integer anger)
|
||||
throws CommandException {
|
||||
BeeTrait trait = npc.getOrAddTrait(BeeTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("anger")) {
|
||||
int anger = args.getFlagInteger("anger");
|
||||
if (anger != null) {
|
||||
if (anger < 0) {
|
||||
throw new CommandException(Messages.INVALID_BEE_ANGER);
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import com.google.common.collect.Lists;
|
||||
import net.citizensnpcs.Settings.Setting;
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
@ -196,38 +197,34 @@ public class BossBarTrait extends Trait {
|
||||
min = 1,
|
||||
max = 1)
|
||||
@Requirements(selected = true, ownership = true)
|
||||
public static void bossbar(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void bossbar(CommandContext args, CommandSender sender, NPC npc, @Flag("style") BarStyle style,
|
||||
@Flag("track") String track, @Flag("color") BarColor color, @Flag("visible") Boolean visible,
|
||||
@Flag("title") String title, @Flag("flags") String flags) throws CommandException {
|
||||
BossBarTrait trait = npc.getOrAddTrait(BossBarTrait.class);
|
||||
if (args.hasValueFlag("style")) {
|
||||
BarStyle style = Util.matchEnum(BarStyle.values(), args.getFlag("style"));
|
||||
if (style != null) {
|
||||
trait.setStyle(style);
|
||||
}
|
||||
if (style != null) {
|
||||
trait.setStyle(style);
|
||||
}
|
||||
if (args.hasValueFlag("color")) {
|
||||
BarColor color = Util.matchEnum(BarColor.values(), args.getFlag("color"));
|
||||
if (color != null) {
|
||||
trait.setColor(color);
|
||||
}
|
||||
if (color != null) {
|
||||
trait.setColor(color);
|
||||
}
|
||||
if (args.hasValueFlag("track")) {
|
||||
trait.setTrackVariable(args.getFlag("track"));
|
||||
if (track != null) {
|
||||
trait.setTrackVariable(track);
|
||||
}
|
||||
if (args.hasValueFlag("title")) {
|
||||
trait.setTitle(Colorizer.parseColors(args.getFlag("title")));
|
||||
if (title != null) {
|
||||
trait.setTitle(Colorizer.parseColors(title));
|
||||
}
|
||||
if (args.hasValueFlag("visible")) {
|
||||
trait.setVisible(Boolean.parseBoolean(args.getFlag("visible")));
|
||||
if (visible != null) {
|
||||
trait.setVisible(visible);
|
||||
}
|
||||
if (args.hasValueFlag("flags")) {
|
||||
List<BarFlag> flags = Lists.newArrayList();
|
||||
for (String s : Splitter.on(',').omitEmptyStrings().trimResults().split(args.getFlag("flags"))) {
|
||||
if (flags != null) {
|
||||
List<BarFlag> parsed = Lists.newArrayList();
|
||||
for (String s : Splitter.on(',').omitEmptyStrings().trimResults().split(flags)) {
|
||||
BarFlag flag = Util.matchEnum(BarFlag.values(), s);
|
||||
if (flag != null) {
|
||||
flags.add(flag);
|
||||
parsed.add(flag);
|
||||
}
|
||||
}
|
||||
trait.setFlags(flags);
|
||||
trait.setFlags(parsed);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.entity.Ocelot.Type;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -95,26 +96,27 @@ public class CatTrait extends Trait {
|
||||
flags = "snl",
|
||||
permission = "citizens.npc.cat")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.CAT)
|
||||
public static void cat(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void cat(CommandContext args, CommandSender sender, NPC npc, @Flag("ccolor") DyeColor ccolor,
|
||||
@Flag("type") Cat.Type type) throws CommandException {
|
||||
CatTrait trait = npc.getOrAddTrait(CatTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("type")) {
|
||||
Cat.Type type = Util.matchEnum(Cat.Type.values(), args.getFlag("type"));
|
||||
if (type == null) {
|
||||
throw new CommandUsageException(Messages.INVALID_CAT_TYPE, Util.listValuesPretty(Cat.Type.values()));
|
||||
}
|
||||
trait.setType(type);
|
||||
output += ' ' + Messaging.tr(Messages.CAT_TYPE_SET, args.getFlag("type"));
|
||||
}
|
||||
|
||||
if (args.hasValueFlag("ccolor")) {
|
||||
DyeColor color = Util.matchEnum(DyeColor.values(), args.getFlag("ccolor"));
|
||||
if (color == null) {
|
||||
if (ccolor == null) {
|
||||
throw new CommandUsageException(Messages.INVALID_CAT_COLLAR_COLOR,
|
||||
Util.listValuesPretty(DyeColor.values()));
|
||||
}
|
||||
trait.setCollarColor(color);
|
||||
trait.setCollarColor(ccolor);
|
||||
output += ' ' + Messaging.tr(Messages.CAT_COLLAR_COLOR_SET, args.getFlag("ccolor"));
|
||||
}
|
||||
|
||||
if (args.hasFlag('s')) {
|
||||
trait.setSitting(true);
|
||||
output += ' ' + Messaging.tr(Messages.CAT_STARTED_SITTING, npc.getName());
|
||||
@ -122,11 +124,13 @@ public class CatTrait extends Trait {
|
||||
trait.setSitting(false);
|
||||
output += ' ' + Messaging.tr(Messages.CAT_STOPPED_SITTING, npc.getName());
|
||||
}
|
||||
|
||||
if (args.hasFlag('l')) {
|
||||
trait.setLyingDown(!trait.isLyingDown());
|
||||
output += ' ' + Messaging.tr(trait.isLyingDown() ? Messages.CAT_STARTED_LYING : Messages.CAT_STOPPED_LYING,
|
||||
npc.getName());
|
||||
}
|
||||
|
||||
if (!output.isEmpty()) {
|
||||
Messaging.send(sender, output.trim());
|
||||
} else {
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.Fox;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -84,7 +85,8 @@ public class FoxTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.fox")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.FOX)
|
||||
public static void fox(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void fox(CommandContext args, CommandSender sender, NPC npc, @Flag("sleeping") Boolean sleeping,
|
||||
@Flag("sitting") Boolean sitting, @Flag("crouching") Boolean crouching) throws CommandException {
|
||||
FoxTrait trait = npc.getOrAddTrait(FoxTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("type")) {
|
||||
@ -96,18 +98,15 @@ public class FoxTrait extends Trait {
|
||||
trait.setType(type);
|
||||
output += ' ' + Messaging.tr(Messages.FOX_TYPE_SET, args.getFlag("type"));
|
||||
}
|
||||
if (args.hasValueFlag("sleeping")) {
|
||||
boolean sleeping = Boolean.parseBoolean(args.getFlag("sleeping"));
|
||||
if (sleeping != null) {
|
||||
trait.setSleeping(sleeping);
|
||||
output += ' ' + Messaging.tr(sleeping ? Messages.FOX_SLEEPING_SET : Messages.FOX_SLEEPING_UNSET);
|
||||
}
|
||||
if (args.hasValueFlag("sitting")) {
|
||||
boolean sitting = Boolean.parseBoolean(args.getFlag("sitting"));
|
||||
if (sitting != null) {
|
||||
trait.setSitting(sitting);
|
||||
output += ' ' + Messaging.tr(sitting ? Messages.FOX_SITTING_SET : Messages.FOX_SITTING_UNSET);
|
||||
}
|
||||
if (args.hasValueFlag("crouching")) {
|
||||
boolean crouching = Boolean.parseBoolean(args.getFlag("crouching"));
|
||||
if (crouching != null) {
|
||||
trait.setCrouching(crouching);
|
||||
output += ' ' + Messaging.tr(crouching ? Messages.FOX_CROUCHING_SET : Messages.FOX_CROUCHING_UNSET);
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.entity.Frog.Variant;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
@ -44,22 +45,20 @@ public class FrogTrait extends Trait {
|
||||
|
||||
@Command(
|
||||
aliases = { "npc" },
|
||||
usage = "frog (--variant variant) (--target [target])",
|
||||
usage = "frog (--variant variant)",
|
||||
desc = "Sets frog modifiers",
|
||||
modifiers = { "frog" },
|
||||
min = 1,
|
||||
max = 1,
|
||||
permission = "citizens.npc.frog")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.FROG)
|
||||
public static void frog(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void frog(CommandContext args, CommandSender sender, NPC npc, @Flag("variant") Frog.Variant variant)
|
||||
throws CommandException {
|
||||
FrogTrait trait = npc.getOrAddTrait(FrogTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("variant")) {
|
||||
String variantRaw = args.getFlag("variant");
|
||||
Frog.Variant variant = Util.matchEnum(Frog.Variant.values(), variantRaw);
|
||||
if (variant == null) {
|
||||
String valid = Util.listValuesPretty(Frog.Variant.values());
|
||||
throw new CommandException(Messages.INVALID_FROG_VARIANT, valid);
|
||||
throw new CommandException(Messages.INVALID_FROG_VARIANT, Util.listValuesPretty(Frog.Variant.values()));
|
||||
}
|
||||
trait.setVariant(variant);
|
||||
output += Messaging.tr(Messages.FROG_VARIANT_SET, Util.prettyEnum(variant));
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.entity.Llama.Color;
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.CommandMessages;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
@ -64,14 +65,13 @@ public class LlamaTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.llama")
|
||||
@Requirements(selected = true, ownership = true)
|
||||
public static void llama(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void llama(CommandContext args, CommandSender sender, NPC npc,
|
||||
@Flag({ "color", "colour" }) Color color, @Flag("strength") Integer strength) throws CommandException {
|
||||
if (npc.getOrAddTrait(MobType.class).getType().name().contains("LLAMA"))
|
||||
throw new CommandException(CommandMessages.REQUIREMENTS_INVALID_MOB_TYPE);
|
||||
LlamaTrait trait = npc.getOrAddTrait(LlamaTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("color") || args.hasValueFlag("colour")) {
|
||||
String colorRaw = args.getFlag("color", args.getFlag("colour"));
|
||||
Color color = Util.matchEnum(Color.values(), colorRaw);
|
||||
if (args.hasAnyValueFlag("color", "colour")) {
|
||||
if (color == null) {
|
||||
String valid = Util.listValuesPretty(Color.values());
|
||||
throw new CommandException(Messages.INVALID_LLAMA_COLOR, valid);
|
||||
@ -79,10 +79,12 @@ public class LlamaTrait extends Trait {
|
||||
trait.setColor(color);
|
||||
output += Messaging.tr(Messages.LLAMA_COLOR_SET, Util.prettyEnum(color));
|
||||
}
|
||||
if (args.hasValueFlag("strength")) {
|
||||
trait.setStrength(Math.max(1, Math.min(5, args.getFlagInteger("strength"))));
|
||||
output += Messaging.tr(Messages.LLAMA_STRENGTH_SET, args.getFlagInteger("strength"));
|
||||
|
||||
if (strength != null) {
|
||||
trait.setStrength(Math.max(1, Math.min(5, strength)));
|
||||
output += Messaging.tr(Messages.LLAMA_STRENGTH_SET, trait.getStrength());
|
||||
}
|
||||
|
||||
if (args.hasFlag('c')) {
|
||||
npc.getOrAddTrait(HorseModifiers.class).setCarryingChest(true);
|
||||
output += Messaging.tr(Messages.HORSE_CHEST_SET) + " ";
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.entity.MushroomCow.Variant;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -56,11 +57,11 @@ public class MushroomCowTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.mushroomcow")
|
||||
@Requirements(selected = true, ownership = true, types = { EntityType.MUSHROOM_COW })
|
||||
public static void mushroomcow(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void mushroomcow(CommandContext args, CommandSender sender, NPC npc,
|
||||
@Flag("variant") MushroomCow.Variant variant) throws CommandException {
|
||||
MushroomCowTrait trait = npc.getOrAddTrait(MushroomCowTrait.class);
|
||||
boolean hasArg = false;
|
||||
if (args.hasValueFlag("variant")) {
|
||||
MushroomCow.Variant variant = Util.matchEnum(MushroomCow.Variant.values(), args.getFlag("variant"));
|
||||
if (variant == null) {
|
||||
Messaging.sendErrorTr(sender, Messages.INVALID_MUSHROOM_COW_VARIANT,
|
||||
Util.listValuesPretty(MushroomCow.Variant.values()));
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.Panda;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -73,7 +74,7 @@ public class PandaTrait extends Trait {
|
||||
|
||||
@Command(
|
||||
aliases = { "npc" },
|
||||
usage = "panda --gene (main gene) --hgene (hidden gene) -s(itting)",
|
||||
usage = "panda --gene (main gene) --hiddengene (hidden gene) -s(itting)",
|
||||
desc = "Sets panda modifiers",
|
||||
modifiers = { "panda" },
|
||||
flags = "s",
|
||||
@ -81,11 +82,11 @@ public class PandaTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.panda")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.PANDA)
|
||||
public static void panda(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void panda(CommandContext args, CommandSender sender, NPC npc, @Flag("gene") Panda.Gene gene,
|
||||
@Flag("hiddengene") Panda.Gene hiddengene) throws CommandException {
|
||||
PandaTrait trait = npc.getOrAddTrait(PandaTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("gene")) {
|
||||
Panda.Gene gene = Util.matchEnum(Panda.Gene.values(), args.getFlag("gene"));
|
||||
if (gene == null) {
|
||||
throw new CommandUsageException(Messages.INVALID_PANDA_GENE,
|
||||
Util.listValuesPretty(Panda.Gene.values()));
|
||||
@ -93,14 +94,13 @@ public class PandaTrait extends Trait {
|
||||
trait.setMainGene(gene);
|
||||
output += ' ' + Messaging.tr(Messages.PANDA_MAIN_GENE_SET, args.getFlag("gene"));
|
||||
}
|
||||
if (args.hasValueFlag("hgene")) {
|
||||
Panda.Gene gene = Util.matchEnum(Panda.Gene.values(), args.getFlag("hgene"));
|
||||
if (gene == null) {
|
||||
if (args.hasValueFlag("hiddengene")) {
|
||||
if (hiddengene == null) {
|
||||
throw new CommandUsageException(Messages.INVALID_PANDA_GENE,
|
||||
Util.listValuesPretty(Panda.Gene.values()));
|
||||
}
|
||||
trait.setHiddenGene(gene);
|
||||
output += ' ' + Messaging.tr(Messages.PANDA_HIDDEN_GENE_SET, args.getFlag("hgene"));
|
||||
trait.setHiddenGene(hiddengene);
|
||||
output += ' ' + Messaging.tr(Messages.PANDA_HIDDEN_GENE_SET, hiddengene);
|
||||
}
|
||||
if (args.hasFlag('s')) {
|
||||
boolean isSitting = trait.toggleSitting();
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.entity.Parrot.Variant;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
@ -51,15 +52,13 @@ public class ParrotTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.parrot")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.PARROT)
|
||||
public static void parrot(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void parrot(CommandContext args, CommandSender sender, NPC npc, @Flag("variant") Variant variant)
|
||||
throws CommandException {
|
||||
ParrotTrait trait = npc.getOrAddTrait(ParrotTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("variant")) {
|
||||
String variantRaw = args.getFlag("variant");
|
||||
Variant variant = Util.matchEnum(Variant.values(), variantRaw);
|
||||
if (variant == null) {
|
||||
String valid = Util.listValuesPretty(Variant.values());
|
||||
throw new CommandException(Messages.INVALID_PARROT_VARIANT, valid);
|
||||
throw new CommandException(Messages.INVALID_PARROT_VARIANT, Util.listValuesPretty(Variant.values()));
|
||||
}
|
||||
trait.setVariant(variant);
|
||||
output += Messaging.tr(Messages.PARROT_VARIANT_SET, Util.prettyEnum(variant));
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.Phantom;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -50,15 +51,16 @@ public class PhantomTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.phantom")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.PHANTOM)
|
||||
public static void phantom(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void phantom(CommandContext args, CommandSender sender, NPC npc, @Flag("size") Integer size)
|
||||
throws CommandException {
|
||||
PhantomTrait trait = npc.getOrAddTrait(PhantomTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("size")) {
|
||||
if (args.getFlagInteger("size") <= 0) {
|
||||
if (size != null) {
|
||||
if (size <= 0) {
|
||||
throw new CommandUsageException();
|
||||
}
|
||||
trait.setSize(args.getFlagInteger("size"));
|
||||
output += Messaging.tr(Messages.PHANTOM_STATE_SET, args.getFlagInteger("size"));
|
||||
trait.setSize(size);
|
||||
output += Messaging.tr(Messages.PHANTOM_STATE_SET, size);
|
||||
}
|
||||
if (!output.isEmpty()) {
|
||||
Messaging.send(sender, output);
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.Piglin;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -50,11 +51,11 @@ public class PiglinTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.piglin")
|
||||
@Requirements(selected = true, ownership = true, types = { EntityType.PIGLIN })
|
||||
public static void piglin(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void piglin(CommandContext args, CommandSender sender, NPC npc, @Flag("dancing") Boolean dancing)
|
||||
throws CommandException {
|
||||
PiglinTrait trait = npc.getOrAddTrait(PiglinTrait.class);
|
||||
boolean hasArg = false;
|
||||
if (args.hasValueFlag("dancing")) {
|
||||
boolean dancing = Boolean.valueOf(args.getFlag("dancing"));
|
||||
if (dancing != null) {
|
||||
trait.setDancing(dancing);
|
||||
Messaging.sendTr(sender, dancing ? Messages.PIGLIN_DANCING_SET : Messages.PIGLIN_DANCING_UNSET,
|
||||
npc.getName());
|
||||
|
@ -5,6 +5,7 @@ import org.bukkit.entity.EntityType;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
@ -40,11 +41,12 @@ public class PufferFishTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.pufferfish")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.PUFFERFISH)
|
||||
public static void pufferfish(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void pufferfish(CommandContext args, CommandSender sender, NPC npc, @Flag("state") Integer state)
|
||||
throws CommandException {
|
||||
PufferFishTrait trait = npc.getOrAddTrait(PufferFishTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("state")) {
|
||||
int state = Math.min(Math.max(args.getFlagInteger("state"), 0), 3);
|
||||
if (state != null) {
|
||||
state = Math.min(Math.max(state, 0), 3);
|
||||
trait.setPuffState(state);
|
||||
output += Messaging.tr(Messages.PUFFERFISH_STATE_SET, state);
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.entity.Shulker;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -76,17 +77,16 @@ public class ShulkerTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.shulker")
|
||||
@Requirements(selected = true, ownership = true, types = { EntityType.SHULKER })
|
||||
public static void shulker(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void shulker(CommandContext args, CommandSender sender, NPC npc, @Flag("peek") Integer peek,
|
||||
@Flag("color") DyeColor color) throws CommandException {
|
||||
ShulkerTrait trait = npc.getOrAddTrait(ShulkerTrait.class);
|
||||
boolean hasArg = false;
|
||||
if (args.hasValueFlag("peek")) {
|
||||
int peek = (byte) args.getFlagInteger("peek");
|
||||
trait.setPeek(peek);
|
||||
if (peek != null) {
|
||||
trait.setPeek((byte) (int) peek);
|
||||
Messaging.sendTr(sender, Messages.SHULKER_PEEK_SET, npc.getName(), peek);
|
||||
hasArg = true;
|
||||
}
|
||||
if (args.hasValueFlag("color")) {
|
||||
DyeColor color = Util.matchEnum(DyeColor.values(), args.getFlag("color"));
|
||||
if (color == null) {
|
||||
Messaging.sendErrorTr(sender, Messages.INVALID_SHULKER_COLOR, Util.listValuesPretty(DyeColor.values()));
|
||||
return;
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.entity.TropicalFish.Pattern;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -75,29 +76,27 @@ public class TropicalFishTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.tropicalfish")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.TROPICAL_FISH)
|
||||
public static void tropicalfish(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void tropicalfish(CommandContext args, CommandSender sender, NPC npc, @Flag("body") DyeColor body,
|
||||
@Flag("patterncolor") DyeColor patterncolor, @Flag("pattern") Pattern pattern) throws CommandException {
|
||||
TropicalFishTrait trait = npc.getOrAddTrait(TropicalFishTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("body")) {
|
||||
DyeColor color = Util.matchEnum(DyeColor.values(), args.getFlag("body"));
|
||||
if (color == null) {
|
||||
if (body == null) {
|
||||
throw new CommandException(Messages.INVALID_TROPICALFISH_COLOR,
|
||||
Util.listValuesPretty(DyeColor.values()));
|
||||
}
|
||||
trait.setBodyColor(color);
|
||||
output += Messaging.tr(Messages.TROPICALFISH_BODY_COLOR_SET, Util.prettyEnum(color));
|
||||
trait.setBodyColor(body);
|
||||
output += Messaging.tr(Messages.TROPICALFISH_BODY_COLOR_SET, Util.prettyEnum(body));
|
||||
}
|
||||
if (args.hasValueFlag("patterncolor")) {
|
||||
DyeColor color = Util.matchEnum(DyeColor.values(), args.getFlag("patterncolor"));
|
||||
if (color == null) {
|
||||
if (patterncolor == null) {
|
||||
throw new CommandException(Messages.INVALID_TROPICALFISH_COLOR,
|
||||
Util.listValuesPretty(DyeColor.values()));
|
||||
}
|
||||
trait.setPatternColor(color);
|
||||
output += Messaging.tr(Messages.TROPICALFISH_PATTERN_COLOR_SET, Util.prettyEnum(color));
|
||||
trait.setPatternColor(patterncolor);
|
||||
output += Messaging.tr(Messages.TROPICALFISH_PATTERN_COLOR_SET, Util.prettyEnum(patterncolor));
|
||||
}
|
||||
if (args.hasValueFlag("pattern")) {
|
||||
Pattern pattern = Util.matchEnum(Pattern.values(), args.getFlag("pattern"));
|
||||
if (pattern == null) {
|
||||
throw new CommandException(Messages.INVALID_TROPICALFISH_PATTERN,
|
||||
Util.listValuesPretty(Pattern.values()));
|
||||
|
@ -9,6 +9,7 @@ import com.google.common.base.Joiner;
|
||||
|
||||
import net.citizensnpcs.api.command.Command;
|
||||
import net.citizensnpcs.api.command.CommandContext;
|
||||
import net.citizensnpcs.api.command.Flag;
|
||||
import net.citizensnpcs.api.command.Requirements;
|
||||
import net.citizensnpcs.api.command.exception.CommandException;
|
||||
import net.citizensnpcs.api.command.exception.CommandUsageException;
|
||||
@ -68,18 +69,19 @@ public class VillagerTrait extends Trait {
|
||||
max = 1,
|
||||
permission = "citizens.npc.villager")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.VILLAGER)
|
||||
public static void villager(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
public static void villager(CommandContext args, CommandSender sender, NPC npc,
|
||||
@Flag("profession") Profession profession, @Flag("type") Villager.Type type, @Flag("level") Integer level)
|
||||
throws CommandException {
|
||||
VillagerTrait trait = npc.getOrAddTrait(VillagerTrait.class);
|
||||
String output = "";
|
||||
if (args.hasValueFlag("level")) {
|
||||
if (args.getFlagInteger("level") < 0) {
|
||||
if (level != null) {
|
||||
if (level < 0) {
|
||||
throw new CommandUsageException();
|
||||
}
|
||||
trait.setLevel(args.getFlagInteger("level"));
|
||||
output += " " + Messaging.tr(Messages.VILLAGER_LEVEL_SET, args.getFlagInteger("level"));
|
||||
trait.setLevel(level);
|
||||
output += " " + Messaging.tr(Messages.VILLAGER_LEVEL_SET, level);
|
||||
}
|
||||
if (args.hasValueFlag("type")) {
|
||||
Villager.Type type = Util.matchEnum(Villager.Type.values(), args.getFlag("type"));
|
||||
if (type == null) {
|
||||
throw new CommandException(Messages.INVALID_VILLAGER_TYPE,
|
||||
Util.listValuesPretty(Villager.Type.values()));
|
||||
@ -88,12 +90,11 @@ public class VillagerTrait extends Trait {
|
||||
output += " " + Messaging.tr(Messages.VILLAGER_TYPE_SET, args.getFlag("type"));
|
||||
}
|
||||
if (args.hasValueFlag("profession")) {
|
||||
Profession parsed = Util.matchEnum(Profession.values(), args.getFlag("profession"));
|
||||
if (parsed == null) {
|
||||
if (profession == null) {
|
||||
throw new CommandException(Messages.INVALID_PROFESSION, args.getFlag("profession"),
|
||||
Joiner.on(',').join(Profession.values()));
|
||||
}
|
||||
npc.getOrAddTrait(VillagerProfession.class).setProfession(parsed);
|
||||
npc.getOrAddTrait(VillagerProfession.class).setProfession(profession);
|
||||
output += " " + Messaging.tr(Messages.PROFESSION_SET, npc.getName(), args.getFlag("profession"));
|
||||
}
|
||||
if (!output.isEmpty()) {
|
||||
|
Loading…
Reference in New Issue
Block a user