Wire DataPackManager, add uninstall, update build
Swap Shadow plugin to com.gradleup.shadow v8.3.5 and add kotlin serialization plugin. Add relocations for bundled libraries (fastboard, Hikari) in the shadowJar. Make DataPackManager a plugin-scoped property: initialize and install it during onLoad and call uninstall during onDisable. Add a convenience uninstall() that reads the target world from config and removes the datapack there. Also comment out writeNoiseSettingOverride with a warning that the simplified file crashes Minecraft 1.21.
This commit is contained in:
@@ -13,7 +13,7 @@ import java.util.logging.Logger
|
||||
* - Mob-Spawntabellen: Welche Mobs in welcher Häufigkeit spawnen
|
||||
* - Biom-Klimawerte: Temperatur, Niederschlag
|
||||
*
|
||||
* ## Was dieser DataPack NICHT kann (mit TerraformGenerator)
|
||||
* ## Was dieses DataPack NICHT kann (mit TerraformGenerator)
|
||||
* - Surface-Blöcke (Gras → Sand → Stein): TG ignoriert noise_settings/overworld.json,
|
||||
* da TG die Block-Platzierung komplett in eigenem Java-Code erledigt.
|
||||
* → Für Surface-Block-Overrides: [SurfaceBlockPopulator] verwenden.
|
||||
@@ -86,10 +86,9 @@ class DataPackManager(private val plugin: SpeedHG) {
|
||||
writeBiomeOverrides(packRoot)
|
||||
|
||||
// ─ Vanilla-Gen only ─────────────────────────────────────────────
|
||||
// Bei TerraformGenerator-Welten ist dieser Block wirkungslos,
|
||||
// da TG noise_settings komplett ignoriert. Für Dokumentations-
|
||||
// zwecke (und zukünftige Vanilla-Gen-Setups) trotzdem erstellt.
|
||||
writeNoiseSettingOverride(packRoot)
|
||||
// LÖSCHEN ODER AUSKOMMENTIEREN!
|
||||
// Diese vereinfachte Datei bringt Minecraft 1.21 zum Abstürzen.
|
||||
// writeNoiseSettingOverride(packRoot)
|
||||
// ────────────────────────────────────────────────────────────────
|
||||
|
||||
log.info("[DataPackManager] '$DATAPACK_NAME' installiert in: ${packRoot.absolutePath}")
|
||||
@@ -100,6 +99,17 @@ class DataPackManager(private val plugin: SpeedHG) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience-Methode: liest den Weltordner aus der config.yml und
|
||||
* deinstalliert den DataPack dort. Für den Normalfall gedacht.
|
||||
*/
|
||||
fun uninstall() {
|
||||
val worldName = plugin.config.getString("map-system.target-world-name", "world")!!
|
||||
val serverRoot = plugin.dataFolder.parentFile.parentFile
|
||||
val worldFolder = File(serverRoot, worldName)
|
||||
uninstall(worldFolder)
|
||||
}
|
||||
|
||||
/**
|
||||
* Entfernt den DataPack aus dem Weltordner.
|
||||
* Kann z.B. in onDisable() aufgerufen werden, wenn der nächste
|
||||
|
||||
Reference in New Issue
Block a user