diff --git a/.github/ISSUE_TEMPLATE/BUG.yml b/.github/ISSUE_TEMPLATE/BUG.yml
index aa2579d..1de616a 100644
--- a/.github/ISSUE_TEMPLATE/BUG.yml
+++ b/.github/ISSUE_TEMPLATE/BUG.yml
@@ -21,7 +21,7 @@ body:
id: version
attributes:
label: Version
- description: What version of the Discord RPC Godot plugin are you running?
+ description: What version of the Discord Social SDK Godot plugin are you running?
options:
- 1.3.1
- 1.3.0
diff --git a/README.md b/README.md
index 093c5e4..8e6b702 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ Discord recently released its new SDK. This plugin will get a huge overhaul and
---
### This is for the Discord Game SDK NOT the Embedded App SDK
-**Discord RPC Plugin for GDScript with an easy-to-use code pattern in Godot Engine 4.1+, with optional Editor Rich Presence! (Compatible with Linux, Windows, & MacOS)**
+**Discord Social SDK Plugin for GDScript with an easy-to-use code pattern in Godot Engine 4.1+, with optional Editor Rich Presence! (Compatible with Linux, Windows, & MacOS)**
### [My Discord Server](https://discord.gg/3gqUrtbaur)
# [Quick start :rocket: (click here)](https://docs.vaporvee.com/discord-rpc-godot#quick-start)
diff --git a/SConstruct b/SConstruct
index b49bd44..f3660c9 100644
--- a/SConstruct
+++ b/SConstruct
@@ -3,8 +3,8 @@ import os
env = SConscript("src/lib/godot-cpp/SConstruct")
-env.Append(CPPPATH=["src/", "src/lib/discord_social_sdk/include/"])
-sources = Glob("src/*.cpp")
+env.Append(CPPPATH=["src/","src/nodes/", "src/lib/discord_social_sdk/include/"])
+sources = Glob("src/*.cpp") + Glob("src/nodes/*.cpp")
if env["platform"] == "macos":
discord_library = "libdiscord_partner_sdk.dylib"
diff --git a/project/addons/discord-rpc-gd/Logo_V2_No_Bg.png b/project/addons/discord-rpc-gd/Logo_V2_No_Bg.png
deleted file mode 100644
index fb6c700..0000000
Binary files a/project/addons/discord-rpc-gd/Logo_V2_No_Bg.png and /dev/null differ
diff --git a/project/addons/discord-rpc-gd/Logo_V2_No_Bg.png.import b/project/addons/discord-rpc-gd/Logo_V2_No_Bg.png.import
deleted file mode 100644
index a1f1230..0000000
--- a/project/addons/discord-rpc-gd/Logo_V2_No_Bg.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://csl0e2px0cwc1"
-path="res://.godot/imported/Logo_V2_No_Bg.png-ed667fb599fe1e17ebcfc361ff7c9c93.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/discord-rpc-gd/Logo_V2_No_Bg.png"
-dest_files=["res://.godot/imported/Logo_V2_No_Bg.png-ed667fb599fe1e17ebcfc361ff7c9c93.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/project/addons/discord-rpc-gd/READ_ME_PLEASE.txt b/project/addons/discord-rpc-gd/READ_ME_PLEASE.txt
index a98427b..5f7db84 100644
--- a/project/addons/discord-rpc-gd/READ_ME_PLEASE.txt
+++ b/project/addons/discord-rpc-gd/READ_ME_PLEASE.txt
@@ -1,6 +1,6 @@
MINIMUM GODOT VERSION: 4.2
-PLEASE ACTIVATE THE PLUGIN UNDER Project -> Project Settings... -> Plugins -> DiscordRPC -> Status
+PLEASE ACTIVATE THE PLUGIN UNDER Project -> Project Settings... -> Plugins -> DiscordUtil -> Status
IGNORE THE RED ERRORS ON THE FIRST 2 RESTARTS
READ THE TUTORIAL LINKED IN THE WINDOW THAT WILL OPEN ON PLUGIN ENABLE
diff --git a/project/addons/discord-rpc-gd/bin/discord-rpc-gd.gdextension b/project/addons/discord-rpc-gd/bin/discord-rpc-gd.gdextension
index ddcb34d..4bf5476 100644
--- a/project/addons/discord-rpc-gd/bin/discord-rpc-gd.gdextension
+++ b/project/addons/discord-rpc-gd/bin/discord-rpc-gd.gdextension
@@ -1,6 +1,6 @@
[configuration]
-entry_symbol = "discordrpcgd_library_init"
+entry_symbol = "DiscordUtilgd_library_init"
compatibility_minimum = 4.1
[libraries]
diff --git a/project/addons/discord-rpc-gd/example.gd b/project/addons/discord-rpc-gd/example.gd
index 95f2926..a0ff1d7 100644
--- a/project/addons/discord-rpc-gd/example.gd
+++ b/project/addons/discord-rpc-gd/example.gd
@@ -1,8 +1,8 @@
-class_name DiscordRPCTutorial
+class_name DiscordUtilTutorial
extends Node
## 1. Put the addons/ folder in your Godot project[br]
-## 2. Enable the addon in your Project Settings under "Plugins" and "DiscordRPC". [br](if it doesn't show up restart your project and try again)[br]
+## 2. Enable the addon in your Project Settings under "Plugins" and "DiscordUtil". [br](if it doesn't show up restart your project and try again)[br]
## 3. Restart your project[br]
## 4. Create an Application under https://discord.com/developers/applications and get the Application ID br]
## 5. (optional) Set images under "Rich Presence" and "Art Assets" and remember the keys[br]
@@ -11,27 +11,27 @@ extends Node
## [codeblock]
## func _ready():
## # Application ID
-## DiscordRPC.app_id = 1099618430065324082
+## DiscordUtil.app_id = 1099618430065324082
## # this is boolean if everything worked
-## print("Discord working: " + str(DiscordRPC.get_is_discord_working()))
+## print("Discord working: " + str(DiscordUtil.get_is_discord_working()))
## # Set the first custom text row of the activity here
-## DiscordRPC.details = "A demo activity by vaporvee#1231"
+## DiscordUtil.details = "A demo activity by vaporvee#1231"
## # Set the second custom text row of the activity here
-## DiscordRPC.state = "Checkpoint 23/23"
+## DiscordUtil.state = "Checkpoint 23/23"
## # Image key for small image from "Art Assets" from the Discord Developer website
-## DiscordRPC.large_image = "game"
+## DiscordUtil.large_image = "game"
## # Tooltip text for the large image
-## DiscordRPC.large_image_text = "Try it now!"
+## DiscordUtil.large_image_text = "Try it now!"
## # Image key for large image from "Art Assets" from the Discord Developer website
-## DiscordRPC.small_image = "boss"
+## DiscordUtil.small_image = "boss"
## # Tooltip text for the small image
-## DiscordRPC.small_image_text = "Fighting the end boss! D:"
+## DiscordUtil.small_image_text = "Fighting the end boss! D:"
## # "02:41 elapsed" timestamp for the activity
-## DiscordRPC.start_timestamp = int(Time.get_unix_time_from_system())
+## DiscordUtil.start_timestamp = int(Time.get_unix_time_from_system())
## # "59:59 remaining" timestamp for the activity
-## DiscordRPC.end_timestamp = int(Time.get_unix_time_from_system()) + 3600
+## DiscordUtil.end_timestamp = int(Time.get_unix_time_from_system()) + 3600
## # Always refresh after changing the values!
-## DiscordRPC.refresh()
+## DiscordUtil.refresh()
## [/codeblock]
##
## @tutorial(More information here): https://github.com/vaporvee/discord-rpc-godot/wiki/Quick-start
diff --git a/project/addons/discord-rpc-gd/nodes/Debug.tscn b/project/addons/discord-rpc-gd/nodes/Debug.tscn
index 7d4d2ec..611eeab 100644
--- a/project/addons/discord-rpc-gd/nodes/Debug.tscn
+++ b/project/addons/discord-rpc-gd/nodes/Debug.tscn
@@ -11,10 +11,10 @@ script/source = "extends Node
@onready var animation_player: AnimationPlayer = $Panel/TextureRect/AnimationPlayer
func _ready():
- DiscordRPC.connect(\"activity_join_request\",_on_activity_join_request)
+ DiscordUtil.connect(\"activity_join_request\",_on_activity_join_request)
func _process(_delta) -> void:
- if(DiscordRPC.get_is_discord_working()):
+ if(DiscordUtil.get_is_discord_working()):
$Panel/TextureRect.self_modulate = Color(\"#3eff8d\")
if !animation_player.is_playing():
animation_player.play(\"pulsate\")
@@ -48,7 +48,7 @@ Is party public: {ppublic} (needs to be activated in Discord client settings)
Is instanced: {instanced}
\"
- #$Panel/Info.text = $Panel/Info.text.replace(\"{ppublic}\",str(DiscordRPC.is_public_party)).replace(\"{instanced}\",str(DiscordRPC.instanced)).replace(\"{ssecret}\",DiscordRPC.spectate_secret).replace(\"{jsecret}\",DiscordRPC.join_secret).replace(\"{msecret}\",DiscordRPC.match_secret).replace(\"{mpartysize}\",str(DiscordRPC.max_party_size)).replace(\"{cpartysize}\",str(DiscordRPC.current_party_size)).replace(\"{partyid}\",DiscordRPC.party_id).replace(\"{id}\",str(DiscordRPC.app_id)).replace(\"{details}\",DiscordRPC.details).replace(\"{state}\",DiscordRPC.state).replace(\"{lkey}\",DiscordRPC.large_image).replace(\"{ltext}\",DiscordRPC.large_image_text).replace(\"{skey}\",DiscordRPC.small_image).replace(\"{stext}\",DiscordRPC.small_image_text).replace(\"{stimestamp}\",str(DiscordRPC.start_timestamp)).replace(\"{etimestamp}\",str(DiscordRPC.end_timestamp))
+ #$Panel/Info.text = $Panel/Info.text.replace(\"{ppublic}\",str(DiscordUtil.is_public_party)).replace(\"{instanced}\",str(DiscordUtil.instanced)).replace(\"{ssecret}\",DiscordUtil.spectate_secret).replace(\"{jsecret}\",DiscordUtil.join_secret).replace(\"{msecret}\",DiscordUtil.match_secret).replace(\"{mpartysize}\",str(DiscordUtil.max_party_size)).replace(\"{cpartysize}\",str(DiscordUtil.current_party_size)).replace(\"{partyid}\",DiscordUtil.party_id).replace(\"{id}\",str(DiscordUtil.app_id)).replace(\"{details}\",DiscordUtil.details).replace(\"{state}\",DiscordUtil.state).replace(\"{lkey}\",DiscordUtil.large_image).replace(\"{ltext}\",DiscordUtil.large_image_text).replace(\"{skey}\",DiscordUtil.small_image).replace(\"{stext}\",DiscordUtil.small_image_text).replace(\"{stimestamp}\",str(DiscordUtil.start_timestamp)).replace(\"{etimestamp}\",str(DiscordUtil.end_timestamp))
var user_request: Dictionary = {};
@@ -58,25 +58,25 @@ func _on_activity_join_request(user_requesting: Dictionary) -> void:
func _on_accept_join_request_pressed() -> void:
if(!user_request.is_empty()):
- DiscordRPC.accept_join_request(user_request.id)
+ DiscordUtil.accept_join_request(user_request.id)
func _on_invite_with_user_id_text_submitted(new_text: String) -> void:
- DiscordRPC.send_invite(int(new_text),true,\"this is a test invite sent from godot\")
+ DiscordUtil.send_invite(int(new_text),true,\"this is a test invite sent from godot\")
func _on_accept_with_user_id_text_submitted(new_text: String) -> void:
- DiscordRPC.accept_invite(int(new_text))
+ DiscordUtil.accept_invite(int(new_text))
func _on_print_current_user_on_console_pressed() -> void:
- print(DiscordRPC.get_current_user())
+ print(DiscordUtil.get_current_user())
func _on_toggle_sdk_toggled(button_pressed: bool) -> void:
if(button_pressed):
- DiscordRPC.unclear()
+ DiscordUtil.unclear()
else:
- DiscordRPC.clear(false)
+ DiscordUtil.clear(false)
func _on_print_friends_pressed() -> void:
- print(DiscordRPC.get_all_relationships())
+ print(DiscordUtil.get_all_relationships())
"
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8abo6"]
diff --git a/project/addons/discord-rpc-gd/nodes/debug.gd b/project/addons/discord-rpc-gd/nodes/debug.gd
index d960441..73a707e 100644
--- a/project/addons/discord-rpc-gd/nodes/debug.gd
+++ b/project/addons/discord-rpc-gd/nodes/debug.gd
@@ -1,6 +1,6 @@
## This is a Debug Node wich will show some usefull info and buttons/input
##
-## The DiscordRPC Debug Node will show info about the current values of its variables and some buttons to change them.
+## The DiscordUtil Debug Node will show info about the current values of its variables and some buttons to change them.
##
## @tutorial: https://github.com/vaporvee/discord-rpc-godot/wiki
@tool
diff --git a/project/addons/discord-rpc-gd/nodes/discord_autoload.gd b/project/addons/discord-rpc-gd/nodes/discord_autoload.gd
index cfc6e60..6d4e51d 100644
--- a/project/addons/discord-rpc-gd/nodes/discord_autoload.gd
+++ b/project/addons/discord-rpc-gd/nodes/discord_autoload.gd
@@ -1,7 +1,7 @@
## This is a GDscript Node wich gets automatically added as Autoload while installing the addon.
##
## It can run in the background to comunicate with Discord.
-## You don't need to use it. If you remove it make sure to run [code]DiscordRPC.run_callbacks()[/code] in a [code]_process[/code] function.
+## You don't need to use it. If you remove it make sure to run [code]DiscordUtil.run_callbacks()[/code] in a [code]_process[/code] function.
##
## @tutorial: https://github.com/vaporvee/discord-rpc-godot/wiki
extends Node
@@ -10,4 +10,4 @@ func _ready() -> void:
pass
func _process(_delta) -> void:
- DiscordRPC.run_callbacks()
+ DiscordUtil.run_callbacks()
diff --git a/project/addons/discord-rpc-gd/nodes/discord_autoload.gd.uid b/project/addons/discord-rpc-gd/nodes/discord_autoload.gd.uid
index c84b4e2..3b52a24 100644
--- a/project/addons/discord-rpc-gd/nodes/discord_autoload.gd.uid
+++ b/project/addons/discord-rpc-gd/nodes/discord_autoload.gd.uid
@@ -1 +1 @@
-uid://d1ohgxo4k3cdf
+uid://dc5abjov0ebdr
diff --git a/project/addons/discord-rpc-gd/plugin.cfg b/project/addons/discord-rpc-gd/plugin.cfg
index 8354e0a..bb5693f 100644
--- a/project/addons/discord-rpc-gd/plugin.cfg
+++ b/project/addons/discord-rpc-gd/plugin.cfg
@@ -1,7 +1,7 @@
[plugin]
-name="DiscordRPC"
-description="Discord RPC Plugin for GDScript in Godot"
+name="Discord Social SDK"
+description="Discord Social SDK Plugin for GDScript in Godot"
author="vaporvee"
version="1.3.2"
script="plugin.gd"
diff --git a/project/addons/discord-rpc-gd/plugin.gd b/project/addons/discord-rpc-gd/plugin.gd
index c58da1e..250edfd 100644
--- a/project/addons/discord-rpc-gd/plugin.gd
+++ b/project/addons/discord-rpc-gd/plugin.gd
@@ -1,42 +1,43 @@
@tool
extends EditorPlugin
-const DiscordRPCDebug: GDScript = preload("res://addons/discord-rpc-gd/nodes/debug.gd")
-const DiscordRPCDebug_icon: Texture2D = preload("res://addons/discord-rpc-gd/Debug.svg")
-var loaded_DiscordRPCDebug: DiscordRPCDebug = DiscordRPCDebug.new()
+const DiscordSocialSDKDebug: GDScript = preload("res://addons/discord-rpc-gd/nodes/debug.gd")
+const DiscordSocialSDKDebug_icon: Texture2D = preload("res://addons/discord-rpc-gd/Debug.svg")
+var loaded_DiscordSocialSDKDebug: DiscordSocialSDKDebug = DiscordSocialSDKDebug.new()
var restart_window: ConfirmationDialog = preload("res://addons/discord-rpc-gd/restart_window.tscn").instantiate()
var plugin_cfg: ConfigFile = ConfigFile.new()
const plugin_data_filename: String = "/plugin_data.cfg"
-func _enter_tree() -> void:
- add_custom_type("DiscordRPCDebug","Node",DiscordRPCDebug,DiscordRPCDebug_icon)
- get_editor_interface().get_editor_settings().settings_changed.connect(_on_editor_settings_changed)
-
func _ready() -> void:
await get_tree().create_timer(0.5).timeout
plugin_cfg.load(get_editor_interface().get_editor_paths().get_data_dir() + plugin_data_filename)
- if !get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled"):
- get_editor_interface().get_editor_settings().set_setting("DiscordRPC/EditorPresence/enabled",plugin_cfg.get_value("Discord","editor_presence",false))
+ if !get_editor_interface().get_editor_settings().has_setting("DiscordSocialSDK/EditorPresence/enabled"):
+ get_editor_interface().get_editor_settings().set_setting("DiscordSocialSDK/EditorPresence/enabled",plugin_cfg.get_value("Discord","editor_presence",false))
+
+func _enter_tree() -> void:
+ add_custom_type("DiscordSocialSDKDebug","Node",DiscordSocialSDKDebug,DiscordSocialSDKDebug_icon)
+ get_editor_interface().get_editor_settings().settings_changed.connect(_on_editor_settings_changed)
func _exit_tree() -> void:
- if get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled"):
- get_editor_interface().get_editor_settings().erase("DiscordRPC/EditorPresence/enabled")
+ if get_editor_interface().get_editor_settings().has_setting("DiscordSocialSDK/EditorPresence/enabled"):
+ get_editor_interface().get_editor_settings().erase("DiscordSocialSDK/EditorPresence/enabled")
func _enable_plugin() -> void:
+ add_custom_type("DiscordSocialSDKDebug","Node",DiscordSocialSDKDebug,DiscordSocialSDKDebug_icon)
+ get_editor_interface().get_editor_settings().settings_changed.connect(_on_editor_settings_changed)
if FileAccess.file_exists(ProjectSettings.globalize_path("res://") + "addons/discord-rpc-gd/bin/.gdignore"):
DirAccess.remove_absolute(ProjectSettings.globalize_path("res://") + "addons/discord-rpc-gd/bin/.gdignore")
- add_autoload_singleton("DiscordRPCLoader","res://addons/discord-rpc-gd/nodes/discord_autoload.gd")
restart_window.connect("confirmed", save_no_restart)
restart_window.connect("canceled", save_and_restart)
get_editor_interface().popup_dialog_centered(restart_window)
print("IGNORE RED ERROR MESSAGES BEFORE THE SECOND RESTART!")
func _disable_plugin() -> void:
- remove_autoload_singleton("DiscordRPCLoader")
+ remove_autoload_singleton("DiscordUtilLoader")
FileAccess.open("res://addons/discord-rpc-gd/bin/.gdignore",FileAccess.WRITE)
- remove_custom_type("DiscordRPCDebug")
- get_editor_interface().get_editor_settings().erase("DiscordRPC/EditorPresence/enabled")
- push_warning("Please restart the editor to fully disable the DiscordRPC plugin")
+ remove_custom_type("DiscordSocialSDKDebug")
+ get_editor_interface().get_editor_settings().erase("DiscordSocialSDK/EditorPresence/enabled")
+ push_warning("Please restart the editor to fully disable the DiscordUtil plugin")
func save_and_restart() -> void:
get_editor_interface().restart_editor(true)
@@ -46,11 +47,11 @@ func save_no_restart() -> void:
var editor_presence: Node
func _on_editor_settings_changed() -> void:
- plugin_cfg.set_value("Discord","editor_presence",get_editor_interface().get_editor_settings().get_setting("DiscordRPC/EditorPresence/enabled"))
+ plugin_cfg.set_value("Discord","editor_presence",get_editor_interface().get_editor_settings().get_setting("DiscordSocialSDK/EditorPresence/enabled"))
plugin_cfg.save(get_editor_interface().get_editor_paths().get_data_dir() + plugin_data_filename)
if ClassDB.class_exists("EditorPresence") && editor_presence == null:
editor_presence = ClassDB.instantiate("EditorPresence")
- if get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled") && get_editor_interface().get_editor_settings().get_setting("DiscordRPC/EditorPresence/enabled"):
+ if get_editor_interface().get_editor_settings().has_setting("DiscordSocialSDK/EditorPresence/enabled") && get_editor_interface().get_editor_settings().get_setting("DiscordSocialSDK/EditorPresence/enabled"):
add_child(editor_presence)
else:
editor_presence.queue_free()
diff --git a/project/export_presets.cfg b/project/export_presets.cfg
index e8d80e7..245c88f 100644
--- a/project/export_presets.cfg
+++ b/project/export_presets.cfg
@@ -40,7 +40,7 @@ application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
-application/file_description="Discord RPC Godot Test"
+application/file_description="Discord Social SDK Godot Test"
application/copyright=""
application/trademarks=""
application/export_angle=0
diff --git a/project/main.gd b/project/main.gd
index 404e5bc..e90a598 100644
--- a/project/main.gd
+++ b/project/main.gd
@@ -3,41 +3,41 @@ extends Node
func _ready() -> void:
if GDExtensionManager.is_extension_loaded("res://addons/discord-rpc-gd/bin/discord-rpc-gd.gdextension"):
set_activity()
- DiscordRPC.connect("activity_join_request",_on_activity_join_request)
- #DiscordRPC.connect("activity_join",_on_activity_join)
- DiscordRPC.connect("activity_spectate",_on_activity_spectate)
- DiscordRPC.connect("relationships_init",_on_relationship_init)
- DiscordRPC.connect("updated_relationship", _on_updated_relationship)
+ DiscordUtil.connect("activity_join_request",_on_activity_join_request)
+ #DiscordUtil.connect("activity_join",_on_activity_join)
+ DiscordUtil.connect("activity_spectate",_on_activity_spectate)
+ DiscordUtil.connect("relationships_init",_on_relationship_init)
+ DiscordUtil.connect("updated_relationship", _on_updated_relationship)
func set_activity() -> void:
- #DiscordRPC.clear(false)
- DiscordRPC.app_id = 1099618430065324082
- DiscordRPC.debug()
- #DiscordRPC.details = "A demo activity by vaporvee#1231"
- #DiscordRPC.state = "Checkpoint 23/23"
+ #DiscordUtil.clear(false)
+ DiscordUtil.app_id = 1099618430065324082
+ DiscordUtil.debug()
+ #DiscordUtil.details = "A demo activity by vaporvee#1231"
+ #DiscordUtil.state = "Checkpoint 23/23"
#
- #DiscordRPC.large_image = "example_game"
- #DiscordRPC.large_image_text = "Try it now!"
- #DiscordRPC.small_image = "boss"
- #DiscordRPC.small_image_text = "Fighting the end boss! D:"
- #DiscordRPC.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time
+ #DiscordUtil.large_image = "example_game"
+ #DiscordUtil.large_image_text = "Try it now!"
+ #DiscordUtil.small_image = "boss"
+ #DiscordUtil.small_image_text = "Fighting the end boss! D:"
+ #DiscordUtil.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time
# It is NOT recommended to manage secrets locally! It's meant to be a payload wich the server understands and
# returns the other variables like current_party_size, party_id etc. Most of the values must differ from the others.
- var my_secret: String = str(randi_range(0,999999))
+ #var my_secret: String = str(randi_range(0,999999))
- #DiscordRPC.party_id = "mylobbycanbeeverything_" + my_secret
- #DiscordRPC.current_party_size = 1
- #DiscordRPC.max_party_size = 4
- #DiscordRPC.match_secret = "m_" + my_secret #better use seeds with 1 to 1 range instead of just chars
- #DiscordRPC.join_secret = "j_" + my_secret
- #DiscordRPC.spectate_secret = "s_" + my_secret
- #DiscordRPC.is_public_party = true
- #DiscordRPC.instanced = true #required for spectate
- #DiscordRPC.start_timestamp = int(Time.get_unix_time_from_system())
- DiscordRPC.register_command("C:\\Users\\yanni\\Desktop\\demo\\DiscordRPC.exe")
- #DiscordRPC.register_steam(1389990)
- DiscordRPC.refresh()
+ #DiscordUtil.party_id = "mylobbycanbeeverything_" + my_secret
+ #DiscordUtil.current_party_size = 1
+ #DiscordUtil.max_party_size = 4
+ #DiscordUtil.match_secret = "m_" + my_secret #better use seeds with 1 to 1 range instead of just chars
+ #DiscordUtil.join_secret = "j_" + my_secret
+ #DiscordUtil.spectate_secret = "s_" + my_secret
+ #DiscordUtil.is_public_party = true
+ #DiscordUtil.instanced = true #required for spectate
+ #DiscordUtil.start_timestamp = int(Time.get_unix_time_from_system())
+ DiscordUtil.register_command("C:\\Users\\yanni\\Desktop\\demo\\DiscordUtil.exe")
+ #DiscordUtil.register_steam(1389990)
+ DiscordUtil.refresh()
var user_request: Dictionary;
@@ -46,13 +46,13 @@ func _on_activity_join_request(user_requesting: Dictionary) -> void:
user_request = user_requesting
#func _on_activity_join(secret: String) -> void:
- #if(DiscordRPC.join_secret != secret):
- #DiscordRPC.current_party_size = clamp(int(secret) + 1, 0, DiscordRPC.max_party_size)
- #DiscordRPC.party_id = secret.replace("j_","mylobbycanbeeverything_")
- #DiscordRPC.match_secret = secret.replace("j_","m_")
- #DiscordRPC.join_secret = secret
- #DiscordRPC.spectate_secret = secret.replace("j_","s_")
- #DiscordRPC.refresh()
+ #if(DiscordUtil.join_secret != secret):
+ #DiscordUtil.current_party_size = clamp(int(secret) + 1, 0, DiscordUtil.max_party_size)
+ #DiscordUtil.party_id = secret.replace("j_","mylobbycanbeeverything_")
+ #DiscordUtil.match_secret = secret.replace("j_","m_")
+ #DiscordUtil.join_secret = secret
+ #DiscordUtil.spectate_secret = secret.replace("j_","s_")
+ #DiscordUtil.refresh()
func _on_activity_spectate(secret: String) -> void:
print(secret)
diff --git a/project/main.tscn b/project/main.tscn
index cdc410e..aa5633c 100644
--- a/project/main.tscn
+++ b/project/main.tscn
@@ -23,7 +23,7 @@ position = Vector2(789, 330.5)
scale = Vector2(0.408203, 0.408203)
texture = ExtResource("2_gd222")
-[node name="DiscordRPC Test" type="RichTextLabel" parent="."]
+[node name="DiscordUtil Test" type="RichTextLabel" parent="."]
anchors_preset = -1
anchor_left = 0.293
anchor_top = 0.59
@@ -38,7 +38,10 @@ grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 4
bbcode_enabled = true
-text = "[center][font s=60]DiscordRPC Test"
+text = "[center][font s=60]DiscordUtil Test"
-[node name="DiscordRPCDebug" type="Node" parent="."]
+[node name="DiscordSocialSDKDebug" type="Node" parent="."]
script = ExtResource("6_ujijw")
+
+[node name="DiscordConnector" type="DiscordConnector" parent="."]
+process_mode = 4
diff --git a/project/project.godot b/project/project.godot
index 484656b..d36b078 100644
--- a/project/project.godot
+++ b/project/project.godot
@@ -10,7 +10,7 @@ config_version=5
[application]
-config/name="GDExtension DiscordRPC Test Project"
+config/name="GDExtension DiscordUtil Test Project"
config/tags=PackedStringArray("vaporvee")
run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.4")
@@ -22,7 +22,6 @@ config/icon="res://assets/Logo_V2.png"
[autoload]
PluginManager="*res://plugin_manager.gd"
-DiscordRPCLoader="*res://addons/discord-rpc-gd/nodes/discord_autoload.gd"
[debug]
@@ -36,6 +35,7 @@ gdscript/warnings/unsafe_call_argument=1
[display]
window/size/resizable=false
+display_server/driver.linuxbsd="wayland"
[dotnet]
diff --git a/src/definitions.h b/src/definitions.h
new file mode 100644
index 0000000..b62450c
--- /dev/null
+++ b/src/definitions.h
@@ -0,0 +1,13 @@
+#define BIND_METHOD(class_name, method, ...) godot::ClassDB::bind_method(D_METHOD(#method, ##__VA_ARGS__), &class_name::method)
+#define BIND_SET_GET(class_name, property_name, variant_type, ...) \
+ godot::ClassDB::bind_method(D_METHOD("get_" #property_name), &class_name::get_##property_name); \
+ godot::ClassDB::bind_method(D_METHOD("set_" #property_name, #variant_type), &class_name::set_##property_name); \
+ godot::ClassDB::add_property(class_name::get_class_static(), PropertyInfo(variant_type, #property_name, ##__VA_ARGS__), "set_" #property_name, "get_" #property_name)
+#define BIND_SIGNAL(class_name, signal_name, ...) godot::ClassDB::add_signal(class_name::get_class_static(), MethodInfo(#signal_name, ##__VA_ARGS__))
+// getter isn't mandatory for this project
+#define SET_GET(class_name, variable, setter, ...) decltype(class_name::variable) class_name::get_##variable() { return variable; } void class_name::set_##variable(decltype(class_name::variable) value) { variable = value; setter; }
+
+#define RESOLVE_TYPE(default_value) \
+ typename std::conditional::value, uint64_t, decltype(default_value)>::type
+
+#define H_SET_GET(property_name, default_value) private: RESOLVE_TYPE(default_value) property_name = default_value; public: RESOLVE_TYPE(default_value) get_##property_name(); void set_##property_name(RESOLVE_TYPE(default_value) value);
\ No newline at end of file
diff --git a/src/nodes/discord_connector.cpp b/src/nodes/discord_connector.cpp
new file mode 100644
index 0000000..223d1d7
--- /dev/null
+++ b/src/nodes/discord_connector.cpp
@@ -0,0 +1,65 @@
+#include "discord_connector.h"
+
+DiscordConnector *DiscordConnector::singleton = nullptr;
+
+void DiscordConnector::_bind_methods()
+{
+ BIND_SET_GET(DiscordConnector, app_id, Variant::INT, godot::PROPERTY_HINT_RANGE, "-99999,99999,or_less,or_greater,hide_slider");
+ BIND_SET_GET(DiscordConnector, auto_connect, Variant::BOOL);
+ BIND_SET_GET(DiscordConnector, token_auto_manage, Variant::BOOL);
+}
+DiscordConnector::DiscordConnector()
+{
+ singleton = this;
+}
+DiscordConnector::~DiscordConnector()
+{
+ singleton = nullptr;
+}
+DiscordConnector *DiscordConnector::get_singleton()
+{
+ return singleton;
+}
+
+void DiscordConnector::_ready()
+{
+ client = std::make_shared();
+}
+
+void DiscordConnector::_process(double delta)
+{
+ if (Engine::get_singleton()->is_editor_hint() && !editor_process)
+ {
+ discordpp::RunCallbacks();
+ }
+}
+
+void DiscordConnector::set_app_id(uint64_t value)
+{
+ app_id = value;
+}
+
+uint64_t DiscordConnector::get_app_id()
+{
+ return app_id;
+}
+
+void DiscordConnector::set_token_auto_manage(bool value)
+{
+ token_auto_manage = value;
+}
+
+bool DiscordConnector::get_token_auto_manage()
+{
+ return token_auto_manage;
+}
+
+void DiscordConnector::set_auto_connect(bool value)
+{
+ auto_connect = value;
+}
+
+bool DiscordConnector::get_auto_connect()
+{
+ return auto_connect;
+}
\ No newline at end of file
diff --git a/src/nodes/discord_connector.h b/src/nodes/discord_connector.h
new file mode 100644
index 0000000..49d4121
--- /dev/null
+++ b/src/nodes/discord_connector.h
@@ -0,0 +1,35 @@
+#ifndef DISCORD_CONNECTOR_H
+#define DISCORD_CONNECTOR_H
+
+#include "discord_social_sdk.h"
+
+using namespace godot;
+
+class DiscordConnector : public DiscordSocialSDK
+{
+ GDCLASS(DiscordConnector, DiscordSocialSDK);
+
+ static DiscordConnector *singleton;
+
+protected:
+ static void _bind_methods();
+
+public:
+ static DiscordConnector *
+ get_singleton();
+
+ bool editor_process = false;
+
+ std::shared_ptr client;
+
+ H_SET_GET(app_id, 0)
+ H_SET_GET(token_auto_manage, true)
+ H_SET_GET(auto_connect, false)
+
+ DiscordConnector();
+ ~DiscordConnector();
+ void _ready() override;
+ void _process(double delta) override;
+};
+
+#endif
\ No newline at end of file
diff --git a/src/nodes/discord_social_sdk.cpp b/src/nodes/discord_social_sdk.cpp
new file mode 100644
index 0000000..5235861
--- /dev/null
+++ b/src/nodes/discord_social_sdk.cpp
@@ -0,0 +1,19 @@
+#include "discord_social_sdk.h"
+
+DiscordSocialSDK *DiscordSocialSDK::singleton = nullptr;
+
+void DiscordSocialSDK::_bind_methods()
+{
+}
+DiscordSocialSDK::DiscordSocialSDK()
+{
+ singleton = this;
+}
+DiscordSocialSDK::~DiscordSocialSDK()
+{
+ singleton = nullptr;
+}
+DiscordSocialSDK *DiscordSocialSDK::get_singleton()
+{
+ return singleton;
+}
\ No newline at end of file
diff --git a/src/nodes/discord_social_sdk.h b/src/nodes/discord_social_sdk.h
new file mode 100644
index 0000000..63a6815
--- /dev/null
+++ b/src/nodes/discord_social_sdk.h
@@ -0,0 +1,37 @@
+#ifndef DISCORD_SOCIAL_SDK_H
+#define DISCORD_SOCIAL_SDK_H
+
+#include "discordpp.h"
+#include "../definitions.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace godot;
+
+class DiscordSocialSDK : public Node
+{
+ GDCLASS(DiscordSocialSDK, Node);
+
+ static DiscordSocialSDK *singleton;
+
+protected:
+ static void _bind_methods();
+
+public:
+ static DiscordSocialSDK *
+ get_singleton();
+
+ DiscordSocialSDK();
+ ~DiscordSocialSDK();
+};
+
+#endif
\ No newline at end of file
diff --git a/src/editor_presence.cpp b/src/nodes/editor_presence.cpp
similarity index 91%
rename from src/editor_presence.cpp
rename to src/nodes/editor_presence.cpp
index 077d65f..513fe92 100644
--- a/src/editor_presence.cpp
+++ b/src/nodes/editor_presence.cpp
@@ -1,7 +1,4 @@
#include "editor_presence.h"
-#include
-#include
-#include
EditorPresence *EditorPresence::singleton = nullptr;
diff --git a/src/editor_presence.h b/src/nodes/editor_presence.h
similarity index 61%
rename from src/editor_presence.h
rename to src/nodes/editor_presence.h
index 4e4f915..9898f83 100644
--- a/src/editor_presence.h
+++ b/src/nodes/editor_presence.h
@@ -1,20 +1,13 @@
#ifndef EDITOR_PRESENCE_H
#define EDITOR_PRESENCE_H
-#include
-#include "discordpp.h"
-#include
-#include
-#include
-#include
-#include
-#include
+#include "discord_social_sdk.h"
using namespace godot;
-class EditorPresence : public Node
+class EditorPresence : public DiscordSocialSDK
{
- GDCLASS(EditorPresence, Node);
+ GDCLASS(EditorPresence, DiscordSocialSDK);
static EditorPresence *singleton;
diff --git a/src/register_types.cpp b/src/register_types.cpp
index b62b518..649353f 100644
--- a/src/register_types.cpp
+++ b/src/register_types.cpp
@@ -1,46 +1,39 @@
#include "register_types.h"
-#include
-#include
-#include
-#include
-#include
-
-#include "discordpp.h"
-#include "discordgodot.h"
-#include "editor_presence.h"
using namespace godot;
-static DiscordRPC *discordrpc;
+static DiscordUtil *discordutil;
-void initialize_discordrpc_module(ModuleInitializationLevel p_level)
+void initialize_DiscordUtil_module(ModuleInitializationLevel p_level)
{
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE)
{
- ClassDB::register_class();
- discordrpc = memnew(DiscordRPC);
- Engine::get_singleton()->register_singleton("DiscordRPC", DiscordRPC::get_singleton());
+ ClassDB::register_abstract_class();
+ ClassDB::register_class();
+ discordutil = memnew(DiscordUtil);
+ Engine::get_singleton()->register_singleton("DiscordUtil", DiscordUtil::get_singleton());
ClassDB::register_class();
+ ClassDB::register_class();
}
}
-void uninitialize_discordrpc_module(ModuleInitializationLevel p_level)
+void uninitialize_DiscordUtil_module(ModuleInitializationLevel p_level)
{
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE)
{
- Engine::get_singleton()->unregister_singleton("DiscordRPC");
- memdelete(discordrpc);
+ Engine::get_singleton()->unregister_singleton("DiscordUtil");
+ memdelete(discordutil);
}
}
extern "C"
{
- GDExtensionBool GDE_EXPORT discordrpcgd_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization)
+ GDExtensionBool GDE_EXPORT DiscordUtilgd_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization)
{
godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
- init_obj.register_initializer(initialize_discordrpc_module);
- init_obj.register_terminator(uninitialize_discordrpc_module);
+ init_obj.register_initializer(initialize_DiscordUtil_module);
+ init_obj.register_terminator(uninitialize_DiscordUtil_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init();
diff --git a/src/register_types.h b/src/register_types.h
index 61012a7..aae4e63 100644
--- a/src/register_types.h
+++ b/src/register_types.h
@@ -1,7 +1,20 @@
#ifndef REGISTER_TYPES_H
#define REGISTER_TYPES_H
-void initialize_discordrpc_module();
-void uninitialize_discordrpc_module();
+#define DISCORDPP_IMPLEMENTATION // this is way too important to forget
+
+void initialize_DiscordUtil_module();
+void uninitialize_DiscordUtil_module();
+
+#include
+#include
+#include
+#include
+#include
+
+#include "util.h"
+#include "nodes/discord_social_sdk.h"
+#include "nodes/editor_presence.h"
+#include "nodes/discord_connector.h"
#endif // REGISTER_TYPES_H
\ No newline at end of file
diff --git a/src/discordgodot.cpp b/src/util.cpp
similarity index 75%
rename from src/discordgodot.cpp
rename to src/util.cpp
index e33432c..8bd8f9e 100644
--- a/src/discordgodot.cpp
+++ b/src/util.cpp
@@ -1,77 +1,59 @@
-#define DISCORDPP_IMPLEMENTATION // this is way too important to forget
-#include "discordpp.h"
-#include "discordgodot.h"
-#include
-#include
+#include "util.h"
-#define BIND_METHOD(method, ...) godot::ClassDB::bind_method(D_METHOD(#method, ##__VA_ARGS__), &DiscordRPC::method)
-#define BIND_SET_GET(property_name, variant_type) \
- godot::ClassDB::bind_method(D_METHOD("get_" #property_name), &DiscordRPC::get_##property_name); \
- godot::ClassDB::bind_method(D_METHOD("set_" #property_name, #variant_type), &DiscordRPC::set_##property_name); \
- godot::ClassDB::add_property(get_class_static(), PropertyInfo(variant_type, #property_name), "set_" #property_name, "get_" #property_name)
-#define BIND_SIGNAL(signal_name, ...) godot::ClassDB::add_signal(get_class_static(), MethodInfo(#signal_name, ##__VA_ARGS__))
-#define SET_GET(variable, setter, ...) /*getter isn't mandatory for this project*/ \
- decltype(DiscordRPC::variable) DiscordRPC::get_##variable() { return variable; } \
- void DiscordRPC::set_##variable(decltype(DiscordRPC::variable) value) \
- { \
- variable = value; \
- setter; \
- }
+DiscordUtil *DiscordUtil::singleton = nullptr;
-DiscordRPC *DiscordRPC::singleton = nullptr;
-
-void DiscordRPC::_bind_methods()
+void DiscordUtil::_bind_methods()
{
- BIND_SET_GET(app_id, Variant::INT);
- BIND_SIGNAL(activity_join, PropertyInfo(Variant::STRING, "join_secret"));
- BIND_SIGNAL(activity_spectate, PropertyInfo(Variant::STRING, "spectate_secret"));
- BIND_SIGNAL(activity_join_request, PropertyInfo(Variant::DICTIONARY, "user_requesting"));
- BIND_SIGNAL(updated_relationship, PropertyInfo(Variant::DICTIONARY, "relationship"));
- BIND_SIGNAL(overlay_toggle, PropertyInfo(Variant::BOOL, "is_locked"));
- BIND_SIGNAL(relationships_init);
- BIND_METHOD(debug);
- BIND_METHOD(run_callbacks);
- BIND_METHOD(refresh);
- ClassDB::bind_method(D_METHOD("clear", "reset_values"), &DiscordRPC::clear, DEFVAL(false));
- BIND_METHOD(unclear);
- BIND_METHOD(register_command, "command");
- BIND_METHOD(register_steam, "steam_id");
- BIND_METHOD(accept_join_request, "user_id");
- BIND_METHOD(send_invite, "user_id", "is_spectate", "message_content");
- BIND_METHOD(accept_invite, "user_id");
- BIND_METHOD(get_current_user);
- BIND_METHOD(get_all_relationships);
- BIND_METHOD(get_is_overlay_enabled);
- BIND_METHOD(get_is_overlay_locked);
- BIND_METHOD(open_invite_overlay, "is_spectate");
- BIND_METHOD(open_server_invite_overlay, "invite_code");
- BIND_METHOD(open_voice_settings);
- BIND_METHOD(get_is_discord_working);
+ BIND_SET_GET(DiscordUtil, app_id, Variant::INT);
+ BIND_SIGNAL(DiscordUtil, activity_join, PropertyInfo(Variant::STRING, "join_secret"));
+ BIND_SIGNAL(DiscordUtil, activity_spectate, PropertyInfo(Variant::STRING, "spectate_secret"));
+ BIND_SIGNAL(DiscordUtil, activity_join_request, PropertyInfo(Variant::DICTIONARY, "user_requesting"));
+ BIND_SIGNAL(DiscordUtil, updated_relationship, PropertyInfo(Variant::DICTIONARY, "relationship"));
+ BIND_SIGNAL(DiscordUtil, overlay_toggle, PropertyInfo(Variant::BOOL, "is_locked"));
+ BIND_SIGNAL(DiscordUtil, relationships_init);
+ BIND_METHOD(DiscordUtil, debug);
+ BIND_METHOD(DiscordUtil, run_callbacks);
+ BIND_METHOD(DiscordUtil, refresh);
+ ClassDB::bind_method(D_METHOD("clear", "reset_values"), &DiscordUtil::clear, DEFVAL(false));
+ BIND_METHOD(DiscordUtil, unclear);
+ BIND_METHOD(DiscordUtil, register_command, "command");
+ BIND_METHOD(DiscordUtil, register_steam, "steam_id");
+ BIND_METHOD(DiscordUtil, accept_join_request, "user_id");
+ BIND_METHOD(DiscordUtil, send_invite, "user_id", "is_spectate", "message_content");
+ BIND_METHOD(DiscordUtil, accept_invite, "user_id");
+ BIND_METHOD(DiscordUtil, get_current_user);
+ BIND_METHOD(DiscordUtil, get_all_relationships);
+ BIND_METHOD(DiscordUtil, get_is_overlay_enabled);
+ BIND_METHOD(DiscordUtil, get_is_overlay_locked);
+ BIND_METHOD(DiscordUtil, open_invite_overlay, "is_spectate");
+ BIND_METHOD(DiscordUtil, open_server_invite_overlay, "invite_code");
+ BIND_METHOD(DiscordUtil, open_voice_settings);
+ BIND_METHOD(DiscordUtil, get_is_discord_working);
}
-DiscordRPC::DiscordRPC()
+DiscordUtil::DiscordUtil()
{
ERR_FAIL_COND(singleton != nullptr);
singleton = this;
}
-DiscordRPC::~DiscordRPC()
+DiscordUtil::~DiscordUtil()
{
app_id = 0;
ERR_FAIL_COND(singleton != this);
singleton = nullptr;
}
-DiscordRPC *DiscordRPC::get_singleton()
+DiscordUtil *DiscordUtil::get_singleton()
{
return singleton;
}
-void DiscordRPC::run_callbacks()
+void DiscordUtil::run_callbacks()
{
discordpp::RunCallbacks();
}
-void DiscordRPC::debug()
+void DiscordUtil::debug()
{
auto client = std::make_shared();
@@ -149,7 +131,7 @@ void DiscordRPC::debug()
} });
}
-void DiscordRPC::set_app_id(uint64_t value)
+void DiscordUtil::set_app_id(uint64_t value)
{
app_id = value;
if (app_id > 0)
@@ -164,35 +146,35 @@ void DiscordRPC::set_app_id(uint64_t value)
core->UserManager().GetCurrentUser(&user); });
// signals
core->ActivityManager().OnActivityJoin.Connect([](const char *secret)
- { DiscordRPC::get_singleton()
+ { DiscordUtil::get_singleton()
->emit_signal("activity_join", secret); });
core->ActivityManager().OnActivitySpectate.Connect([](const char *secret)
- { DiscordRPC::get_singleton()
+ { DiscordUtil::get_singleton()
->emit_signal("activity_spectate", secret); });
core->ActivityManager().OnActivityJoinRequest.Connect([this](discordpp::User const &user)
- { DiscordRPC::get_singleton()
+ { DiscordUtil::get_singleton()
->emit_signal("activity_join_request", user2dict(user)); });
core->OverlayManager().OnToggle.Connect([](bool is_locked)
- { DiscordRPC::get_singleton()
+ { DiscordUtil::get_singleton()
->emit_signal("overlay_toggle", is_locked); });
core->RelationshipManager().OnRefresh.Connect([&]()
- { DiscordRPC::get_singleton()
+ { DiscordUtil::get_singleton()
->emit_signal("relationships_init"); });
core->RelationshipManager().OnRelationshipUpdate.Connect([&](discordpp::Relationship const &relationship)
- { DiscordRPC::get_singleton()
+ { DiscordUtil::get_singleton()
->emit_signal("updated_relationship", relationship2dict(relationship)); });
}
*/
}
}
-uint64_t DiscordRPC::get_app_id()
+uint64_t DiscordUtil::get_app_id()
{
if (app_id != 0)
return app_id;
return old_app_id;
}
-void DiscordRPC::refresh()
+void DiscordUtil::refresh()
{
if (get_is_discord_working())
{
@@ -205,7 +187,7 @@ void DiscordRPC::refresh()
UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!");
}
-void DiscordRPC::clear(bool reset_values = false)
+void DiscordUtil::clear(bool reset_values = false)
{
if (get_is_discord_working())
{
@@ -221,7 +203,7 @@ void DiscordRPC::clear(bool reset_values = false)
}
}
-void DiscordRPC::unclear()
+void DiscordUtil::unclear()
{
if (old_app_id > 0)
{
@@ -233,7 +215,7 @@ void DiscordRPC::unclear()
UtilityFunctions::push_warning("Discord Activity couldn't be uncleared. Maybe it didn't get cleared before?");
}
-bool DiscordRPC::get_is_overlay_enabled()
+bool DiscordUtil::get_is_overlay_enabled()
{
bool ie;
if (get_is_discord_working())
@@ -243,7 +225,7 @@ bool DiscordRPC::get_is_overlay_enabled()
}
return ie;
}
-bool DiscordRPC::get_is_overlay_locked()
+bool DiscordUtil::get_is_overlay_locked()
{
bool il;
if (get_is_discord_working())
@@ -253,64 +235,64 @@ bool DiscordRPC::get_is_overlay_locked()
}
return il;
}
-void DiscordRPC::set_is_overlay_locked(bool value)
+void DiscordUtil::set_is_overlay_locked(bool value)
{
is_overlay_locked = value;
if (get_is_discord_working())
// core->OverlayManager().SetLocked(value, {});
return;
}
-void DiscordRPC::open_invite_overlay(bool is_spectate)
+void DiscordUtil::open_invite_overlay(bool is_spectate)
{
if (get_is_discord_working())
// core->OverlayManager().OpenActivityInvite(static_cast(is_spectate + 1), {});
return;
}
-void DiscordRPC::open_server_invite_overlay(String invite_code)
+void DiscordUtil::open_server_invite_overlay(String invite_code)
{
if (get_is_discord_working())
// core->OverlayManager().OpenGuildInvite(invite_code.utf8().get_data(), {});
return;
}
-void DiscordRPC::open_voice_settings()
+void DiscordUtil::open_voice_settings()
{
if (get_is_discord_working())
// core->OverlayManager().OpenVoiceSettings({});
return;
}
-void DiscordRPC::accept_join_request(uint64_t user_id)
+void DiscordUtil::accept_join_request(uint64_t user_id)
{
if (get_is_discord_working())
// core->ActivityManager().SendRequestReply(user_id, static_cast(1), {});
return;
}
-void DiscordRPC::send_invite(uint64_t user_id, bool is_spectate = false, String message_content = "")
+void DiscordUtil::send_invite(uint64_t user_id, bool is_spectate = false, String message_content = "")
{
if (get_is_discord_working())
// core->ActivityManager().SendInvite(user_id, static_cast(is_spectate + 1), message_content.utf8().get_data(), {});
return;
}
-void DiscordRPC::accept_invite(uint64_t user_id)
+void DiscordUtil::accept_invite(uint64_t user_id)
{
if (get_is_discord_working())
// core->ActivityManager().AcceptInvite(user_id, {});
return;
}
-void DiscordRPC::register_command(String value)
+void DiscordUtil::register_command(String value)
{
if (get_is_discord_working())
// core->ActivityManager().RegisterCommand(value.utf8().get_data());
return;
}
-void DiscordRPC::register_steam(int32_t value)
+void DiscordUtil::register_steam(int32_t value)
{
if (get_is_discord_working())
// core->ActivityManager().RegisterSteam(value);
return;
}
-Dictionary DiscordRPC::get_current_user()
+Dictionary DiscordUtil::get_current_user()
{
Dictionary userdict;
if (get_is_discord_working())
@@ -322,7 +304,7 @@ Dictionary DiscordRPC::get_current_user()
return userdict;
}
-Dictionary DiscordRPC::get_relationship(uint64_t user_id)
+Dictionary DiscordUtil::get_relationship(uint64_t user_id)
{
Dictionary dict;
if (get_is_discord_working())
@@ -334,7 +316,7 @@ Dictionary DiscordRPC::get_relationship(uint64_t user_id)
return dict;
}
-Array DiscordRPC::get_all_relationships()
+Array DiscordUtil::get_all_relationships()
{
Array all_relationships;
/*core->RelationshipManager().Filter(
@@ -351,7 +333,7 @@ Array DiscordRPC::get_all_relationships()
return all_relationships;
}
-Dictionary DiscordRPC::user2dict(discordpp::UserHandle user)
+Dictionary DiscordUtil::user2dict(discordpp::UserHandle user)
{
Dictionary userdict;
/*userdict["avatar"] = user.GetAvatar(); // can be empty when user has no avatar
@@ -367,7 +349,7 @@ Dictionary DiscordRPC::user2dict(discordpp::UserHandle user)
return userdict;
}
-Dictionary DiscordRPC::relationship2dict(discordpp::RelationshipHandle relationship)
+Dictionary DiscordUtil::relationship2dict(discordpp::RelationshipHandle relationship)
{
Dictionary dict_relationship;
Dictionary presence;
@@ -439,7 +421,7 @@ Dictionary DiscordRPC::relationship2dict(discordpp::RelationshipHandle relations
return dict_relationship;
}
-bool DiscordRPC::get_is_discord_working()
+bool DiscordUtil::get_is_discord_working()
{
return app_id > 0; /*result.Successful() &&*/
}
\ No newline at end of file
diff --git a/src/discordgodot.h b/src/util.h
similarity index 76%
rename from src/discordgodot.h
rename to src/util.h
index 05947ec..dffb594 100644
--- a/src/discordgodot.h
+++ b/src/util.h
@@ -1,33 +1,31 @@
#ifndef DISCORDGODOT_H
#define DISCORDGODOT_H
-#include
+#include "definitions.h"
#include "discordpp.h"
+#include
#include
#include
-
-#define H_SET_GET(variable_type, property_name) \
- variable_type property_name; \
- variable_type get_##property_name(); \
- void set_##property_name(variable_type value);
+#include
+#include
using namespace godot;
-class DiscordRPC : public Object
+class DiscordUtil : public Object
{
- GDCLASS(DiscordRPC, Object);
+ GDCLASS(DiscordUtil, Object);
- static DiscordRPC *singleton;
+ static DiscordUtil *singleton;
protected:
static void _bind_methods();
public:
- static DiscordRPC *
+ static DiscordUtil *
get_singleton();
- DiscordRPC();
- ~DiscordRPC();
+ DiscordUtil();
+ ~DiscordUtil();
// INTERBNAL
uint64_t old_app_id;
@@ -37,7 +35,7 @@ public:
void set_app_id(uint64_t value);
uint64_t get_app_id();
uint64_t app_id = 0; // needs to be directly set to 0 or it will crash randomly
- H_SET_GET(bool, is_overlay_locked)
+ H_SET_GET(is_overlay_locked, false)
void debug();
void run_callbacks();