diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java b/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java
index 3da3814df..c6d0baae3 100644
--- a/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java
+++ b/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java
@@ -23,20 +23,11 @@ import com.volmit.iris.core.ServerConfigurator;
import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.nms.datapack.DataVersion;
-import com.volmit.iris.core.nms.v1X.NMSBinding1X;
-import com.volmit.iris.core.pregenerator.ChunkUpdater;
import com.volmit.iris.core.service.IrisEngineSVC;
-import com.volmit.iris.core.tools.IrisBiomeFixer;
-import com.volmit.iris.core.tools.IrisConverter;
import com.volmit.iris.core.tools.IrisPackBenchmarking;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
-import com.volmit.iris.engine.mantle.components.MantleObjectComponent;
-import com.volmit.iris.engine.object.IrisBiome;
-import com.volmit.iris.engine.object.IrisCave;
import com.volmit.iris.engine.object.IrisDimension;
-import com.volmit.iris.engine.object.IrisEntity;
-import com.volmit.iris.util.data.Dimension;
import com.volmit.iris.util.decree.DecreeExecutor;
import com.volmit.iris.util.decree.DecreeOrigin;
import com.volmit.iris.util.decree.annotations.Decree;
@@ -45,21 +36,16 @@ import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.io.IO;
import com.volmit.iris.util.mantle.TectonicPlate;
-import com.volmit.iris.util.math.Spiraler;
-import com.volmit.iris.util.math.Vector3d;
import com.volmit.iris.util.nbt.mca.MCAFile;
import com.volmit.iris.util.nbt.mca.MCAUtil;
import com.volmit.iris.util.parallel.MultiBurst;
import com.volmit.iris.util.plugin.VolmitSender;
-import io.lumine.mythic.bukkit.adapters.BukkitEntity;
import net.jpountz.lz4.LZ4BlockInputStream;
import net.jpountz.lz4.LZ4BlockOutputStream;
import net.jpountz.lz4.LZ4FrameInputStream;
import net.jpountz.lz4.LZ4FrameOutputStream;
import org.apache.commons.lang.RandomStringUtils;
import org.bukkit.*;
-import org.bukkit.entity.Creeper;
-import org.bukkit.entity.EntityType;
import java.io.*;
import java.net.InetAddress;
@@ -73,7 +59,6 @@ import java.util.zip.GZIPOutputStream;
@Decree(name = "Developer", origin = DecreeOrigin.BOTH, description = "Iris World Manager", aliases = {"dev"})
public class CommandDeveloper implements DecreeExecutor {
- private CommandTurboPregen turboPregen;
private CommandUpdater updater;
@Decree(description = "Get Loaded TectonicPlates Count", origin = DecreeOrigin.BOTH, sync = true)
@@ -164,16 +149,6 @@ public class CommandDeveloper implements DecreeExecutor {
sender().sendMessage("Height: " + player().getWorld().getHighestBlockAt(player().getLocation(), HeightMap.MOTION_BLOCKING).getY());
}
- @Decree(description = "Fix biomes in a iris world", aliases = {"fb"} )
- public void fixbiomes(
- @Param(description = "The IrisWorld to fix biomes at") World world) {
-
- IrisBiomeFixer biomeFixer = new IrisBiomeFixer(world);
- Iris.info("Fixing biomes.");
- biomeFixer.fixBiomes();
- Iris.info("Done fixing biomes!");
- }
-
@Decree(description = "check", aliases = {"ck"} )
public void check() {
sender().sendMessage("Data Pack Biome: " + INMS.get().getTrueBiomeBaseKey(player().getLocation()) + " (ID: " + INMS.get().getTrueBiomeBaseId(INMS.get().getTrueBiomeBase(player().getLocation())) + ")");
diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java b/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java
index 18559fbd0..ea29fa197 100644
--- a/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java
+++ b/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java
@@ -79,7 +79,6 @@ public class CommandIris implements DecreeExecutor {
private CommandWhat what;
private CommandEdit edit;
private CommandFind find;
- private CommandSupport support;
private CommandDeveloper developer;
public static boolean worldCreation = false;
String WorldEngine;
diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandSupport.java b/core/src/main/java/com/volmit/iris/core/commands/CommandSupport.java
deleted file mode 100644
index 0f7baad0d..000000000
--- a/core/src/main/java/com/volmit/iris/core/commands/CommandSupport.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Iris is a World Generator for Minecraft Bukkit Servers
- * Copyright (c) 2022 Arcane Arts (Volmit Software)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.volmit.iris.core.commands;
-
-import com.volmit.iris.Iris;
-import com.volmit.iris.core.loader.IrisData;
-import com.volmit.iris.core.pregenerator.ChunkUpdater;
-import com.volmit.iris.core.service.IrisEngineSVC;
-import com.volmit.iris.core.tools.IrisPackBenchmarking;
-import com.volmit.iris.core.tools.IrisToolbelt;
-import com.volmit.iris.engine.framework.Engine;
-import com.volmit.iris.engine.object.IrisDimension;
-import com.volmit.iris.util.collection.KList;
-import com.volmit.iris.util.decree.DecreeExecutor;
-import com.volmit.iris.util.decree.DecreeOrigin;
-import com.volmit.iris.util.decree.annotations.Decree;
-import com.volmit.iris.util.decree.annotations.Param;
-import com.volmit.iris.util.format.C;
-import com.volmit.iris.util.format.Form;
-import com.volmit.iris.util.io.IO;
-import com.volmit.iris.util.mantle.TectonicPlate;
-import com.volmit.iris.util.misc.Hastebin;
-import com.volmit.iris.util.misc.Platform;
-import com.volmit.iris.util.misc.getHardware;
-import com.volmit.iris.util.nbt.mca.MCAFile;
-import com.volmit.iris.util.nbt.mca.MCAUtil;
-import com.volmit.iris.util.plugin.VolmitSender;
-import net.jpountz.lz4.LZ4BlockInputStream;
-import net.jpountz.lz4.LZ4BlockOutputStream;
-import net.jpountz.lz4.LZ4FrameInputStream;
-import net.jpountz.lz4.LZ4FrameOutputStream;
-import org.apache.commons.lang.RandomStringUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.Chunk;
-import org.bukkit.World;
-import oshi.SystemInfo;
-
-import java.io.*;
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-@Decree(name = "Support", origin = DecreeOrigin.BOTH, description = "Iris World Manager", aliases = {"support"})
-public class CommandSupport implements DecreeExecutor {
-
- @Decree(description = "report")
- public void report() {
- try {
- if (sender().isPlayer()) sender().sendMessage(C.GOLD + "Creating report..");
- if (!sender().isPlayer()) Iris.info(C.GOLD + "Creating report..");
- Hastebin.enviornment(sender());
-
- } catch (Exception e) {
- Iris.info(C.RED + "Something went wrong: ");
- e.printStackTrace();
- }
- }
-
-
-}
-
-
diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandTurboPregen.java b/core/src/main/java/com/volmit/iris/core/commands/CommandTurboPregen.java
deleted file mode 100644
index 18a7be8d7..000000000
--- a/core/src/main/java/com/volmit/iris/core/commands/CommandTurboPregen.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Iris is a World Generator for Minecraft Bukkit Servers
- * Copyright (c) 2022 Arcane Arts (Volmit Software)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.volmit.iris.core.commands;
-
-import com.volmit.iris.Iris;
-import com.volmit.iris.core.pregenerator.LazyPregenerator;
-import com.volmit.iris.core.pregenerator.TurboPregenerator;
-import com.volmit.iris.core.pregenerator.TurboPregenerator;
-import com.volmit.iris.util.decree.DecreeExecutor;
-import com.volmit.iris.util.decree.annotations.Decree;
-import com.volmit.iris.util.decree.annotations.Param;
-import com.volmit.iris.util.format.C;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.util.Vector;
-
-import java.io.File;
-import java.io.IOException;
-
-@Decree(name = "turbopregen", aliases = "turbo", description = "Pregenerate your Iris worlds!")
-public class CommandTurboPregen implements DecreeExecutor {
- public String worldName;
- @Decree(description = "Pregenerate a world")
- public void start(
- @Param(description = "The radius of the pregen in blocks", aliases = "size")
- int radius,
- @Param(description = "The world to pregen", contextual = true)
- World world,
- @Param(aliases = "middle", description = "The center location of the pregen. Use \"me\" for your current location", defaultValue = "0,0")
- Vector center
- ) {
-
- worldName = world.getName();
- File worldDirectory = new File(Bukkit.getWorldContainer(), world.getName());
- File TurboFile = new File(worldDirectory, "turbogen.json");
- if (TurboFile.exists()) {
- if (TurboPregenerator.getInstance() != null) {
- sender().sendMessage(C.BLUE + "Turbo pregen is already in progress");
- Iris.info(C.YELLOW + "Turbo pregen is already in progress");
- return;
- } else {
- try {
- TurboFile.delete();
- } catch (Exception e){
- Iris.error("Failed to delete the old instance file of Turbo Pregen!");
- return;
- }
- }
- }
-
- try {
- if (sender().isPlayer() && access() == null) {
- sender().sendMessage(C.RED + "The engine access for this world is null!");
- sender().sendMessage(C.RED + "Please make sure the world is loaded & the engine is initialized. Generate a new chunk, for example.");
- }
-
- TurboPregenerator.TurboPregenJob pregenJob = TurboPregenerator.TurboPregenJob.builder()
- .world(worldName)
- .radiusBlocks(radius)
- .position(0)
- .build();
-
- File TurboGenFile = new File(worldDirectory, "turbogen.json");
- TurboPregenerator pregenerator = new TurboPregenerator(pregenJob, TurboGenFile);
- pregenerator.start();
-
- String msg = C.GREEN + "TurboPregen started in " + C.GOLD + worldName + C.GREEN + " of " + C.GOLD + (radius * 2) + C.GREEN + " by " + C.GOLD + (radius * 2) + C.GREEN + " blocks from " + C.GOLD + center.getX() + "," + center.getZ();
- sender().sendMessage(msg);
- Iris.info(msg);
- } catch (Throwable e) {
- sender().sendMessage(C.RED + "Epic fail. See console.");
- Iris.reportError(e);
- e.printStackTrace();
- }
- }
-
- @Decree(description = "Stop the active pregeneration task", aliases = "x")
- public void stop(@Param(aliases = "world", description = "The world to pause") World world) throws IOException {
- TurboPregenerator turboPregenInstance = TurboPregenerator.getInstance();
- File worldDirectory = new File(Bukkit.getWorldContainer(), world.getName());
- File turboFile = new File(worldDirectory, "turbogen.json");
-
- if (turboPregenInstance != null) {
- turboPregenInstance.shutdownInstance(world);
- sender().sendMessage(C.LIGHT_PURPLE + "Closed Turbogen instance for " + world.getName());
- } else if (turboFile.exists() && turboFile.delete()) {
- sender().sendMessage(C.LIGHT_PURPLE + "Closed Turbogen instance for " + world.getName());
- } else if (turboFile.exists()) {
- Iris.error("Failed to delete the old instance file of Turbo Pregen!");
- } else {
- sender().sendMessage(C.YELLOW + "No active pregeneration tasks to stop");
- }
- }
-
- @Decree(description = "Pause / continue the active pregeneration task", aliases = {"t", "resume", "unpause"})
- public void pause(
- @Param(aliases = "world", description = "The world to pause")
- World world
- ) {
- if (TurboPregenerator.getInstance() != null) {
- TurboPregenerator.setPausedTurbo(world);
- sender().sendMessage(C.GREEN + "Paused/unpaused Turbo Pregen, now: " + (TurboPregenerator.isPausedTurbo(world) ? "Paused" : "Running") + ".");
- } else {
- File worldDirectory = new File(Bukkit.getWorldContainer(), world.getName());
- File TurboFile = new File(worldDirectory, "turbogen.json");
- if (TurboFile.exists()){
- TurboPregenerator.loadTurboGenerator(world.getName());
- sender().sendMessage(C.YELLOW + "Started Turbo Pregen back up!");
- } else {
- sender().sendMessage(C.YELLOW + "No active Turbo Pregen tasks to pause/unpause.");
- }
-
- }
- }
-}
diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java b/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java
deleted file mode 100644
index 059a22131..000000000
--- a/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java
+++ /dev/null
@@ -1,233 +0,0 @@
-package com.volmit.iris.core.tools;
-
-import com.volmit.iris.Iris;
-import com.volmit.iris.core.nms.INMS;
-import com.volmit.iris.engine.framework.Engine;
-import com.volmit.iris.engine.object.IrisBiome;
-import com.volmit.iris.util.format.Form;
-import com.volmit.iris.util.hunk.Hunk;
-import com.volmit.iris.util.math.M;
-import com.volmit.iris.util.math.RNG;
-import com.volmit.iris.util.math.RollingSequence;
-import com.volmit.iris.util.scheduling.ChronoLatch;
-import org.bukkit.World;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.block.Biome;
-
-import java.io.File;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-
-public class IrisBiomeFixer {
- private World world;
- private Engine engine;
- private ChronoLatch latch;
-
- private RollingSequence chunksPerSecond;
- private RollingSequence chunksPerMinute;
- private AtomicLong startTime;
- private AtomicLong lastLogTime;
-
- private AtomicInteger generated = new AtomicInteger(0);
- private AtomicInteger generatedLast = new AtomicInteger(0);
- private AtomicInteger generatedLastMinute = new AtomicInteger(0);
- private AtomicInteger totalChunks = new AtomicInteger(0);
- private ChronoLatch progressLatch = new ChronoLatch(5000); // Update every 5 seconds
- private ChronoLatch minuteLatch = new ChronoLatch(60000, false);
-
- private File unregisteredBiomesFile;
-
- private Plugin plugin;
-
- private ScheduledExecutorService progressUpdater;
-
- public IrisBiomeFixer(World world) {
- if (!IrisToolbelt.isIrisWorld(world)) {
- Iris.info("This is not an Iris world!");
- return;
- }
-
- this.chunksPerSecond = new RollingSequence(10);
- this.chunksPerMinute = new RollingSequence(10);
- this.startTime = new AtomicLong(M.ms());
- this.lastLogTime = new AtomicLong(M.ms());
- this.world = world;
- this.latch = new ChronoLatch(3000);
- this.engine = IrisToolbelt.access(world).getEngine();
- this.plugin = Iris.instance;
-
- // Initialize the file for storing unregistered biome IDs
- this.unregisteredBiomesFile = new File(world.getWorldFolder(), "unregistered_biomes.txt");
-
- // Initialize the progress updater executor
- this.progressUpdater = Executors.newSingleThreadScheduledExecutor();
- }
-
- public void fixBiomes() {
- File regionFolder = new File(world.getWorldFolder(), "region");
- File[] regionFiles = regionFolder.listFiles((dir, name) -> name.endsWith(".mca"));
-
- if (regionFiles == null || regionFiles.length == 0) {
- Iris.info("No region files found in " + regionFolder.getAbsolutePath());
- return;
- }
-
- RNG rng = new RNG(engine.getSeedManager().getBiome());
-
- // Calculate total chunks
- for (File regionFile : regionFiles) {
- String filename = regionFile.getName(); // e.g., "r.0.0.mca"
- String[] parts = filename.split("\\.");
-
- if (parts.length != 4) {
- continue;
- }
-
- totalChunks.addAndGet(1024);
- }
-
- // Start the progress updater
- progressUpdater.scheduleAtFixedRate(this::updateProgress, 1, 1, TimeUnit.SECONDS);
-
- for (File regionFile : regionFiles) {
- String filename = regionFile.getName(); // e.g., "r.0.0.mca"
- String[] parts = filename.split("\\.");
-
- if (parts.length != 4) {
- continue;
- }
-
- int regionX = Integer.parseInt(parts[1]);
- int regionZ = Integer.parseInt(parts[2]);
-
- for (int cx = 0; cx < 32; cx++) {
- for (int cz = 0; cz < 32; cz++) {
- int chunkX = regionX * 32 + cx;
- int chunkZ = regionZ * 32 + cz;
-
- if (!world.isChunkGenerated(chunkX, chunkZ)) {
- continue;
- }
-
- int minY = world.getMinHeight();
- int maxY = world.getMaxHeight();
- int height = maxY - minY; // Correct height calculation
-
- Hunk