mirror of
				https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
				synced 2025-11-04 08:35:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			GDScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			GDScript
		
	
	
		
			Executable File
		
	
	
	
	
@tool
 | 
						|
extends EditorPlugin
 | 
						|
 | 
						|
const DiscordRPCDebug = preload("res://addons/discord-rpc-gd/nodes/debug.gd")
 | 
						|
const DiscordRPCDebug_icon = preload("res://addons/discord-rpc-gd/Debug.svg")
 | 
						|
var loaded_DiscordRPCDebug = DiscordRPCDebug.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 = "/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))
 | 
						|
 | 
						|
func _exit_tree():
 | 
						|
	if get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled"):
 | 
						|
		get_editor_interface().get_editor_settings().erase("DiscordRPC/EditorPresence/enabled")
 | 
						|
 | 
						|
func _enable_plugin() -> void:
 | 
						|
	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")
 | 
						|
	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")
 | 
						|
 | 
						|
func save_and_restart() -> void:
 | 
						|
	get_editor_interface().restart_editor(true)
 | 
						|
 | 
						|
func save_no_restart() -> void:
 | 
						|
	get_editor_interface().restart_editor(false)
 | 
						|
	
 | 
						|
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.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"):
 | 
						|
		add_child(editor_presence)
 | 
						|
	else:
 | 
						|
		editor_presence.queue_free()
 |