Add /npc axolotl
This commit is contained in:
parent
15583711b6
commit
3a50ad5d85
|
@ -0,0 +1,46 @@
|
|||
package net.citizensnpcs.trait.versioned;
|
||||
|
||||
import org.bukkit.entity.Axolotl;
|
||||
|
||||
import net.citizensnpcs.api.persistence.Persist;
|
||||
import net.citizensnpcs.api.trait.Trait;
|
||||
import net.citizensnpcs.api.trait.TraitName;
|
||||
|
||||
@TraitName("axolotltrait")
|
||||
public class AxolotlTrait extends Trait {
|
||||
@Persist
|
||||
private boolean playingDead = false;
|
||||
@Persist
|
||||
private Axolotl.Variant variant = null;
|
||||
|
||||
public AxolotlTrait() {
|
||||
super("axolotltrait");
|
||||
}
|
||||
|
||||
public Axolotl.Variant getVariant() {
|
||||
return variant;
|
||||
}
|
||||
|
||||
public boolean isPlayingDead() {
|
||||
return playingDead;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (npc.isSpawned() && npc.getEntity() instanceof Axolotl) {
|
||||
Axolotl axolotl = (Axolotl) npc.getEntity();
|
||||
if (variant != null) {
|
||||
axolotl.setVariant(variant);
|
||||
}
|
||||
axolotl.setPlayingDead(playingDead);
|
||||
}
|
||||
}
|
||||
|
||||
public void setPlayingDead(boolean playingDead) {
|
||||
this.playingDead = playingDead;
|
||||
}
|
||||
|
||||
public void setVariant(Axolotl.Variant variant) {
|
||||
this.variant = variant;
|
||||
}
|
||||
}
|
|
@ -18,6 +18,9 @@ public class Messages {
|
|||
public static final String ANIMATION_ADDED = "citizens.editors.waypoints.triggers.animation.added";
|
||||
public static final String ANIMATION_TRIGGER_PROMPT = "citizens.editors.waypoints.triggers.animation.prompt";
|
||||
public static final String AVAILABLE_WAYPOINT_PROVIDERS = "citizens.waypoints.available-providers-header";
|
||||
public static final String AXOLOTL_NOT_PLAYING_DEAD = "citizens.commands.npc.axolotl.playing-dead-stopped";
|
||||
public static final String AXOLOTL_PLAYING_DEAD = "citizens.commands.npc.axolotl.playing-dead";
|
||||
public static final String AXOLOTL_VARIANT_SET = "citizens.commands.npc.axolotl.variant-set";
|
||||
public static final String BEE_ANGER_SET = "citizens.commands.npc.bee.anger-set";
|
||||
public static final String BEE_HAS_NECTAR = "citizens.commands.npc.bee.has-nectar";
|
||||
public static final String BEE_NO_NECTAR = "citizens.commands.npc.bee.no-nectar";
|
||||
|
@ -162,6 +165,7 @@ public class Messages {
|
|||
public static final String INVALID_AGE = "citizens.commands.npc.age.invalid-age";
|
||||
public static final String INVALID_ANCHOR_NAME = "citizens.commands.npc.anchor.invalid-name";
|
||||
public static final String INVALID_ANIMATION = "citizens.editors.waypoints.triggers.animation.invalid-animation";
|
||||
public static final String INVALID_AXOLOTL_VARIANT = "citizens.commands.npc.axolotl.invalid-variant";
|
||||
public static final String INVALID_BEE_ANGER = "citizens.commands.npc.bee.invalid-anger";
|
||||
public static final String INVALID_CAT_COLLAR_COLOR = "citizens.commands.npc.cat.invalid-collar-color";
|
||||
public static final String INVALID_CAT_TYPE = "citizens.commands.npc.cat.invalid-type";
|
||||
|
|
|
@ -24,6 +24,10 @@ citizens.commands.npc.anchor.already-exists=The anchor [[{0}]] already exists.
|
|||
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.axolotl.invalid-variant=Invalid variant. Valid variants are [[{0}]].
|
||||
citizens.commands.npc.axolotl.variant-set=Variant set to [[{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.bee.anger-set=Anger set to [[{0}]].
|
||||
citizens.commands.npc.bee.has-nectar=[[{0}]] has nectar.
|
||||
citizens.commands.npc.bee.no-nectar=[[{0}]] has no nectar.
|
||||
|
|
|
@ -6,6 +6,7 @@ import org.bukkit.DyeColor;
|
|||
import org.bukkit.boss.BarColor;
|
||||
import org.bukkit.boss.BarFlag;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Axolotl;
|
||||
import org.bukkit.entity.Cat;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Fox;
|
||||
|
@ -30,6 +31,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.util.Colorizer;
|
||||
import net.citizensnpcs.api.util.Messaging;
|
||||
import net.citizensnpcs.trait.VillagerProfession;
|
||||
import net.citizensnpcs.trait.versioned.AxolotlTrait;
|
||||
import net.citizensnpcs.trait.versioned.BeeTrait;
|
||||
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
||||
import net.citizensnpcs.trait.versioned.CatTrait;
|
||||
|
@ -49,6 +51,40 @@ import net.citizensnpcs.util.Messages;
|
|||
import net.citizensnpcs.util.Util;
|
||||
|
||||
public class Commands {
|
||||
@Command(
|
||||
aliases = { "npc" },
|
||||
usage = "axolotl (-d) (--variant variant)",
|
||||
desc = "Sets axolotl modifiers",
|
||||
modifiers = { "axolotl" },
|
||||
min = 1,
|
||||
max = 1,
|
||||
flags = "d",
|
||||
permission = "citizens.npc.axolotl")
|
||||
@Requirements(selected = true, ownership = true, types = EntityType.AXOLOTL)
|
||||
public void axolotl(CommandContext args, CommandSender sender, NPC npc) 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()));
|
||||
}
|
||||
trait.setVariant(variant);
|
||||
output += ' ' + Messaging.tr(Messages.AXOLOTL_VARIANT_SET, args.getFlag("variant"));
|
||||
}
|
||||
if (args.hasFlag('d')) {
|
||||
trait.setPlayingDead(!trait.isPlayingDead());
|
||||
output += ' ' + (trait.isPlayingDead() ? Messaging.tr(Messages.AXOLOTL_PLAYING_DEAD, npc.getName())
|
||||
: Messaging.tr(Messages.AXOLOTL_NOT_PLAYING_DEAD, npc.getName()));
|
||||
}
|
||||
if (!output.isEmpty()) {
|
||||
Messaging.send(sender, output.trim());
|
||||
} else {
|
||||
throw new CommandUsageException();
|
||||
}
|
||||
}
|
||||
|
||||
@Command(
|
||||
aliases = { "npc" },
|
||||
usage = "bee (-s/-n) --anger anger",
|
||||
|
|
|
@ -189,6 +189,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
|
|||
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.npc.skin.SkinnableEntity;
|
||||
import net.citizensnpcs.trait.versioned.AxolotlTrait;
|
||||
import net.citizensnpcs.trait.versioned.BeeTrait;
|
||||
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
||||
import net.citizensnpcs.trait.versioned.CatTrait;
|
||||
|
@ -731,6 +732,7 @@ public class NMSImpl implements NMSBridge {
|
|||
|
||||
@Override
|
||||
public void load(CommandManager manager) {
|
||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(AxolotlTrait.class));
|
||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BeeTrait.class));
|
||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(CatTrait.class));
|
||||
|
|
|
@ -527,7 +527,7 @@ public class PlayerNavigation extends PathNavigation {
|
|||
if (isDone())
|
||||
return;
|
||||
Vec3 var0 = this.path.getNextEntityPos(this.mob);
|
||||
BlockPos var1 = new BlockPos(var0);
|
||||
BlockPos var1 = new BlockPos(var0);
|
||||
this.mob.getMoveControl().setWantedPosition(var0.x, this.level.getBlockState(var1.down()).isAir() ? var0.y
|
||||
: WalkNodeEvaluator.getFloorLevel(this.level, var1), var0.z, this.speedModifier);
|
||||
}
|
||||
|
|
|
@ -156,5 +156,4 @@ public class PlayerPathfinder extends PathFinder {
|
|||
}
|
||||
return new Path(var3, var1, var2);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue