https://github.com/keysmashes/WhosTalking
See Discord voice activity indicators directly on your party list.
https://github.com/keysmashes/WhosTalking
dalamud-plugin ffxiv
Last synced: 10 months ago
JSON representation
See Discord voice activity indicators directly on your party list.
- Host: GitHub
- URL: https://github.com/keysmashes/WhosTalking
- Owner: sersorrel
- Created: 2023-03-10T20:47:38.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-07T16:16:45.000Z (over 1 year ago)
- Last Synced: 2024-12-07T17:20:37.121Z (over 1 year ago)
- Topics: dalamud-plugin, ffxiv
- Language: C#
- Homepage:
- Size: 165 KB
- Stars: 3
- Watchers: 2
- Forks: 5
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
**New repository: **
---
# Who's Talking
[](https://github.com/keysmashes/WhosTalking)
_an ffxiv plogon_
See Discord voice activity indicators directly on your party list.
## Usage
Install from the in-game plugin installer.
## Development
### Discord RPC auth flow
See https://discord.com/developers/docs/topics/rpc for details.
- We make a WebSocket connection to the Discord client
- Discord sends us a `READY` event
- We send an `AUTHENTICATE` command with our access token
- Discord echoes back our `AUTHENTICATE`, with details of the logged-in user
- there's more complexity here if we aren't yet authorised to use RPC
- We subscribe to `VOICE_CHANNEL_SELECT` events
- We send a `GET_SELECTED_VOICE_CHANNEL` command, to find out if the user is in voice
- Discord echoes back our `GET_SELECTED_VOICE_CHANNEL`, with details of the user's current voice channel
- *If the user is not in a voice channel:*
- We clear `Channel`
- We clear `AllUsers`
- NB: we also do this if a `VOICE_CHANNEL_SELECT` event indicates the user is no longer in voice
- *If the user is in a voice channel:*
- We set `Channel`
- We recreate `AllUsers` based on the data from Discord
## Licensing and Attribution
This plugin contains some icons from [Google Fonts' Material Design icon library](https://fonts.google.com/icons), which
are utilized in this project under the Apache 2.0 license.