diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 04cf75a..8aa0e9e 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -3,7 +3,10 @@ { "name": "Win32", "includePath": [ - "${default}" + "${default}", + "${workspaceFolder}/src/lib/godot-cpp/gen/include", + "${workspaceFolder}/src/lib/godot-cpp/include", + "${workspaceFolder}/src/lib/godot-cpp/gdextension" ], "defines": [ "_DEBUG", diff --git a/.vscode/settings.json b/.vscode/settings.json index 53d6b52..f83e860 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,7 @@ { "C_Cpp.default.includePath": [ - "src/lib/godot-cpp/include", - "src/lib/godot-cpp/gen/include", - "src/lib/godot-cpp/gdextension" + "${workspaceFolder}/src/lib/godot-cpp/gen/include", + "${workspaceFolder}/src/lib/godot-cpp/include" ], "files.associations": { "xlocbuf": "cpp" 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 acad3a2..ca2f159 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 fcb96f5..923a4d2 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/main.gd b/project/main.gd index 478a9cf..675298e 100644 --- a/project/main.gd +++ b/project/main.gd @@ -4,15 +4,22 @@ func _ready(): discord_sdk.app_id = 1099618430065324082 discord_sdk.details = "A demo activity by vaporvee#1231" discord_sdk.state = "Checkpoint 23/23" - + 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_sdk.party_id = "my-random-id-can-be-everything" + discord_sdk.current_party_size = 1 + discord_sdk.max_party_size = 4 + discord_sdk.match_secret = "my-random-match-secret" + discord_sdk.join_secret = "my-random-join-secret" + discord_sdk.spectate_secret = "my-random-spectate-secret" + #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_sdk.refresh() - + $Info.text = $Info.text.replace("{discordinfo}",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/discordgodot.cpp b/src/discordgodot.cpp index 58d311f..94e1bbb 100644 --- a/src/discordgodot.cpp +++ b/src/discordgodot.cpp @@ -49,8 +49,33 @@ void discord_sdk::_bind_methods() 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("get_party_id"), &discord_sdk::get_party_id); + + ClassDB::bind_method(D_METHOD("set_party_id", "party_id"), &discord_sdk::set_party_id); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "party_id"), "set_party_id", "get_party_id"); + + ClassDB::bind_method(D_METHOD("get_current_party_size"), &discord_sdk::get_current_party_size); + ClassDB::bind_method(D_METHOD("set_current_party_size", "current_party_size"), &discord_sdk::set_current_party_size); + ADD_PROPERTY(PropertyInfo(Variant::INT, "current_party_size"), "set_current_party_size", "get_current_party_size"); + ClassDB::bind_method(D_METHOD("get_max_party_size"), &discord_sdk::get_max_party_size); + ClassDB::bind_method(D_METHOD("set_max_party_size", "max_party_size"), &discord_sdk::set_max_party_size); + ADD_PROPERTY(PropertyInfo(Variant::INT, "max_party_size"), "set_max_party_size", "get_max_party_size"); + + ClassDB::bind_method(D_METHOD("get_match_secret"), &discord_sdk::get_match_secret); + ClassDB::bind_method(D_METHOD("set_match_secret", "match_secret"), &discord_sdk::set_match_secret); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "match_secret"), "set_match_secret", "get_match_secret"); + ClassDB::bind_method(D_METHOD("get_join_secret"), &discord_sdk::get_join_secret); + ClassDB::bind_method(D_METHOD("set_join_secret", "join_secret"), &discord_sdk::set_join_secret); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "join_secret"), "set_join_secret", "get_join_secret"); + ClassDB::bind_method(D_METHOD("get_spectate_secret"), &discord_sdk::get_spectate_secret); + ClassDB::bind_method(D_METHOD("set_spectate_secret", "spectate_secret"), &discord_sdk::set_spectate_secret); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "spectate_secret"), "set_spectate_secret", "get_spectate_secret"); + ClassDB::bind_method(D_METHOD("refresh"), &discord_sdk::refresh); + ClassDB::bind_method(D_METHOD("register_command"), &discord_sdk::register_command); + ClassDB::bind_method(D_METHOD("register_steam"), &discord_sdk::register_steam); + 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); @@ -197,6 +222,72 @@ int64_t discord_sdk::get_end_timestamp() return activity.GetTimestamps().GetEnd(); } +void discord_sdk::set_party_id(String value) +{ + party_id = value; + activity.GetParty().SetId(value.utf8().get_data()); +} +String discord_sdk::get_party_id() +{ + return party_id; +} + +void discord_sdk::set_current_party_size(int32_t value) +{ + current_party_size = value; + activity.GetParty().GetSize().SetCurrentSize(value); +} +int32_t discord_sdk::get_current_party_size() +{ + return current_party_size; +} +void discord_sdk::set_max_party_size(int32_t value) +{ + max_party_size = value; + activity.GetParty().GetSize().SetMaxSize(value); +} +int32_t discord_sdk::get_max_party_size() +{ + return max_party_size; +} + +void discord_sdk::set_match_secret(String value) +{ + match_secret = value; + activity.GetSecrets().SetMatch(value.utf8().get_data()); +} +String discord_sdk::get_match_secret() +{ + return match_secret; +} +void discord_sdk::set_join_secret(String value) +{ + join_secret = value; + activity.GetSecrets().SetJoin(value.utf8().get_data()); +} +String discord_sdk::get_join_secret() +{ + return join_secret; +} +void discord_sdk::set_spectate_secret(String value) +{ + spectate_secret = value; + activity.GetSecrets().SetSpectate(value.utf8().get_data()); +} +String discord_sdk::get_spectate_secret() +{ + return spectate_secret; +} + +void discord_sdk::register_command(String value) +{ + register_command(value.utf8().get_data()); +} +void discord_sdk::register_steam(int32_t value) +{ + register_steam(value); +} + bool discord_sdk::get_is_discord_working() { return result == discord::Result::Ok && app_id > 0; diff --git a/src/discordgodot.h b/src/discordgodot.h index 9f31a57..37b6483 100644 --- a/src/discordgodot.h +++ b/src/discordgodot.h @@ -31,8 +31,16 @@ private: int64_t start_timestamp; int64_t end_timestamp; + String party_id; + int32_t current_party_size; + int32_t max_party_size; + String match_secret; + String join_secret; + String spectate_secret; + public: - static discord_sdk *get_singleton(); + static discord_sdk * + get_singleton(); discord_sdk(); ~discord_sdk(); @@ -42,7 +50,6 @@ public: void refresh(); int64_t get_app_id(); - void set_app_id(int64_t value); String get_state(); void set_state(String value); @@ -63,6 +70,23 @@ public: int64_t get_end_timestamp(); void set_end_timestamp(int64_t value); + String get_party_id(); + void set_party_id(String value); + + int32_t get_current_party_size(); + void set_current_party_size(int32_t value); + int32_t get_max_party_size(); + void set_max_party_size(int32_t value); + String get_match_secret(); + void set_match_secret(String value); + String get_join_secret(); + void set_join_secret(String value); + String get_spectate_secret(); + void set_spectate_secret(String value); + + void register_command(String value); + void register_steam(int32_t value); + bool get_is_discord_working(); int get_result_int(); };