added EditorPresence

This commit is contained in:
Yannik
2023-05-16 23:38:51 +02:00
parent 7e8c1cc7bb
commit fd5a59d1eb
6 changed files with 40 additions and 17 deletions

View File

@@ -1,7 +1,7 @@
@tool
extends EditorExportPlugin
func _export_file(_path, _type, features):
func _export_file(_path, _type, features) -> void:
if features[2] == "windows":
if features[4] == "x86_64":
add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll",[],"/")

View File

@@ -1,5 +1,8 @@
## This always needs to run in the background if you want to comunicate with the discord client.
extends Node
@export var is_running: bool =false
func _process(delta) -> void:
discord_sdk.coreupdate()
is_running = true

View File

@@ -1,7 +1,6 @@
## This is a Debug Node wich will show (only if the project runs) some usefull info and buttons/input
extends Node
const DebugNodeGroup = preload("res://addons/discord-sdk-gd/nodes/Debug.tscn")
func _ready():
func _ready() -> void:
const DebugNodeGroup: PackedScene = preload("res://addons/discord-sdk-gd/nodes/Debug.tscn")
add_child(DebugNodeGroup.instantiate())

View File

@@ -14,14 +14,34 @@ const ExportPlugin = preload("res://addons/discord-sdk-gd/export.gd")
var loaded_exportplugin = ExportPlugin.new()
func _enter_tree():
func _enable_plugin() -> void:
print("DiscordSDK Addon got enabled")
add_custom_type("DiscordSDKLoader","Node",DiscordSDKLoader,DiscordSDKLoader_icon)
add_custom_type("DiscordSDKDebug","Node",DiscordSDKDebug,DiscordSDKDebug_icon)
add_autoload_singleton("DiscordSDKLoader", "res://addons/discord-sdk-gd/nodes/DiscordSDKLoader.tscn")
add_autoload_singleton("DiscordSDKLoader", "res://addons/discord-sdk-gd/nodes/core_updater.gd")
add_export_plugin(loaded_exportplugin)
func disable_plugin():
ProjectSettings.set_setting("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_initial_value("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_restart_if_changed("DiscordSDK/EditorPresence/enabled",true)
func _disable_plugin() -> void:
print("DiscordSDK Addon got disabled")
remove_autoload_singleton("DiscordSDKLoader")
remove_custom_type("DiscordSDKLoader")
remove_custom_type("DiscordSDKDebug")
remove_autoload_singleton("DiscordSDKLoader")
remove_export_plugin(loaded_exportplugin)
ProjectSettings.clear("DiscordSDK/EditorPresence/enabled")
func _process(_delta):
if(ProjectSettings.get_setting("DiscordSDK/EditorPresence/enabled")&&!get_editor_interface().is_playing_scene()):
if(discord_sdk.app_id != 1108142249990176808):
discord_sdk.app_id = 1108142249990176808
discord_sdk.details = ProjectSettings.get_setting("application/config/name")
discord_sdk.state = "Editing: \""+ str(get_tree().edited_scene_root.scene_file_path).replace("res://","") +"\""
discord_sdk.large_image = "godot"
discord_sdk.large_image_text = str(Engine.get_version_info())
discord_sdk.start_timestamp = int(Time.get_unix_time_from_system())
discord_sdk.refresh()
if(discord_sdk.app_id == 1108142249990176808):
discord_sdk.coreupdate()

View File

@@ -1,12 +1,13 @@
extends Node
func _ready():
func _ready() -> void:
set_activity()
discord_sdk.connect("activity_join_request",_on_activity_join_request)
discord_sdk.connect("activity_join",_on_activity_join)
discord_sdk.connect("activity_spectate",_on_activity_spectate)
func set_activity():
func set_activity() -> void:
discord_sdk.clear()
discord_sdk.app_id = 1099618430065324082
discord_sdk.details = "A demo activity by vaporvee#1231"
discord_sdk.state = "Checkpoint 23/23"
@@ -19,7 +20,7 @@ func set_activity():
# 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 = str(randi_range(0,999999))
var my_secret: String = str(randi_range(0,999999))
discord_sdk.party_id = "mylobbycanbeeverything_" + my_secret
discord_sdk.current_party_size = 1
@@ -34,13 +35,13 @@ func set_activity():
#discord_sdk.register_steam(1389990)
discord_sdk.refresh()
var user_request = {};
var user_request: Dictionary;
func _on_activity_join_request(user_requesting):
func _on_activity_join_request(user_requesting) -> void:
print(user_requesting)
user_request = user_requesting
func _on_activity_join(secret):
func _on_activity_join(secret) -> void:
if(discord_sdk.join_secret != secret):
discord_sdk.current_party_size = clamp(int(secret) + 1, 0, discord_sdk.max_party_size)
discord_sdk.party_id = secret.replace("j_","mylobbycanbeeverything_")
@@ -49,7 +50,7 @@ func _on_activity_join(secret):
discord_sdk.spectate_secret = secret.replace("j_","s_")
discord_sdk.refresh()
func _on_activity_spectate(secret):
func _on_activity_spectate(secret) -> void:
print(secret)
func _on_toggle_sdk_toggled(button_pressed):

View File

@@ -20,7 +20,7 @@ config/icon="res://assets/Logo_V2.png"
[autoload]
DiscordSDKLoader="*res://addons/discord-sdk-gd/nodes/DiscordSDKLoader.tscn"
DiscordSDKLoader="*res://addons/discord-sdk-gd/nodes/core_updater.gd"
[display]