From 03836acdedfe1b52379edf8996b3644e01478550 Mon Sep 17 00:00:00 2001 From: DanMB Date: Thu, 7 Jul 2022 13:12:59 -0700 Subject: [PATCH 1/4] ffff --- .../com/volmit/iris/engine/actuator/IrisBiomeActuator.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java index d3634c91e..e64d17586 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java @@ -57,6 +57,10 @@ public class IrisBiomeActuator extends EngineAssignedActuator { } return true; } + + else{ + System.out.println("H is not a BiomeGridHunkView!") + } } catch(Throwable e) { e.printStackTrace(); } From 0a247956f77fcfcb776afd59d70e98cf93a0c50b Mon Sep 17 00:00:00 2001 From: Vatuu <21113232+Vatuu@users.noreply.github.com> Date: Thu, 7 Jul 2022 22:28:59 +0200 Subject: [PATCH 2/4] Fixed colour and printout. --- .../iris/core/nms/v19_1/NMSBinding19_1.java | 32 ------------------- .../engine/actuator/IrisBiomeActuator.java | 13 +++++--- 2 files changed, 9 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java b/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java index 2e2713488..1157b2645 100644 --- a/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java +++ b/src/main/java/com/volmit/iris/core/nms/v19_1/NMSBinding19_1.java @@ -344,44 +344,12 @@ public class NMSBinding19_1 implements INMSBinding { ChunkAccess s = (ChunkAccess) getFieldForBiomeStorage(chunk).get(chunk); Holder biome = (Holder) somethingVeryDirty; s.setBiome(x, y, z, biome); - /*int l = QuartPos.fromBlock(s.getMinBuildHeight()); - int i1 = l + QuartPos.fromBlock(s.getHeight()) - 1; - PalettedContainer> palette = getPalette(s, s.getSectionIndex(QuartPos.toBlock(Mth.clamp(y, l, i1)))); - int index = getPaletteIndex(x, y, z, s, palette); - int data = getPaletteDataId(palette, biome); - setPaletteData(palette, index, data);*/ } catch(IllegalAccessException e) { Iris.reportError(e); e.printStackTrace(); } } - private PalettedContainer> getPalette(ChunkAccess ca, int index) { - LevelChunkSection[] sections = fieldForClass(LevelChunkSection[].class, ChunkAccess.class, ca); - return fieldForClass(PalettedContainer.class, LevelChunkSection.class, sections[index]); - } - - private int getPaletteIndex(int x, int y, int z, ChunkAccess s, PalettedContainer palette) { - int l = QuartPos.fromBlock(s.getMinBuildHeight()); - int i1 = l + QuartPos.fromBlock(s.getHeight()) - 1; - int j1 = Mth.clamp(y, l, i1); - return fieldForClass(PalettedContainer.Strategy.class, PalettedContainer.class, palette).getIndex(x & 3, j1 & 3, z & 3); - } - - private > int getPaletteDataId(PalettedContainer palette, T data) throws ClassNotFoundException { - Class dataType = getClassType(PalettedContainer.class, 1); - Object paletteData = fieldFor(dataType, palette); - Palette fuckinFinally = fieldForClass(Palette.class,dataType, paletteData); - return fuckinFinally.idFor(data); - } - - private void setPaletteData(PalettedContainer palette, int index, int data) throws ClassNotFoundException { - Class dataType = getClassType(PalettedContainer.class, 1); - Object paletteData = fieldFor(dataType, palette); - BitStorage storage = fieldForClass(BitStorage.class, dataType, paletteData); - storage.set(index, data); - } - private Field getFieldForBiomeStorage(Object storage) { Field f = biomeStorageCache; diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java index e64d17586..79a32a058 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java @@ -27,6 +27,7 @@ import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiomeCustom; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.hunk.Hunk; +import com.volmit.iris.util.hunk.view.BiomeGridHunkHolder; import com.volmit.iris.util.hunk.view.BiomeGridHunkView; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.parallel.BurstExecutor; @@ -56,10 +57,14 @@ public class IrisBiomeActuator extends EngineAssignedActuator { hh.forceBiomeBaseInto(x, y, z, bb); } return true; - } - - else{ - System.out.println("H is not a BiomeGridHunkView!") + } else if(h instanceof BiomeGridHunkHolder hh) { + ChunkGenerator.BiomeGrid g = hh.getChunk(); + if(g instanceof TerrainChunk) { + ((TerrainChunk) g).getBiomeBaseInjector().setBiome(x, y, z, bb); + } else { + hh.forceBiomeBaseInto(x, y, z, bb); + } + return true; } } catch(Throwable e) { e.printStackTrace(); From f7065fe034aec40a3d988476210408b4c46da2a9 Mon Sep 17 00:00:00 2001 From: Vatuu <21113232+Vatuu@users.noreply.github.com> Date: Thu, 7 Jul 2022 22:54:54 +0200 Subject: [PATCH 3/4] Datenpackete werden nun in allen registrierten Welten generiert. --- .../volmit/iris/core/ServerConfigurator.java | 51 +++++-------------- 1 file changed, 12 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/ServerConfigurator.java b/src/main/java/com/volmit/iris/core/ServerConfigurator.java index 0d08255e2..e7d8bee09 100644 --- a/src/main/java/com/volmit/iris/core/ServerConfigurator.java +++ b/src/main/java/com/volmit/iris/core/ServerConfigurator.java @@ -30,6 +30,7 @@ import com.volmit.iris.util.format.C; import com.volmit.iris.util.io.IO; import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.scheduling.J; +import com.volmit.iris.util.scheduling.Queue; import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; @@ -38,6 +39,7 @@ import org.bukkit.entity.Player; import java.io.File; import java.io.IOException; +import java.util.List; import java.util.concurrent.TimeUnit; public class ServerConfigurator { @@ -82,43 +84,21 @@ public class ServerConfigurator { } } - private static File getDatapacksFolder() { + private static List getDatapacksFolder() { if(!IrisSettings.get().getGeneral().forceMainWorld.isEmpty()) { - return new File(IrisSettings.get().getGeneral().forceMainWorld + "/datapacks"); + return new KList().qadd(new File(IrisSettings.get().getGeneral().forceMainWorld + "/datapacks")); } - - File props = new File("server.properties"); - - if(props.exists()) { - try { - KList m = new KList<>(IO.readAll(props).split("\\Q\n\\E")); - - for(String i : m) { - if(i.trim().startsWith("level-name=")) { - return new File(i.trim().split("\\Q=\\E")[1] + "/datapacks"); - } - } - } catch(IOException e) { - Iris.reportError(e); - e.printStackTrace(); - } - } - - return null; + KList worlds = new KList<>(); + Bukkit.getServer().getWorlds().forEach(w -> worlds.add(new File(w.getWorldFolder(), "datapacks"))); + return worlds; } + public static void installDataPacks(boolean fullInstall) { Iris.info("Checking Data Packs..."); - boolean reboot = false; File packs = new File("plugins/Iris/packs"); - File dpacks = getDatapacksFolder(); - if(dpacks == null) { - Iris.error("Cannot find the datapacks folder! Please try generating a default world first maybe? Is this a new server?"); - return; - } - - if(packs.exists()) { + if(packs.exists()) { for(File i : packs.listFiles()) { if(i.isDirectory()) { Iris.verbose("Checking Pack: " + i.getPath()); @@ -135,8 +115,8 @@ public class ServerConfigurator { } Iris.verbose(" Checking Dimension " + dim.getLoadFile().getPath()); - if(dim.installDataPack(() -> data, dpacks)) { - reboot = true; + for(File dpack : getDatapacksFolder()) { + dim.installDataPack(() -> data, dpack); } } } @@ -147,19 +127,12 @@ public class ServerConfigurator { Iris.info("Data Packs Setup!"); - if(fullInstall) { + if(fullInstall) verifyDataPacksPost(IrisSettings.get().getAutoConfiguration().isAutoRestartOnCustomBiomeInstall()); - } } private static void verifyDataPacksPost(boolean allowRestarting) { File packs = new File("plugins/Iris/packs"); - File dpacks = getDatapacksFolder(); - - if(dpacks == null) { - Iris.error("Cannot find the datapacks folder! Please try generating a default world first maybe? Is this a new server?"); - return; - } boolean bad = false; if(packs.exists()) { From 6a44e593a64a3405feaa3c5e40a0776b43d417d0 Mon Sep 17 00:00:00 2001 From: Vatuu <21113232+Vatuu@users.noreply.github.com> Date: Thu, 7 Jul 2022 23:04:32 +0200 Subject: [PATCH 4/4] V+ --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e440cb2b9..c14471705 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ plugins { id "de.undercouch.download" version "5.0.1" } -version '2.2.2-1.19' // Needs to be version specific +version '2.2.3-1.19' // Needs to be version specific def nmsVersion = "1.19" def apiVersion = '1.19' def spigotJarVersion = '1.19-R0.1-SNAPSHOT'