diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java index cf966c3f4..aae1bc3ad 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java @@ -151,7 +151,7 @@ public abstract class AbstractPlatform implements Platform { return Collections.emptySet(); } - protected void load() { + protected InternalAddon load() { if(LOADED.get()) { throw new IllegalStateException( "Someone tried to initialize Terra, but Terra has already initialized. This is most likely due to a broken platform " + @@ -200,6 +200,8 @@ public abstract class AbstractPlatform implements Platform { logger.info("Terra addons successfully loaded."); logger.info("Finished initialization."); + + return internalAddon; } protected boolean loadConfigPacks() { diff --git a/platforms/bukkit/nms/v1_21_7/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_7/NMSPlatform.java b/platforms/bukkit/nms/v1_21_7/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_7/NMSPlatform.java index c7d2fb49f..5a7961259 100644 --- a/platforms/bukkit/nms/v1_21_7/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_7/NMSPlatform.java +++ b/platforms/bukkit/nms/v1_21_7/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_7/NMSPlatform.java @@ -2,6 +2,8 @@ package com.dfsek.terra.bukkit.nms.v1_21_7; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.exception.LoadException; + +import com.dfsek.terra.addon.InternalAddon; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.Music; import net.minecraft.sounds.SoundEvent; @@ -41,7 +43,7 @@ public class NMSPlatform extends PlatformImpl { public NMSPlatform(TerraBukkitPlugin plugin) { super(plugin); - AwfulBukkitHacks.registerBiomes(this.getRawConfigRegistry()); + Bukkit.getPluginManager().registerEvents(new NMSInjectListener(), plugin); } @@ -77,6 +79,19 @@ public class NMSPlatform extends PlatformImpl { .registerLoader(VillagerType.class, VillagerTypeTemplate::new); } + @Override + protected InternalAddon load() { + InternalAddon internalAddon = super.load(); + + this.getEventManager().getHandler(FunctionalEventHandler.class) + .register(internalAddon, PlatformInitializationEvent.class) + .priority(1) + .then(event -> AwfulBukkitHacks.registerBiomes(this.getRawConfigRegistry())) + .global(); + + return internalAddon; + } + @Override protected Iterable platformAddon() { return List.of(new NMSAddon(this));