feat: support world unloading

This commit is contained in:
daoge_cmd 2024-10-28 17:39:25 +08:00
parent 144c932703
commit 16c951838b
2 changed files with 15 additions and 1 deletions

View File

@ -79,6 +79,6 @@ object Versions {
}
object Allay {
const val api = "1cb3bb69c6"
const val api = "0114e0b290"
}
}

View File

@ -1,11 +1,15 @@
package com.dfsek.terra.allay;
import org.allaymc.api.eventbus.EventHandler;
import org.allaymc.api.eventbus.event.world.WorldUnloadEvent;
import org.allaymc.api.plugin.Plugin;
import org.allaymc.api.registry.Registries;
import org.allaymc.api.server.Server;
import com.dfsek.terra.allay.generator.AllayGeneratorWrapper;
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
/**
* @author daoge_cmd
*/
@ -46,6 +50,11 @@ public class TerraAllayPlugin extends Plugin {
pluginLogger.info("Terra started");
}
@Override
public void onEnable() {
Server.getInstance().getEventBus().registerListener(this);
}
@Override
public boolean isReloadable() {
return true;
@ -59,4 +68,9 @@ public class TerraAllayPlugin extends Plugin {
pluginLogger.error("Terra failed to reload.");
}
}
@EventHandler
private void onWorldUnload(WorldUnloadEvent event) {
AllayPlatform.GENERATOR_WRAPPERS.removeIf(wrapper -> wrapper.getAllayWorldGenerator().getDimension().getWorld() == event.getWorld());
}
}