mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 22:37:02 -04:00
A possible fix for #4151
This commit is contained in:
parent
c424c681b5
commit
4d6b4cd957
@ -1,11 +1,15 @@
|
|||||||
package com.unciv.app.desktop
|
package com.unciv.app.desktop
|
||||||
|
|
||||||
|
import club.minnced.discord.rpc.DiscordEventHandlers
|
||||||
|
import club.minnced.discord.rpc.DiscordRPC
|
||||||
|
import club.minnced.discord.rpc.DiscordRichPresence
|
||||||
import com.badlogic.gdx.Files
|
import com.badlogic.gdx.Files
|
||||||
import com.badlogic.gdx.backends.lwjgl.LwjglApplication
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplication
|
||||||
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration
|
||||||
import com.badlogic.gdx.files.FileHandle
|
import com.badlogic.gdx.files.FileHandle
|
||||||
import com.badlogic.gdx.graphics.Texture
|
import com.badlogic.gdx.graphics.Texture
|
||||||
import com.badlogic.gdx.tools.texturepacker.TexturePacker
|
import com.badlogic.gdx.tools.texturepacker.TexturePacker
|
||||||
|
import com.sun.jna.Native
|
||||||
import com.unciv.JsonParser
|
import com.unciv.JsonParser
|
||||||
import com.unciv.UncivGame
|
import com.unciv.UncivGame
|
||||||
import com.unciv.UncivGameParameters
|
import com.unciv.UncivGameParameters
|
||||||
@ -57,7 +61,8 @@ internal object DesktopLauncher {
|
|||||||
|
|
||||||
val game = UncivGame(desktopParameters)
|
val game = UncivGame(desktopParameters)
|
||||||
|
|
||||||
tryActivateDiscord(game)
|
if (!RaspberryPiDetector.isRaspberryPi()) // No discord RPC for Raspberry Pi, see https://github.com/yairm210/Unciv/issues/1624
|
||||||
|
tryActivateDiscord(game)
|
||||||
|
|
||||||
LwjglApplication(game, config)
|
LwjglApplication(game, config)
|
||||||
}
|
}
|
||||||
@ -193,10 +198,16 @@ internal object DesktopLauncher {
|
|||||||
|
|
||||||
private fun tryActivateDiscord(game: UncivGame) {
|
private fun tryActivateDiscord(game: UncivGame) {
|
||||||
try {
|
try {
|
||||||
val handlers = club.minnced.discord.rpc.DiscordEventHandlers()
|
/*
|
||||||
club.minnced.discord.rpc.DiscordRPC.INSTANCE.Discord_Initialize("647066573147996161", handlers, true, null)
|
We try to load the Discord library manuall before the instance initializes.
|
||||||
|
This is because if there's a crash when the instance initializes on a similar line,
|
||||||
|
it's not within the bounds of the try/catch and thus the app will crash.
|
||||||
|
*/
|
||||||
|
Native.loadLibrary("discord-rpc", DiscordRPC::class.java)
|
||||||
|
val handlers = DiscordEventHandlers()
|
||||||
|
DiscordRPC.INSTANCE.Discord_Initialize("647066573147996161", handlers, true, null)
|
||||||
|
|
||||||
Runtime.getRuntime().addShutdownHook(Thread { club.minnced.discord.rpc.DiscordRPC.INSTANCE.Discord_Shutdown() })
|
Runtime.getRuntime().addShutdownHook(Thread { DiscordRPC.INSTANCE.Discord_Shutdown() })
|
||||||
|
|
||||||
discordTimer = timer(name = "Discord", daemon = true, period = 1000) {
|
discordTimer = timer(name = "Discord", daemon = true, period = 1000) {
|
||||||
try {
|
try {
|
||||||
@ -211,11 +222,11 @@ internal object DesktopLauncher {
|
|||||||
|
|
||||||
private fun updateRpc(game: UncivGame) {
|
private fun updateRpc(game: UncivGame) {
|
||||||
if (!game.isInitialized) return
|
if (!game.isInitialized) return
|
||||||
val presence = club.minnced.discord.rpc.DiscordRichPresence()
|
val presence = DiscordRichPresence()
|
||||||
val currentPlayerCiv = game.gameInfo.getCurrentPlayerCivilization()
|
val currentPlayerCiv = game.gameInfo.getCurrentPlayerCivilization()
|
||||||
presence.details = currentPlayerCiv.nation.getLeaderDisplayName().tr()
|
presence.details = currentPlayerCiv.nation.getLeaderDisplayName().tr()
|
||||||
presence.largeImageKey = "logo" // The actual image is uploaded to the discord app / applications webpage
|
presence.largeImageKey = "logo" // The actual image is uploaded to the discord app / applications webpage
|
||||||
presence.largeImageText = "Turn".tr() + " " + currentPlayerCiv.gameInfo.turns
|
presence.largeImageText = "Turn".tr() + " " + currentPlayerCiv.gameInfo.turns
|
||||||
club.minnced.discord.rpc.DiscordRPC.INSTANCE.Discord_UpdatePresence(presence)
|
DiscordRPC.INSTANCE.Discord_UpdatePresence(presence)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user