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 e9afb3bd3..4f26728ab 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 @@ -108,7 +108,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 " + @@ -159,6 +159,8 @@ public abstract class AbstractPlatform implements Platform { logger.info("Terra addons successfully loaded."); logger.info("Finished initialization."); + + return internalAddon; } protected InternalAddon loadAddons() { 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 d5e87fd96..290d439b1 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 @@ -4,7 +4,10 @@ import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.exception.LoadException; +import com.dfsek.terra.addon.InternalAddon; import com.dfsek.terra.api.addon.BaseAddon; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.world.biome.PlatformBiome; import com.dfsek.terra.bukkit.PlatformImpl; import com.dfsek.terra.bukkit.TerraBukkitPlugin; @@ -39,7 +42,6 @@ import net.minecraft.world.level.biome.Biome.Precipitation; import net.minecraft.world.level.biome.Biome.TemperatureModifier; import net.minecraft.world.level.biome.BiomeSpecialEffects.GrassColorModifier; import net.minecraft.world.level.biome.MobSpawnSettings; -import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData; import org.bukkit.Bukkit; import java.util.List; @@ -50,7 +52,7 @@ public class NMSPlatform extends PlatformImpl { public NMSPlatform(TerraBukkitPlugin plugin) { super(plugin); - AwfulBukkitHacks.registerBiomes(this.getRawConfigRegistry()); + Bukkit.getPluginManager().registerEvents(new NMSInjectListener(), plugin); } @@ -86,6 +88,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));