From a0d97d5d9902990b413787dc8fc4c3ae038b35b2 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 24 Jun 2015 22:44:41 -0500 Subject: [PATCH] Scoreboard changes, Fix region values, add 1.8 Border for map --- .../game/clans/clans/ClansManager.java | 2 +- .../clans/clans/regions/ClansRegions.java | 59 ++++++++++++++++--- .../scoreboard/ClansScoreboardManager.java | 19 +++--- .../clans/worldevent/WorldEventManager.java | 3 + 4 files changed, 62 insertions(+), 21 deletions(-) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java index 40b1ef86e..7bd7b43bd 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java @@ -188,7 +188,7 @@ public class ClansManager extends MiniClientPlugin implements IRelat } // Initialize default region factions and territory (spawn/fields/borderlands) - _clanRegions = new ClansRegions(this); + _clanRegions = new ClansRegions(plugin, this); _clanRegions.initializeRegions(); new ClansScoreboardManager(plugin, this, clientManager, donationManager); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/regions/ClansRegions.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/regions/ClansRegions.java index 87cfa5638..9bdcfd040 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/regions/ClansRegions.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/regions/ClansRegions.java @@ -6,33 +6,43 @@ import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.plugin.java.JavaPlugin; +import mineplex.core.MiniPlugin; +import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilWorld; +import mineplex.core.packethandler.PacketPlayOutWorldBorder; import mineplex.game.clans.clans.ClanInfo; import mineplex.game.clans.clans.ClansDataAccessLayer; import mineplex.game.clans.clans.ClansManager; import mineplex.game.clans.spawn.Spawn; -public class ClansRegions +public class ClansRegions extends MiniPlugin { public final static String DEFAULT_WORLD_NAME = "world"; public final static int SPAWN_RADIUS = 2; // Radius of spawn claim area (measured in chunks) public final static int SHOP_RADIUS = 1; // Radius of shop claim area (measured in chunks) public final static int FIELDS_RADIUS = 7; // Radius of fields claim area (measured in chunks) - public final static int BORDERLANDS_RADIUS = 75; // Radius of borderlands claim area (measured in chunks) + public final static int BORDERLANDS_RADIUS = 41; // Radius of borderlands claim area (measured in chunks) + public static final int BORDER_RADIUS = 512; private ClansManager _manager; private World _world; - public ClansRegions(ClansManager manager, String worldName) + public ClansRegions(JavaPlugin plugin, ClansManager manager, String worldName) { + super("Clans Regions - " + worldName, plugin); _manager = manager; _world = Bukkit.getWorld(worldName); } - public ClansRegions(ClansManager manager) + public ClansRegions(JavaPlugin plugin, ClansManager manager) { - this(manager, DEFAULT_WORLD_NAME); + this(plugin, manager, DEFAULT_WORLD_NAME); } public void initializeRegions() @@ -48,7 +58,7 @@ public class ClansRegions // Initialize Fields and Borderlands factions and claims claimArea("Fields", FIELDS_RADIUS, 0, false, worldCenter); - claimArea("Borderlands", BORDERLANDS_RADIUS, 50, false, worldCenter); + claimArea("Borderlands", BORDERLANDS_RADIUS, 26, false, worldCenter); } /** @@ -99,9 +109,40 @@ public class ClansRegions } } } - - private void log(String message) + + private void sendBorder(Player player) { - _manager.log(message); + PacketPlayOutWorldBorder packet = new PacketPlayOutWorldBorder(); + packet.worldBorderType = 3; + + packet.centerX = 0; + packet.centerZ = 0; + + packet.newRadius = BORDER_RADIUS; + packet.oldRadius = BORDER_RADIUS; + + packet.warningBlocks = -10; + packet.warningTime = -10; + + if (UtilPlayer.is1_8(player)) + { + UtilPlayer.sendPacket(player, packet); + System.out.println("Sent border to " + player); + } + } + + @EventHandler + public void onJoin(PlayerJoinEvent event) + { + if (event.getPlayer().getWorld().equals(_world)) + sendBorder(event.getPlayer()); + } + + @EventHandler public void onTeleport(PlayerTeleportEvent event) + { + Location from = event.getFrom(); + Location to = event.getTo(); + if (!from.getWorld().equals(to.getWorld()) && to.getWorld().equals(_world)) + sendBorder(event.getPlayer()); } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/ClansScoreboardManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/ClansScoreboardManager.java index 2b7a2f3a1..267b9d3db 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/ClansScoreboardManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/ClansScoreboardManager.java @@ -15,35 +15,32 @@ import mineplex.game.clans.clans.scoreboard.elements.ScoreboardElementClan; import mineplex.game.clans.clans.scoreboard.elements.ScoreboardElementPlayer; import mineplex.game.clans.clans.scoreboard.elements.ScoreboardElementWar; -public class ClansScoreboardManager extends MiniPlugin +public class ClansScoreboardManager extends ScoreboardManager { - private ScoreboardManager _scoreboardManager; private ClansManager _clansManager; public ClansScoreboardManager(JavaPlugin plugin, ClansManager clansManager, CoreClientManager clientManager, DonationManager donationManager) { - super("Clans Scoreboard", plugin); + super(plugin, clientManager, donationManager); - _scoreboardManager = new ScoreboardManager(plugin, clientManager, donationManager); _clansManager = clansManager; - init(); } private void init() { - _scoreboardManager.setTitle(" MINEPLEX CLANS "); + setTitle(" MINEPLEX CLANS "); - ScoreboardData data = _scoreboardManager.getData("default", true); + ScoreboardData data = getData("default", true); + data.writeEmpty(); data.writeElement(new ScoreboardElementClan(_clansManager)); - data.writeEmpty(); + data.writeEmpty(); data.writeElement(new ScoreboardElementWar(_clansManager, _clansManager.getWarManager())); - data.writeEmpty(); - data.writeElement(new ScoreboardElementPlayer(_clansManager)); data.writeEmpty(); + data.writeElement(new ScoreboardElementPlayer(_clansManager)); data.writeElement(_clansManager.getWorldEvent()); } @@ -52,6 +49,6 @@ public class ClansScoreboardManager extends MiniPlugin public void drawUpdate(UpdateEvent event) { if (event.getType() == UpdateType.FAST) - _scoreboardManager.draw(); + draw(); } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java index 3ffe98626..8ec18beeb 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java @@ -193,7 +193,10 @@ public class WorldEventManager extends MiniPlugin implements ScoreboardElement ArrayList output = new ArrayList(); if (_events.size() > 0) + { + output.add(" "); output.add(C.cAqua + C.Bold + "Event"); + } Iterator iterator = _events.iterator(); while (iterator.hasNext())