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:
@@ -1,9 +1,10 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("java")
|
id("java")
|
||||||
id("maven-publish")
|
id("maven-publish")
|
||||||
id("com.github.johnrengelman.shadow") version "8.1.1"
|
id("com.gradleup.shadow") version "8.3.5"
|
||||||
kotlin("jvm") version "2.2.0"
|
kotlin("jvm") version "2.2.0"
|
||||||
kotlin("kapt") version "2.2.0"
|
kotlin("kapt") version "2.2.0"
|
||||||
|
kotlin("plugin.serialization") version "2.2.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "club.mcscrims"
|
group = "club.mcscrims"
|
||||||
@@ -47,6 +48,9 @@ tasks {
|
|||||||
archiveBaseName.set("GameModes-SpeedHG")
|
archiveBaseName.set("GameModes-SpeedHG")
|
||||||
archiveClassifier.set("")
|
archiveClassifier.set("")
|
||||||
archiveVersion.set(project.version.toString())
|
archiveVersion.set(project.version.toString())
|
||||||
|
|
||||||
|
relocate("fr.mrmicky.fastboard", "club.mcscrims.speedhg.libs.fastboard")
|
||||||
|
relocate("com.zaxxer.hikari", "club.mcscrims.speedhg.libs.hikari")
|
||||||
}
|
}
|
||||||
|
|
||||||
build {
|
build {
|
||||||
|
|||||||
@@ -92,6 +92,9 @@ class SpeedHG : JavaPlugin() {
|
|||||||
lateinit var disasterManager: DisasterManager
|
lateinit var disasterManager: DisasterManager
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
lateinit var dataPackManager: DataPackManager
|
||||||
|
private set
|
||||||
|
|
||||||
override fun onLoad()
|
override fun onLoad()
|
||||||
{
|
{
|
||||||
instance = this
|
instance = this
|
||||||
@@ -105,7 +108,7 @@ class SpeedHG : JavaPlugin() {
|
|||||||
val worldManager = WorldManager( this )
|
val worldManager = WorldManager( this )
|
||||||
worldManager.prepareRandomWorld()
|
worldManager.prepareRandomWorld()
|
||||||
|
|
||||||
val dataPackManager = DataPackManager( this )
|
dataPackManager = DataPackManager( this )
|
||||||
dataPackManager.install()
|
dataPackManager.install()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,6 +170,7 @@ class SpeedHG : JavaPlugin() {
|
|||||||
if ( ::perkManager.isInitialized ) perkManager.shutdown()
|
if ( ::perkManager.isInitialized ) perkManager.shutdown()
|
||||||
if ( ::statsManager.isInitialized ) statsManager.shutdown()
|
if ( ::statsManager.isInitialized ) statsManager.shutdown()
|
||||||
if ( ::databaseManager.isInitialized ) databaseManager.disconnect()
|
if ( ::databaseManager.isInitialized ) databaseManager.disconnect()
|
||||||
|
if ( ::dataPackManager.isInitialized ) dataPackManager.uninstall()
|
||||||
kitManager.clearAll()
|
kitManager.clearAll()
|
||||||
super.onDisable()
|
super.onDisable()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import java.util.logging.Logger
|
|||||||
* - Mob-Spawntabellen: Welche Mobs in welcher Häufigkeit spawnen
|
* - Mob-Spawntabellen: Welche Mobs in welcher Häufigkeit spawnen
|
||||||
* - Biom-Klimawerte: Temperatur, Niederschlag
|
* - 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,
|
* - Surface-Blöcke (Gras → Sand → Stein): TG ignoriert noise_settings/overworld.json,
|
||||||
* da TG die Block-Platzierung komplett in eigenem Java-Code erledigt.
|
* da TG die Block-Platzierung komplett in eigenem Java-Code erledigt.
|
||||||
* → Für Surface-Block-Overrides: [SurfaceBlockPopulator] verwenden.
|
* → Für Surface-Block-Overrides: [SurfaceBlockPopulator] verwenden.
|
||||||
@@ -86,10 +86,9 @@ class DataPackManager(private val plugin: SpeedHG) {
|
|||||||
writeBiomeOverrides(packRoot)
|
writeBiomeOverrides(packRoot)
|
||||||
|
|
||||||
// ─ Vanilla-Gen only ─────────────────────────────────────────────
|
// ─ Vanilla-Gen only ─────────────────────────────────────────────
|
||||||
// Bei TerraformGenerator-Welten ist dieser Block wirkungslos,
|
// LÖSCHEN ODER AUSKOMMENTIEREN!
|
||||||
// da TG noise_settings komplett ignoriert. Für Dokumentations-
|
// Diese vereinfachte Datei bringt Minecraft 1.21 zum Abstürzen.
|
||||||
// zwecke (und zukünftige Vanilla-Gen-Setups) trotzdem erstellt.
|
// writeNoiseSettingOverride(packRoot)
|
||||||
writeNoiseSettingOverride(packRoot)
|
|
||||||
// ────────────────────────────────────────────────────────────────
|
// ────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
log.info("[DataPackManager] '$DATAPACK_NAME' installiert in: ${packRoot.absolutePath}")
|
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.
|
* Entfernt den DataPack aus dem Weltordner.
|
||||||
* Kann z.B. in onDisable() aufgerufen werden, wenn der nächste
|
* Kann z.B. in onDisable() aufgerufen werden, wenn der nächste
|
||||||
|
|||||||
Reference in New Issue
Block a user