From d03e56f9159fed9901a7ea58775714d1880d53ce Mon Sep 17 00:00:00 2001 From: Garbage Mule Date: Sun, 5 Jun 2011 14:08:26 +0200 Subject: [PATCH] v0.89.1 - Added update checking and fixed bugs. --- MobArena.jar | Bin 34555 -> 36450 bytes bin/plugin.yml | 2 +- .../garbagemule/MobArena/ArenaManager.java | 3 + src/com/garbagemule/MobArena/MACommands.java | 12 ++++ .../MobArena/MADamageListener.java | 1 - .../MobArena/MADisconnectListener.java | 21 ++++++ src/com/garbagemule/MobArena/MAUtils.java | 67 ++++++++++++++++++ src/com/garbagemule/MobArena/MobArena.java | 1 + 8 files changed, 105 insertions(+), 2 deletions(-) diff --git a/MobArena.jar b/MobArena.jar index dd45ff73c0fc2f1c7d6c1a34b7bb74b7ca50dd31..e8350f1461a9cd3ab4695816d39362d69d1004c7 100644 GIT binary patch delta 23164 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 Na^9xJKZ^c+_dl(}bKL*{ delta 21369 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 buKopX2cz!B(o)a?=m77}*8$7(i>Lns4yvu5 diff --git a/bin/plugin.yml b/bin/plugin.yml index 8702e4c..c4417db 100644 --- a/bin/plugin.yml +++ b/bin/plugin.yml @@ -1,6 +1,6 @@ name: MobArena main: com.garbagemule.MobArena.MobArena -version: 0.89 +version: 0.89.1 commands: ma: description: Base command for MobArena diff --git a/src/com/garbagemule/MobArena/ArenaManager.java b/src/com/garbagemule/MobArena/ArenaManager.java index 80a6c39..7d38651 100644 --- a/src/com/garbagemule/MobArena/ArenaManager.java +++ b/src/com/garbagemule/MobArena/ArenaManager.java @@ -36,6 +36,7 @@ public class ArenaManager protected static boolean isSetup = false; protected static boolean isEnabled = true; protected static boolean isProtected = true; + protected static boolean checkUpdates = true; // Location variables for the arena region. protected static Location p1 = null; @@ -125,6 +126,7 @@ public class ArenaManager p1 = MAUtils.getCoords("p1"); p2 = MAUtils.getCoords("p2"); spawnpoints = MAUtils.getSpawnPoints(); + checkUpdates = MAUtils.getUpdateNotification(); // Set the boolean if all variables are valid. ArenaManager.isSetup = MAUtils.verifyData(); @@ -286,6 +288,7 @@ public class ArenaManager { p.teleport(spectatorLoc); MAUtils.clearInventory(p); + p.setFireTicks(0); p.setHealth(20); tellAll(p.getName() + " died!"); diff --git a/src/com/garbagemule/MobArena/MACommands.java b/src/com/garbagemule/MobArena/MACommands.java index f9e5c1d..301835a 100644 --- a/src/com/garbagemule/MobArena/MACommands.java +++ b/src/com/garbagemule/MobArena/MACommands.java @@ -118,6 +118,18 @@ public class MACommands implements CommandExecutor return true; } + if (cmd.equals("check")) + { + if (!arg.equals("updates")) + { + ArenaManager.tellPlayer(p, "/ma check updates"); + return true; + } + + MAUtils.checkForUpdates(p, true); + return true; + } + // ma force end if (cmd.equals("force")) { diff --git a/src/com/garbagemule/MobArena/MADamageListener.java b/src/com/garbagemule/MobArena/MADamageListener.java index daf1a43..c6734b0 100644 --- a/src/com/garbagemule/MobArena/MADamageListener.java +++ b/src/com/garbagemule/MobArena/MADamageListener.java @@ -42,7 +42,6 @@ public class MADamageListener extends EntityListener return; event.setCancelled(true); - p.setFireTicks(0); ArenaManager.playerDeath(p); } diff --git a/src/com/garbagemule/MobArena/MADisconnectListener.java b/src/com/garbagemule/MobArena/MADisconnectListener.java index bc6a3c7..c44a98b 100644 --- a/src/com/garbagemule/MobArena/MADisconnectListener.java +++ b/src/com/garbagemule/MobArena/MADisconnectListener.java @@ -7,6 +7,7 @@ import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerJoinEvent; /** * This listener acts when a player is kicked or disconnected @@ -43,4 +44,24 @@ public class MADisconnectListener extends PlayerListener ArenaManager.playerLeave(p); } } + + public void onPlayerJoin(PlayerJoinEvent event) + { + if (!ArenaManager.checkUpdates) + return; + + final Player p = event.getPlayer(); + + if (!event.getPlayer().isOp()) + return; + + ArenaManager.server.getScheduler().scheduleSyncDelayedTask(ArenaManager.plugin, + new Runnable() + { + public void run() + { + MAUtils.checkForUpdates(p, true); + } + }, 100); + } } \ No newline at end of file diff --git a/src/com/garbagemule/MobArena/MAUtils.java b/src/com/garbagemule/MobArena/MAUtils.java index 7cc63d5..120fdca 100644 --- a/src/com/garbagemule/MobArena/MAUtils.java +++ b/src/com/garbagemule/MobArena/MAUtils.java @@ -1,10 +1,14 @@ package com.garbagemule.MobArena; +import java.net.URL; +import java.net.URI; +import java.net.HttpURLConnection; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.Scanner; import java.util.Arrays; import java.util.List; import java.util.LinkedList; @@ -245,6 +249,18 @@ public class MAUtils return new Configuration(configFile); } + public static boolean getUpdateNotification() + { + Configuration c = ArenaManager.config; + c.load(); + + boolean result = c.getBoolean("updatenotification", false); + c.setProperty("updatenotification", result); + c.save(); + + return result; + } + public static List getDisabledCommands() { Configuration c = ArenaManager.config; @@ -445,6 +461,9 @@ public class MAUtils */ public static boolean inRegion(Location loc) { + if (!loc.getWorld().getName().equals(ArenaManager.world.getName())) + return false; + Location p1 = ArenaManager.p1; Location p2 = ArenaManager.p2; @@ -632,6 +651,54 @@ public class MAUtils } } + /** + * Checks if there is a new update of MobArena and notifies the + * player if the boolean specified is true + */ + public static void checkForUpdates(final Player p, boolean response) + { + String site = "http://forums.bukkit.org/threads/818.19144/"; + try + { + // Make a URL of the site address + //URL baseURL = new URL(site); + URI baseURL = new URI(site); + + // Open the connection and don't redirect. + HttpURLConnection con = (HttpURLConnection) baseURL.toURL().openConnection(); + con.setInstanceFollowRedirects(false); + + String header = con.getHeaderField("Location"); + + // If something's wrong with the connection... + if (header == null) + { + ArenaManager.tellPlayer(p, "Couldn't connect to the MobArena thread."); + return; + } + + // Otherwise, grab the location header to get the real URI. + String url = new URI(con.getHeaderField("Location")).toString(); + + // If the current version is the same as the thread version. + if (url.contains(ArenaManager.plugin.getDescription().getVersion().replace(".", "-"))) + { + if (!response) + return; + + ArenaManager.tellPlayer(p, "Your version of MobArena is up to date!"); + return; + } + + // Otherwise, notify the player that there is a new version. + ArenaManager.tellPlayer(p, "There is a new version of MobArena available!");; + } + catch (Exception e) + { + e.printStackTrace(); + } + } + /** * Turns the current set of players into an array, and grabs a random * element out of it. diff --git a/src/com/garbagemule/MobArena/MobArena.java b/src/com/garbagemule/MobArena/MobArena.java index c07b0fb..c7158ab 100644 --- a/src/com/garbagemule/MobArena/MobArena.java +++ b/src/com/garbagemule/MobArena/MobArena.java @@ -61,6 +61,7 @@ public class MobArena extends JavaPlugin pm.registerEvent(Event.Type.PLAYER_TELEPORT, teleportListener, Priority.Normal, this); pm.registerEvent(Event.Type.PLAYER_QUIT, discListener, Priority.Normal, this); pm.registerEvent(Event.Type.PLAYER_KICK, discListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_JOIN, discListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this);