From 0d45a9135f149da4d5e3d00b1e6d88dadfdc84dc Mon Sep 17 00:00:00 2001 From: bermudalocket Date: Sun, 9 Sep 2018 16:24:17 -0400 Subject: [PATCH 1/2] Updated for 1.13, comply with WorldEdit 7, reversed parts of previous commit on main branch to fix incorrect math --- .gitignore | 24 ++++++++++++++++++ contributors.txt | 1 - pom.xml | 14 +++++----- releases/BlockStore 1.5.0.jar | Bin 59412 -> 0 bytes .../sothatsit/blockstore/WorldEditHook.java | 24 ++++++++---------- .../blockstore/chunkstore/BlockLoc.java | 20 +++++++-------- .../blockstore/chunkstore/ChunkLoc.java | 12 ++++++--- 7 files changed, 59 insertions(+), 36 deletions(-) create mode 100644 .gitignore delete mode 100755 contributors.txt delete mode 100644 releases/BlockStore 1.5.0.jar diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bc29287 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +# Eclipse stuff: +.project +.settings +.classpath + +# IntelliJ stuff: +.idea + +# Build: +/classes/ +target/ \ No newline at end of file diff --git a/contributors.txt b/contributors.txt deleted file mode 100755 index 9c7a332..0000000 --- a/contributors.txt +++ /dev/null @@ -1 +0,0 @@ -Paddy Lamont diff --git a/pom.xml b/pom.xml index 879507b..21b2477 100755 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,13 @@ net.sothatsit blockstore - 1.5.0 - + 1.6.0 jar UTF-8 - 1.7 - 1.7 + 1.8 + 1.8 @@ -35,7 +34,6 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - sk89q-repo http://maven.sk89q.com/repo @@ -46,14 +44,14 @@ org.spigotmc spigot-api - 1.9-R0.1-SNAPSHOT + 1.13-R0.1-SNAPSHOT provided - com.sk89q.worldedit worldedit-bukkit - 6.1.1-SNAPSHOT + 7.0.0-SNAPSHOT + \ No newline at end of file diff --git a/releases/BlockStore 1.5.0.jar b/releases/BlockStore 1.5.0.jar deleted file mode 100644 index 712a1920bdcc081e0ed11baa4fc645cbaa0fc6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59412 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 B0cZdK diff --git a/src/main/java/net/sothatsit/blockstore/WorldEditHook.java b/src/main/java/net/sothatsit/blockstore/WorldEditHook.java index 13a2c48..8a53f8f 100755 --- a/src/main/java/net/sothatsit/blockstore/WorldEditHook.java +++ b/src/main/java/net/sothatsit/blockstore/WorldEditHook.java @@ -2,41 +2,39 @@ import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.blocks.BaseBlock; +import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.event.extent.EditSessionEvent; -import com.sk89q.worldedit.extent.logging.AbstractLoggingExtent; +import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.util.eventbus.Subscribe; - import com.sk89q.worldedit.world.World; +import com.sk89q.worldedit.world.block.BlockStateHolder; import net.sothatsit.blockstore.chunkstore.BlockLoc; import net.sothatsit.blockstore.chunkstore.ChunkManager; import net.sothatsit.blockstore.chunkstore.ChunkStore; public class WorldEditHook { - public void register() { + void register() { WorldEdit.getInstance().getEventBus().register(this); } @Subscribe public void wrapForLogging(EditSessionEvent event) { World world = event.getWorld(); - - if(world == null) + if (world == null) { return; + } final ChunkManager manager = BlockStore.getInstance().getManager(world.getName()); - - event.setExtent(new AbstractLoggingExtent(event.getExtent()) { + event.setExtent(new AbstractDelegateExtent(event.getExtent()) { @Override - protected void onBlockChange(Vector pos, BaseBlock newBlock) { - BlockLoc blockLoc = BlockLoc.fromLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ()); - + public boolean setBlock(Vector pos, BlockStateHolder block) throws WorldEditException { + BlockLoc blockLoc = BlockLoc.fromLocation(pos.getX(), pos.getY(), pos.getZ()); ChunkStore store = manager.getChunkStore(blockLoc.chunkLoc, true); - store.setPlaced(blockLoc, false); + return getExtent().setBlock(pos, block); } }); } -} +} \ No newline at end of file diff --git a/src/main/java/net/sothatsit/blockstore/chunkstore/BlockLoc.java b/src/main/java/net/sothatsit/blockstore/chunkstore/BlockLoc.java index e11314e..960bcc4 100644 --- a/src/main/java/net/sothatsit/blockstore/chunkstore/BlockLoc.java +++ b/src/main/java/net/sothatsit/blockstore/chunkstore/BlockLoc.java @@ -66,10 +66,10 @@ public boolean equals(Object obj) { @Override public String toString() { return "{chunkLoc: " + chunkLoc - + ", relx: " + relx - + ", rely: " + rely - + ", relz: " + relz - + ", blockIndex: " + blockIndex + "}"; + + ", relx: " + relx + + ", rely: " + rely + + ", relz: " + relz + + ", blockIndex: " + blockIndex + "}"; } public static int calcBlockIndex(int relx, int rely, int relz) { @@ -85,15 +85,15 @@ public static BlockLoc fromBlock(Block block) { } public static BlockLoc fromLocation(Location location) { - return fromLocation(location.getBlockX(), location.getBlockY(), location.getBlockZ()); + return fromLocation(location.getX(), location.getY(), location.getZ()); } - public static BlockLoc fromLocation(int x, int y, int z) { + public static BlockLoc fromLocation(double x, double y, double z) { ChunkLoc chunkLoc = ChunkLoc.fromLocation(x, y, z); - int relx = x - chunkLoc.getBlockX(); - int rely = y - chunkLoc.getBlockY(); - int relz = z - chunkLoc.getBlockZ(); + int relx = (int) x - chunkLoc.getBlockX(); + int rely = (int) y - chunkLoc.getBlockY(); + int relz = (int) z - chunkLoc.getBlockZ(); return new BlockLoc(chunkLoc, relx, rely, relz); } @@ -107,4 +107,4 @@ public static BlockLoc fromBlockIndex(ChunkLoc chunkLoc, int blockIndex) { return new BlockLoc(chunkLoc, relx, rely, relz); } -} +} \ No newline at end of file diff --git a/src/main/java/net/sothatsit/blockstore/chunkstore/ChunkLoc.java b/src/main/java/net/sothatsit/blockstore/chunkstore/ChunkLoc.java index 0d27ab3..1c74b0c 100644 --- a/src/main/java/net/sothatsit/blockstore/chunkstore/ChunkLoc.java +++ b/src/main/java/net/sothatsit/blockstore/chunkstore/ChunkLoc.java @@ -52,11 +52,15 @@ public String toString() { } public static ChunkLoc fromLocation(Location location) { - return fromLocation(location.getBlockX(), location.getBlockY(), location.getBlockZ()); + return fromLocation(location.getX(), location.getY(), location.getZ()); } - public static ChunkLoc fromLocation(int x, int y, int z) { - return new ChunkLoc(x / 16, y / 64, z / 16); + public static ChunkLoc fromLocation(double x, double y, double z) { + int cx = (int) Math.floor(x / 16d); + int cy = (int) Math.floor(y / 64d); + int cz = (int) Math.floor(z / 16d); + + return new ChunkLoc(cx, cy, cz); } -} +} \ No newline at end of file From a6ac19ef6f41e3db0a23bffdcea4d6f6ddfa8fed Mon Sep 17 00:00:00 2001 From: totemo Date: Wed, 7 Nov 2018 13:38:55 +1030 Subject: [PATCH 2/2] Version 1.6.1 Fix build for recent Vector-related API changes in WorldEdit. (https://github.com/sk89q/WorldEdit/commit/399e0ad5fa7637d5d3ccce7ead1ad409e85c7dd2) --- pom.xml | 4 ++-- .../java/net/sothatsit/blockstore/WorldEditHook.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 21b2477..8804a03 100755 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.sothatsit blockstore - 1.6.0 + 1.6.1 jar @@ -54,4 +54,4 @@ - \ No newline at end of file + diff --git a/src/main/java/net/sothatsit/blockstore/WorldEditHook.java b/src/main/java/net/sothatsit/blockstore/WorldEditHook.java index 8a53f8f..2f14170 100755 --- a/src/main/java/net/sothatsit/blockstore/WorldEditHook.java +++ b/src/main/java/net/sothatsit/blockstore/WorldEditHook.java @@ -1,13 +1,14 @@ package net.sothatsit.blockstore; -import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.event.extent.EditSessionEvent; import com.sk89q.worldedit.extent.AbstractDelegateExtent; +import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.util.eventbus.Subscribe; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockStateHolder; + import net.sothatsit.blockstore.chunkstore.BlockLoc; import net.sothatsit.blockstore.chunkstore.ChunkManager; import net.sothatsit.blockstore.chunkstore.ChunkStore; @@ -17,7 +18,7 @@ public class WorldEditHook { void register() { WorldEdit.getInstance().getEventBus().register(this); } - + @Subscribe public void wrapForLogging(EditSessionEvent event) { World world = event.getWorld(); @@ -28,7 +29,7 @@ public void wrapForLogging(EditSessionEvent event) { final ChunkManager manager = BlockStore.getInstance().getManager(world.getName()); event.setExtent(new AbstractDelegateExtent(event.getExtent()) { @Override - public boolean setBlock(Vector pos, BlockStateHolder block) throws WorldEditException { + public boolean setBlock(BlockVector3 pos, BlockStateHolder block) throws WorldEditException { BlockLoc blockLoc = BlockLoc.fromLocation(pos.getX(), pos.getY(), pos.getZ()); ChunkStore store = manager.getChunkStore(blockLoc.chunkLoc, true); store.setPlaced(blockLoc, false); @@ -36,5 +37,5 @@ public boolean setBlock(Vector pos, BlockStateHolder block) throws WorldEditExce } }); } - + } \ No newline at end of file