From 06cd1dc5624fed3f0d0be87f820b489309aec221 Mon Sep 17 00:00:00 2001 From: dfsek Date: Tue, 16 Feb 2021 12:57:35 -0700 Subject: [PATCH] use event API for registration of Bukkit trees --- .../com/dfsek/terra/api/core/TerraPlugin.java | 8 ------- .../dfsek/terra/config/pack/ConfigPack.java | 3 +-- .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 13 +++-------- .../terra/bukkit/listeners/TerraListener.java | 22 +++++++++++++++++++ 4 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/TerraListener.java diff --git a/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java b/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java index 397176b19..7fee3132f 100644 --- a/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java +++ b/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java @@ -7,7 +7,6 @@ import com.dfsek.terra.api.platform.handle.WorldHandle; import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.config.PluginConfig; import com.dfsek.terra.config.lang.Language; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.debug.DebugLogger; import com.dfsek.terra.registry.ConfigRegistry; import com.dfsek.terra.world.TerraWorld; @@ -42,13 +41,6 @@ public interface TerraPlugin extends LoaderRegistrar { String platformName(); - default void packPreLoadCallback(ConfigPack pack) { - - } - - default void packPostLoadCallback(ConfigPack pack) { - - } DebugLogger getDebugLogger(); diff --git a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java index 5f68a54d3..cc5a8224d 100644 --- a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java +++ b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java @@ -198,7 +198,7 @@ public class ConfigPack implements LoaderRegistrar { private void load(long start, TerraPlugin main) throws ConfigException { main.getEventManager().callEvent(new ConfigPackPreLoadEvent(this)); - main.packPreLoadCallback(this); + for(Map.Entry var : template.getVariables().entrySet()) { varScope.create(var.getKey(), var.getValue()); } @@ -230,7 +230,6 @@ public class ConfigPack implements LoaderRegistrar { .open("structures/structures", ".yml").then(streams -> buildAll(new StructureFactory(), structureRegistry, abstractConfigLoader.load(streams, StructureTemplate::new), main)).close() .open("flora", ".yml").then(streams -> buildAll(new FloraFactory(), floraRegistry, abstractConfigLoader.load(streams, FloraTemplate::new), main)).close() .open("biomes", ".yml").then(streams -> buildAll(new BiomeFactory(this), biomeRegistry, abstractConfigLoader.load(streams, () -> new BiomeTemplate(this, main)), main)).close(); - main.packPostLoadCallback(this); main.getEventManager().callEvent(new ConfigPackPostLoadEvent(this)); LangUtil.log("config-pack.loaded", Level.INFO, template.getID(), String.valueOf((System.nanoTime() - start) / 1000000D), template.getAuthor(), template.getVersion()); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index 5cfe055d8..5e2a75f4a 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -18,10 +18,9 @@ import com.dfsek.terra.bukkit.handles.BukkitWorldHandle; import com.dfsek.terra.bukkit.listeners.CommonListener; import com.dfsek.terra.bukkit.listeners.PaperListener; import com.dfsek.terra.bukkit.listeners.SpigotListener; +import com.dfsek.terra.bukkit.listeners.TerraListener; import com.dfsek.terra.bukkit.util.PaperUtil; -import com.dfsek.terra.bukkit.world.BukkitAdapter; import com.dfsek.terra.bukkit.world.BukkitBiome; -import com.dfsek.terra.bukkit.world.BukkitTree; import com.dfsek.terra.config.GenericLoaders; import com.dfsek.terra.config.PluginConfig; import com.dfsek.terra.config.lang.LangUtil; @@ -34,7 +33,6 @@ import com.dfsek.terra.world.generation.MasterChunkGenerator; import io.papermc.lib.PaperLib; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; -import org.bukkit.TreeType; import org.bukkit.command.PluginCommand; import org.bukkit.entity.EntityType; import org.bukkit.generator.ChunkGenerator; @@ -103,13 +101,6 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { this.handle = handle; } - @Override - public void packPreLoadCallback(ConfigPack pack) { - for(TreeType value : TreeType.values()) { - pack.getTreeRegistry().add(BukkitAdapter.TREE_TRANSFORMER.translate(value), new BukkitTree(value, this)); - } - } - @Override public DebugLogger getDebugLogger() { return debugLogger; @@ -129,6 +120,8 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { public void onEnable() { debugLogger = new DebugLogger(getLogger()); + eventManager.registerListener(new TerraListener(this)); // Register tree injection event + getLogger().info("Running on version " + BUKKIT_VERSION); if(BUKKIT_VERSION.equals(Version.UNKNOWN)) { getLogger().warning("Terra is running on an unknown Bukkit version. Proceed with caution."); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/TerraListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/TerraListener.java new file mode 100644 index 000000000..1549cefdb --- /dev/null +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/TerraListener.java @@ -0,0 +1,22 @@ +package com.dfsek.terra.bukkit.listeners; + +import com.dfsek.terra.api.core.TerraPlugin; +import com.dfsek.terra.api.core.event.EventListener; +import com.dfsek.terra.api.core.event.events.config.ConfigPackPreLoadEvent; +import com.dfsek.terra.bukkit.world.BukkitAdapter; +import com.dfsek.terra.bukkit.world.BukkitTree; +import org.bukkit.TreeType; + +public class TerraListener implements EventListener { + private final TerraPlugin main; + + public TerraListener(TerraPlugin main) { + this.main = main; + } + + public void injectTrees(ConfigPackPreLoadEvent event) { + for(TreeType value : TreeType.values()) { + event.getPack().getTreeRegistry().add(BukkitAdapter.TREE_TRANSFORMER.translate(value), new BukkitTree(value, main)); + } + } +}