10 Commits
2.0 ... 2.1

Author SHA1 Message Date
Yannik
a998076b79 bumped version to 2.1 2023-05-20 15:15:48 +02:00
Yannik
7fd0d25da9 added release.py 2023-05-20 15:14:04 +02:00
Yannik
52fcce409a fixed random crashes by only typing = 0 2023-05-20 15:01:46 +02:00
Yannik
88a855d1da fixed editor presence again 2023-05-18 15:49:36 +02:00
Yannik
53dafb1da2 removed unused method 2023-05-18 14:47:35 +02:00
Yannik
9772445870 Updated github things 2023-05-18 13:35:30 +02:00
Yannik
52ec3392fa removed custom loader node and did a bit documentation 2023-05-18 13:35:30 +02:00
Yannik
3913736a42 Update README.md 2023-05-18 13:35:20 +02:00
Yannik
ba5eb3316e fixed wrong EditorPresence tooltip 2023-05-18 13:34:47 +02:00
Yannik
9929ccbb3a fixed some 2.0 bugs 2023-05-18 13:34:47 +02:00
19 changed files with 124 additions and 56 deletions

View File

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

27
.github/ISSUE_TEMPLATE/FEATURE.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
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,4 +19,7 @@ build/
*.lib *.lib
#Clean files from the Game SDK #Clean files from the Game SDK
src/lib/discord_game_sdk/ src/lib/discord_game_sdk/
# release.py
release/

View File

@@ -4,11 +4,21 @@
**Please leave a star that would really help! And thanks to all the people that already starred this project! ❤️** **Please leave a star that would really help! And thanks to all the people that already starred this project! ❤️**
<br /> <br />
<br /> <br />
# [Quick start :rocket: (click here)](https://github.com/vaporvee/discord-sdk-godot/wiki/Quick-start) # [Quick start :rocket: (click here)](https://github.com/vaporvee/discord-sdk-godot/wiki)
<br /> <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!** **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 /> <br />
### Credit ### Credit

View File

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

View File

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

View File

@@ -1,4 +1,8 @@
## This is a Debug Node wich will show (only if the project runs) some usefull info and buttons/input ## 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
extends Node extends Node
func _ready() -> void: func _ready() -> void:

View File

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

View File

@@ -1,10 +1,6 @@
@tool @tool
extends EditorPlugin 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 = preload("res://addons/discord-sdk-gd/nodes/debug.gd")
const DiscordSDKDebug_icon = preload("res://addons/discord-sdk-gd/nodes/assets/Debug.svg") const DiscordSDKDebug_icon = preload("res://addons/discord-sdk-gd/nodes/assets/Debug.svg")
var loaded_DiscordSDKDebug = DiscordSDKDebug.new() var loaded_DiscordSDKDebug = DiscordSDKDebug.new()
@@ -14,22 +10,20 @@ const ExportPlugin = preload("res://addons/discord-sdk-gd/export.gd")
var loaded_exportplugin = ExportPlugin.new() var loaded_exportplugin = ExportPlugin.new()
func _enable_plugin() -> void: func _enter_tree() -> void:
print("DiscordSDK Addon got enabled")
add_custom_type("DiscordSDKLoader","Node",DiscordSDKLoader,DiscordSDKLoader_icon)
add_custom_type("DiscordSDKDebug","Node",DiscordSDKDebug,DiscordSDKDebug_icon) add_custom_type("DiscordSDKDebug","Node",DiscordSDKDebug,DiscordSDKDebug_icon)
add_autoload_singleton("DiscordSDKLoader", "res://addons/discord-sdk-gd/nodes/core_updater.gd") add_autoload_singleton("DiscordSDKLoader", "res://addons/discord-sdk-gd/nodes/core_updater.gd")
add_export_plugin(loaded_exportplugin) add_export_plugin(loaded_exportplugin)
ProjectSettings.set_setting("DiscordSDK/EditorPresence/enabled",false)
func _enable_plugin() -> void:
print("DiscordSDK Addon got enabled (PLEASE RESTART THE EDITOR)")
ProjectSettings.set_setting("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_initial_value("DiscordSDK/EditorPresence/enabled",false) ProjectSettings.set_initial_value("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_restart_if_changed("DiscordSDK/EditorPresence/enabled",true) ProjectSettings.set_restart_if_changed("DiscordSDK/EditorPresence/enabled",true)
func _disable_plugin() -> void: func _disable_plugin() -> void:
print("DiscordSDK Addon got disabled") print("DiscordSDK Addon got disabled")
remove_autoload_singleton("DiscordSDKLoader") remove_autoload_singleton("DiscordSDKLoader")
remove_custom_type("DiscordSDKLoader")
remove_custom_type("DiscordSDKDebug") remove_custom_type("DiscordSDKDebug")
ProjectSettings.clear("DiscordSDK/EditorPresence/enabled") ProjectSettings.clear("DiscordSDK/EditorPresence/enabled")
@@ -40,7 +34,7 @@ func _process(_delta):
discord_sdk.details = ProjectSettings.get_setting("application/config/name") 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.state = "Editing: \""+ str(get_tree().edited_scene_root.scene_file_path).replace("res://","") +"\""
discord_sdk.large_image = "godot" discord_sdk.large_image = "godot"
discord_sdk.large_image_text = str(Engine.get_version_info()) discord_sdk.large_image_text = str(Engine.get_version_info().string)
discord_sdk.start_timestamp = int(Time.get_unix_time_from_system()) discord_sdk.start_timestamp = int(Time.get_unix_time_from_system())
discord_sdk.refresh() discord_sdk.refresh()
if(discord_sdk.app_id == 1108142249990176808): if(discord_sdk.app_id == 1108142249990176808):

View File

@@ -8,7 +8,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="../../demo/discord_sdk.exe" export_path="../../demo/discord_sdk_demo.exe"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
@@ -43,7 +43,7 @@ application/file_version=""
application/product_version="" application/product_version=""
application/company_name="" application/company_name=""
application/product_name="" application/product_name=""
application/file_description="" application/file_description="Discord SDK Godot Test"
application/copyright="" application/copyright=""
application/trademarks="" application/trademarks=""
ssh_remote_deploy/enabled=false ssh_remote_deploy/enabled=false

View File

@@ -8,10 +8,14 @@
config_version=5 config_version=5
[DiscordSDK]
EditorPresence/enabled=false
[application] [application]
config/name="GDExtension DiscordSDK Test Project" config/name="GDExtension DiscordSDK Test Project"
run/main_scene="res://main.tscn" run/main_scene="res://testscene.tscn"
config/features=PackedStringArray("4.0") config/features=PackedStringArray("4.0")
boot_splash/bg_color=Color(0.25098, 0.305882, 0.929412, 1) boot_splash/bg_color=Color(0.25098, 0.305882, 0.929412, 1)
boot_splash/image="res://assets/Banner_v1.png" boot_splash/image="res://assets/Banner_v1.png"

3
project/testscene.tscn Normal file
View File

@@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://e8jj6dtekt1c"]
[node name="testscene" type="Node2D"]

12
release.py Normal file
View File

@@ -0,0 +1,12 @@
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

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