use of cn.nukkit.Player in project Nukkit by Nukkit.
the class EnchantCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
if (args.length < 2) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return true;
}
Player player = sender.getServer().getPlayer(args[0]);
if (player == null) {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound"));
return true;
}
int enchantId;
int enchantLevel;
try {
enchantId = getIdByName(args[1]);
enchantLevel = args.length == 3 ? Integer.parseInt(args[2]) : 1;
} catch (NumberFormatException e) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return true;
}
Enchantment enchantment = Enchantment.getEnchantment(enchantId);
if (enchantment == null) {
sender.sendMessage(new TranslationContainer("commands.enchant.notFound", String.valueOf(enchantId)));
return true;
}
enchantment.setLevel(enchantLevel);
Item item = player.getInventory().getItemInHand();
if (item.getId() <= 0) {
sender.sendMessage(new TranslationContainer("commands.enchant.noItem"));
return true;
}
item.addEnchantment(enchantment);
player.getInventory().setItemInHand(item);
Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.enchant.success"));
return true;
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class EntityHuman method spawnTo.
@Override
public void spawnTo(Player player) {
if (this != player && !this.hasSpawned.containsKey(player.getLoaderId())) {
this.hasSpawned.put(player.getLoaderId(), player);
if (this.skin.getData().length < 64 * 32 * 4) {
throw new IllegalStateException(this.getClass().getSimpleName() + " must have a valid skin set");
}
if (this instanceof Player)
this.server.updatePlayerListData(this.getUniqueId(), this.getId(), this.getName(), this.skin, ((Player) this).getLoginChainData().getXUID(), new Player[] { player });
else
this.server.updatePlayerListData(this.getUniqueId(), this.getId(), this.getName(), this.skin, new Player[] { player });
AddPlayerPacket pk = new AddPlayerPacket();
pk.uuid = this.getUniqueId();
pk.username = this.getName();
pk.entityUniqueId = this.getId();
pk.entityRuntimeId = this.getId();
pk.x = (float) this.x;
pk.y = (float) this.y;
pk.z = (float) this.z;
pk.speedX = (float) this.motionX;
pk.speedY = (float) this.motionY;
pk.speedZ = (float) this.motionZ;
pk.yaw = (float) this.yaw;
pk.pitch = (float) this.pitch;
pk.item = this.getInventory().getItemInHand();
pk.metadata = this.dataProperties;
player.dataPacket(pk);
this.inventory.sendArmorContents(player);
if (this.riding != null) {
SetEntityLinkPacket pkk = new SetEntityLinkPacket();
pkk.rider = this.riding.getId();
pkk.riding = this.getId();
pkk.type = 1;
pkk.unknownByte = 1;
player.dataPacket(pkk);
}
if (!(this instanceof Player)) {
this.server.removePlayerListData(this.getUniqueId(), new Player[] { player });
}
}
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class EntityLiving method entityBaseTick.
@Override
public boolean entityBaseTick(int tickDiff) {
Timings.livingEntityBaseTickTimer.startTiming();
boolean isBreathing = !this.isInsideOfWater();
if (this instanceof Player && ((Player) this).isCreative()) {
isBreathing = true;
}
this.setDataFlag(DATA_FLAGS, DATA_FLAG_BREATHING, isBreathing);
boolean hasUpdate = super.entityBaseTick(tickDiff);
if (this.isAlive()) {
if (this.isInsideOfSolid()) {
hasUpdate = true;
this.attack(new EntityDamageEvent(this, DamageCause.SUFFOCATION, 1));
}
if (!this.hasEffect(Effect.WATER_BREATHING) && this.isInsideOfWater()) {
if (this instanceof EntityWaterAnimal) {
this.setDataProperty(new ShortEntityData(DATA_AIR, 400));
} else {
hasUpdate = true;
int airTicks = this.getDataPropertyShort(DATA_AIR) - tickDiff;
if (airTicks <= -20) {
airTicks = 0;
this.attack(new EntityDamageEvent(this, DamageCause.DROWNING, 2));
}
this.setDataProperty(new ShortEntityData(DATA_AIR, airTicks));
}
} else {
if (this instanceof EntityWaterAnimal) {
hasUpdate = true;
int airTicks = this.getDataPropertyInt(DATA_AIR) - tickDiff;
if (airTicks <= -20) {
airTicks = 0;
this.attack(new EntityDamageEvent(this, DamageCause.SUFFOCATION, 2));
}
this.setDataProperty(new ShortEntityData(DATA_AIR, airTicks));
} else {
this.setDataProperty(new ShortEntityData(DATA_AIR, 400));
}
}
}
if (this.attackTime > 0) {
this.attackTime -= tickDiff;
}
if (this.riding == null) {
for (Entity entity : level.getNearbyEntities(this.boundingBox.grow(0.20000000298023224D, 0.0D, 0.20000000298023224D), this)) {
if (entity instanceof EntityRideable) {
this.collidingWith(entity);
}
}
}
Timings.livingEntityBaseTickTimer.stopTiming();
return hasUpdate;
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class TeleportCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
if (args.length < 1 || args.length > 6) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return true;
}
CommandSender target;
CommandSender origin = sender;
if (args.length == 1 || args.length == 3) {
if (sender instanceof Player) {
target = sender;
} else {
sender.sendMessage(new TranslationContainer("commands.generic.ingame"));
return true;
}
if (args.length == 1) {
target = sender.getServer().getPlayer(args[0]);
if (target == null) {
sender.sendMessage(TextFormat.RED + "Can't find player " + args[0]);
return true;
}
}
} else {
target = sender.getServer().getPlayer(args[0]);
if (target == null) {
sender.sendMessage(TextFormat.RED + "Can't find player " + args[0]);
return true;
}
if (args.length == 2) {
origin = target;
target = sender.getServer().getPlayer(args[1]);
if (target == null) {
sender.sendMessage(TextFormat.RED + "Can't find player " + args[1]);
return true;
}
}
}
if (args.length < 3) {
((Player) origin).teleport((Player) target, PlayerTeleportEvent.TeleportCause.COMMAND);
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.tp.success", new String[] { origin.getName(), target.getName() }));
return true;
} else if (((Player) target).getLevel() != null) {
int pos;
if (args.length == 4 || args.length == 6) {
pos = 1;
} else {
pos = 0;
}
double x;
double y;
double z;
double yaw;
double pitch;
try {
x = Double.parseDouble(args[pos++]);
y = Double.parseDouble(args[pos++]);
z = Double.parseDouble(args[pos++]);
yaw = ((Player) target).getYaw();
pitch = ((Player) target).getPitch();
} catch (NumberFormatException e1) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return true;
}
if (y < 0)
y = 0;
if (y > 256)
y = 256;
if (args.length == 6 || (args.length == 5 && pos == 3)) {
yaw = Integer.parseInt(args[pos++]);
pitch = Integer.parseInt(args[pos++]);
}
((Player) target).teleport(new Location(x, y, z, yaw, pitch, ((Player) target).getLevel()), PlayerTeleportEvent.TeleportCause.COMMAND);
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.tp.success.coordinates", new String[] { target.getName(), String.valueOf(NukkitMath.round(x, 2)), String.valueOf(NukkitMath.round(y, 2)), String.valueOf(NukkitMath.round(z, 2)) }));
return true;
}
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return true;
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class TitleCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
if (args.length < 2) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
Player player = Server.getInstance().getPlayerExact(args[0]);
if (player == null) {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound"));
return true;
}
if (args.length == 2) {
switch(args[1].toLowerCase()) {
case "clear":
player.clearTitle();
sender.sendMessage(new TranslationContainer("nukkit.command.title.clear", player.getName()));
break;
case "reset":
player.resetTitleSettings();
sender.sendMessage(new TranslationContainer("nukkit.command.title.reset", player.getName()));
break;
default:
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
} else if (args.length == 3) {
switch(args[1].toLowerCase()) {
case "title":
player.sendTitle(args[2]);
sender.sendMessage(new TranslationContainer("nukkit.command.title.title", new String[] { TextFormat.clean(args[2]), player.getName() }));
break;
/*case "subtitle":
player.setSubtitle(args[2]);
sender.sendMessage(new TranslationContainer("nukkit.command.title.subtitle", new String[]{TextFormat.clean(args[2]), player.getName()}));
break;
case "actionbar":
player.sendActionBarTitle(args[2]);
sender.sendMessage(new TranslationContainer("nukkit.command.title.actionbar", new String[]{TextFormat.clean(args[2]), player.getName()}));
break;*/
default:
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
} else if (args.length == 5) {
if (args[1].toLowerCase().equals("times")) {
try {
/*player.setTitleAnimationTimes(Integer.valueOf(args[2]), //fadeIn
Integer.valueOf(args[3]), //stay
Integer.valueOf(args[4])); //fadeOut*/
sender.sendMessage(new TranslationContainer("nukkit.command.title.times.success", new String[] { args[2], args[3], args[4], player.getName() }));
} catch (NumberFormatException exception) {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%nukkit.command.title.times.fail"));
}
} else {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
} else {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
return true;
}
Aggregations