refactor: updated default world module
This commit is contained in:
parent
3bd876a628
commit
e4fd8542da
@ -15,27 +15,33 @@ import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class PreloadedWorldModule {
|
||||
public class DefaultWorldModule {
|
||||
|
||||
private static boolean used = false;
|
||||
|
||||
private PreloadedWorldModule() {}
|
||||
private DefaultWorldModule() {}
|
||||
|
||||
public static void init(File worldDir, GameMode gameMode, Pos spawnPos) {
|
||||
init(worldDir, gameMode, () -> spawnPos);
|
||||
public static void init(File worldDir, GameMode gameMode, Pos spawnPos, boolean preloadAllChunks) {
|
||||
init(worldDir, gameMode, () -> spawnPos, preloadAllChunks);
|
||||
}
|
||||
|
||||
public static synchronized void init(File worldDir, GameMode gameMode, Supplier<Pos> spawnPosSupplier) {
|
||||
public static synchronized void init(File worldDir, GameMode gameMode, Supplier<Pos> spawnPosSupplier, boolean preloadAllChunks) {
|
||||
if (used) return;
|
||||
used = true;
|
||||
|
||||
var loadingWorld = MinecraftServer.getInstanceManager().createInstanceContainer();
|
||||
loadingWorld.eventNode().addListener(PlayerMoveEvent.class, event -> event.setCancelled(true));
|
||||
|
||||
var factory = WorldFactory.preloadedAnvil(worldDir);
|
||||
var worlds = new ConcurrentHashMap<UUID, World>();
|
||||
WorldFactory factory;
|
||||
if (preloadAllChunks) {
|
||||
var obj = WorldFactory.preloadedAnvil(worldDir);
|
||||
obj.load();
|
||||
factory = obj;
|
||||
} else {
|
||||
factory = WorldFactory.anvil(worldDir);
|
||||
}
|
||||
|
||||
factory.load();
|
||||
var worlds = new ConcurrentHashMap<UUID, World>();
|
||||
|
||||
MinecraftServer.getGlobalEventHandler().addListener(AsyncPlayerConfigurationEvent.class, event -> {
|
||||
var player = event.getPlayer();
|
||||
Loading…
x
Reference in New Issue
Block a user