From 72bec7723733817022d5f8a07a5ebdf842dd4c45 Mon Sep 17 00:00:00 2001 From: Chiss Date: Sun, 1 Sep 2013 08:34:53 +1000 Subject: [PATCH] Queueing now works with less players than teams. Added DragonName text-input for hub Fixed smash bug, where spectators were causing lightning effect --- .../Mineplex.Hub/src/mineplex/hub/Dragon.java | 25 +- .../src/mineplex/hub/HubManager.java | 285 +++++++++++------- .../src/nautilus/game/arcade/game/Game.java | 2 +- .../game/standalone/smash/SuperSmash.java | 15 +- .../game/arcade/managers/GameManager.java | 4 +- 5 files changed, 204 insertions(+), 127 deletions(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Dragon.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Dragon.java index 5a6ff3e90..8e0b23ee7 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Dragon.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Dragon.java @@ -34,6 +34,9 @@ public class Dragon extends MiniPlugin public double RangeBest = 1000; public long RangeTime = 0; + public int textA = 0; + public int textB = 0; + public Dragon(HubManager manager) { super("Dragon Manager", manager.GetPlugin()); @@ -98,15 +101,21 @@ public class Dragon extends MiniPlugin if (Dragon == null || !Dragon.isValid()) return; - ChatColor color = ChatColor.RED; - double r = Math.random(); - if (r > 0.83) color = ChatColor.GOLD; - else if (r > 0.66) color = ChatColor.YELLOW; - else if (r > 0.49) color = ChatColor.GREEN; - else if (r > 0.32) color = ChatColor.AQUA; - else if (r > 0.16) color = ChatColor.LIGHT_PURPLE; + ChatColor aCol = ChatColor.RED; + if (textA == 1) aCol = ChatColor.GOLD; + else if (textA == 2) aCol = ChatColor.YELLOW; + else if (textA == 3) aCol = ChatColor.GREEN; + else if (textA == 4) aCol = ChatColor.AQUA; + else if (textA == 5) aCol = ChatColor.LIGHT_PURPLE; - Dragon.setCustomName(color + C.Bold + C.Line + "Welcome to Mineplex - Home of Premium Quality Minigames"); + textA = (textA+1)%6; + + ChatColor bCol = ChatColor.GREEN; + if (textB > 6) bCol = ChatColor.WHITE; + + textB = (textB+1)%14; + + Dragon.setCustomName(aCol + C.Bold + C.Line + Manager.DragonTextA +ChatColor.RESET + " - " + bCol + C.Bold + C.Line + Manager.DragonTextB); } private void Turn() diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index a898f2e96..c50b57c1c 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -1,5 +1,12 @@ package mineplex.hub; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.DataInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileWriter; +import java.io.InputStreamReader; import java.util.HashSet; import java.util.Iterator; @@ -64,82 +71,130 @@ public class HubManager extends MiniClientPlugin private Location _spawn; private int _scoreboardTick = 0; - + private String _pigStacker = "0 - Nobody"; + public String DragonTextA = "Mineplex"; + public String DragonTextB = ""; + private HashSet _mobs = new HashSet(); - + public HubManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, DisguiseManager disguiseManager) { super("Hub Manager", plugin); - + _clientManager = clientManager; _donationManager = donationManager; _disguiseManager = disguiseManager; - + _spawn = new Location(UtilWorld.getWorld("world"), 0.5, 74, 0.5); - + new TextCreator(this); new Dragon(this); + + DragonTextB = GetDragonText(); } - + + public String GetDragonText() + { + File file = new File("DragonText.dat"); + + //Write If Blank + if (!file.exists()) + { + try + { + FileWriter fstream = new FileWriter(file); + BufferedWriter out = new BufferedWriter(fstream); + + out.write("Home of Premium Game Modes"); + + out.close(); + } + catch (Exception e) + { + System.out.println("Error: Game World GetId Write Exception"); + } + } + + String line = "Home of Premium Game Modes"; + + //Read + try + { + FileInputStream fstream = new FileInputStream(file); + DataInputStream in = new DataInputStream(fstream); + BufferedReader br = new BufferedReader(new InputStreamReader(in)); + line = br.readLine(); + + in.close(); + } + catch (Exception e) + { + System.out.println("Error: Game World GetId Read Exception"); + } + + return line; + } + + @EventHandler public void PlayerRespawn(PlayerRespawnEvent event) { event.setRespawnLocation(GetSpawn()); } - - @EventHandler(priority = EventPriority.MONITOR) - public void OnChunkLoad(ChunkLoadEvent event) - { - for (Entity entity : event.getChunk().getEntities()) - { - if (entity instanceof LivingEntity) - { - if (((LivingEntity)entity).isCustomNameVisible() && ((LivingEntity)entity).getCustomName() != null) - { - if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("minekartrider")) - _disguiseManager.Disguise(new DisguisePlayer(entity, "Play " + ChatColor.YELLOW + "MineKart")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("defek7")) - _disguiseManager.Disguise(new DisguisePlayer(entity, "defek7")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("chiss")) - _disguiseManager.Disguise(new DisguisePlayer(entity, "Chiss")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("Sterling_")) - _disguiseManager.Disguise(new DisguisePlayer(entity, "sterling_")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("Spu_")) - _disguiseManager.Disguise(new DisguisePlayer(entity, "Spu_")); - } - } - } - } - + + @EventHandler(priority = EventPriority.MONITOR) + public void OnChunkLoad(ChunkLoadEvent event) + { + for (Entity entity : event.getChunk().getEntities()) + { + if (entity instanceof LivingEntity) + { + if (((LivingEntity)entity).isCustomNameVisible() && ((LivingEntity)entity).getCustomName() != null) + { + if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("minekartrider")) + _disguiseManager.Disguise(new DisguisePlayer(entity, "Play " + ChatColor.YELLOW + "MineKart")); + else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("defek7")) + _disguiseManager.Disguise(new DisguisePlayer(entity, "defek7")); + else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("chiss")) + _disguiseManager.Disguise(new DisguisePlayer(entity, "Chiss")); + else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("Sterling_")) + _disguiseManager.Disguise(new DisguisePlayer(entity, "sterling_")); + else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("Spu_")) + _disguiseManager.Disguise(new DisguisePlayer(entity, "Spu_")); + } + } + } + } + @EventHandler(priority = EventPriority.LOW) public void PlayerJoin(PlayerJoinEvent event) { final Player player = event.getPlayer(); - + //Survival player.setGameMode(GameMode.SURVIVAL); - + //Public Message event.setJoinMessage(null); - + //Teleport player.teleport(GetSpawn()); - + //Allow Double Jump player.setAllowFlight(true); - + UtilInv.Clear(player); - + //Scoreboard Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard(); player.setScoreboard(board); - + //Objective Objective obj = board.registerNewObjective(C.Bold + "Player Data", "dummy"); obj.setDisplaySlot(DisplaySlot.SIDEBAR); - + for (Rank rank : Rank.values()) { if (rank != Rank.ALL) @@ -152,61 +207,61 @@ public class HubManager extends MiniClientPlugin { //Add Other to Self board.getTeam(_clientManager.Get(otherPlayer).GetRank().Name).addPlayer(otherPlayer); - + //Add Self to Other otherPlayer.getScoreboard().getTeam(_clientManager.Get(player).GetRank().Name).addPlayer(player); } } - + @EventHandler public void PlayerQuit(PlayerQuitEvent event) { event.setQuitMessage(null); - + event.getPlayer().leaveVehicle(); event.getPlayer().eject(); - + for (Player player : UtilServer.getPlayers()) player.getScoreboard().resetScores(event.getPlayer()); } - + @EventHandler public void PlayerChat(AsyncPlayerChatEvent event) { if (event.isCancelled()) return; - + event.setCancelled(true); - + Player player = event.getPlayer(); - + Rank rank = GetClients().Get(player).GetRank(); - + String rankStr = ""; if (rank != Rank.ALL) rankStr = rank.Color + C.Bold + GetClients().Get(player).GetRank().Name.toUpperCase() + " "; - + for (Player other : UtilServer.getPlayers()) { UtilPlayer.message(other, rankStr + C.cYellow + player.getName() + " " + C.cWhite + event.getMessage()); } } - + @EventHandler public void Damage(EntityDamageEvent event) { if (event.getEntity() instanceof Player && event.getCause() == DamageCause.VOID) event.getEntity().teleport(GetSpawn()); - + event.setCancelled(true); } - + @EventHandler(priority = EventPriority.LOW) public void ItemPickup(PlayerPickupItemEvent event) { if (event.getPlayer().getGameMode() == GameMode.CREATIVE) return; - + event.setCancelled(true); } @@ -215,31 +270,31 @@ public class HubManager extends MiniClientPlugin { if (event.getPlayer().getGameMode() == GameMode.CREATIVE) return; - + event.setCancelled(true); } - + @EventHandler public void BlockBreak(BlockBreakEvent event) { if (event.getPlayer().getGameMode() == GameMode.CREATIVE) return; - + event.setCancelled(true); } - + @EventHandler public void LeaveDecay(LeavesDecayEvent event) { event.setCancelled(true); } - + @EventHandler public void BlockPlace(BlockPlaceEvent event) { if (event.getPlayer().getGameMode() == GameMode.CREATIVE) return; - + event.setCancelled(true); } @@ -247,23 +302,23 @@ public class HubManager extends MiniClientPlugin public void FlightHop(PlayerToggleFlightEvent event) { Player player = event.getPlayer(); - + if (player.getGameMode() == GameMode.CREATIVE) return; - + event.setCancelled(true); player.setFlying(false); - + //Disable Flight player.setAllowFlight(false); - + //Velocity UtilAction.velocity(player, 1.4, 0.2, 1, true); - + //Sound player.getWorld().playEffect(player.getLocation(), Effect.BLAZE_SHOOT, 0); } - + @EventHandler public void FlightUpdate(UpdateEvent event) { @@ -274,63 +329,63 @@ public class HubManager extends MiniClientPlugin { if (player.getGameMode() == GameMode.CREATIVE) continue; - + if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN))) player.setAllowFlight(true); } } - - + + @EventHandler public void FoodHealthUpdate(UpdateEvent event) { if (event.getType() != UpdateType.SLOW) return; - + for (Player player : UtilServer.getPlayers()) { player.setHealth(20); player.setFoodLevel(20); } } - + @EventHandler public void UpdateWeather(UpdateEvent event) { if (event.getType() != UpdateType.SEC) return; - + World world = UtilWorld.getWorld("world"); world.setTime(6000); world.setStorm(false); } - + @EventHandler public void UpdateScoreboard(UpdateEvent event) { if (event.getType() != UpdateType.TICK) return; - + _scoreboardTick = (_scoreboardTick + 1)%3; - + if (_scoreboardTick != 0) return; - + int bestPig = 0; for (Player player : UtilServer.getPlayers()) { if (player.getVehicle() != null) continue; - + int count = 0; - + Entity ent = player; while (ent.getPassenger() != null) { ent = ent.getPassenger(); count++; } - + if (count > bestPig) { _pigStacker = player.getName(); @@ -344,40 +399,40 @@ public class HubManager extends MiniClientPlugin else { _pigStacker = bestPig + " - " + _pigStacker; - + if (_pigStacker.length() > 16) _pigStacker = _pigStacker.substring(0, 16); } - + for (Player player : UtilServer.getPlayers()) { //Objective Objective obj = player.getScoreboard().getObjective(DisplaySlot.SIDEBAR); - + //Title obj.setDisplayName(C.cWhite + C.Bold + Get(player).GetScoreboardText()); - + int line = 15; - + obj.getScore(Bukkit.getOfflinePlayer(C.cGreen + C.Bold + "Gems")).setScore(line--); - + // Remove Old player.getScoreboard().resetScores(Bukkit.getOfflinePlayer(Get(player.getName()).GetLastGemCount() + "")); // Add New obj.getScore(Bukkit.getOfflinePlayer(GetDonation().Get(player.getName()).GetGems() + "")).setScore(line--); - + Get(player.getName()).SetLastGemCount(GetDonation().Get(player.getName()).GetGems()); - + //Space obj.getScore(Bukkit.getOfflinePlayer(" ")).setScore(line--); - + /* //News obj.getScore(Bukkit.getOfflinePlayer(C.cGray + C.Bold + "Latest News")).setScore(line--); player.getScoreboard().resetScores(Bukkit.getOfflinePlayer(Get(player).GetNewsText(false))); obj.getScore(Bukkit.getOfflinePlayer(Get(player).GetNewsText(true))).setScore(line--); - */ - + */ + //Stacker obj.getScore(Bukkit.getOfflinePlayer(C.cGray + C.Bold + "Stacker")).setScore(line--); player.getScoreboard().resetScores(Bukkit.getOfflinePlayer(Get(player).BestPig)); @@ -386,90 +441,90 @@ public class HubManager extends MiniClientPlugin //Space obj.getScore(Bukkit.getOfflinePlayer(" ")).setScore(line--); - + //Display Rank if (GetClients().Get(player).GetRank().Has(Rank.ULTRA)) { obj.getScore(Bukkit.getOfflinePlayer(C.cPurple + C.Bold + "Ultra Rank")).setScore(line--); - + player.getScoreboard().resetScores(Bukkit.getOfflinePlayer(Get(player).GetUltraText(false))); obj.getScore(Bukkit.getOfflinePlayer(Get(player).GetUltraText(true))).setScore(line--); } else { obj.getScore(Bukkit.getOfflinePlayer(C.cRed + C.Bold + "No Rank")).setScore(line--); - + player.getScoreboard().resetScores(Bukkit.getOfflinePlayer(Get(player).GetPurchaseText(false))); obj.getScore(Bukkit.getOfflinePlayer(Get(player).GetPurchaseText(true))).setScore(line--); } - + //Space obj.getScore(Bukkit.getOfflinePlayer(" ")).setScore(line--); - + //Display Staff obj.getScore(Bukkit.getOfflinePlayer(C.cGold + C.Bold + "Online Staff")).setScore(line--); String staff = ""; for (Player other : UtilServer.getPlayers()) { Rank rank = GetClients().Get(other).GetRank(); - + if (!rank.Has(Rank.HELPER)) continue; - + staff += other.getName() + " "; } if (staff.length() == 0) staff = "None"; - + player.getScoreboard().resetScores(Bukkit.getOfflinePlayer(Get(player).GetStaffText(false))); Get(player).StaffString = staff; obj.getScore(Bukkit.getOfflinePlayer(Get(player).GetStaffText(true))).setScore(line--); //Space obj.getScore(Bukkit.getOfflinePlayer(" ")).setScore(line--); - + //Website obj.getScore(Bukkit.getOfflinePlayer(C.cYellow + C.Bold + "Website")).setScore(line--); obj.getScore(Bukkit.getOfflinePlayer("www.mineplex.com")).setScore(line--); obj.getScore(Bukkit.getOfflinePlayer("----------------")).setScore(line--); - + } } - + @Override protected HubClient AddPlayer(String player) { return new HubClient(player); } - + public CoreClientManager GetClients() { return _clientManager; } - + public DonationManager GetDonation() { return _donationManager; } - + public Location GetSpawn() { return _spawn.clone(); } - + @EventHandler public void UpdateVisibility(UpdateEvent event) { if (event.getType() != UpdateType.FAST) return; - + for (Player player : UtilServer.getPlayers()) { for (Player other : UtilServer.getPlayers()) { if (player.equals(other)) continue; - + if (UtilMath.offset(player.getLocation(), GetSpawn()) < 4) { other.hidePlayer(player); @@ -481,34 +536,34 @@ public class HubManager extends MiniClientPlugin } } } - + @EventHandler public void SpawnAnimals(UpdateEvent event) { if (event.getType() != UpdateType.SLOW) return; - + Iterator entIterator = _mobs.iterator(); - + while (entIterator.hasNext()) { LivingEntity ent = entIterator.next(); - + if (!ent.isValid()) { ent.remove(); entIterator.remove(); } } - + if (_mobs.size() > 24) return; - + //Loc double r = Math.random(); - + Location loc = GetSpawn(); - + if (r > 0.75) loc.add(32, 0.5, 0); else if (r > 0.5) loc.add(0, 0.5, 32); else if (r > 0.25) loc.add(-32, 0.5, 0); @@ -522,7 +577,7 @@ public class HubManager extends MiniClientPlugin else if (r > 0.25) _mobs.add(loc.getWorld().spawn(loc, Sheep.class)); else _mobs.add(loc.getWorld().spawn(loc, Chicken.class)); } - + @EventHandler(priority = EventPriority.LOWEST) public void Explosion(EntityExplodeEvent event) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java index d85a97125..b696ed588 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java @@ -739,7 +739,7 @@ public abstract class Game implements Listener public boolean CanJoinTeam(GameTeam team) { - return team.GetSize() < UtilServer.getPlayers().length/GetTeamList().size(); + return team.GetSize() < Math.max(1, UtilServer.getPlayers().length/GetTeamList().size()); } public GameTeam GetTeamPreference(Player player) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/standalone/smash/SuperSmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/standalone/smash/SuperSmash.java index 2550e0844..a288625aa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/standalone/smash/SuperSmash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/standalone/smash/SuperSmash.java @@ -162,6 +162,9 @@ public class SuperSmash extends SoloGame @EventHandler(priority = EventPriority.LOWEST) public void FallDamage(CustomDamageEvent event) { + if (event.IsCancelled()) + return; + if (event.GetCause() == DamageCause.FALL) event.SetCancelled("No Fall Damage"); } @@ -169,9 +172,19 @@ public class SuperSmash extends SoloGame @EventHandler(priority = EventPriority.HIGH) public void Knockback(CustomDamageEvent event) { + if (event.IsCancelled()) + return; + if (event.GetDamageePlayer() != null) event.AddKnockback("Smash Knockback", 1 + 0.1 * (20 - event.GetDamageePlayer().getHealth())); - + } + + @EventHandler(priority = EventPriority.HIGH) + public void ArenaWalls(CustomDamageEvent event) + { + if (event.IsCancelled()) + return; + if (event.GetCause() == DamageCause.VOID || event.GetCause() == DamageCause.LAVA) { event.GetDamageeEntity().getWorld().strikeLightningEffect(event.GetDamageeEntity().getLocation()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java index f24b39a8d..eb21121aa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java @@ -141,7 +141,7 @@ public class GameManager implements Listener if (game.GetCountdown() == -1) { game.InformQueuePositions(); - game.AnnounceGame(); + //game.AnnounceGame(); } //Initialise Countdown @@ -263,7 +263,7 @@ public class GameManager implements Listener if (!game.CanJoinTeam(team)) break; - + queueIterator.remove(); if (!game.IsPlaying(player))