mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-29 15:47:40 +02:00
Merge branch 'master' of github.com:CitizensDev/Citizens2
This commit is contained in:
commit
87c2a884c5
@ -67,15 +67,12 @@ public class Settings {
|
|||||||
CHAT_MAX_NUMBER_OF_TARGETS("npc.chat.options.max-number-of-targets-to-show", 2),
|
CHAT_MAX_NUMBER_OF_TARGETS("npc.chat.options.max-number-of-targets-to-show", 2),
|
||||||
CHAT_MULTIPLE_TARGETS_FORMAT("npc.chat.options.multiple-targets-format",
|
CHAT_MULTIPLE_TARGETS_FORMAT("npc.chat.options.multiple-targets-format",
|
||||||
"<target>|, <target>| & <target>| & others"),
|
"<target>|, <target>| & <target>| & others"),
|
||||||
CHAT_RANGE("npc.chat.options.range", 5),
|
CHAT_RANGE("npc.chat.options.range", 5), CHECK_MINECRAFT_VERSION("advanced.check-minecraft-version", true),
|
||||||
CHECK_MINECRAFT_VERSION("advanced.check-minecraft-version", true),
|
DEBUG_FILE("general.debug-file", ""), DEBUG_MODE("general.debug-mode", false),
|
||||||
DEBUG_FILE("general.debug-file", ""),
|
|
||||||
DEBUG_MODE("general.debug-mode", false),
|
|
||||||
DEBUG_PATHFINDING("general.debug-pathfinding", false),
|
DEBUG_PATHFINDING("general.debug-pathfinding", false),
|
||||||
DEFAULT_DISTANCE_MARGIN("npc.pathfinding.default-distance-margin", 2),
|
DEFAULT_DISTANCE_MARGIN("npc.pathfinding.default-distance-margin", 2),
|
||||||
DEFAULT_LOOK_CLOSE("npc.default.look-close.enabled", false),
|
DEFAULT_LOOK_CLOSE("npc.default.look-close.enabled", false),
|
||||||
DEFAULT_LOOK_CLOSE_RANGE("npc.default.look-close.range", 5),
|
DEFAULT_LOOK_CLOSE_RANGE("npc.default.look-close.range", 5), DEFAULT_NPC_LIMIT("npc.limits.default-limit", 10),
|
||||||
DEFAULT_NPC_LIMIT("npc.limits.default-limit", 10),
|
|
||||||
DEFAULT_PATH_DISTANCE_MARGIN("npc.pathfinding.default-path-distance-margin", 1),
|
DEFAULT_PATH_DISTANCE_MARGIN("npc.pathfinding.default-path-distance-margin", 1),
|
||||||
DEFAULT_PATHFINDER_UPDATE_PATH_RATE("npc.pathfinding.update-path-rate", 20),
|
DEFAULT_PATHFINDER_UPDATE_PATH_RATE("npc.pathfinding.update-path-rate", 20),
|
||||||
DEFAULT_PATHFINDING_RANGE("npc.default.pathfinding.range", 25F),
|
DEFAULT_PATHFINDING_RANGE("npc.default.pathfinding.range", 25F),
|
||||||
@ -95,43 +92,33 @@ public class Settings {
|
|||||||
value = list;
|
value = list;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
DISABLE_TABLIST("npc.tablist.disable", true),
|
DISABLE_TABLIST("npc.tablist.disable", true), ERROR_COLOUR("general.color-scheme.message-error", "<c>"),
|
||||||
ERROR_COLOUR("general.color-scheme.message-error", "<c>"),
|
|
||||||
HIGHLIGHT_COLOUR("general.color-scheme.message-highlight", "<e>"),
|
HIGHLIGHT_COLOUR("general.color-scheme.message-highlight", "<e>"),
|
||||||
KEEP_CHUNKS_LOADED("npc.chunks.always-keep-loaded", false),
|
KEEP_CHUNKS_LOADED("npc.chunks.always-keep-loaded", false), LOCALE("general.translation.locale", ""),
|
||||||
LOCALE("general.translation.locale", ""),
|
|
||||||
MAX_CONTROLLABLE_GROUND_SPEED("npc.controllable.max-ground-speed", 0.5),
|
MAX_CONTROLLABLE_GROUND_SPEED("npc.controllable.max-ground-speed", 0.5),
|
||||||
MAX_NPC_LIMIT_CHECKS("npc.limits.max-permission-checks", 100),
|
MAX_NPC_LIMIT_CHECKS("npc.limits.max-permission-checks", 100),
|
||||||
MAX_NPC_SKIN_RETRIES("npc.skins.max-retries", -1),
|
MAX_NPC_SKIN_RETRIES("npc.skins.max-retries", -1), MAX_PACKET_ENTRIES("npc.limits.max-packet-entries", 15),
|
||||||
MAX_PACKET_ENTRIES("npc.limits.max-packet-entries", 15),
|
MAX_SPEED("npc.limits.max-speed", 100), MAX_TEXT_RANGE("npc.chat.options.max-text-range", 500),
|
||||||
MAX_SPEED("npc.limits.max-speed", 100),
|
|
||||||
MAX_TEXT_RANGE("npc.chat.options.max-text-range", 500),
|
|
||||||
MAXIMUM_ASTAR_ITERATIONS("npc.pathfinding.maximum-new-pathfinder-iterations", 50000),
|
MAXIMUM_ASTAR_ITERATIONS("npc.pathfinding.maximum-new-pathfinder-iterations", 50000),
|
||||||
MESSAGE_COLOUR("general.color-scheme.message", "<a>"),
|
MESSAGE_COLOUR("general.color-scheme.message", "<a>"),
|
||||||
NEW_PATHFINDER_OPENS_DOORS("npc.pathfinding.new-finder-open-doors", false),
|
NEW_PATHFINDER_OPENS_DOORS("npc.pathfinding.new-finder-open-doors", false),
|
||||||
NPC_ATTACK_DISTANCE("npc.pathfinding.attack-range", 1.75 * 1.75),
|
NPC_ATTACK_DISTANCE("npc.pathfinding.attack-range", 1.75 * 1.75), NPC_COST("economy.npc.cost", 100D),
|
||||||
NPC_COST("economy.npc.cost", 100D),
|
|
||||||
NPC_SKIN_RETRY_DELAY("npc.skins.retry-delay", 120),
|
NPC_SKIN_RETRY_DELAY("npc.skins.retry-delay", 120),
|
||||||
NPC_SKIN_ROTATION_UPDATE_DEGREES("npc.skins.rotation-update-degrees", 90f),
|
NPC_SKIN_ROTATION_UPDATE_DEGREES("npc.skins.rotation-update-degrees", 90f),
|
||||||
NPC_SKIN_USE_LATEST("npc.skins.use-latest-by-default", false),
|
NPC_SKIN_USE_LATEST("npc.skins.use-latest-by-default", false),
|
||||||
NPC_SKIN_VIEW_DISTANCE("npc.skins.view-distance", 100D),
|
NPC_SKIN_VIEW_DISTANCE("npc.skins.view-distance", 100D), PACKET_UPDATE_DELAY("npc.packets.update-delay", 30),
|
||||||
PACKET_UPDATE_DELAY("npc.packets.update-delay", 30),
|
|
||||||
QUICK_SELECT("npc.selection.quick-select", false),
|
QUICK_SELECT("npc.selection.quick-select", false),
|
||||||
REMOVE_PLAYERS_FROM_PLAYER_LIST("npc.player.remove-from-list", true),
|
REMOVE_PLAYERS_FROM_PLAYER_LIST("npc.player.remove-from-list", true),
|
||||||
SAVE_TASK_DELAY("storage.save-task.delay", 20 * 60 * 60),
|
SAVE_TASK_DELAY("storage.save-task.delay", 20 * 60 * 60), SELECTION_ITEM("npc.selection.item", "stick"),
|
||||||
SELECTION_ITEM("npc.selection.item", "stick"),
|
|
||||||
SELECTION_MESSAGE("npc.selection.message", "<b>You selected <a><npc><b>!"),
|
SELECTION_MESSAGE("npc.selection.message", "<b>You selected <a><npc><b>!"),
|
||||||
SERVER_OWNS_NPCS("npc.server-ownership", false),
|
SERVER_OWNS_NPCS("npc.server-ownership", false), STORAGE_FILE("storage.file", "saves.yml"),
|
||||||
STORAGE_FILE("storage.file", "saves.yml"),
|
STORAGE_TYPE("storage.type", "yaml"), SUBPLUGIN_FOLDER("subplugins.folder", "plugins"),
|
||||||
STORAGE_TYPE("storage.type", "yaml"),
|
|
||||||
SUBPLUGIN_FOLDER("subplugins.folder", "plugins"),
|
|
||||||
TALK_CLOSE_MAXIMUM_COOLDOWN("npc.text.max-talk-cooldown", 5),
|
TALK_CLOSE_MAXIMUM_COOLDOWN("npc.text.max-talk-cooldown", 5),
|
||||||
TALK_CLOSE_MINIMUM_COOLDOWN("npc.text.min-talk-cooldown", 10),
|
TALK_CLOSE_MINIMUM_COOLDOWN("npc.text.min-talk-cooldown", 10), TALK_ITEM("npc.text.talk-item", "book"),
|
||||||
TALK_ITEM("npc.text.talk-item", "book"),
|
TELEPORT_DELAY("npc.teleport-delay", -1), USE_BOAT_CONTROLS("npc.controllable.use-boat-controls", true),
|
||||||
TELEPORT_DELAY("npc.teleport-delay", -1),
|
|
||||||
USE_BOAT_CONTROLS("npc.controllable.use-boat-controls", true),
|
|
||||||
USE_NEW_PATHFINDER("npc.pathfinding.use-new-finder", false),
|
USE_NEW_PATHFINDER("npc.pathfinding.use-new-finder", false),
|
||||||
USE_SCOREBOARD_TEAMS("npc.player-scoreboard-teams.enable", true);
|
USE_SCOREBOARD_TEAMS("npc.player-scoreboard-teams.enable", true),
|
||||||
|
DISABLE_LOOKCLOSE_WHILE_NAVIGATING("npc.default.look-close.disable-while-navigating", true);
|
||||||
|
|
||||||
protected String path;
|
protected String path;
|
||||||
protected Object value;
|
protected Object value;
|
||||||
|
@ -52,8 +52,8 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether the target can be seen. Will use realistic line of sight if {@link #setRealisticLooking(boolean)}
|
* Returns whether the target can be seen. Will use realistic line of sight if
|
||||||
* is true.
|
* {@link #setRealisticLooking(boolean)} is true.
|
||||||
*/
|
*/
|
||||||
public boolean canSeeTarget() {
|
public boolean canSeeTarget() {
|
||||||
return realisticLooking && npc.getEntity() instanceof LivingEntity
|
return realisticLooking && npc.getEntity() instanceof LivingEntity
|
||||||
@ -107,9 +107,10 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
|
|||||||
|
|
||||||
private boolean isPluginVanished(Player player) {
|
private boolean isPluginVanished(Player player) {
|
||||||
for (MetadataValue meta : player.getMetadata("vanished")) {
|
for (MetadataValue meta : player.getMetadata("vanished")) {
|
||||||
if (meta.asBoolean())
|
if (meta.asBoolean()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,8 +140,12 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (!enabled || !npc.isSpawned() || npc.getNavigator().isNavigating())
|
if (!enabled || !npc.isSpawned()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
if (npc.getNavigator().isNavigating() && Setting.DISABLE_LOOKCLOSE_WHILE_NAVIGATING.asBoolean()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// TODO: remove in a later version, defaults weren't saving properly
|
// TODO: remove in a later version, defaults weren't saving properly
|
||||||
if (randomPitchRange == null || randomPitchRange.length != 2) {
|
if (randomPitchRange == null || randomPitchRange.length != 2) {
|
||||||
randomPitchRange = new float[] { -10, 0 };
|
randomPitchRange = new float[] { -10, 0 };
|
||||||
@ -152,7 +157,9 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
|
|||||||
if (hasInvalidTarget()) {
|
if (hasInvalidTarget()) {
|
||||||
findNewTarget();
|
findNewTarget();
|
||||||
}
|
}
|
||||||
if (lookingAt == null && enableRandomLook && t <= 0) {
|
if (npc.getNavigator().isNavigating()) {
|
||||||
|
npc.getNavigator().setPaused(lookingAt != null);
|
||||||
|
} else if (lookingAt == null && enableRandomLook && t <= 0) {
|
||||||
randomLook();
|
randomLook();
|
||||||
t = randomLookDelay;
|
t = randomLookDelay;
|
||||||
}
|
}
|
||||||
@ -172,7 +179,8 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables random looking - will look at a random {@link Location} every so often if enabled.
|
* Enables random looking - will look at a random {@link Location} every so
|
||||||
|
* often if enabled.
|
||||||
*/
|
*/
|
||||||
public void setRandomLook(boolean enableRandomLook) {
|
public void setRandomLook(boolean enableRandomLook) {
|
||||||
this.enableRandomLook = enableRandomLook;
|
this.enableRandomLook = enableRandomLook;
|
||||||
@ -201,7 +209,8 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables/disables realistic looking (using line of sight checks). More computationally expensive.
|
* Enables/disables realistic looking (using line of sight checks). More
|
||||||
|
* computationally expensive.
|
||||||
*/
|
*/
|
||||||
public void setRealisticLooking(boolean realistic) {
|
public void setRealisticLooking(boolean realistic) {
|
||||||
this.realisticLooking = realistic;
|
this.realisticLooking = realistic;
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package net.citizensnpcs.trait.versioned;
|
||||||
|
|
||||||
|
import org.bukkit.DyeColor;
|
||||||
|
import org.bukkit.entity.Shulker;
|
||||||
|
import org.bukkit.entity.Snowman;
|
||||||
|
|
||||||
|
import net.citizensnpcs.api.persistence.Persist;
|
||||||
|
import net.citizensnpcs.api.trait.Trait;
|
||||||
|
import net.citizensnpcs.api.trait.TraitName;
|
||||||
|
import net.citizensnpcs.util.NMS;
|
||||||
|
|
||||||
|
@TraitName("snowmantrait")
|
||||||
|
public class SnowmanTrait extends Trait {
|
||||||
|
@Persist("derp")
|
||||||
|
private boolean derp;
|
||||||
|
|
||||||
|
public SnowmanTrait() {
|
||||||
|
super("snowmantrait");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (npc.getEntity() instanceof Snowman) {
|
||||||
|
((Snowman) npc.getEntity()).setDerp(derp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean toggleDerp() {
|
||||||
|
return this.derp = !this.derp;
|
||||||
|
}
|
||||||
|
}
|
@ -370,4 +370,6 @@ public class Messages {
|
|||||||
public static final String ZOMBIE_VILLAGER_PROFESSION_SET = "citizens.commands.npc.zombiemod.villager-profession-set";
|
public static final String ZOMBIE_VILLAGER_PROFESSION_SET = "citizens.commands.npc.zombiemod.villager-profession-set";
|
||||||
public static final String ZOMBIE_VILLAGER_SET = "citizens.commands.npc.zombiemod.villager-set";
|
public static final String ZOMBIE_VILLAGER_SET = "citizens.commands.npc.zombiemod.villager-set";
|
||||||
public static final String ZOMBIE_VILLAGER_UNSET = "citizens.commands.npc.zombiemod.villager-unset";
|
public static final String ZOMBIE_VILLAGER_UNSET = "citizens.commands.npc.zombiemod.villager-unset";
|
||||||
|
public static final String SNOWMAN_DERP_SET = "citizens.commands.npc.snowman.derp-set";
|
||||||
|
public static final String SNOWMAN_DERP_STOPPED = "citizens.commands.npc.snowman.derp-stopped";
|
||||||
}
|
}
|
||||||
|
@ -183,6 +183,8 @@ citizens.commands.npc.sound.set=[[{0}]]''s sounds are now: ambient - [[{1}]] hur
|
|||||||
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.info=[[{0}]]''s sounds are: ambient - [[{1}]] hurt - [[{2}]] and death - [[{3}]].<br><br>Valid sounds are {4}.
|
||||||
citizens.commands.npc.skeletontype.set={0}''s skeleton type set to [[{1}]].
|
citizens.commands.npc.skeletontype.set={0}''s skeleton type set to [[{1}]].
|
||||||
citizens.commands.npc.skeletontype.invalid-type=Invalid skeleton type. Try one of the following: [[{0}]].
|
citizens.commands.npc.skeletontype.invalid-type=Invalid skeleton type. Try one of the following: [[{0}]].
|
||||||
|
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.spawn.already-spawned=[[{0}]] is already spawned at another location. Use ''/npc tphere'' to teleport the NPC to your location.
|
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.missing-npc-id=No NPC with the ID {0} exists.
|
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.no-location=No stored location available - command must be used ingame.
|
||||||
|
@ -21,6 +21,7 @@ import net.citizensnpcs.api.util.Colorizer;
|
|||||||
import net.citizensnpcs.api.util.Messaging;
|
import net.citizensnpcs.api.util.Messaging;
|
||||||
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.Util;
|
import net.citizensnpcs.util.Util;
|
||||||
|
|
||||||
@ -90,4 +91,27 @@ public class Commands {
|
|||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "npc" },
|
||||||
|
usage = "snowman (-d[erp])",
|
||||||
|
desc = "Sets snowman modifiers.",
|
||||||
|
modifiers = { "snowman" },
|
||||||
|
min = 1,
|
||||||
|
max = 1,
|
||||||
|
flags = "d",
|
||||||
|
permission = "citizens.npc.snowman")
|
||||||
|
@Requirements(selected = true, ownership = true, types = { EntityType.SNOWMAN })
|
||||||
|
public void snowman(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||||
|
SnowmanTrait trait = npc.getTrait(SnowmanTrait.class);
|
||||||
|
boolean hasArg = false;
|
||||||
|
if (args.hasFlag('d')) {
|
||||||
|
boolean isDerp = trait.toggleDerp();
|
||||||
|
Messaging.sendTr(sender, isDerp ? Messages.SNOWMAN_DERP_SET : Messages.SNOWMAN_DERP_STOPPED, npc.getName());
|
||||||
|
hasArg = true;
|
||||||
|
}
|
||||||
|
if (!hasArg) {
|
||||||
|
throw new CommandUsageException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,6 +145,7 @@ import net.citizensnpcs.npc.ai.NPCHolder;
|
|||||||
import net.citizensnpcs.npc.skin.SkinnableEntity;
|
import net.citizensnpcs.npc.skin.SkinnableEntity;
|
||||||
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.util.BoundingBox;
|
import net.citizensnpcs.util.BoundingBox;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.NMS;
|
import net.citizensnpcs.util.NMS;
|
||||||
@ -542,6 +543,7 @@ public class NMSImpl implements NMSBridge {
|
|||||||
public void load(CommandManager commands) {
|
public void load(CommandManager commands) {
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
||||||
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(SnowmanTrait.class));
|
||||||
commands.register(Commands.class);
|
commands.register(Commands.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public class PlayerControllerLook {
|
|||||||
public void a() {
|
public void a() {
|
||||||
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
||||||
return;
|
return;
|
||||||
this.a.pitch = 0.0F;
|
// this.a.pitch = 0.0F;
|
||||||
if (this.d) {
|
if (this.d) {
|
||||||
this.d = false;
|
this.d = false;
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import net.citizensnpcs.api.util.Messaging;
|
|||||||
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
||||||
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.Util;
|
import net.citizensnpcs.util.Util;
|
||||||
|
|
||||||
@ -122,4 +123,27 @@ public class Commands {
|
|||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "npc" },
|
||||||
|
usage = "snowman (-d[erp])",
|
||||||
|
desc = "Sets snowman modifiers.",
|
||||||
|
modifiers = { "snowman" },
|
||||||
|
min = 1,
|
||||||
|
max = 1,
|
||||||
|
flags = "d",
|
||||||
|
permission = "citizens.npc.snowman")
|
||||||
|
@Requirements(selected = true, ownership = true, types = { EntityType.SNOWMAN })
|
||||||
|
public void snowman(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||||
|
SnowmanTrait trait = npc.getTrait(SnowmanTrait.class);
|
||||||
|
boolean hasArg = false;
|
||||||
|
if (args.hasFlag('d')) {
|
||||||
|
boolean isDerp = trait.toggleDerp();
|
||||||
|
Messaging.sendTr(sender, isDerp ? Messages.SNOWMAN_DERP_SET : Messages.SNOWMAN_DERP_STOPPED, npc.getName());
|
||||||
|
hasArg = true;
|
||||||
|
}
|
||||||
|
if (!hasArg) {
|
||||||
|
throw new CommandUsageException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,6 +162,7 @@ import net.citizensnpcs.npc.skin.SkinnableEntity;
|
|||||||
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
import net.citizensnpcs.trait.versioned.BossBarTrait;
|
||||||
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.util.BoundingBox;
|
import net.citizensnpcs.util.BoundingBox;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.NMS;
|
import net.citizensnpcs.util.NMS;
|
||||||
@ -583,6 +584,7 @@ public class NMSImpl implements NMSBridge {
|
|||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(LlamaTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(LlamaTrait.class));
|
||||||
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(SnowmanTrait.class));
|
||||||
manager.register(Commands.class);
|
manager.register(Commands.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public class PlayerControllerLook {
|
|||||||
public void a() {
|
public void a() {
|
||||||
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
||||||
return;
|
return;
|
||||||
this.a.pitch = 0.0F;
|
// this.a.pitch = 0.0F;
|
||||||
if (this.d) {
|
if (this.d) {
|
||||||
this.d = false;
|
this.d = false;
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ import net.citizensnpcs.trait.versioned.BossBarTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ParrotTrait;
|
import net.citizensnpcs.trait.versioned.ParrotTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.Util;
|
import net.citizensnpcs.util.Util;
|
||||||
|
|
||||||
@ -151,4 +152,27 @@ public class Commands {
|
|||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "npc" },
|
||||||
|
usage = "snowman (-d[erp])",
|
||||||
|
desc = "Sets snowman modifiers.",
|
||||||
|
modifiers = { "snowman" },
|
||||||
|
min = 1,
|
||||||
|
max = 1,
|
||||||
|
flags = "d",
|
||||||
|
permission = "citizens.npc.snowman")
|
||||||
|
@Requirements(selected = true, ownership = true, types = { EntityType.SNOWMAN })
|
||||||
|
public void snowman(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||||
|
SnowmanTrait trait = npc.getTrait(SnowmanTrait.class);
|
||||||
|
boolean hasArg = false;
|
||||||
|
if (args.hasFlag('d')) {
|
||||||
|
boolean isDerp = trait.toggleDerp();
|
||||||
|
Messaging.sendTr(sender, isDerp ? Messages.SNOWMAN_DERP_SET : Messages.SNOWMAN_DERP_STOPPED, npc.getName());
|
||||||
|
hasArg = true;
|
||||||
|
}
|
||||||
|
if (!hasArg) {
|
||||||
|
throw new CommandUsageException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,6 +164,7 @@ import net.citizensnpcs.trait.versioned.BossBarTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
import net.citizensnpcs.trait.versioned.LlamaTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ParrotTrait;
|
import net.citizensnpcs.trait.versioned.ParrotTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.util.BoundingBox;
|
import net.citizensnpcs.util.BoundingBox;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.NMS;
|
import net.citizensnpcs.util.NMS;
|
||||||
@ -587,6 +588,7 @@ public class NMSImpl implements NMSBridge {
|
|||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ParrotTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ParrotTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
||||||
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(SnowmanTrait.class));
|
||||||
manager.register(Commands.class);
|
manager.register(Commands.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public class PlayerControllerLook {
|
|||||||
public void a() {
|
public void a() {
|
||||||
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
||||||
return;
|
return;
|
||||||
this.a.pitch = 0.0F;
|
// this.a.pitch = 0.0F;
|
||||||
if (this.d) {
|
if (this.d) {
|
||||||
this.d = false;
|
this.d = false;
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ import net.citizensnpcs.trait.versioned.ParrotTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
||||||
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
import net.citizensnpcs.util.Util;
|
import net.citizensnpcs.util.Util;
|
||||||
@ -249,4 +250,27 @@ public class Commands {
|
|||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "npc" },
|
||||||
|
usage = "snowman (-d[erp])",
|
||||||
|
desc = "Sets snowman modifiers.",
|
||||||
|
modifiers = { "snowman" },
|
||||||
|
min = 1,
|
||||||
|
max = 1,
|
||||||
|
flags = "d",
|
||||||
|
permission = "citizens.npc.snowman")
|
||||||
|
@Requirements(selected = true, ownership = true, types = { EntityType.SNOWMAN })
|
||||||
|
public void snowman(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||||
|
SnowmanTrait trait = npc.getTrait(SnowmanTrait.class);
|
||||||
|
boolean hasArg = false;
|
||||||
|
if (args.hasFlag('d')) {
|
||||||
|
boolean isDerp = trait.toggleDerp();
|
||||||
|
Messaging.sendTr(sender, isDerp ? Messages.SNOWMAN_DERP_SET : Messages.SNOWMAN_DERP_STOPPED, npc.getName());
|
||||||
|
hasArg = true;
|
||||||
|
}
|
||||||
|
if (!hasArg) {
|
||||||
|
throw new CommandUsageException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,6 +176,7 @@ import net.citizensnpcs.trait.versioned.ParrotTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
||||||
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
||||||
import net.citizensnpcs.util.BoundingBox;
|
import net.citizensnpcs.util.BoundingBox;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
@ -609,6 +610,7 @@ public class NMSImpl implements NMSBridge {
|
|||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ParrotTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ParrotTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(BossBarTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
||||||
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(SnowmanTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PhantomTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PhantomTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PufferFishTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PufferFishTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(TropicalFishTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(TropicalFishTrait.class));
|
||||||
|
@ -40,6 +40,7 @@ import net.citizensnpcs.trait.versioned.ParrotTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
||||||
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
@ -463,4 +464,27 @@ public class Commands {
|
|||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "npc" },
|
||||||
|
usage = "snowman (-d[erp])",
|
||||||
|
desc = "Sets snowman modifiers.",
|
||||||
|
modifiers = { "snowman" },
|
||||||
|
min = 1,
|
||||||
|
max = 1,
|
||||||
|
flags = "d",
|
||||||
|
permission = "citizens.npc.snowman")
|
||||||
|
@Requirements(selected = true, ownership = true, types = { EntityType.SNOWMAN })
|
||||||
|
public void snowman(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||||
|
SnowmanTrait trait = npc.getTrait(SnowmanTrait.class);
|
||||||
|
boolean hasArg = false;
|
||||||
|
if (args.hasFlag('d')) {
|
||||||
|
boolean isDerp = trait.toggleDerp();
|
||||||
|
Messaging.sendTr(sender, isDerp ? Messages.SNOWMAN_DERP_SET : Messages.SNOWMAN_DERP_STOPPED, npc.getName());
|
||||||
|
hasArg = true;
|
||||||
|
}
|
||||||
|
if (!hasArg) {
|
||||||
|
throw new CommandUsageException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -190,6 +190,7 @@ import net.citizensnpcs.trait.versioned.ParrotTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
||||||
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
||||||
import net.citizensnpcs.util.BoundingBox;
|
import net.citizensnpcs.util.BoundingBox;
|
||||||
@ -665,6 +666,7 @@ public class NMSImpl implements NMSBridge {
|
|||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PhantomTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PhantomTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PufferFishTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PufferFishTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
||||||
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(SnowmanTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(TropicalFishTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(TropicalFishTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(VillagerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(VillagerTrait.class));
|
||||||
manager.register(Commands.class);
|
manager.register(Commands.class);
|
||||||
|
@ -104,8 +104,9 @@ public class BlazeController extends MobEntityController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (NPCPushEvent.getHandlerList().getRegisteredListeners().length == 0) {
|
if (NPCPushEvent.getHandlerList().getRegisteredListeners().length == 0) {
|
||||||
if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true))
|
if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) {
|
||||||
super.h(x, y, z);
|
super.h(x, y, z);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Vector vector = new Vector(x, y, z);
|
Vector vector = new Vector(x, y, z);
|
||||||
|
@ -41,6 +41,7 @@ import net.citizensnpcs.trait.versioned.ParrotTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
||||||
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
||||||
import net.citizensnpcs.util.Messages;
|
import net.citizensnpcs.util.Messages;
|
||||||
@ -507,4 +508,27 @@ public class Commands {
|
|||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "npc" },
|
||||||
|
usage = "snowman (-d[erp])",
|
||||||
|
desc = "Sets snowman modifiers.",
|
||||||
|
modifiers = { "snowman" },
|
||||||
|
min = 1,
|
||||||
|
max = 1,
|
||||||
|
flags = "d",
|
||||||
|
permission = "citizens.npc.snowman")
|
||||||
|
@Requirements(selected = true, ownership = true, types = { EntityType.SNOWMAN })
|
||||||
|
public void snowman(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||||
|
SnowmanTrait trait = npc.getTrait(SnowmanTrait.class);
|
||||||
|
boolean hasArg = false;
|
||||||
|
if (args.hasFlag('d')) {
|
||||||
|
boolean isDerp = trait.toggleDerp();
|
||||||
|
Messaging.sendTr(sender, isDerp ? Messages.SNOWMAN_DERP_SET : Messages.SNOWMAN_DERP_STOPPED, npc.getName());
|
||||||
|
hasArg = true;
|
||||||
|
}
|
||||||
|
if (!hasArg) {
|
||||||
|
throw new CommandUsageException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -192,6 +192,7 @@ import net.citizensnpcs.trait.versioned.ParrotTrait;
|
|||||||
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
import net.citizensnpcs.trait.versioned.PhantomTrait;
|
||||||
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
import net.citizensnpcs.trait.versioned.PufferFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
import net.citizensnpcs.trait.versioned.ShulkerTrait;
|
||||||
|
import net.citizensnpcs.trait.versioned.SnowmanTrait;
|
||||||
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
|
||||||
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
import net.citizensnpcs.trait.versioned.VillagerTrait;
|
||||||
import net.citizensnpcs.util.BoundingBox;
|
import net.citizensnpcs.util.BoundingBox;
|
||||||
@ -669,6 +670,7 @@ public class NMSImpl implements NMSBridge {
|
|||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PhantomTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PhantomTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PufferFishTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(PufferFishTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(ShulkerTrait.class));
|
||||||
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(SnowmanTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(TropicalFishTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(TropicalFishTrait.class));
|
||||||
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(VillagerTrait.class));
|
CitizensAPI.getTraitFactory().registerTrait(TraitInfo.create(VillagerTrait.class));
|
||||||
manager.register(Commands.class);
|
manager.register(Commands.class);
|
||||||
|
@ -21,7 +21,7 @@ public class PlayerControllerLook {
|
|||||||
public void a() {
|
public void a() {
|
||||||
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
if (!NMSImpl.isNavigationFinished(this.a.getNavigation()))
|
||||||
return;
|
return;
|
||||||
this.a.pitch = 0.0F;
|
// this.a.pitch = 0.0F;
|
||||||
this.a.aI = this.a.aK;
|
this.a.aI = this.a.aK;
|
||||||
if (this.d) {
|
if (this.d) {
|
||||||
this.d = false;
|
this.d = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user