mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-08-16 16:26:12 +00:00
fix datapack generation ignoring worlds when updating from <3.7.0
This commit is contained in:
parent
472a98da16
commit
c4539441a0
@ -4,10 +4,14 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
|
import com.volmit.iris.core.loader.IrisData;
|
||||||
import com.volmit.iris.engine.data.cache.AtomicCache;
|
import com.volmit.iris.engine.data.cache.AtomicCache;
|
||||||
|
import com.volmit.iris.engine.object.IrisDimension;
|
||||||
import com.volmit.iris.util.collection.KMap;
|
import com.volmit.iris.util.collection.KMap;
|
||||||
import com.volmit.iris.util.io.IO;
|
import com.volmit.iris.util.io.IO;
|
||||||
|
import com.volmit.iris.util.misc.ServerProperties;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -25,6 +29,7 @@ public class IrisWorlds {
|
|||||||
|
|
||||||
private IrisWorlds(KMap<String, String> worlds) {
|
private IrisWorlds(KMap<String, String> worlds) {
|
||||||
this.worlds = worlds;
|
this.worlds = worlds;
|
||||||
|
readBukkitWorlds().forEach(this::put);
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,8 +61,19 @@ public class IrisWorlds {
|
|||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Stream<File> getFolders() {
|
public Stream<IrisData> getPacks() {
|
||||||
return worlds.keySet().stream().map(k -> new File(Bukkit.getWorldContainer(), k));
|
return getDimensions()
|
||||||
|
.map(IrisDimension::getLoader)
|
||||||
|
.filter(Objects::nonNull);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Stream<IrisDimension> getDimensions() {
|
||||||
|
return readBukkitWorlds()
|
||||||
|
.put(worlds)
|
||||||
|
.entrySet()
|
||||||
|
.stream()
|
||||||
|
.map(entry -> Iris.loadDimension(entry.getKey(), entry.getValue()))
|
||||||
|
.filter(Objects::nonNull);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clean() {
|
public void clean() {
|
||||||
@ -76,4 +92,27 @@ public class IrisWorlds {
|
|||||||
Iris.reportError(e);
|
Iris.reportError(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static KMap<String, String> readBukkitWorlds() {
|
||||||
|
var bukkit = YamlConfiguration.loadConfiguration(ServerProperties.BUKKIT_YML);
|
||||||
|
var worlds = bukkit.getConfigurationSection("worlds");
|
||||||
|
if (worlds == null) return new KMap<>();
|
||||||
|
|
||||||
|
var result = new KMap<String, String>();
|
||||||
|
for (String world : worlds.getKeys(false)) {
|
||||||
|
var gen = worlds.getString(world + ".generator");
|
||||||
|
if (gen == null) continue;
|
||||||
|
|
||||||
|
String loadKey;
|
||||||
|
if (gen.equalsIgnoreCase("iris")) {
|
||||||
|
loadKey = IrisSettings.get().getGenerator().getDefaultWorldType();
|
||||||
|
} else if (gen.startsWith("Iris:")) {
|
||||||
|
loadKey = gen.substring(5);
|
||||||
|
} else continue;
|
||||||
|
|
||||||
|
result.put(world, loadKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -237,14 +237,13 @@ public class ServerConfigurator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Stream<IrisData> allPacks() {
|
public static Stream<IrisData> allPacks() {
|
||||||
return Stream.concat(listFiles(Iris.instance.getDataFolder("packs")),
|
return Stream.concat(listFiles(Iris.instance.getDataFolder("packs"))
|
||||||
IrisWorlds.get().getFolders().map(w -> new File(w, "iris/pack")))
|
|
||||||
.filter(File::isDirectory)
|
.filter(File::isDirectory)
|
||||||
.filter( base -> {
|
.filter( base -> {
|
||||||
var content = new File(base, "dimensions").listFiles();
|
var content = new File(base, "dimensions").listFiles();
|
||||||
return content != null && content.length > 0;
|
return content != null && content.length > 0;
|
||||||
})
|
})
|
||||||
.map(IrisData::get);
|
.map(IrisData::get), IrisWorlds.get().getPacks());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
package com.volmit.iris.core.safeguard;
|
package com.volmit.iris.core.safeguard;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.core.IrisSettings;
|
import com.volmit.iris.core.IrisWorlds;
|
||||||
import com.volmit.iris.core.nms.INMS;
|
import com.volmit.iris.core.nms.INMS;
|
||||||
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
|
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
|
||||||
import com.volmit.iris.engine.object.IrisDimension;
|
import com.volmit.iris.engine.object.IrisDimension;
|
||||||
import com.volmit.iris.util.agent.Agent;
|
import com.volmit.iris.util.agent.Agent;
|
||||||
import com.volmit.iris.util.collection.KSet;
|
import com.volmit.iris.util.collection.KSet;
|
||||||
import com.volmit.iris.util.misc.ServerProperties;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import javax.tools.JavaCompiler;
|
import javax.tools.JavaCompiler;
|
||||||
@ -21,6 +19,7 @@ import java.nio.file.Path;
|
|||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.nio.file.StandardOpenOption;
|
import java.nio.file.StandardOpenOption;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.volmit.iris.Iris.getJavaVersion;
|
import static com.volmit.iris.Iris.getJavaVersion;
|
||||||
import static com.volmit.iris.core.safeguard.IrisSafeguard.*;
|
import static com.volmit.iris.core.safeguard.IrisSafeguard.*;
|
||||||
@ -187,27 +186,9 @@ public class ServerBootSFG {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static KSet<String> getDimensionTypes() {
|
private static KSet<String> getDimensionTypes() {
|
||||||
var bukkit = YamlConfiguration.loadConfiguration(ServerProperties.BUKKIT_YML);
|
return IrisWorlds.get()
|
||||||
var worlds = bukkit.getConfigurationSection("worlds");
|
.getDimensions()
|
||||||
if (worlds == null) return new KSet<>();
|
.map(IrisDimension::getDimensionTypeKey)
|
||||||
|
.collect(Collectors.toCollection(KSet::new));
|
||||||
var types = new KSet<String>();
|
|
||||||
for (String world : worlds.getKeys(false)) {
|
|
||||||
var gen = worlds.getString(world + ".generator");
|
|
||||||
if (gen == null) continue;
|
|
||||||
|
|
||||||
String loadKey;
|
|
||||||
if (gen.equalsIgnoreCase("iris")) {
|
|
||||||
loadKey = IrisSettings.get().getGenerator().getDefaultWorldType();
|
|
||||||
} else if (gen.startsWith("Iris:")) {
|
|
||||||
loadKey = gen.substring(5);
|
|
||||||
} else continue;
|
|
||||||
|
|
||||||
IrisDimension dimension = Iris.loadDimension(world, loadKey);
|
|
||||||
if (dimension == null) continue;
|
|
||||||
types.add(dimension.getDimensionTypeKey());
|
|
||||||
}
|
|
||||||
|
|
||||||
return types;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user