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);
}
}