Skip to content

NathaanTFM/discord-game-sdk-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOTE: Most Discord GameSDK features are going deprecated. This repo will get updated if there's any major GameSDK updates

Discord Game SDK for Python

This is not a module (for an installable module, check out LennyPhoenix's fork). This was made for Python >= 3.5 and Discord Game SDK 3.2.0

This is a Work In Progress: it might not work as expected or not work at all. This was made for testing purposes.

Installation

Documentation

If you need documentation, look at the official Game SDK docs ; this was made following the official documentation.

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 and ValidateOrExit)
    • LobbyManager
    • OverlayManager (especially the new functions)
    • 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!

Examples

You can find more examples in the examples/ directory.

Create a Discord instance

from discord import Discord
from discord.enum import CreateFlags
import time

app = Discord(APPLICATION_ID, CreateFlags.Default)

# Don't forget to call RunCallbacks
while 1:
    time.sleep(1/10)
    app.RunCallbacks()

Get current user

from discord import Discord
from discord.enum import CreateFlags
import time

app = Discord(APPLICATION_ID, CreateFlags.Default)

userManager = app.GetUserManager()
def onCurrUserUpdate():
    user = userManager.GetCurrentUser()
    print(f"Current user : {user.Username}#{user.Discriminator}")
    
userManager.OnCurrentUserUpdate = onCurrUserUpdate

# Don't forget to call RunCallbacks
while 1:
    time.sleep(1/10)
    app.RunCallbacks()

Set activity

from discord import Discord
from discord.model import Activity
from discord.enum import Result, CreateFlags
import time

app = Discord(APPLICATION_ID, CreateFlags.Default)

activityManager = app.GetActivityManager()

activity = Activity()
activity.State = "Testing Game SDK"
activity.Party.Id = "my_super_party_id"
activity.Party.Size.CurrentSize = 4
activity.Party.Size.MaxSize = 8
activity.Secrets.Join = "my_super_secret"

def callback(result):
    if result == Result.Ok:
        print("Successfully set the activity!")
    else:
        raise Exception(result)
        
activityManager.UpdateActivity(activity, callback)

# Don't forget to call RunCallbacks
while 1:
    time.sleep(1/10)
    app.RunCallbacks()

Releases

No releases published

Packages

No packages published

Languages