From f69184f9ab753606c92a362594663ff09d076884 Mon Sep 17 00:00:00 2001 From: sk89q Date: Mon, 31 Jan 2011 00:58:29 -0800 Subject: [PATCH] Added version information for SP. --- .../sk89q/worldedit/LocalConfiguration.java | 1 + src/com/sk89q/worldedit/LocalSession.java | 25 +++++++++++ src/com/sk89q/worldedit/WorldEdit.java | 41 ++++++++++++++++++- .../worldedit/bukkit/BukkitConfiguration.java | 2 + 4 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/com/sk89q/worldedit/LocalConfiguration.java b/src/com/sk89q/worldedit/LocalConfiguration.java index 370f84ca6..f43608660 100644 --- a/src/com/sk89q/worldedit/LocalConfiguration.java +++ b/src/com/sk89q/worldedit/LocalConfiguration.java @@ -60,6 +60,7 @@ public abstract class LocalConfiguration { public Set allowedDataCycleBlocks = new HashSet(); public String saveDir = "schematics"; public String scriptsDir = "craftscripts"; + public boolean showFirstUseVersion = true; /** * Loads the configuration. diff --git a/src/com/sk89q/worldedit/LocalSession.java b/src/com/sk89q/worldedit/LocalSession.java index 04520dcdb..40b340f1e 100644 --- a/src/com/sk89q/worldedit/LocalSession.java +++ b/src/com/sk89q/worldedit/LocalSession.java @@ -40,6 +40,8 @@ public class LocalSession { public static final int MAX_HISTORY_SIZE = 15; + private LocalConfiguration config; + private boolean placeAtPos1 = false; private Vector pos1, pos2; private Region region; @@ -57,6 +59,16 @@ public class LocalSession { private String lastScript; private CompassMode compassMode = CompassMode.JUMPTO; private BrushShape brushShape = null; + private boolean beenToldVersion = false; + + /** + * Construct the object. + * + * @param config + */ + public LocalSession(LocalConfiguration config) { + this.config = config; + } /** * Clear history. @@ -463,4 +475,17 @@ public class LocalSession { public void setBrushShape(BrushShape brushShape) { this.brushShape = brushShape; } + + /** + * Tell the player the WorldEdit version. + */ + public void tellVersion(LocalPlayer player) { + if (config.showFirstUseVersion) { + if (!beenToldVersion) { + player.printRaw("\u00A78WorldEdit ver. " + WorldEdit.getVersion() + + " (http://sk89q.com/projects/worldedit/)"); + beenToldVersion = true; + } + } + } } diff --git a/src/com/sk89q/worldedit/WorldEdit.java b/src/com/sk89q/worldedit/WorldEdit.java index b1fd62d8d..198024878 100644 --- a/src/com/sk89q/worldedit/WorldEdit.java +++ b/src/com/sk89q/worldedit/WorldEdit.java @@ -48,6 +48,7 @@ import com.sk89q.worldedit.patterns.*; */ public class WorldEdit { public static final Logger logger = Logger.getLogger("Minecraft.WorldEdit"); + private static String version; /** * Interface to the server. @@ -74,6 +75,13 @@ public class WorldEdit { private HashMap sessions = new HashMap(); + /** + * Initialize statically. + */ + static { + getVersion(); + } + /** * Construct an instance of the plugin * @@ -112,7 +120,7 @@ public class WorldEdit { return sessions.get(player.getName()); } - LocalSession session = new LocalSession(); + LocalSession session = new LocalSession(config); // Set the limit on the number of blocks that an operation can // change at once, or don't if the player has an override or there @@ -818,6 +826,8 @@ public class WorldEdit { LocalSession session = getSession(player); BlockBag blockBag = session.getBlockBag(player); + session.tellVersion(player); + EditSession editSession = new EditSession(server, player.getWorld(), session.getBlockChangeLimit(), blockBag); @@ -988,4 +998,33 @@ public class WorldEdit { public LocalConfiguration getConfiguration() { return config; } + + /** + * Get the version. + * + * @return + */ + public static String getVersion() { + if (version != null) { + return version; + } + + Package p = WorldEdit.class.getPackage(); + + if (p == null) { + p = Package.getPackage("com.sk89q.worldedit"); + } + + if (p == null) { + version = "(unknown)"; + } else { + version = p.getImplementationVersion(); + + if (version == null) { + version = "(unknown)"; + } + } + + return version; + } } diff --git a/src/com/sk89q/worldedit/bukkit/BukkitConfiguration.java b/src/com/sk89q/worldedit/bukkit/BukkitConfiguration.java index 2b59c7008..896b4bff8 100644 --- a/src/com/sk89q/worldedit/bukkit/BukkitConfiguration.java +++ b/src/com/sk89q/worldedit/bukkit/BukkitConfiguration.java @@ -41,6 +41,8 @@ public class BukkitConfiguration extends LocalConfiguration { @Override public void load() { + showFirstUseVersion = false; + profile = config.getBoolean("debug", profile); wandItem = config.getInt("wand-item", wandItem); defaultChangeLimit = Math.max(-1, config.getInt(