Python wrapper around Discord's Game SDK library.
Project description
Discord Game SDK for Python
A Python wrapper around Discord's Game SDK.
NOTE: This is entirely experimental, and may not work as intended. Please report all bugs to the GitHub issue tracker.
Credit to NathaanTFM for creating the original library.
Installation
- Install the module:
- With
PIP
:- Stable:
python -m pip install discordsdk
- Latest:
python -m pip install git+https://github.com/LennyPhoenix/py-discord-sdk.git
- Stable:
- With
setup.py
(latest):git clone https://github.com/LennyPhoenix/py-discord-sdk.git
cd py-discord-sdk
python -m setup install
- With
- Download Discord Game SDK (2.5.6).
- Grab the DLL from
discord_game_sdk.zip
in thelib
directory and put it in your project'slib
directory.
Documentation
If you need documentation, look at the official Game SDK docs; this was made following the official documentation. We also have some work-in-progress wiki docs.
Features
-
Should be working:
- ActivityManager
- ImageManager
- NetworkManager
- RelationshipManager
- StorageManager
- UserManager
-
Should be working, but need more testing:
- AchievementManager (not tested at all)
- ApplicationManager (especially the functions
GetTicket
andValidateOrExit
) - LobbyManager
- OverlayManager
- StoreManager (not tested at all)
- VoiceManager
Contributing
The code needs more comments, type hinting. You can also implement the missing features, or add more tests. Feel free to open a pull request!
You can also report issues. Just open an issue and I will look into it!
Todo List
- Better organisation of submodules.
- CI/CD.
- Update sdk.py to use type annotations.
- Update to Discord SDK 3.2.0.
Examples
You can find more examples in the examples/
directory.
Create a Discord instance
import time
import discordsdk as dsdk
app = dsdk.Discord(APPLICATION_ID, dsdk.CreateFlags.default)
# Don't forget to call run_callbacks
while 1:
time.sleep(1/10)
app.run_callbacks()
Get current user
import time
import discordsdk as dsdk
app = dsdk.Discord(APPLICATION_ID, dsdk.CreateFlags.default)
user_manager = app.get_user_manager()
def on_curr_user_update():
user = user_manager.get_current_user()
print(f"Current user : {user.username}#{user.discriminator}")
user_manager.on_current_user_update = on_curr_user_update
# Don't forget to call run_callbacks
while 1:
time.sleep(1/10)
app.run_callbacks()
Set activity
import time
import discordsdk as dsdk
app = dsdk.Discord(APPLICATION_ID, dsdk.CreateFlags.default)
activity_manager = app.get_activity_manager()
activity = dsdk.Activity()
activity.state = "Testing Game SDK"
activity.party.id = "my_super_party_id"
activity.party.size.current_size = 4
activity.party.size.max_size = 8
activity.secrets.join = "my_super_secret"
def callback(result):
if result == dsdk.Result.ok:
print("Successfully set the activity!")
else:
raise Exception(result)
activity_manager.update_activity(activity, callback)
# Don't forget to call run_callbacks
while 1:
time.sleep(1/10)
app.run_callbacks()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file discordsdk-0.2.5.tar.gz
.
File metadata
- Download URL: discordsdk-0.2.5.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f14f97534bdc2eb9f4d59008e2f741f221437322e9d870b2413c29ac94fbd97c |
|
MD5 | 4b5ab131fa808538b8e30084a90b2b15 |
|
BLAKE2b-256 | e934645093f0001e73f6fc11e779fdcae18d7ac558315565826c73c48cdcaae3 |
File details
Details for the file discordsdk-0.2.5-py3-none-any.whl
.
File metadata
- Download URL: discordsdk-0.2.5-py3-none-any.whl
- Upload date:
- Size: 29.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 558255cc8e973c7dcd5a4d9e8dc077103665d3191869abf73c8006e4576f3476 |
|
MD5 | 14e58b1e40568fbaee8994257265d997 |
|
BLAKE2b-256 | 99137a2a7adacd2f8f1e86ca3b5eb5e3acd0e30f4e49cb5785f1487164c9defa |