diff --git a/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll index 4b8e6f0..8f89728 100644 Binary files a/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll and b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll differ diff --git a/project/main.gd b/project/main.gd index 2f3f148..8fe58c6 100644 --- a/project/main.gd +++ b/project/main.gd @@ -1,9 +1,15 @@ extends Node func _ready(): - Discord_Activity.app_id = 918857075105349632 - Discord_Activity.details = "Made with GDExtension" - Discord_Activity.state = "This is a test from GDScript in Godot 4" + #Discord_Activity.debug() + Discord_Activity.app_id = 1099618430065324082 + Discord_Activity.details = "A demo activity by vaporvee#1231" + Discord_Activity.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_Activity.refresh() - $Info.text = $Info.text.replace("{id}",str(Discord_Activity.app_id)).replace("{details}",Discord_Activity.details).replace("{state}",Discord_Activity.state) + $Info.text = $Info.text.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) diff --git a/project/main.tscn b/project/main.tscn index 5f438d7..44bdc99 100644 --- a/project/main.tscn +++ b/project/main.tscn @@ -42,8 +42,15 @@ bbcode_enabled = true text = "[center][font s=60][rainbow]DiscordSDK Test[/rainbow][/font]" [node name="Info" type="RichTextLabel" parent="."] -offset_right = 507.0 -offset_bottom = 155.0 +offset_left = 7.0 +offset_top = 6.0 +offset_right = 514.0 +offset_bottom = 227.0 text = "Application ID : {id} Details: {details} -State: {state}" +State: {state} + +Large image key: {lkey} +Large image text: {ltext} +Small image key: {skey} +Small image text: {stext}" diff --git a/src/activity.cpp b/src/activity.cpp index 09ca5c2..7a4fd8b 100644 --- a/src/activity.cpp +++ b/src/activity.cpp @@ -27,6 +27,19 @@ void Discord_Activity::_bind_methods() ClassDB::bind_method(D_METHOD("set_details", "details"), &Discord_Activity::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); + 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); + 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); + 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); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "small_image_text"), "set_small_image_text", "get_small_image_text"); + ClassDB::bind_method(D_METHOD("refresh"), &Discord_Activity::refresh); } @@ -97,4 +110,41 @@ String Discord_Activity::get_details() const void Discord_Activity::refresh() { core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {}); +} + +void Discord_Activity::set_large_image(const String &p_large_image) +{ + large_image = p_large_image; + activity.GetAssets().SetLargeImage(p_large_image.utf8().get_data()); +} +String Discord_Activity::get_large_image() const +{ + return large_image; +} +void Discord_Activity::set_large_image_text(const String &p_large_image_text) +{ + large_image_text = p_large_image_text; + activity.GetAssets().SetLargeText(p_large_image_text.utf8().get_data()); +} +String Discord_Activity::get_large_image_text() const +{ + return large_image_text; +} +void Discord_Activity::set_small_image(const String &p_small_image) +{ + small_image = p_small_image; + activity.GetAssets().SetSmallImage(p_small_image.utf8().get_data()); +} +String Discord_Activity::get_small_image() const +{ + return small_image; +} +void Discord_Activity::set_small_image_text(const String &p_small_image_text) +{ + small_image_text = p_small_image_text; + activity.GetAssets().SetSmallText(p_small_image_text.utf8().get_data()); +} +String Discord_Activity::get_small_image_text() const +{ + return small_image_text; } \ No newline at end of file diff --git a/src/activity.h b/src/activity.h index 7b81deb..997bdd5 100644 --- a/src/activity.h +++ b/src/activity.h @@ -21,6 +21,11 @@ private: String state; String details; + String large_image; + String large_image_text; + String small_image; + String small_image_text; + public: static Discord_Activity *get_singleton(); @@ -37,6 +42,15 @@ public: void set_state(const String &p_state); String get_details() const; void set_details(const String &p_details); + + String get_large_image() const; + void set_large_image(const String &p_large_image); + String get_large_image_text() const; + void set_large_image_text(const String &p_large_image_text); + String get_small_image() const; + void set_small_image(const String &p_small_image); + String get_small_image_text() const; + void set_small_image_text(const String &p_small_image_text); }; #endif \ No newline at end of file