diff --git a/README.md b/README.md index a8d39ec..e74a436 100644 --- a/README.md +++ b/README.md @@ -16,20 +16,20 @@ git submodule update --init extends Node func _ready(): - Discord_Activity.app_id = 1099618430065324082 # Application ID - print("Discord working: " + str(Discord_Activity.get_is_discord_working())) # A boolean if everything worked - Discord_Activity.details = "A demo activity by vaporvee#1231" - Discord_Activity.state = "Checkpoint 23/23" + Discord_SDK.app_id = 1099618430065324082 # Application ID + print("Discord working: " + str(Discord_SDK.get_is_discord_working())) # A boolean if everything worked + Discord_SDK.details = "A demo activity by vaporvee#1231" + Discord_SDK.state = "Checkpoint 23/23" - Discord_Activity.large_image = "game" # Image key from "Art Assets" - Discord_Activity.large_image_text = "Try it now!" - Discord_Activity.small_image = "boss" # Image key from "Art Assets" - Discord_Activity.small_image_text = "Fighting the end boss! D:" + Discord_SDK.large_image = "game" # Image key from "Art Assets" + Discord_SDK.large_image_text = "Try it now!" + Discord_SDK.small_image = "boss" # Image key from "Art Assets" + Discord_SDK.small_image_text = "Fighting the end boss! D:" - Discord_Activity.start_timestamp = int(Time.get_unix_time_from_system()) # "02:41 elapsed" - # Discord_Activity.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time + Discord_SDK.start_timestamp = int(Time.get_unix_time_from_system()) # "02:41 elapsed" + # Discord_SDK.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time - Discord_Activity.refresh() # Always refresh after changing the values! + Discord_SDK.refresh() # Always refresh after changing the values! ``` #### Then it should look like this: 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 e4080e0..509d701 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 0982252..406a82d 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/discord_coreupdater.gd b/project/addons/discord-sdk-gd/discord_coreupdater.gd index ce5e503..719b20d 100644 --- a/project/addons/discord-sdk-gd/discord_coreupdater.gd +++ b/project/addons/discord-sdk-gd/discord_coreupdater.gd @@ -1,4 +1,4 @@ extends Node func _process(delta): - Discord_Activity.coreupdate() + Discord_SDK.coreupdate() diff --git a/project/export_presets.cfg b/project/export_presets.cfg index b58e3cc..b3cf5e8 100644 --- a/project/export_presets.cfg +++ b/project/export_presets.cfg @@ -8,7 +8,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../../demo/Discord_Activity.exe" +export_path="../../demo/Discord_SDK.exe" encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false diff --git a/project/main.gd b/project/main.gd index 63bbd8e..a507e53 100644 --- a/project/main.gd +++ b/project/main.gd @@ -1,20 +1,18 @@ extends Node func _ready(): - Discord_Activity.app_id = 1099618430065324082 - Discord_Activity.details = "A demo activity by vaporvee#1231" - Discord_Activity.state = "Checkpoint 23/23" + Discord_SDK.app_id = 1099618430065324082 + Discord_SDK.details = "A demo activity by vaporvee#1231" + Discord_SDK.state = "Checkpoint 23/23" - Discord_Activity.large_image = "game" - Discord_Activity.large_image_text = "Try it now!" - Discord_Activity.small_image = "boss" - Discord_Activity.small_image_text = "Fighting the end boss! D:" + Discord_SDK.large_image = "game" + Discord_SDK.large_image_text = "Try it now!" + Discord_SDK.small_image = "boss" + Discord_SDK.small_image_text = "Fighting the end boss! D:" - Discord_Activity.start_timestamp = int(Time.get_unix_time_from_system()) - # Discord_Activity.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time + Discord_SDK.start_timestamp = int(Time.get_unix_time_from_system()) + # Discord_SDK.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time - Discord_Activity.refresh() + Discord_SDK.refresh() - print(Discord_User.get_name()) - - $Info.text = $Info.text.replace("{isdiscordworking}",str(Discord_Activity.get_is_discord_working())).replace("{id}",str(Discord_Activity.app_id)).replace("{details}",Discord_Activity.details).replace("{state}",Discord_Activity.state).replace("{lkey}",Discord_Activity.large_image).replace("{ltext}",Discord_Activity.large_image_text).replace("{skey}",Discord_Activity.small_image).replace("{stext}",Discord_Activity.small_image_text).replace("{stimestamp}",str(Discord_Activity.start_timestamp)).replace("{etimestamp}",str(Discord_Activity.end_timestamp)) + $Info.text = $Info.text.replace("{isdiscordworking}",str(Discord_SDK.get_is_discord_working())).replace("{id}",str(Discord_SDK.app_id)).replace("{details}",Discord_SDK.details).replace("{state}",Discord_SDK.state).replace("{lkey}",Discord_SDK.large_image).replace("{ltext}",Discord_SDK.large_image_text).replace("{skey}",Discord_SDK.small_image).replace("{stext}",Discord_SDK.small_image_text).replace("{stimestamp}",str(Discord_SDK.start_timestamp)).replace("{etimestamp}",str(Discord_SDK.end_timestamp)) diff --git a/src/activity.cpp b/src/activity.cpp index 6fd16f8..66681c8 100644 --- a/src/activity.cpp +++ b/src/activity.cpp @@ -7,70 +7,70 @@ using namespace godot; -Discord_Activity *Discord_Activity::singleton = nullptr; +Discord_SDK *Discord_SDK::singleton = nullptr; discord::Core *core{}; discord::Result result; discord::Activity activity{}; -void Discord_Activity::_bind_methods() +void Discord_SDK::_bind_methods() { - ClassDB::bind_method(D_METHOD("debug"), &Discord_Activity::debug); - ClassDB::bind_method(D_METHOD("coreupdate"), &Discord_Activity::coreupdate); + ClassDB::bind_method(D_METHOD("debug"), &Discord_SDK::debug); + ClassDB::bind_method(D_METHOD("coreupdate"), &Discord_SDK::coreupdate); - ClassDB::bind_method(D_METHOD("get_app_id"), &Discord_Activity::get_app_id); - ClassDB::bind_method(D_METHOD("set_app_id", "app_id"), &Discord_Activity::set_app_id); + 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_Activity::get_state); - ClassDB::bind_method(D_METHOD("set_state", "state"), &Discord_Activity::set_state); + 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_Activity::get_details); - ClassDB::bind_method(D_METHOD("set_details", "details"), &Discord_Activity::set_details); + 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_Activity::get_large_image); - ClassDB::bind_method(D_METHOD("set_large_image", "large_image"), &Discord_Activity::set_large_image); + 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_Activity::get_large_image_text); - ClassDB::bind_method(D_METHOD("set_large_image_text", "large_image_text"), &Discord_Activity::set_large_image_text); + 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_Activity::get_small_image); - ClassDB::bind_method(D_METHOD("set_small_image", "small_image"), &Discord_Activity::set_small_image); + 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_Activity::get_small_image_text); - ClassDB::bind_method(D_METHOD("set_small_image_text", "large_small_text"), &Discord_Activity::set_small_image_text); + 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_Activity::get_start_timestamp); - ClassDB::bind_method(D_METHOD("set_start_timestamp", "start_timestamp"), &Discord_Activity::set_start_timestamp); + 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_Activity::get_end_timestamp); - ClassDB::bind_method(D_METHOD("set_end_timestamp", "end_timestamp"), &Discord_Activity::set_end_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_Activity::refresh); + ClassDB::bind_method(D_METHOD("refresh"), &Discord_SDK::refresh); - ClassDB::bind_method(D_METHOD("get_is_discord_working"), &Discord_Activity::get_is_discord_working); + ClassDB::bind_method(D_METHOD("get_is_discord_working"), &Discord_SDK::get_is_discord_working); } -Discord_Activity *Discord_Activity::get_singleton() +Discord_SDK *Discord_SDK::get_singleton() { return singleton; } -Discord_Activity::Discord_Activity() +Discord_SDK::Discord_SDK() { ERR_FAIL_COND(singleton != nullptr); singleton = this; } -Discord_Activity::~Discord_Activity() +Discord_SDK::~Discord_SDK() { ERR_FAIL_COND(singleton != this); singleton = nullptr; } -void Discord_Activity::debug() +void Discord_SDK::debug() { result = discord::Core::Create(1080224638845591692, DiscordCreateFlags_NoRequireDiscord, &core); activity.SetState("Test from Godot!"); @@ -88,42 +88,42 @@ void Discord_Activity::debug() UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!"); } -void Discord_Activity::coreupdate() +void Discord_SDK::coreupdate() { if (result == discord::Result::Ok) ::core->RunCallbacks(); } -void Discord_Activity::set_app_id(const int64_t &value) +void Discord_SDK::set_app_id(const int64_t &value) { app_id = value; result = discord::Core::Create(value, DiscordCreateFlags_NoRequireDiscord, &core); } -int64_t Discord_Activity::get_app_id() const +int64_t Discord_SDK::get_app_id() const { return app_id; } -void Discord_Activity::set_state(const String &value) +void Discord_SDK::set_state(const String &value) { state = value; activity.SetState(value.utf8().get_data()); } -String Discord_Activity::get_state() const +String Discord_SDK::get_state() const { return state; } -void Discord_Activity::set_details(const String &value) +void Discord_SDK::set_details(const String &value) { details = value; activity.SetDetails(value.utf8().get_data()); } -String Discord_Activity::get_details() const +String Discord_SDK::get_details() const { return details; } -void Discord_Activity::refresh() +void Discord_SDK::refresh() { if (result == discord::Result::Ok) core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {}); @@ -131,63 +131,63 @@ void Discord_Activity::refresh() UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!"); } -void Discord_Activity::set_large_image(const String &value) +void Discord_SDK::set_large_image(const String &value) { large_image = value; activity.GetAssets().SetLargeImage(value.utf8().get_data()); } -String Discord_Activity::get_large_image() const +String Discord_SDK::get_large_image() const { return large_image; } -void Discord_Activity::set_large_image_text(const String &value) +void Discord_SDK::set_large_image_text(const String &value) { large_image_text = value; activity.GetAssets().SetLargeText(value.utf8().get_data()); } -String Discord_Activity::get_large_image_text() const +String Discord_SDK::get_large_image_text() const { return large_image_text; } -void Discord_Activity::set_small_image(const String &value) +void Discord_SDK::set_small_image(const String &value) { small_image = value; activity.GetAssets().SetSmallImage(value.utf8().get_data()); } -String Discord_Activity::get_small_image() const +String Discord_SDK::get_small_image() const { return small_image; } -void Discord_Activity::set_small_image_text(const String &value) +void Discord_SDK::set_small_image_text(const String &value) { small_image_text = value; activity.GetAssets().SetSmallText(value.utf8().get_data()); } -String Discord_Activity::get_small_image_text() const +String Discord_SDK::get_small_image_text() const { return small_image_text; } -void Discord_Activity::set_start_timestamp(const int64_t &value) +void Discord_SDK::set_start_timestamp(const int64_t &value) { start_timestamp = value; activity.GetTimestamps().SetStart(value); } -int64_t Discord_Activity::get_start_timestamp() const +int64_t Discord_SDK::get_start_timestamp() const { return activity.GetTimestamps().GetStart(); } -void Discord_Activity::set_end_timestamp(const int64_t &value) +void Discord_SDK::set_end_timestamp(const int64_t &value) { end_timestamp = value; activity.GetTimestamps().SetEnd(value); } -int64_t Discord_Activity::get_end_timestamp() const +int64_t Discord_SDK::get_end_timestamp() const { return activity.GetTimestamps().GetEnd(); } -bool Discord_Activity::get_is_discord_working() const +bool Discord_SDK::get_is_discord_working() const { return result == discord::Result::Ok; } \ No newline at end of file diff --git a/src/activity.h b/src/activity.h index 26c972b..a1a3e5d 100644 --- a/src/activity.h +++ b/src/activity.h @@ -7,11 +7,11 @@ using namespace godot; -class Discord_Activity : public Object +class Discord_SDK : public Object { - GDCLASS(Discord_Activity, Object); + GDCLASS(Discord_SDK, Object); - static Discord_Activity *singleton; + static Discord_SDK *singleton; protected: static void _bind_methods(); @@ -31,10 +31,10 @@ private: int64_t end_timestamp; public: - static Discord_Activity *get_singleton(); + static Discord_SDK *get_singleton(); - Discord_Activity(); - ~Discord_Activity(); + Discord_SDK(); + ~Discord_SDK(); void debug(); void coreupdate(); diff --git a/src/register_types.cpp b/src/register_types.cpp index bb567dd..d73e638 100644 --- a/src/register_types.cpp +++ b/src/register_types.cpp @@ -7,22 +7,17 @@ #include #include "activity.h" -#include "user.h" using namespace godot; -static Discord_Activity *discordactivity; -static Discord_User *discorduser; +static Discord_SDK *discordactivity; void gdextension_initialize(ModuleInitializationLevel p_level) { if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) { - ClassDB::register_class(); - ClassDB::register_class(); - discordactivity = memnew(Discord_Activity); - discorduser = memnew(Discord_User); - Engine::get_singleton()->register_singleton("Discord_Activity", Discord_Activity::get_singleton()); - Engine::get_singleton()->register_singleton("Discord_User", Discord_User::get_singleton()); + ClassDB::register_class(); + discordactivity = memnew(Discord_SDK); + Engine::get_singleton()->register_singleton("Discord_SDK", Discord_SDK::get_singleton()); } } @@ -30,10 +25,8 @@ void gdextension_terminate(ModuleInitializationLevel p_level) { if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) { - Engine::get_singleton()->unregister_singleton("Discord_Activity"); - Engine::get_singleton()->unregister_singleton("Discord_User"); + Engine::get_singleton()->unregister_singleton("Discord_SDK"); memdelete(discordactivity); - memdelete(discorduser); } } diff --git a/src/user.cpp b/src/user.cpp deleted file mode 100644 index ec159e9..0000000 --- a/src/user.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "user.h" -#include -#include "./discord-game-sdk-cpp/discord.h" -#include -#include -#include -#include - -using namespace godot; - -Discord_User *Discord_User::singleton = nullptr; - -void Discord_User::_bind_methods() -{ - ClassDB::bind_method(D_METHOD("get_name"), &Discord_User::get_name); -} - -Discord_User *Discord_User::get_singleton() -{ - return singleton; -} - -Discord_User::Discord_User() -{ - ERR_FAIL_COND(singleton != nullptr); - singleton = this; -} - -Discord_User::~Discord_User() -{ - ERR_FAIL_COND(singleton != this); - singleton = nullptr; -} - -String Discord_User::get_name() const -{ - discord::User user; - return user.GetUsername(); -} \ No newline at end of file diff --git a/src/user.h b/src/user.h deleted file mode 100644 index 1b472be..0000000 --- a/src/user.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef USER_H -#define USER_H - -#include -#include -#include - -using namespace godot; - -class Discord_User : public Object -{ - GDCLASS(Discord_User, Object); - - static Discord_User *singleton; - -protected: - static void _bind_methods(); - -public: - static Discord_User *get_singleton(); - - Discord_User(); - ~Discord_User(); - - String get_name() const; -}; - -#endif \ No newline at end of file