@Test public void testAlignToDistance1024x1024() throws Exception { Location loc = new Location(null, 1024, 0, 1024); assertThat( LocationUtil.alignToDistance(loc, 1024), is(new Location(null, 1024, Settings.island_height, 1024))); loc.setX(511.9); loc.setZ(512.5); assertThat( LocationUtil.alignToDistance(loc, 1024), is(new Location(null, 0, Settings.island_height, 1024))); loc.setX(1535.9); loc.setZ(512.5); assertThat( LocationUtil.alignToDistance(loc, 1024), is(new Location(null, 1024, Settings.island_height, 1024))); loc.setX(-511.99); loc.setZ(-511.99); assertThat( LocationUtil.alignToDistance(loc, 1024), is(new Location(null, 0, Settings.island_height, 0))); loc.setX(-512.01); loc.setZ(-512.01); assertThat( LocationUtil.alignToDistance(loc, 1024), is(new Location(null, -1024, Settings.island_height, -1024))); }
private void connectUsingOldApi() { Location lastKnownGpsLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); Location lastKnownNetworkLocation = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); Location bestLastKnownLocation = mCurrentBestLocation; if (lastKnownGpsLocation != null && LocationUtil.isBetterLocation(lastKnownGpsLocation, bestLastKnownLocation)) { bestLastKnownLocation = lastKnownGpsLocation; } if (lastKnownNetworkLocation != null && LocationUtil.isBetterLocation(lastKnownNetworkLocation, bestLastKnownLocation)) { bestLastKnownLocation = lastKnownNetworkLocation; } mCurrentBestLocation = bestLastKnownLocation; if (mLocationManager.getAllProviders().contains(LocationManager.GPS_PROVIDER) && mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { mLocationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, FASTEST_INTERVAL_IN_MS, 0.0f, mGpsLocationListener); } if (mLocationManager.getAllProviders().contains(LocationManager.NETWORK_PROVIDER) && mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { mLocationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, FASTEST_INTERVAL_IN_MS, 0.0f, mNetworkLocationListener); } if (bestLastKnownLocation != null) { Log.i(TAG, "Received last known location via old API: " + bestLastKnownLocation); if (mBearing != null) { bestLastKnownLocation.setBearing(mBearing); } mLocationCallback.handleNewLocation(bestLastKnownLocation); } }
@Test public void testAlignToDistance0x0() throws Exception { Location loc = new Location(null, 0, 0, 0); assertThat( LocationUtil.alignToDistance(loc, 1024), is(new Location(null, 0, Settings.island_height, 0))); }
@EventHandler public void onPlayerJoin(PlayerJoinEvent e) { FileConfiguration locationsFile = YamlConfiguration.loadConfiguration(Main.getInstance().locations); Player p = e.getPlayer(); SPlayer player = new SPlayer(p); int blue = Team.BLUE.getPlayers().size(); int red = Team.RED.getPlayers().size(); p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.lobby"))); gameManager.setCarrying(p, 0); Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard(); org.bukkit.scoreboard.Team r = sb.registerNewTeam("red"); r.setPrefix(Color.np("&c")); org.bukkit.scoreboard.Team b = sb.registerNewTeam("blue"); b.setPrefix(Color.np("&b")); for (Player online : Bukkit.getOnlinePlayers()) { Team team = teamManager.getTeam(online); if (team == Team.BLUE) { b.addEntry(online.getName()); } else { r.addEntry(online.getName()); } } p.setScoreboard(sb); e.setJoinMessage(null); if (blue <= red) { player.setTeam(Team.BLUE); } else { player.setTeam(Team.RED); } }
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; }
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage("You can't run this commands since you are not a player!"); return false; } Player player = (Player) sender; if (cmd.getName().equalsIgnoreCase("ovo")) { if (player.hasPermission("ovo.admin")) { if (args.length == 1) { if (args[0].equalsIgnoreCase("lobby")) { ConfigUtil.get().setLobby(player.getLocation()); player.sendMessage(ChatHandler.get().sendMessage("commands.lobby.success")); return true; } else if (args[0].equalsIgnoreCase("zombie")) { CustomSheep sheep = new CustomSheep(player.getWorld()); sheep.setCustomName(ChatColor.GREEN + "Join the queue!"); sheep.setCustomNameVisible(true); sheep.setColor(EnumColor.RED); Location loc = player.getLocation(); EntityTypes.spawnEntity(sheep, loc); // ((CraftWorld) loc.getWorld()).getHandle().addEntity(sheep); // sheep.setLocation(loc.getX(), loc.getY(), loc.getZ(), // loc.getYaw(), loc.getPitch()); System.out.println(LocationUtil.get().serialize(sheep.getBukkitEntity().getLocation())); player.sendMessage(ChatHandler.get().sendMessage("commands.zombie.success")); return true; } } else if (args.length == 2) { if (args[0].equalsIgnoreCase("createmap")) { String name = args[1]; Map map = new Map(name, new ItemStack(Material.DIAMOND_SWORD), new ArrayList<Arena>()); map.save(); MapHandler.get().getMaps().add(map); player.sendMessage( ChatHandler.get() .sendMessage("commands.createmap.success") .replaceAll("%map%", name)); } else // ovo setloc1 Dome1 if (args[0].equalsIgnoreCase("setloc1")) { Arena arena = ArenaHandler.get().getArena(args[1]); if (arena != null) { Block targetBlock = player.getTargetBlock((Set<Material>) null, 6); if (targetBlock != null) { arena.setLoc1(targetBlock.getLocation()); arena.save(); player.sendMessage( ChatColor.GREEN + "Successfully set corner 1 to the block you're looking at!"); } } else { player.sendMessage( ChatHandler.get() .sendMessage("commands.spawnpoints.arena-not-found") .replaceAll("%arena%", args[1])); return false; } } else // ovo setloc1 Dome1 if (args[0].equalsIgnoreCase("setloc2")) { Arena arena = ArenaHandler.get().getArena(args[1]); if (arena != null) { Block targetBlock = player.getTargetBlock((Set<Material>) null, 6); if (targetBlock != null) { arena.setLoc2(targetBlock.getLocation()); arena.save(); player.sendMessage( ChatColor.GREEN + "Successfully set corner 2 to the block you're looking at!"); } } else { player.sendMessage( ChatHandler.get() .sendMessage("commands.spawnpoints.arena-not-found") .replaceAll("%arena%", args[1])); return false; } } } else if (args.length == 3) { if (args[0].equalsIgnoreCase("spawnpoints")) { String name = args[1]; Arena arena = ArenaHandler.get().getArena(name); if (arena != null) { if (isInt(args[2])) { int index = Integer.parseInt(args[2]); if (index == 1 || index == 2) { List<Location> spawnLocs = arena.getSpawnLocs(); spawnLocs.add(index - 1, player.getLocation()); arena.setSpawnLocs(spawnLocs); arena.save(); player.sendMessage( ChatHandler.get() .sendMessage("commands.spawnpoints.success") .replaceAll("%index%", index + "") .replaceAll("%arena%", arena.getId())); return true; } else { player.sendMessage( ChatHandler.get().sendMessage("commands.spawnpoints.incorrect-index")); return false; } } else { player.sendMessage( ChatHandler.get() .sendMessage("commands.spawnpoints.not-correct-index") .replaceAll("%arg%", args[2])); return false; } } else { player.sendMessage( ChatHandler.get() .sendMessage("commands.spawnpoints.arena-not-found") .replaceAll("%arena%", args[1])); return false; } } else if (args[0].equalsIgnoreCase("createarena")) { String name = args[1]; String mapname = args[2]; if (MapHandler.get().getByName(mapname) != null) { Map map = MapHandler.get().getByName(mapname); Arena arena = new Arena(name, new ArrayList<Location>(), null, null, map); map.getArenas().add(arena); arena.save(); map.save(); player.sendMessage(ChatColor.GREEN + "Successfully created arena " + name); ArenaHandler.get().getArenas().add(arena); return true; } } } } else { player.sendMessage(ChatHandler.get().sendMessage("commands.no-permission")); return false; } } return false; }
/** * Copyright by Bankras, created on 21-1-2016. Stealing and/or copying this plugin has severe * consequences. */ public class Listeners implements Listener { Main plugin; private ArrayList<String> stunned = new ArrayList<>(); private static Location neededBlock; public static boolean released = false; public static boolean isPickedUp = false; public static String neededBlockMaterial = "0;0"; public Listeners(Main main) { this.plugin = main; } LocationUtil locationUtil = LocationUtil.getInstance(); TeamManager teamManager = TeamManager.getInstance(); NexusManager nexusManager = NexusManager.getInstance(); GameManager gameManager = GameManager.getInstance(); BlockManager blockManager = BlockManager.getInstance(); @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { FileConfiguration locationsFile = YamlConfiguration.loadConfiguration(Main.getInstance().locations); Player p = e.getPlayer(); SPlayer player = new SPlayer(p); int blue = Team.BLUE.getPlayers().size(); int red = Team.RED.getPlayers().size(); p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.lobby"))); gameManager.setCarrying(p, 0); Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard(); org.bukkit.scoreboard.Team r = sb.registerNewTeam("red"); r.setPrefix(Color.np("&c")); org.bukkit.scoreboard.Team b = sb.registerNewTeam("blue"); b.setPrefix(Color.np("&b")); for (Player online : Bukkit.getOnlinePlayers()) { Team team = teamManager.getTeam(online); if (team == Team.BLUE) { b.addEntry(online.getName()); } else { r.addEntry(online.getName()); } } p.setScoreboard(sb); e.setJoinMessage(null); if (blue <= red) { player.setTeam(Team.BLUE); } else { player.setTeam(Team.RED); } } @EventHandler public void onPlayerQuit(PlayerQuitEvent e) { Player p = e.getPlayer(); SPlayer player = new SPlayer(p); e.setQuitMessage(null); player.removePlayer(); } @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 Turret getTurret(Location loc) { FileConfiguration locationsFile = YamlConfiguration.loadConfiguration(Main.getInstance().locations); for (Turret t : Main.getInstance().turretsList) { if (t.getLocation().equals(loc)) { return t; } } return null; } @EventHandler public void onSneak(PlayerToggleSneakEvent e) { Player p = e.getPlayer(); if (isInTurret(p)) { Turret t = getTurret(p); if (t.containsUser()) { t.setUser(null); p.teleport(p.getLocation().add(1, 1, 0)); } } } @EventHandler public void onPlayerDeath(PlayerDeathEvent e) { FileConfiguration locationsFile = YamlConfiguration.loadConfiguration(Main.getInstance().locations); Player p = e.getEntity(); p.setHealth(20); p.setFoodLevel(20); p.setGameMode(GameMode.SPECTATOR); if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) { Bukkit.broadcastMessage( Color.np( "&6The " + teamManager.getTeam(p).getTeamName() + " &6team has dropped the needed block!")); neededBlockMaterial = String.valueOf( p.getLocation().getBlock().getTypeId() + ";" + p.getLocation().getBlock().getData()); p.getLocation() .getBlock() .setTypeIdAndData(159, (byte) nexusManager.getCurrentNexusColor(), false); neededBlock = p.getLocation(); } gameManager.setCarrying(p, 0); blockManager.dropBlock(p.getLocation(), blockManager.playerBlocks.get(p.getName())); new BukkitRunnable() { int i = 10; public void run() { i--; if (i > 0) { Title title = new Title(Color.np("&6Respawning in &e" + String.valueOf(i)), "", 5, 10, 5); title.sendToPlayer(p); } else { this.cancel(); p.setGameMode(GameMode.SURVIVAL); if (teamManager.getTeam(p) == Team.BLUE) { p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.spawns.blue.1"))); } else if (teamManager.getTeam(p) == Team.RED) { p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.spawns.red.1"))); } } } }.runTaskTimer(Main.getInstance(), 0, 20); } @EventHandler public void onPlayerDamage(EntityDamageEvent e) { if (e.getEntity() instanceof Player) { if (GameState.getState() == GameState.ENDING || GameState.getState() == GameState.LOBBY) { e.setCancelled(true); } } } @EventHandler public void onAreaWalk(AreaWalkEvent e) { if (GameState.getState() != GameState.ENDING) { Player p = e.getPlayer(); Area a = e.getArea(); if (p.getGameMode() == GameMode.SURVIVAL) { if (a != null) { if (e.isBlockSpawn()) { int block = nexusManager.getColor(a); if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) { if (block != nexusManager.getCurrentNexusColor()) { if (!blockManager.isTaken(a)) { Bukkit.broadcastMessage( Color.np( "&6The " + teamManager.getTeam(p).getTeamName() + " &6team has dropped the needed block. It has been brought back to it's original location.")); nexusManager .getNeededBlockArea() .getBlockSpawnBlock() .getBlock() .setTypeIdAndData(159, (byte) nexusManager.getCurrentNexusColor(), false); blockManager.forcePickUpBlock(p, a); isPickedUp = false; } } } else if (!blockManager.isTaken(a)) { blockManager.forcePickUpBlock(p, a); } if (nexusManager.getColor(e.getArea()) == nexusManager.getCurrentNexusColor()) { if (!isPickedUp) { Bukkit.broadcastMessage( Color.np( "&6The " + teamManager.getTeam(p).getTeamName() + " &6team has picked up the needed block!")); a.getBlockSpawnBlock().getBlock().setType(Material.AIR); if (GameManager.getCarrying(p) != 0 && GameManager.getCarrying(p) != nexusManager.getCurrentNexusColor()) { blockManager.resetBlock(a.getBlockSpawnBlock(), a); } GameManager.setCarrying(p, nexusManager.getCurrentNexusColor()); isPickedUp = true; } } } else { Team spawn = getTeam(a); int carrying = gameManager.getCarrying(p); if (spawn == teamManager.getTeam(p)) { if (carrying == nexusManager.getCurrentNexusColor()) { Bukkit.broadcastMessage( Color.np( "&6The " + spawn.getTeamName() + " &6team has brought the block to their base first!")); GameManager.addPoint(spawn); gameManager.setCarrying(p, 0); nexusManager.generateNewNexus(); } else { if (carrying != 0) { GameManager.addPoint(teamManager.getTeam(p).getOpposite()); GameManager.setCarrying(p, 0); Bukkit.broadcastMessage( Color.np( "&cThe " + spawn.getTeamName() + " &cteam has brought the wrong block to their base!")); } } } else { if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) { Bukkit.broadcastMessage( Color.np( "&cThe " + spawn.getOpposite().getTeamName() + " &cteam has brought the block to the wrong base!")); GameManager.addPoint(spawn); gameManager.setCarrying(p, 0); nexusManager.generateNewNexus(); } } } } } } } @EventHandler public void onTurretFire(PlayerInteractEvent e) { if (isInTurret(e.getPlayer())) { Player shooter = e.getPlayer(); Turret t = getTurret(shooter); t.shoot(); } } @EventHandler public void onHit(EntityDamageByEntityEvent e) { if (e.getEntity() instanceof Player) { Player p = (Player) e.getEntity(); if (e.getDamager() instanceof Snowball) { Snowball s = (Snowball) e.getDamager(); Player shooter = (Player) s.getShooter(); if (teamManager.getTeam(p) != teamManager.getTeam((Player) s.getShooter())) { if (s.getCustomName() != null) { if (s.getCustomName().equalsIgnoreCase("stun")) { if (!stunned.contains(p.getName())) { stunned.add(p.getName()); p.playSound(p.getLocation(), Sound.FIREWORK_TWINKLE2, 3F, 1F); shooter.playSound(shooter.getLocation(), Sound.SUCCESSFUL_HIT, 3F, 1F); p.sendMessage(Color.np("&cYou got hit by a stun! You cannot move for 2 seconds!")); new BukkitRunnable() { @Override public void run() { stunned.remove(p.getName()); } }.runTaskLater(Main.getInstance(), 40); } else { shooter.sendMessage(Color.np("&cThat player is already stunned!")); } } } } else { shooter.sendMessage(Color.np("&cYou cannot stun team members!")); } } } } @EventHandler public void onTurretWalk(TurretWalkEvent e) { if (GameState.getState() == GameState.INGAME) { if (!e.isOccupied()) { e.getTurret().setUser(e.getPlayer()); e.getPlayer().sendMessage(Color.np("&aYou entered a turret. To leave, press shift.")); } else { e.getPlayer().sendMessage(Color.np("&7That turret is already occupied!")); } } } 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; } private Team getTeam(Area a) { if (a == Area.RED_SPAWN) { return Team.RED; } else { return Team.BLUE; } } private boolean isInTurret(Player p) { for (Turret t : Main.getInstance().turretsList) { if (t.getUser() == p) { return true; } } return false; } private Turret getTurret(Player p) { for (Turret t : Main.getInstance().turretsList) { if (t.getUser() == p) { return t; } } return null; } public static Location getNeededBlockLocation() { if (neededBlock != null) { return neededBlock; } else { return new Location(Bukkit.getWorlds().get(0), 0, 0, 0); } } public void setNeededBlockLocation(Location loc) { neededBlock = loc; } 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; } } }