mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-06-25 06:01:25 +00:00
sync
This commit is contained in:
@@ -61,6 +61,7 @@ import org.bukkit.WorldCreator;
|
|||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.persistence.PersistentDataContainer;
|
||||||
import org.bukkit.persistence.PersistentDataType;
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -199,15 +200,26 @@ public class IrisEngine implements Engine {
|
|||||||
mode = getDimension().getMode().getType().create(this);
|
mode = getDimension().getMode().getType().create(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupMemoryWorld(@Nullable NamespacedKey key, WorldCreator creator) {
|
private void setupMemoryWorld() {
|
||||||
try {
|
try {
|
||||||
|
if (!getDimension().isEnableExperimentalMerger()) return;
|
||||||
|
if (getMerger().getGenerator().isBlank()) return;
|
||||||
NamespacedKey dk = NamespacedKey.minecraft("memory_current_creator");
|
NamespacedKey dk = NamespacedKey.minecraft("memory_current_creator");
|
||||||
var per = memoryWorld.getBukkit().getPersistentDataContainer();
|
PersistentDataContainer per = null;
|
||||||
if (Objects.equals(per.get(dk, PersistentDataType.STRING), creator.toString())) return;
|
if (memoryWorld != null) {
|
||||||
if (memoryWorld != null)
|
per = memoryWorld.getBukkit().getPersistentDataContainer();
|
||||||
memoryWorld.close();
|
if (Objects.equals(per.get(dk, PersistentDataType.STRING), memoryWorld.getBukkit().getGenerator().toString()))
|
||||||
memoryWorld = getDimension().isEnableExperimentalMerger() ? Failable.get(() -> key == null ? INMS.get().createMemoryWorld(creator) : INMS.get().createMemoryWorld(key, creator)) : null; // todo: experimental
|
return;
|
||||||
per.set(dk, PersistentDataType.STRING, creator.toString());
|
if (memoryWorld != null)
|
||||||
|
memoryWorld.close();
|
||||||
|
}
|
||||||
|
memoryWorld = getMerger().isDatapackMode() ? Failable.get(() ->
|
||||||
|
getMerger().getGenerator() == null ?
|
||||||
|
INMS.get().createMemoryWorld(new WorldCreator("memoryworld")) :
|
||||||
|
INMS.get().createMemoryWorld(NamespacedKey.minecraft(getMerger().getGenerator()), new WorldCreator("memoryworld"))
|
||||||
|
) : null; // todo: experimental
|
||||||
|
per = memoryWorld.getBukkit().getPersistentDataContainer();
|
||||||
|
per.set(dk, PersistentDataType.STRING, memoryWorld.getBukkit().getGenerator().toString());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user