Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
34e800e
Fix: Lambda main
emyfops Mar 24, 2024
8845e69
Update .gitignore
emyfops Mar 24, 2024
92e3456
Test: Discord rpc
emyfops Mar 24, 2024
f3e0015
Added rpc coroutine scope
emyfops Mar 24, 2024
71f001c
Fix: Crash on disconnect
emyfops Mar 24, 2024
05146f4
Added shutdown hook
emyfops Mar 24, 2024
ef73ea7
Fix: Enum crash
emyfops Mar 24, 2024
39368e9
Merge branch 'master' into feature/discordrpc
emyfops Mar 24, 2024
5dbd361
Fix: Rpc not showing on profile
emyfops Mar 24, 2024
e75f8aa
Refactor: Use same thread for setup and connect
emyfops Mar 24, 2024
650575b
Added error event
emyfops Mar 24, 2024
1452852
Removed useless events
emyfops Mar 24, 2024
32b5dc7
Merge branch 'master' into feature/discordrpc
Avanatiker Mar 25, 2024
b5c844f
Added small image player
emyfops Mar 25, 2024
4464cf1
Fix DiscordRPC
Avanatiker Mar 26, 2024
0f11063
Feature: Discord RPC
emyfops Mar 27, 2024
89cae7e
Added extremely detailled kdoc for shutdown hook
emyfops Mar 30, 2024
d89bf47
Feature: Connection state events
emyfops Mar 30, 2024
b075f0c
Added kdoc
emyfops Mar 30, 2024
57d3080
Feature: Minimal http wrapper
emyfops Mar 30, 2024
ee60145
Fixed comment
emyfops Mar 30, 2024
535b891
Feature: RPC http request
emyfops Mar 30, 2024
3e7a1a6
Merge branch 'master' into feature/discordrpc
Avanatiker Apr 11, 2024
af2c2c1
Fix: Forge doesn't support ModifyArgs
emyfops Apr 13, 2024
dd52500
Fix: Missing import
emyfops Apr 13, 2024
eab5b12
Disable transitive include
emyfops Apr 13, 2024
dfc909d
Merge conflicts
emyfops Apr 15, 2024
8cdb410
Fix: Quilt
emyfops Apr 15, 2024
055ef2d
Merge branch 'master' into feature/discordrpc
emyfops Apr 22, 2024
63b7327
Merge branch 'master' into feature/discordrpc
emyfops Apr 27, 2024
ffcf4f6
Fix: thedarkcolour/KotlinForForge/94
emyfops Apr 27, 2024
3d6c729
Merge branch 'master' into feature/discordrpc
emyfops Apr 27, 2024
0e4a159
Added all current methods
emyfops Apr 28, 2024
0346552
Refactor!: Up to date with server
emyfops Apr 28, 2024
a9f875e
Working RPC system
emyfops Apr 28, 2024
087b0c3
Refactor: Pseudo setting consumer
emyfops Apr 28, 2024
56de50c
Feature: Join a party later with commands
emyfops Apr 29, 2024
9a89c7e
funny comment
emyfops Apr 29, 2024
32a242b
Fix: Token is not authorization
emyfops Apr 29, 2024
2922ac5
Create MiscArguments.kt
emyfops Apr 29, 2024
776f3c6
Fixed rpc command builder
emyfops Apr 29, 2024
8db6369
Merge branch 'master' into feature/discordrpc
emyfops May 19, 2024
816190e
Merge conflicts
emyfops May 19, 2024
b724798
Merge branch 'master' into feature/discordrpc
emyfops May 19, 2024
1d048d4
Update gradle.properties
emyfops May 19, 2024
6e659a9
Fix: RPC Connection
emyfops May 19, 2024
5a68b2e
Fix: IPC not found
emyfops May 19, 2024
f0a01e7
Add exception info on error
emyfops May 19, 2024
dfc8f97
Better error format
emyfops May 19, 2024
00b17af
Temp fix xray
emyfops May 20, 2024
80b7fa7
Better errors
emyfops May 26, 2024
51eeaab
Merge branch 'master' into feature/discordrpc
emyfops May 26, 2024
8fbe152
Update DiscordRPC.kt
emyfops May 26, 2024
ba3073d
Refactor: API update
emyfops Jun 28, 2024
4480696
Merge branch 'master' into feature/discordrpc
Avanatiker Jun 28, 2024
744a80a
Merge branch 'master' into feature/discordrpc
emyfops Jul 5, 2024
90b600e
Refactor: Use our fork
emyfops Jul 5, 2024
d5a11cb
Added test logging
emyfops Jul 5, 2024
4962c3f
Update lambda.mixins.common.json
emyfops Jul 5, 2024
f8adab2
Temp force variable
emyfops Jul 5, 2024
6975fa9
Temp: Local party
emyfops Jul 5, 2024
074304c
Update lambda.mixins.common.json
emyfops Jul 5, 2024
c0a2b8e
Fixed the update delay
emyfops Jul 5, 2024
c33b9f9
Merge branch 'master' into feature/discordrpc
emyfops Jul 8, 2024
e0e17a7
Merge branch 'master' into feature/discordrpc
emyfops Aug 19, 2024
b10d7f6
Update Player.kt
emyfops Aug 19, 2024
fda87bb
feat: cached downloads & request builder
emyfops Aug 19, 2024
7e7182e
added request builder to endpoints
emyfops Aug 19, 2024
4943a72
several fixes
emyfops Aug 19, 2024
ba1b21b
Update ConnectionEvent.kt
emyfops Aug 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix: Rpc not showing on profile
  • Loading branch information
emyfops committed Mar 24, 2024
commit 5dbd3613009901a6bdb67c2cabfbd4ce4f946f65
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,31 @@ import com.lambda.module.Module
import com.lambda.module.tag.ModuleTag
import com.lambda.threading.onShutdown
import com.lambda.threading.runConcurrent
import com.lambda.util.Communication.info
import com.lambda.util.Nameable
import dev.cbyrne.kdiscordipc.KDiscordIPC
import dev.cbyrne.kdiscordipc.core.event.DiscordEvent
import dev.cbyrne.kdiscordipc.core.event.impl.ActivityInviteEvent
import dev.cbyrne.kdiscordipc.core.event.impl.ActivityJoinEvent
import dev.cbyrne.kdiscordipc.core.event.impl.DisconnectedEvent
import dev.cbyrne.kdiscordipc.core.event.impl.ReadyEvent
import dev.cbyrne.kdiscordipc.core.packet.inbound.impl.ErrorPacket
import dev.cbyrne.kdiscordipc.core.packet.inbound.impl.SetActivityPacket
import dev.cbyrne.kdiscordipc.data.activity.*
import dev.cbyrne.kdiscordipc.data.user.User
import java.util.*

object DiscordRPC : Module(
name = "DiscordRPC",
description = "Discord Rich Presence configuration",
defaultTags = setOf(ModuleTag.CLIENT)
) {
private val details by setting("Details", "Playing on Lambda")
private val playDetails by setting("Details", "Playing on Lambda")
private val playState by setting("Play State", "Playing")

private val partyId by setting("Party ID", UUID.randomUUID().toString())
private val joinSecret by setting("Join Secret", UUID.randomUUID().toString())
private val partySize by setting("Party Size", 1, 1..100, 1)
private val partyMax by setting("Party Max", 2, 2..100, 1)
private var joinSecret by setting("Join Secret", UUID.randomUUID().toString(), visibility = { false })
private var partyId by setting("Party ID", UUID.randomUUID().toString(), visibility = { false })
private var partySize by setting("Party Size", 1, 1..16, 1, visibility = { false })
private var partyMax by setting("Party Max Size", 16, 16..16, 1, visibility = { false })

private val confirmCoordinates by setting("Show Coordinates", false)
private val confirmServer by setting("Show Server", false)
Expand All @@ -41,6 +43,7 @@ object DiscordRPC : Module(
private val delay by setting("Update Delay", 200, 200..2000, 1, unit = "ms")

private val rpc = KDiscordIPC("1221289599427416127", scope = EventFlow.lambdaScope)
private lateinit var lastInviter: User

private enum class LineInfo(val value: String) : Nameable {
VERSION(Lambda.VERSION),
Expand All @@ -59,47 +62,56 @@ object DiscordRPC : Module(
}

init {
onEnableUnsafe {
runConcurrent {
rpc.connect()
}
}

onDisableUnsafe(::shutdown)
onShutdown(::shutdown)

runConcurrent {
rpc.on<ReadyEvent> {
Lambda.LOG.info("Discord RPC connected.")
Lambda.LOG.info("Discord RPC connected to ${data.user.username}.")

rpc.activityManager.setActivity {
//timestamps(System.currentTimeMillis())
largeImage("lambda", Lambda.VERSION)
details = playDetails
state = playState

button("Download", "https://github.com/lambda-client/lambda/releases/latest")
largeImage("lambda", Lambda.VERSION)

//party(partyId, partySize, partyMax)
//secrets(joinSecret)
party(partyId, partySize, partyMax)
secrets(joinSecret)
timestamps(System.currentTimeMillis())
}

rpc.subscribe(DiscordEvent.CurrentUserUpdate)
rpc.subscribe(DiscordEvent.ActivityJoinRequest)
rpc.subscribe(DiscordEvent.ActivityJoin)
rpc.subscribe(DiscordEvent.ActivityInvite)
rpc.subscribe(DiscordEvent.ActivitySpectate)
}

rpc.on<ActivityInviteEvent> {
Lambda.LOG.info("Discord RPC invite: $data")
lastInviter = data.user
info("${lastInviter.username} has invited you to play")
rpc.activityManager.acceptInvite(data) // TODO: Click button to join
}

rpc.on<ActivityJoinEvent> {
Lambda.LOG.info("Discord RPC join: $data")
joinSecret = data.secret
info("Joined ${lastInviter.username}'s party.") // TODO: Join server button
}

rpc.on<ErrorPacket> {
Lambda.LOG.error("Discord RPC error: $message")
rpc.on<SetActivityPacket> {
partyId = data?.party?.id ?: partyId
partySize = data?.party?.size?.currentSize ?: partySize
partyMax = data?.party?.size?.maxSize ?: partyMax
}

rpc.connect()
}

/*onEnableUnsafe {
runConcurrent {
rpc.connect()
}
}*/

onDisableUnsafe(::shutdown)
onShutdown(::shutdown)
}

private fun shutdown() {
Expand Down