diff options
-rw-r--r-- | build.gradle.kts | 20 | ||||
-rw-r--r-- | settings.gradle.kts | 1 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt | 8 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusInterface.kt | 11 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusObject.kt | 21 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/repo/RepoManager.kt | 3 | ||||
-rw-r--r-- | src/main/resources/assets/notenoughupdates/lang/en_us.json | 9 |
7 files changed, 70 insertions, 3 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index c48d666..af7feab 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,8 @@ plugins { kotlin("plugin.serialization") version "1.7.10" id("dev.architectury.loom") version "0.12.0.+" id("com.github.johnrengelman.shadow") version "7.1.2" + id("moe.nea.licenseextractificator") version "0.0.1" + id("com.github.eutro.hierarchical-lang") version "1.1.3" } loom { @@ -60,7 +62,10 @@ dependencies { // Actual dependencies modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:${rootProject.property("rei_version")}") shadowMe("io.github.moulberry:neurepoparser:0.0.1") + shadowMe("com.github.hypfvieh:dbus-java-core:4.1.0") + shadowMe("com.github.hypfvieh:dbus-java-transport-native-unixsocket:4.1.0") fun ktor(mod: String) = "io.ktor:ktor-$mod-jvm:${project.property("ktor_version")}" + transInclude(implementation(ktor("client-core"))!!) transInclude(implementation(ktor("client-java"))!!) transInclude(implementation(ktor("serialization-kotlinx-json"))!!) @@ -112,10 +117,21 @@ tasks.remapJar { dependsOn(tasks.shadowJar) archiveClassifier.set("thicc") } + tasks.processResources { filesMatching("**/fabric.mod.json") { expand( - "version" to project.version + "version" to project.version ) } -}
\ No newline at end of file + filesMatching("**/lang/*.json") { + flattenJson(this) + } +} + + +tasks.create<moe.nea.licenseextractificator.LicenseDiscoveryTask>("license") { + scanConfiguration(project.configurations.compileClasspath.get()) + outputFile.set(file("$buildDir/LICENSES.json")) + licenseFormatter.set(moe.nea.licenseextractificator.JsonLicenseFormatter()) +} diff --git a/settings.gradle.kts b/settings.gradle.kts index e2fd19e..09e7bed 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,6 @@ pluginManagement { repositories { + mavenLocal() maven { name = "fabricmc" url = uri("https://maven.fabricmc.net/") diff --git a/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt b/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt index bede38a..125bc86 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt @@ -9,6 +9,7 @@ import io.ktor.client.plugins.contentnegotiation.* import io.ktor.serialization.kotlinx.json.* import kotlinx.coroutines.* import kotlinx.serialization.json.Json +import moe.nea.notenoughupdates.dbus.NEUDbusObject import moe.nea.notenoughupdates.gui.repoGui import moe.nea.notenoughupdates.repo.RepoManager import moe.nea.notenoughupdates.util.ConfigHolder @@ -25,6 +26,7 @@ import net.fabricmc.loader.api.metadata.ModMetadata import net.minecraft.commands.CommandBuildContext import net.minecraft.network.chat.Component import org.apache.logging.log4j.LogManager +import org.freedesktop.dbus.connections.impl.DBusConnectionBuilder import java.nio.file.Files import java.nio.file.Path import kotlin.coroutines.EmptyCoroutineContext @@ -57,6 +59,8 @@ object NotEnoughUpdates : ModInitializer, ClientModInitializer { } val globalJob = Job() + val dbusConnection = DBusConnectionBuilder.forSessionBus() + .build() val coroutineScope = CoroutineScope(EmptyCoroutineContext + CoroutineName("NotEnoughUpdates")) + SupervisorJob(globalJob) val coroutineScopeIo = coroutineScope + Dispatchers.IO + SupervisorJob(globalJob) @@ -73,7 +77,7 @@ object NotEnoughUpdates : ModInitializer, ClientModInitializer { Command.SINGLE_SUCCESS }) .executes { - it.source.sendFeedback(Component.literal("Reloading repository from disk. This may lag a bit.")) + it.source.sendFeedback(Component.translatable("notenoughupdates.repo.reload.disk")) RepoManager.reload() Command.SINGLE_SUCCESS }) @@ -87,6 +91,8 @@ object NotEnoughUpdates : ModInitializer, ClientModInitializer { } override fun onInitialize() { + dbusConnection.requestBusName("moe.nea.notenoughupdates") + dbusConnection.exportObject(NEUDbusObject) RepoManager.initialize() ConfigHolder.registerEvents() ClientCommandRegistrationCallback.EVENT.register(this::registerCommands) diff --git a/src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusInterface.kt b/src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusInterface.kt new file mode 100644 index 0000000..28ff370 --- /dev/null +++ b/src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusInterface.kt @@ -0,0 +1,11 @@ +package moe.nea.notenoughupdates.dbus + +import org.freedesktop.dbus.annotations.DBusInterfaceName +import org.freedesktop.dbus.interfaces.DBusInterface + +@DBusInterfaceName("moe.nea.NotEnoughUpdates") +interface NEUDbusInterface : DBusInterface { + fun sayHello(): String + fun getCurrentRepoCommit(): String + fun requestRepoReDownload() +} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusObject.kt b/src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusObject.kt new file mode 100644 index 0000000..4e3d362 --- /dev/null +++ b/src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusObject.kt @@ -0,0 +1,21 @@ +package moe.nea.notenoughupdates.dbus + +import moe.nea.notenoughupdates.repo.RepoManager + +object NEUDbusObject : NEUDbusInterface { + override fun sayHello(): String { + return "Hello from NEU" + } + + override fun getCurrentRepoCommit(): String { + return RepoManager.currentDownloadedSha ?: "none" + } + + override fun requestRepoReDownload() { + RepoManager.launchAsyncUpdate() + } + + override fun getObjectPath(): String { + return "/moe/nea/NotEnoughUpdates" + } +} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/repo/RepoManager.kt b/src/main/kotlin/moe/nea/notenoughupdates/repo/RepoManager.kt index c515ff7..2c0b4ec 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/repo/RepoManager.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/repo/RepoManager.kt @@ -24,6 +24,8 @@ object RepoManager : ConfigHolder<RepoManager.Config>(serializer(), "repo", ::Co var branch: String = "dangerous", ) + val currentDownloadedSha by RepoDownloadManager::latestSavedVersionHash + var recentlyFailedToUpdateItemList = false val progressBar = ProgressBar("", null, 0).also { @@ -72,6 +74,7 @@ object RepoManager : ConfigHolder<RepoManager.Config>(serializer(), "repo", ::Co Minecraft.getInstance().player?.sendSystemMessage( Component.literal("Failed to reload repository. This will result in some mod features not working.") ) + CottonHud.remove(progressBar) exc.printStackTrace() } } diff --git a/src/main/resources/assets/notenoughupdates/lang/en_us.json b/src/main/resources/assets/notenoughupdates/lang/en_us.json new file mode 100644 index 0000000..4654199 --- /dev/null +++ b/src/main/resources/assets/notenoughupdates/lang/en_us.json @@ -0,0 +1,9 @@ +{ + "notenoughupdates": { + "repo": { + "reload": { + "disk": "Reloading repository from disk. This may lag a bit." + } + } + } +} |