@EventHandler public void onPlayerMove(PlayerMoveEvent e) { Player p = e.getPlayer(); Location loc = new Location( e.getTo().getWorld(), (int) e.getTo().getX(), (int) e.getTo().getY(), (int) e.getTo().getZ()); if (Main.getInstance().redSpawnArea.contains(loc)) { Bukkit.getPluginManager().callEvent(new AreaWalkEvent(Area.RED_SPAWN, p)); } if (Main.getInstance().blueSpawnArea.contains(loc)) { Bukkit.getPluginManager().callEvent(new AreaWalkEvent(Area.BLUE_SPAWN, p)); } if (Main.getInstance().blockspawnAreas.contains(loc)) { Bukkit.getPluginManager().callEvent(new AreaWalkEvent(getArea(loc), p)); } if (blockManager.canPickUpBlock(p)) { blockManager.pickUpBlock(p); } if (canGetNeededBlock(p)) { if (p.getGameMode() == GameMode.SURVIVAL) { gameManager.setCarrying(p, nexusManager.getCurrentNexusColor()); String[] data = neededBlockMaterial.split(";"); neededBlock .getBlock() .setTypeIdAndData(Integer.valueOf(data[0]), Byte.valueOf(data[1]), false); neededBlock = new Location(Bukkit.getWorlds().get(0), 0, 0, 0); Bukkit.broadcastMessage( Color.np( "&6The needed block was picked up by the " + teamManager.getTeam(p).getTeamName() + "&6 team!")); } } if ((int) e.getFrom().getX() != (int) e.getTo().getX() || (int) e.getFrom().getZ() != (int) e.getTo().getZ() || (int) e.getFrom().getY() != (int) e.getTo().getY()) { if (getTurret(loc) != null) { Bukkit.getPluginManager().callEvent(new TurretWalkEvent(p, getTurret(loc))); } if (isInTurret(p)) { Turret t = getTurret(p); if (t.containsUser()) { e.getPlayer().teleport(e.getFrom()); } } } if ((int) e.getFrom().getX() != (int) e.getTo().getX() || (int) e.getFrom().getZ() != (int) e.getTo().getZ()) { if (!released || stunned.contains(p.getName())) { if (GameState.getState() == GameState.INGAME) { e.getPlayer().teleport(e.getFrom()); } } } }
public boolean canGetNeededBlock(Player p) { if (neededBlock != null) { for (Entity e : neededBlock.getWorld().getNearbyEntities(neededBlock, 2, 2, 2)) { if (e == p) { return true; } } return false; } else { return false; } }
public Area getArea(Location loc) { FileConfiguration locationsFile = YamlConfiguration.loadConfiguration(Main.getInstance().locations); List<Area> areas = Area.getBlockSpawns(); int i = 0; for (int t = 1; t < 9; t++) { String[] data = locationsFile.getString("arena.blockspawnareas." + t).split(" "); Location minimum = locationUtil.deserializeLoc(data[0]); Location maximum = locationUtil.deserializeLoc(data[1]); for (double x = minimum.getX(); x <= maximum.getX(); x++) { for (double y = minimum.getY(); y <= maximum.getY(); y++) { for (double z = minimum.getZ(); z <= maximum.getZ(); z++) { Location location = new Location(minimum.getWorld(), x, y, z); if (location.equals(loc)) { return areas.get(i); } } } } i++; } return null; }