Add DataPackManager & SurfaceBlockPopulator
Introduce DataPackManager to generate/install a datapack into the target world folder (biome overrides, simplified noise_settings) and call install() during onLoad after the world folder is prepared. Add SurfaceBlockPopulator to apply surface/sub-surface block overrides (for TerraformGenerator worlds) and register it in onEnable via a WorldInitEvent listener for the configured target world. Refactor WorldManager to extract deletion logic into deleteWorld() and delete existing world/_nether/_the_end before unpacking the selected map. Also update imports and wiring to support these changes.
This commit is contained in:
@@ -31,10 +31,15 @@ import club.mcscrims.speedhg.perk.listener.PerkEventDispatcher
|
||||
import club.mcscrims.speedhg.ranking.RankingManager
|
||||
import club.mcscrims.speedhg.scoreboard.ScoreboardManager
|
||||
import club.mcscrims.speedhg.webhook.DiscordWebhookManager
|
||||
import club.mcscrims.speedhg.world.DataPackManager
|
||||
import club.mcscrims.speedhg.world.SurfaceBlockPopulator
|
||||
import club.mcscrims.speedhg.world.WorldManager
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.NamespacedKey
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.Listener
|
||||
import org.bukkit.event.world.WorldInitEvent
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.inventory.ShapelessRecipe
|
||||
import org.bukkit.plugin.java.JavaPlugin
|
||||
@@ -99,10 +104,26 @@ class SpeedHG : JavaPlugin() {
|
||||
|
||||
val worldManager = WorldManager( this )
|
||||
worldManager.prepareRandomWorld()
|
||||
|
||||
val dataPackManager = DataPackManager( this )
|
||||
dataPackManager.install()
|
||||
}
|
||||
|
||||
override fun onEnable()
|
||||
{
|
||||
server.pluginManager.registerEvents(object : Listener {
|
||||
@EventHandler
|
||||
fun onWorldInit(
|
||||
event: WorldInitEvent
|
||||
) {
|
||||
val targetWorldName = config.getString( "map-system.target-world-name", "world" )
|
||||
if ( event.world.name != targetWorldName ) return
|
||||
|
||||
event.world.populators.add( SurfaceBlockPopulator() )
|
||||
logger.info( "[SpeedHG] SurfaceBlockPopulator für '${event.world.name}' registriert." )
|
||||
}
|
||||
}, this )
|
||||
|
||||
databaseManager = DatabaseManager( this )
|
||||
try {
|
||||
databaseManager.connect()
|
||||
|
||||
Reference in New Issue
Block a user