public static void teleportToClonedWorld(World from, World cloned) { for (Player p : from.getPlayers().toArray(new Player[0])) { Location loc = p.getLocation(); loc.setWorld(cloned); p.teleport(loc); } }
@Override public boolean standsOnEntity( final Entity entity, final double minX, final double minY, final double minZ, final double maxX, final double maxY, final double maxZ) { try { // TODO: Probably check other ids too before doing this ? for (final Entity other : entity.getNearbyEntities(2.0, 2.0, 2.0)) { final EntityType type = other.getType(); if (type != EntityType.BOAT) { // && !(other instanceof Minecart)) continue; } final double locY = entity.getLocation(useLoc).getY(); useLoc.setWorld(null); if (Math.abs(locY - minY) < 0.7) { // TODO: A "better" estimate is possible, though some more tolerance would be good. return true; } else return false; } } catch (Throwable t) { // Ignore exceptions (Context: DisguiseCraft). } return false; }
/** * just like: from=to; except the pitch/yal is not reset; ie. keep the pitch/yaw of "from" * * @param from * @param to * @return from (unneeded but hey) */ public static final Location setLocationExceptEye(Location from, Location to) { assert Q.nn(from); assert Q.nn(to); from.setWorld(to.getWorld()); from.setX(to.getX()); from.setY(to.getY()); from.setZ(to.getZ()); return from; }
public Location getLocation(Location loc) { if (loc != null) { loc.setWorld(getWorld()); loc.setX(entity.posX); loc.setY(entity.posY); loc.setZ(entity.posZ); loc.setYaw(entity.rotationYaw); loc.setPitch(entity.rotationPitch); } return loc; }
public Location getLocation(Location loc) { if (loc != null) { loc.setWorld(getWorld()); loc.setX(entity.locX); loc.setY(entity.locY); loc.setZ(entity.locZ); loc.setYaw(entity.yaw); loc.setPitch(entity.pitch); } return loc; }
public void onPlayerRespawn(PlayerRespawnEvent event) { if (LoadProperties.enableMySpawn) { Player player = event.getPlayer(); PlayerProfile PP = Users.getProfile(player); if (player != null) { PP.setRespawnATS(System.currentTimeMillis()); Location mySpawn = PP.getMySpawn(player); if (mySpawn != null && plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)) != null) mySpawn.setWorld(plugin.getServer().getWorld(PP.getMySpawnWorld(plugin))); if (mcPermissions.getInstance().mySpawn(player) && mySpawn != null) { event.setRespawnLocation(mySpawn); } } } }
public void testBuild(World world, Instance instance, Player p) { message("Building test word : NW_" + world.getName() + "_TEST"); world.save(); if (instance != null) instance.destroy(); instance = new Instance(this.editor, world.getName(), "NW_" + world.getName() + "_TEST"); this.editor.getTestWorlds().put(world, instance); NathemWorld nw = instance.build(); if (nw == null) { message("An error occured in compiler !"); return; } Location spawn = p.getLocation().clone(); spawn.setWorld(instance.getInstanceWorld()); p.teleport(spawn); }
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { Player player = event.getPlayer(); PlayerProfile PP = Users.getProfile(player); String[] split = event.getMessage().split(" "); String playerName = player.getName(); // Check if the command is an MMO related help command m.mmoHelpCheck(split, player, event); if (mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase("/" + LoadProperties.mcability)) { event.setCancelled(true); if (PP.getAbilityUse()) { player.sendMessage("Ability use toggled off"); PP.toggleAbilityUse(); } else { player.sendMessage("Ability use toggled on"); PP.toggleAbilityUse(); } } /* * FFS -> MySQL */ if (split[0].equalsIgnoreCase("/mmoupdate")) { event.setCancelled(true); if (!mcPermissions.getInstance().admin(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } player.sendMessage(ChatColor.GRAY + "Starting conversion..."); Users.clearUsers(); m.convertToMySQL(plugin); for (Player x : plugin.getServer().getOnlinePlayers()) { Users.addUser(x); } player.sendMessage(ChatColor.GREEN + "Conversion finished!"); } /* * LEADER BOARD COMMAND */ if (split[0].equalsIgnoreCase("/" + LoadProperties.mctop)) { event.setCancelled(true); if (LoadProperties.useMySQL == false) { /* * POWER LEVEL INFO RETRIEVAL */ if (split.length == 1) { int p = 1; String[] info = Leaderboard.retrieveInfo("powerlevel", p); player.sendMessage( ChatColor.YELLOW + "--mcMMO" + ChatColor.BLUE + " Power Level " + ChatColor.YELLOW + "Leaderboard--"); int n = 1 * p; // Position for (String x : info) { if (x != null) { String digit = String.valueOf(n); if (n < 10) digit = "0" + String.valueOf(n); String[] splitx = x.split(":"); // Format: 1. Playername - skill value player.sendMessage( digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); n++; } } } if (split.length >= 2 && Leaderboard.isInt(split[1])) { int p = 1; // Grab page value if specified if (split.length >= 2) { if (Leaderboard.isInt(split[1])) { p = Integer.valueOf(split[1]); } } int pt = p; if (p > 1) { pt -= 1; pt += (pt * 10); pt = 10; } String[] info = Leaderboard.retrieveInfo("powerlevel", p); player.sendMessage("--mcMMO Power Level Leaderboard--"); int n = 1 * pt; // Position for (String x : info) { if (x != null) { String digit = String.valueOf(n); if (n < 10) digit = "0" + String.valueOf(n); String[] splitx = x.split(":"); // Format: 1. Playername - skill value player.sendMessage( digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); n++; } } } /* * SKILL SPECIFIED INFO RETRIEVAL */ if (split.length >= 2 && Skills.isSkill(split[1])) { int p = 1; // Grab page value if specified if (split.length >= 3) { if (Leaderboard.isInt(split[2])) { p = Integer.valueOf(split[2]); } } int pt = p; if (p > 1) { pt -= 1; pt += (pt * 10); pt = 10; } String firstLetter = split[1].substring(0, 1); // Get first letter String remainder = split[1].substring(1); // Get remainder of word. String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); String[] info = Leaderboard.retrieveInfo(split[1].toLowerCase(), p); player.sendMessage( ChatColor.YELLOW + "--mcMMO " + ChatColor.BLUE + capitalized + ChatColor.YELLOW + " Leaderboard--"); int n = 1 * pt; // Position for (String x : info) { if (x != null) { String digit = String.valueOf(n); if (n < 10) digit = "0" + String.valueOf(n); String[] splitx = x.split(":"); // Format: 1. Playername - skill value player.sendMessage( digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); n++; } } } } else /* * MYSQL LEADERBOARDS */ { String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics"; if (split.length >= 2 && Skills.isSkill(split[1])) { /* * Create a nice consistent capitalized leaderboard name */ String lowercase = split[1].toLowerCase(); // For the query String firstLetter = split[1].substring(0, 1); // Get first letter String remainder = split[1].substring(1); // Get remainder of word. String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); player.sendMessage( ChatColor.YELLOW + "--mcMMO " + ChatColor.BLUE + capitalized + ChatColor.YELLOW + " Leaderboard--"); if (split.length >= 3 && m.isInt(split[2])) { int n = 1; // For the page number int n2 = Integer.valueOf(split[2]); if (n2 > 1) { // Figure out the 'page' here n = 10; n = n * (n2 - 1); } // If a page number is specified HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read( "SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); for (int i = n; i <= n + 10; i++) { if (i > userslist.size() || mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage( String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); } return; } // If no page number is specified HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read( "SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); for (int i = 1; i <= 10; i++) // i<=userslist.size() { if (i > userslist.size() || mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage( String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); } return; } if (split.length >= 1) { player.sendMessage( ChatColor.YELLOW + "--mcMMO " + ChatColor.BLUE + "Power Level" + ChatColor.YELLOW + " Leaderboard--"); if (split.length >= 2 && m.isInt(split[1])) { int n = 1; // For the page number int n2 = Integer.valueOf(split[1]); if (n2 > 1) { // Figure out the 'page' here n = 10; n = n * (n2 - 1); } // If a page number is specified HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read( "SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC "); for (int i = n; i <= n + 10; i++) { if (i > userslist.size() || mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage( String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); } return; } HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read( "SELECT taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics, user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC "); for (int i = 1; i <= 10; i++) { if (i > userslist.size() || mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read( "SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage( String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); // System.out.println(username.get(1).get(0)); // System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + // userslist.get(i).get(1)); } } } } if (split[0].equalsIgnoreCase("/" + LoadProperties.mcrefresh)) { event.setCancelled(true); if (!mcPermissions.getInstance().mcrefresh(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (split.length >= 2 && isPlayer(split[1])) { player.sendMessage("You have refreshed " + split[1] + "'s cooldowns!"); player = getPlayer(split[1]); } /* * PREP MODES */ PP = Users.getProfile(player); PP.setRecentlyHurt((long) 0); PP.setHoePreparationMode(false); PP.setAxePreparationMode(false); PP.setFistsPreparationMode(false); PP.setSwordsPreparationMode(false); PP.setPickaxePreparationMode(false); /* * GREEN TERRA */ PP.setGreenTerraMode(false); PP.setGreenTerraDeactivatedTimeStamp((long) 0); /* * GIGA DRILL BREAKER */ PP.setGigaDrillBreakerMode(false); PP.setGigaDrillBreakerDeactivatedTimeStamp((long) 0); /* * SERRATED STRIKE */ PP.setSerratedStrikesMode(false); PP.setSerratedStrikesDeactivatedTimeStamp((long) 0); /* * SUPER BREAKER */ PP.setSuperBreakerMode(false); PP.setSuperBreakerDeactivatedTimeStamp((long) 0); /* * TREE FELLER */ PP.setTreeFellerMode(false); PP.setTreeFellerDeactivatedTimeStamp((long) 0); /* * BERSERK */ PP.setBerserkMode(false); PP.setBerserkDeactivatedTimeStamp((long) 0); player.sendMessage(ChatColor.GREEN + "**ABILITIES REFRESHED!**"); } /* * GODMODE COMMAND */ if (mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase("/" + LoadProperties.mcgod)) { event.setCancelled(true); if (!mcPermissions.getInstance().mcgod(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (Config.getInstance().isGodModeToggled(playerName)) { player.sendMessage(ChatColor.YELLOW + "mcMMO Godmode Disabled"); Config.getInstance().toggleGodMode(playerName); } else { player.sendMessage(ChatColor.YELLOW + "mcMMO Godmode Enabled"); Config.getInstance().toggleGodMode(playerName); } } if (LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player) && split[0].equalsIgnoreCase("/" + LoadProperties.clearmyspawn)) { event.setCancelled(true); double x = plugin.getServer().getWorlds().get(0).getSpawnLocation().getX(); double y = plugin.getServer().getWorlds().get(0).getSpawnLocation().getY(); double z = plugin.getServer().getWorlds().get(0).getSpawnLocation().getZ(); String worldname = plugin.getServer().getWorlds().get(0).getName(); PP.setMySpawn(x, y, z, worldname); player.sendMessage(ChatColor.DARK_AQUA + "Myspawn is now cleared."); } if (mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase("/" + LoadProperties.mmoedit)) { event.setCancelled(true); if (!mcPermissions.getInstance().mmoedit(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (split.length < 3) { player.sendMessage( ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); return; } if (split.length == 4) { if (isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2])) { int newvalue = Integer.valueOf(split[3]); Users.getProfile(getPlayer(split[1])).modifyskill(newvalue, split[2]); player.sendMessage(ChatColor.RED + split[2] + " has been modified."); } } else if (split.length == 3) { if (m.isInt(split[2]) && Skills.isSkill(split[1])) { int newvalue = Integer.valueOf(split[2]); PP.modifyskill(newvalue, split[1]); player.sendMessage(ChatColor.RED + split[1] + " has been modified."); } } else { player.sendMessage( ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); } } /* * ADD EXPERIENCE COMMAND */ if (mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase("/" + LoadProperties.addxp)) { event.setCancelled(true); if (!mcPermissions.getInstance().mmoedit(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (split.length < 3) { player.sendMessage( ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); return; } if (split.length == 4) { if (isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2])) { int newvalue = Integer.valueOf(split[3]); Users.getProfile(getPlayer(split[1])).addXP(split[2], newvalue); getPlayer(split[1]).sendMessage(ChatColor.GREEN + "Experience granted!"); player.sendMessage(ChatColor.RED + split[2] + " has been modified."); Skills.XpCheck(getPlayer(split[1])); } } else if (split.length == 3 && m.isInt(split[2]) && Skills.isSkill(split[1])) { int newvalue = Integer.valueOf(split[2]); Users.getProfile(player).addXP(split[1], newvalue); player.sendMessage(ChatColor.RED + split[1] + " has been modified."); } else { player.sendMessage( ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); } } if (PP.inParty() && split[0].equalsIgnoreCase("/" + LoadProperties.ptp)) { event.setCancelled(true); if (!mcPermissions.getInstance().partyTeleport(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (split.length < 2) { player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.ptp + " <playername>"); return; } if (!isPlayer(split[1])) { player.sendMessage("That is not a valid player"); } if (isPlayer(split[1])) { Player target = getPlayer(split[1]); PlayerProfile PPt = Users.getProfile(target); if (PP.getParty().equals(PPt.getParty())) { player.teleport(target); player.sendMessage(ChatColor.GREEN + "You have teleported to " + target.getName()); target.sendMessage(ChatColor.GREEN + player.getName() + " has teleported to you."); } } } /* * WHOIS COMMAND */ if ((player.isOp() || mcPermissions.getInstance().whois(player)) && split[0].equalsIgnoreCase("/" + LoadProperties.whois)) { event.setCancelled(true); if (split.length < 2) { player.sendMessage( ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " <playername>"); return; } // if split[1] is a player if (isPlayer(split[1])) { Player target = getPlayer(split[1]); PlayerProfile PPt = Users.getProfile(target); double x, y, z; x = target.getLocation().getX(); y = target.getLocation().getY(); z = target.getLocation().getZ(); player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~"); player.sendMessage(target.getName()); if (PPt.inParty()) player.sendMessage("Party: " + PPt.getParty()); player.sendMessage( "Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)"); player.sendMessage("OP: " + target.isOp()); player.sendMessage( ChatColor.GREEN + "MMO Stats for " + ChatColor.YELLOW + target.getName()); if (mcPermissions.getInstance().taming(target)) player.sendMessage( ChatColor.YELLOW + "Taming Skill: " + ChatColor.GREEN + PPt.getTaming() + ChatColor.DARK_AQUA + " XP(" + PPt.getTamingXP() + "/" + PPt.getXpToLevel("taming") + ")"); if (mcPermissions.getInstance().mining(target)) player.sendMessage( ChatColor.YELLOW + "Mining Skill: " + ChatColor.GREEN + PPt.getMining() + ChatColor.DARK_AQUA + " XP(" + PPt.getMiningXP() + "/" + PPt.getXpToLevel("mining") + ")"); if (mcPermissions.getInstance().repair(target)) player.sendMessage( ChatColor.YELLOW + "Repair Skill: " + ChatColor.GREEN + PPt.getRepair() + ChatColor.DARK_AQUA + " XP(" + PPt.getRepairXP() + "/" + PPt.getXpToLevel("repair") + ")"); if (mcPermissions.getInstance().woodcutting(target)) player.sendMessage( ChatColor.YELLOW + "Woodcutting Skill: " + ChatColor.GREEN + PPt.getWoodCutting() + ChatColor.DARK_AQUA + " XP(" + PPt.getWoodCuttingXP() + "/" + PPt.getXpToLevel("woodcutting") + ")"); if (mcPermissions.getInstance().unarmed(target)) player.sendMessage( ChatColor.YELLOW + "Unarmed Skill: " + ChatColor.GREEN + PPt.getUnarmed() + ChatColor.DARK_AQUA + " XP(" + PPt.getUnarmedXP() + "/" + PPt.getXpToLevel("unarmed") + ")"); if (mcPermissions.getInstance().herbalism(target)) player.sendMessage( ChatColor.YELLOW + "Herbalism Skill: " + ChatColor.GREEN + PPt.getHerbalism() + ChatColor.DARK_AQUA + " XP(" + PPt.getHerbalismXP() + "/" + PPt.getXpToLevel("herbalism") + ")"); if (mcPermissions.getInstance().excavation(target)) player.sendMessage( ChatColor.YELLOW + "Excavation Skill: " + ChatColor.GREEN + PPt.getExcavation() + ChatColor.DARK_AQUA + " XP(" + PPt.getExcavationXP() + "/" + PPt.getXpToLevel("excavation") + ")"); if (mcPermissions.getInstance().archery(target)) player.sendMessage( ChatColor.YELLOW + "Archery Skill: " + ChatColor.GREEN + PPt.getArchery() + ChatColor.DARK_AQUA + " XP(" + PPt.getArcheryXP() + "/" + PPt.getXpToLevel("archery") + ")"); if (mcPermissions.getInstance().swords(target)) player.sendMessage( ChatColor.YELLOW + "Swords Skill: " + ChatColor.GREEN + PPt.getSwords() + ChatColor.DARK_AQUA + " XP(" + PPt.getSwordsXP() + "/" + PPt.getXpToLevel("swords") + ")"); if (mcPermissions.getInstance().axes(target)) player.sendMessage( ChatColor.YELLOW + "Axes Skill: " + ChatColor.GREEN + PPt.getAxes() + ChatColor.DARK_AQUA + " XP(" + PPt.getAxesXP() + "/" + PPt.getXpToLevel("axes") + ")"); if (mcPermissions.getInstance().acrobatics(target)) player.sendMessage( ChatColor.YELLOW + "Acrobatics Skill: " + ChatColor.GREEN + PPt.getAcrobatics() + ChatColor.DARK_AQUA + " XP(" + PPt.getAcrobaticsXP() + "/" + PPt.getXpToLevel("acrobatics") + ")"); player.sendMessage( ChatColor.DARK_RED + "POWER LEVEL: " + ChatColor.GREEN + (m.getPowerLevel(target))); player.sendMessage(ChatColor.GREEN + "~~COORDINATES~~"); player.sendMessage("X: " + x); player.sendMessage("Y: " + y); player.sendMessage("Z: " + z); } } /* * STATS COMMAND */ if (split[0].equalsIgnoreCase("/" + LoadProperties.stats)) { event.setCancelled(true); player.sendMessage(ChatColor.GREEN + "Your MMO Stats"); if (mcPermissions.getInstance().permissionsEnabled) player.sendMessage( ChatColor.DARK_GRAY + "If you don't have access to a skill it will not be shown here."); if (mcPermissions.getInstance().taming(player)) player.sendMessage( ChatColor.YELLOW + "Taming Skill: " + ChatColor.GREEN + PP.getTaming() + ChatColor.DARK_AQUA + " XP(" + PP.getTamingXP() + "/" + PP.getXpToLevel("taming") + ")"); if (mcPermissions.getInstance().mining(player)) player.sendMessage( ChatColor.YELLOW + "Mining Skill: " + ChatColor.GREEN + PP.getMining() + ChatColor.DARK_AQUA + " XP(" + PP.getMiningXP() + "/" + PP.getXpToLevel("mining") + ")"); if (mcPermissions.getInstance().repair(player)) player.sendMessage( ChatColor.YELLOW + "Repair Skill: " + ChatColor.GREEN + PP.getRepair() + ChatColor.DARK_AQUA + " XP(" + PP.getRepairXP() + "/" + PP.getXpToLevel("repair") + ")"); if (mcPermissions.getInstance().woodcutting(player)) player.sendMessage( ChatColor.YELLOW + "Woodcutting Skill: " + ChatColor.GREEN + PP.getWoodCutting() + ChatColor.DARK_AQUA + " XP(" + PP.getWoodCuttingXP() + "/" + PP.getXpToLevel("woodcutting") + ")"); if (mcPermissions.getInstance().unarmed(player)) player.sendMessage( ChatColor.YELLOW + "Unarmed Skill: " + ChatColor.GREEN + PP.getUnarmed() + ChatColor.DARK_AQUA + " XP(" + PP.getUnarmedXP() + "/" + PP.getXpToLevel("unarmed") + ")"); if (mcPermissions.getInstance().herbalism(player)) player.sendMessage( ChatColor.YELLOW + "Herbalism Skill: " + ChatColor.GREEN + PP.getHerbalism() + ChatColor.DARK_AQUA + " XP(" + PP.getHerbalismXP() + "/" + PP.getXpToLevel("herbalism") + ")"); if (mcPermissions.getInstance().excavation(player)) player.sendMessage( ChatColor.YELLOW + "Excavation Skill: " + ChatColor.GREEN + PP.getExcavation() + ChatColor.DARK_AQUA + " XP(" + PP.getExcavationXP() + "/" + PP.getXpToLevel("excavation") + ")"); if (mcPermissions.getInstance().archery(player)) player.sendMessage( ChatColor.YELLOW + "Archery Skill: " + ChatColor.GREEN + PP.getArchery() + ChatColor.DARK_AQUA + " XP(" + PP.getArcheryXP() + "/" + PP.getXpToLevel("archery") + ")"); if (mcPermissions.getInstance().swords(player)) player.sendMessage( ChatColor.YELLOW + "Swords Skill: " + ChatColor.GREEN + PP.getSwords() + ChatColor.DARK_AQUA + " XP(" + PP.getSwordsXP() + "/" + PP.getXpToLevel("swords") + ")"); if (mcPermissions.getInstance().axes(player)) player.sendMessage( ChatColor.YELLOW + "Axes Skill: " + ChatColor.GREEN + PP.getAxes() + ChatColor.DARK_AQUA + " XP(" + PP.getAxesXP() + "/" + PP.getXpToLevel("axes") + ")"); if (mcPermissions.getInstance().acrobatics(player)) player.sendMessage( ChatColor.YELLOW + "Acrobatics Skill: " + ChatColor.GREEN + PP.getAcrobatics() + ChatColor.DARK_AQUA + " XP(" + PP.getAcrobaticsXP() + "/" + PP.getXpToLevel("acrobatics") + ")"); player.sendMessage( ChatColor.DARK_RED + "POWER LEVEL: " + ChatColor.GREEN + (m.getPowerLevel(player))); } // Invite Command if (mcPermissions.getInstance().party(player) && split[0].equalsIgnoreCase("/" + LoadProperties.invite)) { event.setCancelled(true); if (!PP.inParty()) { player.sendMessage(ChatColor.RED + "You are not in a party."); return; } if (split.length < 2) { player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.invite + " <playername>"); return; } if (PP.inParty() && split.length >= 2 && isPlayer(split[1])) { Player target = getPlayer(split[1]); PlayerProfile PPt = Users.getProfile(target); PPt.modifyInvite(PP.getParty()); player.sendMessage(ChatColor.GREEN + "Invite sent successfully"); target.sendMessage( ChatColor.RED + "ALERT: " + ChatColor.GREEN + "You have received a party invite for " + PPt.getInvite() + " from " + player.getName()); target.sendMessage( ChatColor.YELLOW + "Type " + ChatColor.GREEN + "/" + LoadProperties.accept + ChatColor.YELLOW + " to accept the invite"); } } // Accept invite if (mcPermissions.getInstance().party(player) && split[0].equalsIgnoreCase("/" + LoadProperties.accept)) { event.setCancelled(true); if (PP.hasPartyInvite()) { if (PP.inParty()) { Party.getInstance().informPartyMembersQuit(player, getPlayersOnline()); } PP.acceptInvite(); Party.getInstance().informPartyMembers(player, getPlayersOnline()); player.sendMessage( ChatColor.GREEN + "Invite accepted. You have joined party (" + PP.getParty() + ")"); } else { player.sendMessage(ChatColor.RED + "You have no invites at this time"); } } // Party command if (split[0].equalsIgnoreCase("/" + LoadProperties.party)) { event.setCancelled(true); if (!mcPermissions.getInstance().party(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (split.length == 1 && !PP.inParty()) { player.sendMessage( "Proper usage is " + "/" + LoadProperties.party + " <name> or 'q' to quit"); return; } if (split.length == 1 && PP.inParty()) { String tempList = ""; int x = 0; for (Player p : plugin.getServer().getOnlinePlayers()) { if (PP.getParty().equals(Users.getProfile(p).getParty())) { if (p != null && x + 1 >= Party.getInstance().partyCount(player, getPlayersOnline())) { tempList += p.getName(); x++; } if (p != null && x < Party.getInstance().partyCount(player, getPlayersOnline())) { tempList += p.getName() + ", "; x++; } } } player.sendMessage(ChatColor.GREEN + "You are in party \"" + PP.getParty() + "\""); player.sendMessage( ChatColor.GREEN + "Party Members (" + ChatColor.WHITE + tempList + ChatColor.GREEN + ")"); } if (split.length > 1 && split[1].equals("q") && PP.inParty()) { Party.getInstance().informPartyMembersQuit(player, getPlayersOnline()); PP.removeParty(); player.sendMessage(ChatColor.RED + "You have left that party"); return; } if (split.length >= 2) { if (PP.inParty()) Party.getInstance().informPartyMembersQuit(player, getPlayersOnline()); PP.setParty(split[1]); player.sendMessage("Joined Party: " + split[1]); Party.getInstance().informPartyMembers(player, getPlayersOnline()); } } if (split[0].equalsIgnoreCase("/p")) { event.setCancelled(true); if (!mcPermissions.getInstance().party(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (Config.getInstance().isAdminToggled(player.getName())) Config.getInstance().toggleAdminChat(playerName); Config.getInstance().togglePartyChat(playerName); if (Config.getInstance().isPartyToggled(playerName)) { player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On"); } else { player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off"); } } if (split[0].equalsIgnoreCase("/a") && (player.isOp() || mcPermissions.getInstance().adminChat(player))) { if (!mcPermissions.getInstance().adminChat(player) && !player.isOp()) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } event.setCancelled(true); if (Config.getInstance().isPartyToggled(player.getName())) Config.getInstance().togglePartyChat(playerName); Config.getInstance().toggleAdminChat(playerName); if (Config.getInstance().isAdminToggled(playerName)) { player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On"); } else { player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off"); } } /* * MYSPAWN */ if (LoadProperties.enableMySpawn && split[0].equalsIgnoreCase("/" + LoadProperties.myspawn)) { event.setCancelled(true); if (!mcPermissions.getInstance().mySpawn(player)) { player.sendMessage( ChatColor.YELLOW + "[mcMMO]" + ChatColor.DARK_RED + " Insufficient mcPermissions."); return; } if (System.currentTimeMillis() < PP.getMySpawnATS() + 3600000) { long x = System.currentTimeMillis(); int seconds = 0; int minutes = 0; while (x < PP.getMySpawnATS() + 3600000) { x += 1000; seconds++; } while (seconds >= 60) { seconds -= 60; minutes++; } player.sendMessage("You must wait " + minutes + "m" + seconds + "s" + " to use myspawn"); return; } PP.setMySpawnATS(System.currentTimeMillis()); if (PP.getMySpawn(player) != null) { player.setHealth(20); Location mySpawn = PP.getMySpawn(player); // player.sendMessage("MMO DEBUG CODE 1"); if (PP.getMySpawnWorld(plugin) != null && !PP.getMySpawnWorld(plugin).equals("")) { mySpawn.setWorld(plugin.getServer().getWorld(PP.getMySpawnWorld(plugin))); // player.sendMessage("MMO DEBUG CODE 2"); } else { // player.sendMessage("MMO DEBUG CODE 5"); mySpawn.setWorld(plugin.getServer().getWorlds().get(0)); } player.teleport( mySpawn); // It's done twice because teleporting from one world to another is weird player.teleport(mySpawn); } else { player.sendMessage(ChatColor.RED + "Configure your myspawn first with a bed."); } } }
void setWorld(org.bukkit.World world) { bukkitLocation.setWorld(world); }
/** @return Position, where player was before he got jailed. */ public Location getPreviousPosition() { if (previousPosition == null) return null; if (previousPosition.getWorld() == null) previousPosition.setWorld(Jail.instance.getServer().getWorld(previousPositionWorld)); return previousPosition; }
@Override public SpellResult perform(CastContext context) { Entity sourceEntity = context.getEntity(); Location sourceLocation = context.getEyeLocation().clone(); Entity targetEntity = context.getTargetEntity(); Location targetLocation = context.getTargetLocation(); if (targetLocation != null) { targetLocation = targetLocation.clone(); } Vector direction = context.getDirection().normalize(); if (sourceLocation == null) { return SpellResult.LOCATION_REQUIRED; } if (targetSelf) { targetEntity = sourceEntity; targetLocation = sourceLocation; } else if (targetEntityLocation && targetEntity != null) { targetLocation = targetEntity.getLocation(); } if (attachBlock) { Block previousBlock = context.getPreviousBlock(); if (previousBlock != null) { Location current = targetLocation; targetLocation = previousBlock.getLocation(); context.getBrush().setTarget(current, targetLocation); } } if (sourceOffset != null) { sourceLocation = sourceLocation.add(sourceOffset); } if (targetOffset != null && targetLocation != null) { targetLocation = targetLocation.add(targetOffset); } if (randomSourceOffset != null) { sourceLocation = RandomUtils.randomizeLocation(sourceLocation, randomSourceOffset); } if (randomTargetOffset != null && targetLocation != null) { targetLocation = RandomUtils.randomizeLocation(targetLocation, randomTargetOffset); } if (targetDirection != null && targetLocation != null) { targetLocation.setDirection(targetDirection); } if (sourceDirection != null) { sourceLocation.setDirection(sourceDirection); direction = sourceDirection.clone(); } if (targetDirectionOffset != null && targetLocation != null) { targetLocation.setDirection(targetLocation.getDirection().add(targetDirectionOffset)); } if (sourceDirectionOffset != null) { sourceLocation.setDirection(direction.add(sourceDirectionOffset)); } if (sourceDirectionSpeed != null) { sourceLocation = sourceLocation.add(direction.clone().multiply(sourceDirectionSpeed)); } if (targetDirectionSpeed != null && targetLocation != null) { targetLocation = targetLocation.add(direction.clone().multiply(targetDirectionSpeed)); } if (sourceAtTarget && targetLocation != null) { sourceLocation.setX(targetLocation.getX()); sourceLocation.setY(targetLocation.getY()); sourceLocation.setZ(targetLocation.getZ()); sourceLocation.setWorld(targetLocation.getWorld()); } if (persistTarget) { context.setTargetLocation(targetLocation); } CastContext newContext = createContext(context, sourceEntity, sourceLocation, targetEntity, targetLocation); return super.perform(newContext); }