public void despawn() { if (!isEntitySpawned()) return; this.entitySpawned = false; ServerDestroyEntitiesPacket destroyEntitiesPacket = new ServerDestroyEntitiesPacket(this.entityID); this.entityID = Entity.getNextID(); for (Player pl : MCThunder.getPlayers()) pl.sendPacket(destroyEntitiesPacket); }
public void spawn(Location l) { if (isEntitySpawned()) return; this.entitySpawned = true; this.location = l; long chunk = getChunk(); for (Player p : MCThunder.getPlayers()) if (p.getWorld().equals(getWorld()) && p.isColumnLoaded(chunk)) for (Packet packet : getPackets()) p.sendPacket(packet); }
@Override public boolean execute(Player player, String[] args) { if (args.length == 0) return false; Player p = MCThunder.getPlayer(args[0]); if (p == null) { player.sendMessage("&cThat Player is not online!"); return true; } CompoundTag c = (CompoundTag) MCThunder.getProfileHandler().getAttribute(p, "RankManager"); for (int i = MCThunder.getRankManager() .getCommandLevelFromRank(c.get("RankName").getValue().toString()) + 1; i <= 9999; i++) if (MCThunder.getRankManager().getRankHashMap().containsValue(i)) { String rank = (String) MCThunder.getRankManager().getReverseRankHashMap().get(i); MCThunder.getRankManager().setPlayerRank(p, rank); player.sendMessage( "&1Player " + p.getDisplayName() + "'s rank has been changed to " + rank + "!"); p.sendMessage("Your rank has been set to " + rank + "!"); return true; } player.sendMessage("&cThere is no Higher rank!"); return true; }
public void setName(String newName) { if (this.name == null) return; String nick = MessageFormat.formatMessage(this.name = newName).getFullText().trim(); if (nick.length() < 17) { super.setCustomName(nick); this.metadata.setMetadata(2, nick); this.botProfile = new GameProfile(this.uuid, nick); this.botProfile.getProperties().put("textures", this.skin); updateMetadata(); } MCThunder.getEntryListHandler().refresh(this); if (nick.length() < 17) { ServerDestroyEntitiesPacket destroyEntitiesPacket = new ServerDestroyEntitiesPacket(getEntityID()); this.entityID = getNextID(); long chunk = getChunk(); for (Player pl : MCThunder.getPlayers()) { pl.sendPacket(destroyEntitiesPacket); if (pl.getWorld().equals(getWorld()) && pl.isColumnLoaded(chunk)) for (Packet packet : getPackets()) pl.sendPacket(packet); } } }
protected void setSkin(Property p) { if (p == null || !p.getName().equalsIgnoreCase("textures")) return; this.skin = p; if (this.capeURL != null) // This does not work because signature is not valid after it is changed try { // TODO: Try to come up with a way to get this to work, that does not require the private // mc auth key byte[] bytes = Base64.decode(this.skin.getValue().getBytes("UTF-8")); String value = new String(bytes); int s = value.indexOf("CAPE"); value = value.substring(0, (s == -1 ? value.length() : s) - 2) + ",\"CAPE\":{\"url\":\"" + this.capeURL + "\"}}}"; this.skin = new Property( "textures", new String(Base64.encode(value.getBytes("UTF-8"))), this.skin.getSignature()); } catch (Exception e) { e.printStackTrace(); } this.botProfile.getProperties().put("textures", this.skin); MCThunder.getEntryListHandler().refresh(this); if (isEntitySpawned()) { ServerDestroyEntitiesPacket destroyEntitiesPacket = new ServerDestroyEntitiesPacket(this.entityID); this.entityID = Entity.getNextID(); long chunk = getChunk(); for (Player pl : MCThunder.getPlayers()) { pl.sendPacket(destroyEntitiesPacket); if (pl.getWorld().equals(getWorld()) && pl.isColumnLoaded(chunk)) for (Packet packet : getPackets()) pl.sendPacket(packet); } } }