2 Commits
2.3 ... 2.0

Author SHA1 Message Date
Yannik
7c66fbc474 fixed some 2.0 bugs 2023-05-17 00:58:38 +02:00
Yannik
a8c4f33fdd Merge pull request #27 from vaporvee/make-2.0-releasable
Fix bugs and round up main for 2.0
2023-05-17 00:35:58 +02:00
21 changed files with 90 additions and 133 deletions

View File

@@ -23,10 +23,6 @@ body:
label: Version
description: What version of our software are you running?
options:
- 2.3
- 2.2
- 2.1
- 2.0
- 1.5
- 1.4
- 1.3

View File

@@ -1,27 +0,0 @@
name: Feature request
description: File a feature request
title: "[Feature request]: "
labels: ["enhancement"]
assignees:
- vaporvee
body:
- type: markdown
attributes:
value: Thanks for taking the time to fill out this feature request!
- type: textarea
id: idea
attributes:
label: What is your idea?
description: Tell me what you want to see in the addon.
placeholder: Tell me what you want to see!
value: "I have a cool new feature!"
validations:
required: true
- type: textarea
id: additional
attributes:
label: Additional information
description: If you have anything else tell me here
placeholder: Anything else.
validations:
required: false

5
.gitignore vendored
View File

@@ -19,7 +19,4 @@ build/
*.lib
#Clean files from the Game SDK
src/lib/discord_game_sdk/
# release.py
release/
src/lib/discord_game_sdk/

View File

@@ -4,21 +4,11 @@
**Please leave a star that would really help! And thanks to all the people that already starred this project! ❤️**
<br />
<br />
# [Quick start :rocket: (click here)](https://github.com/vaporvee/discord-sdk-godot/wiki)
# [Quick start :rocket: (click here)](https://github.com/vaporvee/discord-sdk-godot/wiki/Quick-start)
<br />
**A small donation with the sponsor button would be nice if you sell your project with this addon but is of course not mandatory!**
# Features
- Activities (Make people see what you are playing)
- Invites
- Steam and launch command registering
- User information
- Overlay management
- Editor Presence (optional)
<img width="400px" src="https://camo.githubusercontent.com/e4ae18ce30a7731145376e1a85c384e9ea207420c09365e3fcdd455ef332ba98/68747470733a2f2f6769746875622d70726f64756374696f6e2d757365722d61737365742d3632313064662e73332e616d617a6f6e6177732e636f6d2f38303632313836332f3233383739343331392d35373164653262612d346635652d343062612d613263662d3839666365643963306366302e706e67">
<br />
<br />
### Credit

View File

@@ -17,13 +17,13 @@ linux.release.rv64 = "bin/linux/libdiscord_game_sdk_binding.so"
[dependencies]
macos.debug = { "bin/macos/libdiscord_game_sdk.dylib": "" }
macos.release = { "bin/macos/libdiscord_game_sdk.dylib": "" }
windows.debug.x86_64 = { "bin/windows/discord_game_sdk.dll": "" }
windows.release.x86_64 = { "bin/windows/discord_game_sdk.dll": "" }
linux.debug.x86_64 = { "bin/linux/libdiscord_game_sdk.so": "" }
linux.release.x86_64 = { "bin/linux/libdiscord_game_sdk.so": "" }
linux.debug.arm64 = { "bin/linux/libdiscord_game_sdk.so": "" }
linux.release.arm64 = { "bin/linux/libdiscord_game_sdk.so": "" }
linux.debug.rv64 = { "bin/linux/libdiscord_game_sdk.so": "" }
linux.release.rv64 = { "bin/linux/libdiscord_game_sdk.so": "" }
macos.debug = "bin/macos/libdiscord_game_sdk.dylib"
macos.release = "bin/macos/libdiscord_game_sdk.dylib"
windows.debug.x86_64 = "bin/windows/discord_game_sdk.dll"
windows.release.x86_64 = "bin/windows/discord_game_sdk.dll"
linux.debug.x86_64 = "bin/linux/libdiscord_game_sdk.so"
linux.release.x86_64 = "bin/linux/libdiscord_game_sdk.so"
linux.debug.arm64 = "bin/linux/libdiscord_game_sdk.so"
linux.release.arm64 = "bin/linux/libdiscord_game_sdk.so"
linux.debug.rv64 = "bin/linux/libdiscord_game_sdk.so"
linux.release.rv64 = "bin/linux/libdiscord_game_sdk.so"

View File

@@ -1,38 +1,25 @@
class_name DiscordSDKTutorial
extends Node
## 1. Put the addons/ folder in your Godot project[br]
## 2. Enable the addon in your Project Settings under "Plugins" and "DiscordSDK". [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]
##
## This is your [code]_ready()[/code] function wich could be anywhere
## [codeblock]
## func _ready():
## # Application ID
## discord_sdk.app_id = 1099618430065324082
## # this is boolean if everything worked
## print("Discord working: " + str(discord_sdk.get_is_discord_working()))
## # Set the first custom text row of the activity here
## discord_sdk.details = "A demo activity by vaporvee#1231"
## # Set the second custom text row of the activity here
## discord_sdk.state = "Checkpoint 23/23"
## # Image key for small image from "Art Assets" from the Discord Developer website
## discord_sdk.large_image = "game"
## # Tooltip text for the large image
## discord_sdk.large_image_text = "Try it now!"
## # Image key for large image from "Art Assets" from the Discord Developer website
## discord_sdk.small_image = "boss"
## # Tooltip text for the small image
## discord_sdk.small_image_text = "Fighting the end boss! D:"
## # "02:41 elapsed" timestamp for the activity
## discord_sdk.start_timestamp = int(Time.get_unix_time_from_system())
## # "59:59 remaining" timestamp for the activity
## discord_sdk.end_timestamp = int(Time.get_unix_time_from_system()) + 3600
## # Always refresh after changing the values!
## discord_sdk.refresh()
## [/codeblock]
##
## @tutorial(More information here): https://github.com/vaporvee/discord-sdk-godot/wiki/Quick-start
## @tutorial(Make your Application ID and else here): https://discord.com/developers/applications
# 1. Put the addons/ folder in your Godot project
# 2. Enable the addon in your Project Settings under "Plugins" and "DiscordSDK". (if it doesn't show up restart your project and try again)
# 3. Restart your project
# 4. Create an Application under https://discord.com/developers/applications and get the Application ID
# 5. (optional) Set images under "Rich Presence" and "Art Assets" and remember the keys
#SELECT THE TEXT WITH YOUR MOUSE AND CTR + K TO UNCOMMENT THE FOLLOWING
#func _ready():
# discord_sdk.app_id = 1099618430065324082 # Application ID
# print("Discord working: " + str(discord_sdk.get_is_discord_working())) # A boolean if everything worked
# discord_sdk.details = "A demo activity by vaporvee#1231"
# discord_sdk.state = "Checkpoint 23/23"
#
# discord_sdk.large_image = "game" # Image key from "Art Assets"
# discord_sdk.large_image_text = "Try it now!"
# discord_sdk.small_image = "boss" # Image key from "Art Assets"
# discord_sdk.small_image_text = "Fighting the end boss! D:"
#
# discord_sdk.start_timestamp = int(Time.get_unix_time_from_system()) # "02:41 elapsed"
# discord_sdk.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time
#
# discord_sdk.refresh() # Always refresh after changing the values!

View File

@@ -0,0 +1,17 @@
@tool
extends EditorExportPlugin
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",[],"/")
elif features[4] == "x86":
add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll",[],"/")
elif features[2] == "linux":
add_shared_object("res://addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk.so",[],"/")
elif features[2] == "macos":
add_shared_object("res://addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk.dylib",[],"/")
add_shared_object("res://addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_aarch64.dylib",[],"/")
func _get_name():
pass

View File

@@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://dkbtuqbtdlqnk"]
[ext_resource type="Script" path="res://addons/discord-sdk-gd/nodes/core_updater.gd" id="1_8fjwg"]
[node name="DiscordSDKLoader" type="Node"]
editor_description = "This always needs to run in the background if you want to comunicate with the discord client."
script = ExtResource("1_8fjwg")

View File

@@ -1,12 +1,8 @@
## [color=yellow]PLEASE IGNORE![/color] This is a important Node wich gets automatically added as Singleton.
##
## The DiscordSDKLoader Node automatically gets added as Singleton while installing the addon.
## It has to run in the background to comunicate with Discord.
## You don't need to use it.
##
## @tutorial: https://github.com/vaporvee/discord-sdk-godot/wiki
class_name core_updater
## 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,8 +1,4 @@
## This is a Debug Node wich will show some usefull info and buttons/input
##
## The DiscordSDK Debug Node will show info about the current values of its variables and some buttons to change them.
##
## @tutorial: https://github.com/vaporvee/discord-sdk-godot/wiki
## This is a Debug Node wich will show (only if the project runs) some usefull info and buttons/input
extends Node
func _ready() -> void:

View File

@@ -3,5 +3,5 @@
name="DiscordSDK"
description="Discord Game SDK support for GDScript in Godot"
author="vaporvee"
version="2.3"
version="2.0"
script="plugin.gd"

View File

@@ -1,17 +1,27 @@
@tool
extends EditorPlugin
const DiscordSDKLoader = preload("res://addons/discord-sdk-gd/nodes/core_updater.gd")
const DiscordSDKLoader_icon = preload("res://addons/discord-sdk-gd/nodes/assets/Group_1.svg")
var loaded_DiscordSDKLoader = DiscordSDKLoader.new()
const DiscordSDKDebug = preload("res://addons/discord-sdk-gd/nodes/debug.gd")
const DiscordSDKDebug_icon = preload("res://addons/discord-sdk-gd/nodes/assets/Debug.svg")
var loaded_DiscordSDKDebug = DiscordSDKDebug.new()
const ExportPlugin = preload("res://addons/discord-sdk-gd/export.gd")
var loaded_exportplugin = ExportPlugin.new()
func _enter_tree() -> void:
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/core_updater.gd")
add_export_plugin(loaded_exportplugin)
func _enable_plugin() -> void:
print("DiscordSDK Addon got enabled (PLEASE RESTART THE EDITOR)")
func _enable_plugin():
print("DiscordSDK Addon got enabled")
ProjectSettings.set_setting("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_initial_value("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_restart_if_changed("DiscordSDK/EditorPresence/enabled",true)
@@ -19,6 +29,7 @@ func _enable_plugin() -> void:
func _disable_plugin() -> void:
print("DiscordSDK Addon got disabled")
remove_autoload_singleton("DiscordSDKLoader")
remove_custom_type("DiscordSDKLoader")
remove_custom_type("DiscordSDKDebug")
ProjectSettings.clear("DiscordSDK/EditorPresence/enabled")
@@ -29,7 +40,7 @@ func _process(_delta):
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().string)
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):

View File

@@ -8,7 +8,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../exportestt/discord_sdk_demo.exe"
export_path="../../demo/discord_sdk.exe"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -35,15 +35,15 @@ codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon="res://assets/Logo_V2.png"
application/modify_resources=false
application/icon=""
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description="Discord SDK Godot Test"
application/file_description=""
application/copyright=""
application/trademarks=""
ssh_remote_deploy/enabled=false

View File

@@ -8,6 +8,10 @@
config_version=5
[DiscordSDK]
EditorPresence/enabled=true
[application]
config/name="GDExtension DiscordSDK Test Project"

View File

@@ -1,12 +0,0 @@
import os
from distutils.dir_util import copy_tree
import shutil
if os.path.exists("release/ADDON-Discord-SDK-Godot/addons"):
shutil.rmtree("release/ADDON-Discord-SDK-Godot/addons", ignore_errors=True)
copy_tree("project/addons/", "release/temp/ADDON-Discord-SDK-Godot/addons")
shutil.make_archive("release/ADDON-Discord-SDK-Godot", "zip", "release/temp/")
shutil.rmtree("release/temp/")

View File

@@ -6,12 +6,6 @@ import os
with zipfile.ZipFile("src/lib/discord_game_sdk.zip", "r") as zip_ref:
zip_ref.extractall("src/lib/discord_game_sdk/")
# Patch the SDK to actually build, since it's missing an include
with open("src/lib/discord_game_sdk/cpp/types.h", "r+") as f:
s = f.read();
f.seek(0);
f.write("#include <cstdint>\n" + s)
copy_tree("src/lib/discord_game_sdk/lib/", "src/lib/discord_game_sdk/bin/")
os.rename(
"src/lib/discord_game_sdk/bin/aarch64/discord_game_sdk.dylib",

View File

@@ -18,11 +18,11 @@ protected:
static void _bind_methods();
private:
int64_t app_id = 0;
int64_t app_id;
String state;
String details;
// just want to make pr
String large_image;
String large_image_text;
String small_image;
@@ -112,6 +112,7 @@ public:
void register_steam(int32_t value);
Dictionary get_current_user();
void set_current_user(Dictionary value);
bool get_is_discord_working();
int get_result_int();