mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-06-18 14:50:57 +00:00
rough safeguard for missing dimension type
This commit is contained in:
@@ -35,6 +35,7 @@ import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
@@ -88,7 +89,7 @@ public interface INMSBinding {
|
||||
MCABiomeContainer newBiomeContainer(int min, int max);
|
||||
|
||||
default World createWorld(WorldCreator c) {
|
||||
if (missingDimensionTypes(c.environment()))
|
||||
if (missingDimensionTypes(c.generator()))
|
||||
throw new IllegalStateException("Missing dimenstion types to create world");
|
||||
|
||||
return c.createWorld();
|
||||
@@ -126,18 +127,7 @@ public interface INMSBinding {
|
||||
|
||||
KList<String> getStructureKeys();
|
||||
|
||||
KMap<String, World.Environment> getMainWorlds();
|
||||
|
||||
boolean missingDimensionTypes(boolean overworld, boolean nether, boolean end);
|
||||
|
||||
default boolean missingDimensionTypes(World.Environment env) {
|
||||
return switch (env) {
|
||||
case NORMAL -> missingDimensionTypes(true, false, false);
|
||||
case NETHER -> missingDimensionTypes(false, true, false);
|
||||
case THE_END -> missingDimensionTypes(false, false, true);
|
||||
default -> true;
|
||||
};
|
||||
}
|
||||
boolean missingDimensionTypes(@Nullable ChunkGenerator generator);
|
||||
|
||||
default boolean injectBukkit() {
|
||||
return true;
|
||||
|
||||
@@ -20,9 +20,7 @@ package com.volmit.iris.core.nms.v1X;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.core.nms.INMSBinding;
|
||||
import com.volmit.iris.core.nms.container.AutoClosing;
|
||||
import com.volmit.iris.core.nms.container.BiomeColor;
|
||||
import com.volmit.iris.core.nms.container.Pair;
|
||||
import com.volmit.iris.engine.framework.Engine;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.collection.KMap;
|
||||
@@ -39,6 +37,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.generator.structure.Structure;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.stream.StreamSupport;
|
||||
@@ -121,12 +120,7 @@ public class NMSBinding1X implements INMSBinding {
|
||||
}
|
||||
|
||||
@Override
|
||||
public KMap<String, World.Environment> getMainWorlds() {
|
||||
return new KMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean missingDimensionTypes(boolean overworld, boolean nether, boolean end) {
|
||||
public boolean missingDimensionTypes(@Nullable ChunkGenerator generator) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,11 +4,7 @@ import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.core.nms.INMS;
|
||||
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
|
||||
import com.volmit.iris.util.agent.Agent;
|
||||
import com.volmit.iris.util.misc.ServerProperties;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import javax.tools.JavaCompiler;
|
||||
@@ -20,7 +16,6 @@ import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import static com.volmit.iris.Iris.getJavaVersion;
|
||||
import static com.volmit.iris.core.safeguard.IrisSafeguard.*;
|
||||
@@ -189,30 +184,6 @@ public class ServerBootSFG {
|
||||
}
|
||||
|
||||
private static boolean missingDimensionTypes() {
|
||||
var irisWorlds = irisWorlds();
|
||||
if (irisWorlds.isEmpty()) return false;
|
||||
|
||||
var worlds = INMS.get().getMainWorlds();
|
||||
worlds.keySet().removeIf(Predicate.not(irisWorlds::contains));
|
||||
|
||||
boolean overworld = worlds.containsValue(World.Environment.NORMAL) || worlds.containsValue(World.Environment.CUSTOM);
|
||||
boolean nether = worlds.containsValue(World.Environment.NETHER);
|
||||
boolean end = worlds.containsValue(World.Environment.THE_END);
|
||||
|
||||
if (overworld || nether || end)
|
||||
return INMS.get().missingDimensionTypes(overworld, nether, end);
|
||||
return false;
|
||||
return INMS.get().missingDimensionTypes(null);
|
||||
}
|
||||
|
||||
private static List<String> irisWorlds() {
|
||||
var config = YamlConfiguration.loadConfiguration(ServerProperties.BUKKIT_YML);
|
||||
ConfigurationSection section = config.getConfigurationSection("worlds");
|
||||
if (section == null) return List.of();
|
||||
|
||||
return section.getKeys(false)
|
||||
.stream()
|
||||
.filter(k -> section.getString(k + ".generator", "").startsWith("Iris"))
|
||||
.toList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user