diff --git a/.gitignore b/.gitignore index 5f9075a..608774c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,4 @@ build/ *.lib #Clean files from the Game SDK -src/discord-game-sdk-cpp/*.cpp -src/discord-game-sdk-cpp/*.h -src/discord-game-sdk-cpp/*.md \ No newline at end of file +src/lib/discord_game_sdk/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 8d21e28..e497b19 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "lib/godot-cpp"] - path = lib/godot-cpp +[submodule "src/lib/godot-cpp"] + path = src/lib/godot-cpp url = https://github.com/godotengine/godot-cpp diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..04cf75a --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,21 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${default}" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "windowsSdkVersion": "10.0.22621.0", + "compilerPath": "cl.exe", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "windows-msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 47bac5b..53d6b52 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,14 @@ { "C_Cpp.default.includePath": [ - "lib/godot-cpp/include", - "lib/godot-cpp/gen/include", - "lib/godot-cpp/gdextension" + "src/lib/godot-cpp/include", + "src/lib/godot-cpp/gen/include", + "src/lib/godot-cpp/gdextension" ], "files.associations": { "xlocbuf": "cpp" - } + }, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "python.formatting.provider": "none" } \ No newline at end of file diff --git a/README.md b/README.md index 8329c21..2e1ee63 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,8 @@ func _ready():
### Credit -[@Pukimaa](https://github.com/pukimaa) - Designer - +[@Pukimaa](https://github.com/pukimaa) - Designer
+[@koyuawsmbrtn](https://github.com/koyuawsmbrtn) - Getting it to work on MacOS (shes giving her best)
*This project is not endorsed or affiliated with Discord Inc. or the Godot Foundation.* diff --git a/SConstruct b/SConstruct index 0b66e59..c9226ef 100644 --- a/SConstruct +++ b/SConstruct @@ -2,40 +2,62 @@ import os # Gets the standard flags CC, CCX, etc. -env = SConscript("lib/godot-cpp/SConstruct") +env = SConscript("src/lib/godot-cpp/SConstruct") # Check our platform specifics -if env['platform'] == "macos": - discord_library = 'libdiscord_game_sdk.dylib' +if env["platform"] == "macos": + discord_library = "libdiscord_game_sdk.dylib" + discord_library_second = "libdiscord_game_sdk_aarch64.dylib" libexportfolder = "/macos/" -elif env['platform'] in ('linuxbsd', 'linux'): - discord_library = 'libdiscord_game_sdk.so' +elif env["platform"] in ("linuxbsd", "linux"): + discord_library = "libdiscord_game_sdk.so" + discord_library_second = "" libexportfolder = "/linux/" -elif env['platform'] == "windows": - discord_library = 'discord_game_sdk.dll' +elif env["platform"] == "windows": + discord_library = "discord_game_sdk.dll" + discord_library_second = "discord_game_sdk_x86.dll" libexportfolder = "/windows/" -if env['target'] == "template_debug": +if env["target"] == "template_debug": debugsuffix = "_debug" else: debugsuffix = "" # make sure our binding library is properly includes -env.Append(LIBPATH=["lib/discord-game-sdk/"]) -sources = Glob('src/discord-game-sdk-cpp/*.cpp') -env.Append(CPPPATH=['src/discord-game-sdk-cpp']) +env.Append(LIBPATH=["src/lib/discord_game_sdk/bin/"]) +sources = Glob("src/lib/discord_game_sdk/cpp/*.cpp") +env.Append(CPPPATH=["src/lib/discord_game_sdk/cpp/"]) env.Append(LIBS=["discord_game_sdk"]) # tweak this if you want to use different folders, or more folders, to store your source code in. -env.Append(CPPPATH=['src/']) -sources += Glob('src/*.cpp') +env.Append(CPPPATH=["src/"]) +sources += Glob("src/*.cpp") # The finished exports -library = env.SharedLibrary(target="project/addons/discord-sdk-gd/bin/" + - libexportfolder + "discord_game_sdk_binding" + debugsuffix, source=sources) -env.Depends(library, Command("project/addons/discord-sdk-gd/bin/" + libexportfolder + - discord_library, "lib/discord-game-sdk/" + discord_library, Copy("$TARGET", "$SOURCE"))) +library = env.SharedLibrary( + target="project/addons/discord-sdk-gd/bin/" + + libexportfolder + + "discord_game_sdk_binding" + + debugsuffix, + source=sources, +) +env.Depends( + library, + Command( + "project/addons/discord-sdk-gd/bin/" + libexportfolder + discord_library, + "src/lib/discord_game_sdk/bin/" + discord_library, + Copy("$TARGET", "$SOURCE"), + ), +) +env.Depends( + library, + Command( + "project/addons/discord-sdk-gd/bin/" + libexportfolder + discord_library_second, + "src/lib/discord_game_sdk/bin/" + discord_library_second, + Copy("$TARGET", "$SOURCE"), + ), +) Default(library) diff --git a/lib/discord-game-sdk/discord_game_sdk.bundle b/lib/discord-game-sdk/discord_game_sdk.bundle deleted file mode 100644 index 3402426..0000000 Binary files a/lib/discord-game-sdk/discord_game_sdk.bundle and /dev/null differ diff --git a/lib/discord-game-sdk/discord_game_sdk.dll b/lib/discord-game-sdk/discord_game_sdk.dll deleted file mode 100644 index be946ea..0000000 Binary files a/lib/discord-game-sdk/discord_game_sdk.dll and /dev/null differ diff --git a/lib/discord-game-sdk/discord_game_sdk.lib b/lib/discord-game-sdk/discord_game_sdk.lib deleted file mode 100644 index 562b01c..0000000 Binary files a/lib/discord-game-sdk/discord_game_sdk.lib and /dev/null differ diff --git a/lib/discord-game-sdk/libdiscord_game_sdk.dylib b/lib/discord-game-sdk/libdiscord_game_sdk.dylib deleted file mode 100644 index 3402426..0000000 Binary files a/lib/discord-game-sdk/libdiscord_game_sdk.dylib and /dev/null differ diff --git a/lib/discord-game-sdk/libdiscord_game_sdk.so b/lib/discord-game-sdk/libdiscord_game_sdk.so deleted file mode 100644 index 9dacf94..0000000 Binary files a/lib/discord-game-sdk/libdiscord_game_sdk.so and /dev/null differ diff --git a/lib/godot-cpp b/lib/godot-cpp deleted file mode 160000 index feaba55..0000000 --- a/lib/godot-cpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit feaba551b5a5b2d13ad1c3fdd8c90e67c67ff37c diff --git a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll index a4af60f..e907059 100644 Binary files a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll and b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll differ diff --git a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll index 885c535..64d0b23 100644 Binary files a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll and b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll differ diff --git a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll new file mode 100644 index 0000000..45b9bb1 Binary files /dev/null and b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll differ diff --git a/project/addons/discord-sdk-gd/export.gd b/project/addons/discord-sdk-gd/export.gd index 7e83dae..2c6e265 100644 --- a/project/addons/discord-sdk-gd/export.gd +++ b/project/addons/discord-sdk-gd/export.gd @@ -3,8 +3,12 @@ extends EditorExportPlugin func _export_file(path, type, features): if features[2] == "windows": - add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll",[],"/") + if features[4] == "x86_64": + add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll",[],"/") + elif features[4] == "x86": + add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll",[],"/") elif features[2] == "linux": add_shared_object("res://addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk.so",[],"/") elif features[2] == "macos": add_shared_object("res://addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk.dylib",[],"/") + add_shared_object("res://addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_aarch64.dylib",[],"/") diff --git a/setup.py b/setup.py index 45c5692..b34f8e8 100644 --- a/setup.py +++ b/setup.py @@ -3,15 +3,42 @@ from distutils.dir_util import copy_tree import shutil import os -with zipfile.ZipFile("src/discord-game-sdk-cpp/discord_game_sdk.zip", "r") as zip_ref: - zip_ref.extractall("src/discord-game-sdk-cpp") +with zipfile.ZipFile("src/lib/discord_game_sdk.zip", "r") as zip_ref: + zip_ref.extractall("src/lib/discord_game_sdk/") -copy_tree("src/discord-game-sdk-cpp/cpp", "src/discord-game-sdk-cpp/") +copy_tree("src/lib/discord_game_sdk/lib/", "src/lib/discord_game_sdk/bin/") +os.rename( + "src/lib/discord_game_sdk/bin/aarch64/discord_game_sdk.dylib", + "src/lib/discord_game_sdk/bin/aarch64/libdiscord_game_sdk_aarch64.dylib", +) +os.rename( + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.dylib", + "src/lib/discord_game_sdk/bin/x86_64/libdiscord_game_sdk.dylib", +) +os.rename( + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.so", + "src/lib/discord_game_sdk/bin/x86_64/libdiscord_game_sdk.so", +) +os.rename( + "src/lib/discord_game_sdk/bin/x86/discord_game_sdk.dll", + "src/lib/discord_game_sdk/bin/x86/discord_game_sdk_x86.dll", +) -shutil.rmtree("src/discord-game-sdk-cpp/c/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/cpp/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/csharp/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/examples/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/lib/", ignore_errors=True) +os.rename( + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.dll.lib", + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.lib", +) +copy_tree("src/lib/discord_game_sdk/bin/aarch64/", "src/lib/discord_game_sdk/bin/") +copy_tree("src/lib/discord_game_sdk/bin/x86/", "src/lib/discord_game_sdk/bin/") +copy_tree("src/lib/discord_game_sdk/bin/x86_64/", "src/lib/discord_game_sdk/bin/") + +shutil.rmtree("src/lib/discord_game_sdk/c/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/csharp/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/examples/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/lib/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/bin/aarch64/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/bin/x86/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/bin/x86_64/", ignore_errors=True) +os.remove("src/lib/discord_game_sdk/README.md") os.system("git submodule update --init") diff --git a/src/discordgodot.cpp b/src/discordgodot.cpp index 057c835..ef733ad 100644 --- a/src/discordgodot.cpp +++ b/src/discordgodot.cpp @@ -1,5 +1,4 @@ #include "discordgodot.h" -#include "./discord-game-sdk-cpp/discord.h" #include #include #include @@ -9,11 +8,6 @@ using namespace godot; Discord_SDK *Discord_SDK::singleton = nullptr; -discord::Core *core{}; -discord::Result result; -discord::Activity activity{}; -discord::User user{}; - void Discord_SDK::_bind_methods() { ClassDB::bind_method(D_METHOD("debug"), &Discord_SDK::debug); @@ -22,38 +16,16 @@ void Discord_SDK::_bind_methods() ClassDB::bind_method(D_METHOD("get_app_id"), &Discord_SDK::get_app_id); ClassDB::bind_method(D_METHOD("set_app_id", "app_id"), &Discord_SDK::set_app_id); ADD_PROPERTY(PropertyInfo(Variant::INT, "app_id"), "set_app_id", "get_app_id"); - ClassDB::bind_method(D_METHOD("get_state"), &Discord_SDK::get_state); - ClassDB::bind_method(D_METHOD("set_state", "state"), &Discord_SDK::set_state); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "state"), "set_state", "get_state"); - ClassDB::bind_method(D_METHOD("get_details"), &Discord_SDK::get_details); - ClassDB::bind_method(D_METHOD("set_details", "details"), &Discord_SDK::set_details); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "details"), "set_details", "get_details"); - ClassDB::bind_method(D_METHOD("get_large_image"), &Discord_SDK::get_large_image); - ClassDB::bind_method(D_METHOD("set_large_image", "large_image"), &Discord_SDK::set_large_image); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "large_image"), "set_large_image", "get_large_image"); - ClassDB::bind_method(D_METHOD("get_large_image_text"), &Discord_SDK::get_large_image_text); - ClassDB::bind_method(D_METHOD("set_large_image_text", "large_image_text"), &Discord_SDK::set_large_image_text); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "large_image_text"), "set_large_image_text", "get_large_image_text"); - ClassDB::bind_method(D_METHOD("get_small_image"), &Discord_SDK::get_small_image); - ClassDB::bind_method(D_METHOD("set_small_image", "small_image"), &Discord_SDK::set_small_image); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "small_image"), "set_small_image", "get_small_image"); - ClassDB::bind_method(D_METHOD("get_small_image_text"), &Discord_SDK::get_small_image_text); - ClassDB::bind_method(D_METHOD("set_small_image_text", "large_small_text"), &Discord_SDK::set_small_image_text); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "small_image_text"), "set_small_image_text", "get_small_image_text"); - - ClassDB::bind_method(D_METHOD("get_start_timestamp"), &Discord_SDK::get_start_timestamp); - ClassDB::bind_method(D_METHOD("set_start_timestamp", "start_timestamp"), &Discord_SDK::set_start_timestamp); - ADD_PROPERTY(PropertyInfo(Variant::INT, "start_timestamp"), "set_start_timestamp", "get_start_timestamp"); - ClassDB::bind_method(D_METHOD("get_end_timestamp"), &Discord_SDK::get_end_timestamp); - ClassDB::bind_method(D_METHOD("set_end_timestamp", "end_timestamp"), &Discord_SDK::set_end_timestamp); - ADD_PROPERTY(PropertyInfo(Variant::INT, "end_timestamp"), "set_end_timestamp", "get_end_timestamp"); - - ClassDB::bind_method(D_METHOD("refresh"), &Discord_SDK::refresh); + ClassDB::bind_method(D_METHOD("get_activity"), &Discord_SDK::get_activity); + ClassDB::bind_method(D_METHOD("set_activity", "activity"), &Discord_SDK::set_activity); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "activity"), "set_activity", "get_activity"); ClassDB::bind_method(D_METHOD("get_is_discord_working"), &Discord_SDK::get_is_discord_working); ClassDB::bind_method(D_METHOD("get_result_int"), &Discord_SDK::get_result_int); + + ClassDB::bind_method(D_METHOD("refresh"), &Discord_SDK::refresh); } Discord_SDK *Discord_SDK::get_singleton() @@ -83,16 +55,16 @@ void Discord_SDK::coreupdate() void Discord_SDK::debug() { result = discord::Core::Create(1080224638845591692, DiscordCreateFlags_NoRequireDiscord, &core); - activity.SetState("Test from Godot!"); - activity.SetDetails("I worked months on this"); - activity.GetAssets().SetLargeImage("test1"); - activity.GetAssets().SetLargeText("wow test text for large image"); - activity.GetAssets().SetSmallImage("godot"); - activity.GetAssets().SetSmallText("wow test text for small image"); - activity.GetTimestamps().SetStart(1682242800); + sdkactivity.SetState("Test from Godot!"); + sdkactivity.SetDetails("I worked months on this"); + sdkactivity.GetAssets().SetLargeImage("test1"); + sdkactivity.GetAssets().SetLargeText("wow test text for large image"); + sdkactivity.GetAssets().SetSmallImage("godot"); + sdkactivity.GetAssets().SetSmallText("wow test text for small image"); + sdkactivity.GetTimestamps().SetStart(1682242800); if (result == discord::Result::Ok) { - core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {}); + core->ActivityManager().UpdateActivity(sdkactivity, [](discord::Result result) {}); core->UserManager().OnCurrentUserUpdate.Connect([]() { core->UserManager().GetCurrentUser(&user); }); } @@ -110,91 +82,29 @@ int64_t Discord_SDK::get_app_id() const return app_id; } -void Discord_SDK::set_state(const String &value) -{ - state = value; - activity.SetState(value.utf8().get_data()); -} -String Discord_SDK::get_state() const -{ - return state; -} -void Discord_SDK::set_details(const String &value) -{ - details = value; - activity.SetDetails(value.utf8().get_data()); -} -String Discord_SDK::get_details() const -{ - return details; -} +void Discord_SDK::set_activity(const Object &value) +{ /* + activity.state = value.state; + activity.details = value.details; + activity.large_image = value.large_image; + activity.large_image = value.large_image_text; + activity.large_image = value.small_image; + activity.large_image = value.small_image_text; + activity.start_timestamp = value.start_timestamp; + activity.end_timestamp = value.end_timestamp;*/ -void Discord_SDK::refresh() -{ - if (result == discord::Result::Ok && app_id > 0) - { - core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {}); - core->UserManager().OnCurrentUserUpdate.Connect([]() - { core->UserManager().GetCurrentUser(&user); }); - } - else - UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!"); + sdkactivity.SetState(activity.state.utf8().get_data()); + sdkactivity.SetDetails(activity.details.utf8().get_data()); + sdkactivity.GetAssets().SetLargeImage(activity.large_image.utf8().get_data()); + sdkactivity.GetAssets().SetLargeText(activity.large_image_text.utf8().get_data()); + sdkactivity.GetAssets().SetSmallImage(activity.small_image.utf8().get_data()); + sdkactivity.GetAssets().SetSmallText(activity.small_image_text.utf8().get_data()); + sdkactivity.GetTimestamps().SetStart(activity.start_timestamp); + sdkactivity.GetTimestamps().SetEnd(activity.end_timestamp); } - -void Discord_SDK::set_large_image(const String &value) +Object Discord_SDK::get_activity() const { - large_image = value; - activity.GetAssets().SetLargeImage(value.utf8().get_data()); -} -String Discord_SDK::get_large_image() const -{ - return large_image; -} -void Discord_SDK::set_large_image_text(const String &value) -{ - large_image_text = value; - activity.GetAssets().SetLargeText(value.utf8().get_data()); -} -String Discord_SDK::get_large_image_text() const -{ - return large_image_text; -} -void Discord_SDK::set_small_image(const String &value) -{ - small_image = value; - activity.GetAssets().SetSmallImage(value.utf8().get_data()); -} -String Discord_SDK::get_small_image() const -{ - return small_image; -} -void Discord_SDK::set_small_image_text(const String &value) -{ - small_image_text = value; - activity.GetAssets().SetSmallText(value.utf8().get_data()); -} -String Discord_SDK::get_small_image_text() const -{ - return small_image_text; -} - -void Discord_SDK::set_start_timestamp(const int64_t &value) -{ - start_timestamp = value; - activity.GetTimestamps().SetStart(value); -} -int64_t Discord_SDK::get_start_timestamp() const -{ - return activity.GetTimestamps().GetStart(); -} -void Discord_SDK::set_end_timestamp(const int64_t &value) -{ - end_timestamp = value; - activity.GetTimestamps().SetEnd(value); -} -int64_t Discord_SDK::get_end_timestamp() const -{ - return activity.GetTimestamps().GetEnd(); + return activity; } bool Discord_SDK::get_is_discord_working() const @@ -206,3 +116,15 @@ int Discord_SDK::get_result_int() const { return static_cast(result); } + +void Discord_SDK::refresh() +{ + if (result == discord::Result::Ok && app_id > 0) + { + core->ActivityManager().UpdateActivity(sdkactivity, [](discord::Result result) {}); + core->UserManager().OnCurrentUserUpdate.Connect([]() + { core->UserManager().GetCurrentUser(&user); }); + } + else + UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!"); +} \ No newline at end of file diff --git a/src/discordgodot.h b/src/discordgodot.h index fd8557b..8afba50 100644 --- a/src/discordgodot.h +++ b/src/discordgodot.h @@ -2,16 +2,21 @@ #define DISCORDGODOT_H #include -#include "discord-game-sdk-cpp/discord.h" +#include "lib/discord_game_sdk/cpp/discord.h" +#include #include #include using namespace godot; -class Discord_SDK : public Object -{ - GDCLASS(Discord_SDK, Object); +discord::Core *core{}; +discord::Result result; +discord::Activity sdkactivity{}; +discord::User user{}; +class Discord_SDK : public RefCounted +{ + GDCLASS(Discord_SDK, RefCounted); static Discord_SDK *singleton; protected: @@ -20,48 +25,49 @@ protected: private: int64_t app_id; - String state; - String details; - - String large_image; - String large_image_text; - String small_image; - String small_image_text; - - int64_t start_timestamp; - int64_t end_timestamp; - public: - static Discord_SDK *get_singleton(); + static Discord_SDK * + get_singleton(); Discord_SDK(); ~Discord_SDK(); + class activitystruct : public Object + { + GDCLASS(activitystruct, Object); + + protected: + static void _bind_methods(); + + public: + static activitystruct * + get_singleton(); + + activitystruct(); + ~activitystruct(); + + String state; + String details; + + String large_image; + String large_image_text; + String small_image; + String small_image_text; + + int64_t start_timestamp; + int64_t end_timestamp; + }; + activitystruct activity; + void debug(); void coreupdate(); void refresh(); int64_t get_app_id() const; - void set_app_id(const int64_t &value); - String get_state() const; - void set_state(const String &value); - String get_details() const; - void set_details(const String &value); - String get_large_image() const; - void set_large_image(const String &value); - String get_large_image_text() const; - void set_large_image_text(const String &value); - String get_small_image() const; - void set_small_image(const String &value); - String get_small_image_text() const; - void set_small_image_text(const String &value); - - int64_t get_start_timestamp() const; - void set_start_timestamp(const int64_t &value); - int64_t get_end_timestamp() const; - void set_end_timestamp(const int64_t &value); + void set_activity(const Object &value); + Object get_activity() const; bool get_is_discord_working() const; int get_result_int() const; diff --git a/src/discord-game-sdk-cpp/discord_game_sdk.zip b/src/lib/discord_game_sdk.zip similarity index 55% rename from src/discord-game-sdk-cpp/discord_game_sdk.zip rename to src/lib/discord_game_sdk.zip index 9a996b5..10b8a51 100644 Binary files a/src/discord-game-sdk-cpp/discord_game_sdk.zip and b/src/lib/discord_game_sdk.zip differ diff --git a/godot-cpp b/src/lib/godot-cpp similarity index 100% rename from godot-cpp rename to src/lib/godot-cpp diff --git a/src/register_types.cpp b/src/register_types.cpp index 6eb1f07..64fc776 100644 --- a/src/register_types.cpp +++ b/src/register_types.cpp @@ -10,13 +10,16 @@ using namespace godot; static Discord_SDK *discordsdk; +static Discord_SDK::activitystruct *discordsdkactivity; void gdextension_initialize(ModuleInitializationLevel p_level) { if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) { ClassDB::register_class(); + ClassDB::register_class(); discordsdk = memnew(Discord_SDK); + discordsdkactivity = memnew(Discord_SDK::activitystruct); Engine::get_singleton()->register_singleton("Discord_SDK", Discord_SDK::get_singleton()); } } @@ -27,6 +30,7 @@ void gdextension_terminate(ModuleInitializationLevel p_level) { Engine::get_singleton()->unregister_singleton("Discord_SDK"); memdelete(discordsdk); + memdelete(discordsdkactivity); } }