From ccfabd94b9c9935dbf16f191a6a8ae1ba311faef Mon Sep 17 00:00:00 2001 From: zml2008 Date: Wed, 28 Sep 2011 19:05:22 -0700 Subject: [PATCH] Should fix broken config generation some people have been getting --- .../com/sk89q/worldedit/blocks/BaseBlock.java | 7 +++++++ .../sk89q/worldedit/bukkit/WorldEditPlugin.java | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java b/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java index d03eceac8..bbe319749 100644 --- a/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java +++ b/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java @@ -132,6 +132,13 @@ public class BaseBlock { && (data == ((BaseBlock) o).data || data == -1 || ((BaseBlock) o).data == -1); } + @Override + public int hashCode() { + int ret = type << 3; + if (data != (byte)-1) ret |= data; + return ret; + } + @Override public String toString() { return "BaseBlock id: " + getType() + " with damage: " + getData(); diff --git a/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java index baeeaf67e..6d817ea6b 100644 --- a/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java +++ b/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java @@ -20,10 +20,14 @@ package com.sk89q.worldedit.bukkit; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.jar.JarFile; import java.util.logging.Logger; +import java.util.zip.ZipEntry; + import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -170,9 +174,16 @@ public class WorldEditPlugin extends JavaPlugin { protected void createDefaultConfiguration(String name) { File actual = new File(getDataFolder(), name); if (!actual.exists()) { - InputStream input = - WorldEdit.class.getResourceAsStream("/defaults/" + name); + null; + try { + JarFile file = new JarFile(getFile()); + ZipEntry copy = file.getEntry("defaults" + File.separator + name); + if (copy == null) throw new FileNotFoundException(); + input = file.getInputStream(copy); + } catch (IOException e) { + logger.severe(getDescription().getName() + ": Unable to read default configuration: " + name); + } if (input != null) { FileOutputStream output = null;