aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle.kts20
-rw-r--r--settings.gradle.kts1
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt8
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusInterface.kt11
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/dbus/NEUDbusObject.kt21
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/repo/RepoManager.kt3
-rw-r--r--src/main/resources/assets/notenoughupdates/lang/en_us.json9
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."
+ }
+ }
+ }
+}