diff --git a/build.gradle b/build.gradle index 168eb3ac5..0982afa2a 100644 --- a/build.gradle +++ b/build.gradle @@ -24,10 +24,10 @@ plugins { id "de.undercouch.download" version "5.0.1" } -version '2.2.5-1.19' // Needs to be version specific -def nmsVersion = "1.19" +version '2.2.5-1.19.1' // Needs to be version specific +def nmsVersion = "1.19.1" def apiVersion = '1.19' -def spigotJarVersion = '1.19-R0.1-SNAPSHOT' +def spigotJarVersion = '1.19.1-R0.1-SNAPSHOT' def name = getRootProject().getName() // Defined in settings.gradle def main = 'com.volmit.iris.Iris' @@ -38,7 +38,7 @@ registerCustomOutputTask('Psycho', 'D://Dan/MinecraftDevelopment/server/plugins' registerCustomOutputTask('ArcaneArts', 'C://Users/arcane/Documents/development/server/plugins') registerCustomOutputTask('Coco', 'D://Documents/MC/plugins') registerCustomOutputTask('Strange', 'D://Servers/1.17 Test Server/plugins') -registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.19/plugins') +registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.19.1/plugins') // ========================== UNIX ============================== registerCustomOutputTaskUnix('CyberpwnLT', '/Users/danielmills/development/server/plugins') registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Desktop/REMOTES/RemoteMinecraft/plugins') @@ -124,10 +124,10 @@ dependencies { // Provided or Classpath compileOnly 'org.projectlombok:lombok:1.18.24' annotationProcessor 'org.projectlombok:lombok:1.18.24' - implementation 'org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT' + implementation 'org.spigotmc:spigot-api:1.19.1-R0.1-SNAPSHOT' implementation 'me.clip:placeholderapi:2.11.1' implementation 'io.th0rgal:oraxen:1.94.0' - implementation 'org.bukkit:craftbukkit:1.19-R0.1-SNAPSHOT:remapped-mojang' + implementation 'org.bukkit:craftbukkit:1.19.1-R0.1-SNAPSHOT:remapped-mojang' implementation 'com.github.LoneDev6:api-itemsadder:3.1.0b' // Shaded diff --git a/src/main/java/com/volmit/iris/core/commands/CommandIris.java b/src/main/java/com/volmit/iris/core/commands/CommandIris.java index 5e8cbae78..c6c2aec7e 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandIris.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandIris.java @@ -140,7 +140,7 @@ public class CommandIris implements DecreeExecutor { sender().sendMessage(C.GREEN + "Total Height: " + (sender().player().getWorld().getMaxHeight() - sender().player().getWorld().getMinHeight())); } - @Decree(description = "QOL command to open a overworld studio world.") + @Decree(description = "QOL command to open a overworld studio world.", sync = true) public void so() { sender().sendMessage(C.GREEN + "Opening studio for the \"Overworld\" pack (seed: 1337)"); Iris.service(StudioSVC.class).open(sender(), 1337, "overworld"); diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java b/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java index f725ee47f..199fc83ff 100644 --- a/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java +++ b/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java @@ -23,6 +23,7 @@ import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisDecorationPart; import com.volmit.iris.engine.object.IrisDecorator; +import com.volmit.iris.util.data.B; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.hunk.Hunk; import org.bukkit.Material; @@ -100,14 +101,13 @@ public class IrisCeilingDecorator extends IrisEngineDecorator { } private BlockData fixFaces(BlockData b, int x, int y, int z) { - Material mat = b.getMaterial(); - if(mat == Material.VINE || mat == Material.GLOW_LICHEN) { + if(B.isVineBlock(b)) { MultipleFacing data = (MultipleFacing)b.clone(); boolean found = false; for(BlockFace f : BlockFace.values()) { if(!f.isCartesian()) continue; - Material m = getEngine().getMantle().get(x, y, z).getMaterial(); + Material m = getEngine().getMantle().get(x + f.getModX(), y + f.getModY(), z + f.getModZ()).getMaterial(); if(m.isSolid()) { found = true; data.setFace(f, m.isSolid()); diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java b/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java index 07b5e52c4..a5909c5c8 100644 --- a/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java +++ b/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java @@ -25,12 +25,14 @@ import com.volmit.iris.engine.object.InferredType; import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisDecorationPart; import com.volmit.iris.engine.object.IrisDecorator; +import com.volmit.iris.util.data.B; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.hunk.Hunk; import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.block.data.Bisected; import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.MultipleFacing; import org.bukkit.block.data.type.PointedDripstone; public class IrisSurfaceDecorator extends IrisEngineDecorator { @@ -73,8 +75,8 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator { } if(decorator.getForceBlock() != null) - data.set(x, height, z, decorator.getForceBlock().getBlockData(getData())); - data.set(x, height + 1, z, bd); + data.set(x, height, z, fixFaces(decorator.getForceBlock().getBlockData(getData()), x, height, z)); + data.set(x, height + 1, z, fixFaces(bd, x, height, z)); } else { if(height < getDimension().getFluidHeight()) { max = getDimension().getFluidHeight(); @@ -140,4 +142,24 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator { } } } + + private BlockData fixFaces(BlockData b, int x, int y, int z) { + if(B.isVineBlock(b)) { + MultipleFacing data = (MultipleFacing)b.clone(); + boolean found = false; + for(BlockFace f : BlockFace.values()) { + if(!f.isCartesian()) + continue; + Material m = getEngine().getMantle().get(x + f.getModX(), y + f.getModY(), z + f.getModZ()).getMaterial(); + if(m.isSolid()) { + found = true; + data.setFace(f, m.isSolid()); + } + } + if(!found) + data.setFace(BlockFace.UP, true); + return data; + } + return b; + } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObject.java b/src/main/java/com/volmit/iris/engine/object/IrisObject.java index 13a724aae..1a7e65ffd 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObject.java @@ -47,9 +47,11 @@ import lombok.experimental.Accessors; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; import org.bukkit.block.TileState; import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.MultipleFacing; import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.type.Leaves; import org.bukkit.util.BlockVector; @@ -803,6 +805,16 @@ public class IrisObject extends IrisRegistrant { ((Waterlogged) data).setWaterlogged(true); } + if(B.isVineBlock(data)) { + MultipleFacing f = (MultipleFacing)data; + for(BlockFace face : f.getAllowedFaces()) { + BlockData facingBlock = placer.get(xx + face.getModX(), yy + face.getModY(), zz + face.getModZ()); + if(B.isSolid(facingBlock) && !B.isVineBlock(facingBlock)) { + f.setFace(face, true); + } + } + } + if(listener != null) { listener.accept(new BlockPosition(xx, yy, zz)); } @@ -895,8 +907,19 @@ public class IrisObject extends IrisRegistrant { if(settings.getYMax() != 0) lowerBound -= Math.min(config.getStiltSettings().getYMax() - (lowest + y - highest), 0); } - for(int j = lowest + y; j > lowerBound; j--) + for(int j = lowest + y; j > lowerBound; j--) { + if(B.isVineBlock(d)) { + MultipleFacing f = (MultipleFacing)d; + for(BlockFace face : f.getAllowedFaces()) { + BlockData facingBlock = placer.get(xx + face.getModX(), j + face.getModY(), zz + face.getModZ()); + if(B.isSolid(facingBlock) && !B.isVineBlock(facingBlock)) { + f.setFace(face, true); + } + } + } placer.set(xx, j, zz, d); + } + } readLock.unlock(); diff --git a/src/main/java/com/volmit/iris/util/data/B.java b/src/main/java/com/volmit/iris/util/data/B.java index fe3ab6381..728977a7f 100644 --- a/src/main/java/com/volmit/iris/util/data/B.java +++ b/src/main/java/com/volmit/iris/util/data/B.java @@ -201,7 +201,8 @@ public class B { TORCH, SOUL_TORCH, GLOW_LICHEN, - VINE + VINE, + SCULK_VEIN }).forEach((i) -> b.add(i.ordinal())); b.addAll(foliageCache); @@ -674,4 +675,11 @@ public class B { public static void registerCustomBlockData(String namespace, String key, BlockData blockData) { custom.put(namespace + ":" + key, blockData); } + + public static boolean isVineBlock(BlockData data) { + return switch(data.getMaterial()) { + case VINE, SCULK_VEIN, GLOW_LICHEN -> true; + default -> false; + }; + } } diff --git a/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java b/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java index ce1654acd..005738f22 100644 --- a/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java +++ b/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java @@ -62,7 +62,6 @@ public class BiomeGridHunkView implements Hunk { if(y > highest) { highest = y; - Iris.info("Highest = " + highest); } }