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 { object Allay {
const val api = "1cb3bb69c6" const val api = "0114e0b290"
} }
} }

View File

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