Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
35c1895650 | ||
|
548349d9f8 | ||
|
68c8a42826 | ||
|
3e944683a4 | ||
|
6f288564cf | ||
|
aa39fb80e0 | ||
|
980080492e | ||
|
b3ebd2c737 | ||
|
f9134f30f7 | ||
|
da42d6a228 | ||
|
a998076b79 | ||
|
7fd0d25da9 | ||
|
52fcce409a | ||
|
88a855d1da | ||
|
53dafb1da2 | ||
|
9772445870 | ||
|
52ec3392fa | ||
|
3913736a42 | ||
|
ba5eb3316e | ||
|
9929ccbb3a |
4
.github/ISSUE_TEMPLATE/BUG.yml
vendored
4
.github/ISSUE_TEMPLATE/BUG.yml
vendored
@@ -23,6 +23,10 @@ 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
|
||||
|
27
.github/ISSUE_TEMPLATE/FEATURE.yml
vendored
Normal file
27
.github/ISSUE_TEMPLATE/FEATURE.yml
vendored
Normal 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
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -20,3 +20,6 @@ build/
|
||||
|
||||
#Clean files from the Game SDK
|
||||
src/lib/discord_game_sdk/
|
||||
|
||||
# release.py
|
||||
release/
|
13
README.md
13
README.md
@@ -1,14 +1,23 @@
|
||||
<img src="/project/assets/Banner.svg" alt="Project Banner" />
|
||||
|
||||
**Discord Game SDK support for GDScript in Godot Engine 4.0. with the easiest code pattern!**<br><br>
|
||||
**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)
|
||||
# [Quick start :rocket: (click here)](https://github.com/vaporvee/discord-sdk-godot/wiki)
|
||||
<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
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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": "" }
|
||||
|
@@ -1,25 +1,38 @@
|
||||
class_name DiscordSDKTutorial
|
||||
extends Node
|
||||
|
||||
# 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!
|
||||
## 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,17 +0,0 @@
|
||||
@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
|
@@ -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")
|
@@ -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
|
||||
|
||||
@export var is_running: bool =false
|
||||
|
||||
func _process(delta) -> void:
|
||||
discord_sdk.coreupdate()
|
||||
is_running = true
|
||||
|
@@ -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
|
||||
|
||||
func _ready() -> void:
|
||||
|
@@ -3,5 +3,5 @@
|
||||
name="DiscordSDK"
|
||||
description="Discord Game SDK support for GDScript in Godot"
|
||||
author="vaporvee"
|
||||
version="2.0"
|
||||
version="2.3"
|
||||
script="plugin.gd"
|
||||
|
@@ -1,35 +1,24 @@
|
||||
@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 _enable_plugin() -> void:
|
||||
print("DiscordSDK Addon got enabled")
|
||||
add_custom_type("DiscordSDKLoader","Node",DiscordSDKLoader,DiscordSDKLoader_icon)
|
||||
func _enter_tree() -> void:
|
||||
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)")
|
||||
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")
|
||||
ProjectSettings.clear("DiscordSDK/EditorPresence/enabled")
|
||||
|
||||
@@ -40,7 +29,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())
|
||||
discord_sdk.large_image_text = str(Engine.get_version_info().string)
|
||||
discord_sdk.start_timestamp = int(Time.get_unix_time_from_system())
|
||||
discord_sdk.refresh()
|
||||
if(discord_sdk.app_id == 1108142249990176808):
|
||||
|
@@ -8,7 +8,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../../demo/discord_sdk.exe"
|
||||
export_path="../../exportestt/discord_sdk_demo.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=false
|
||||
application/icon=""
|
||||
application/modify_resources=true
|
||||
application/icon="res://assets/Logo_V2.png"
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/file_description="Discord SDK Godot Test"
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
ssh_remote_deploy/enabled=false
|
||||
|
12
release.py
Normal file
12
release.py
Normal 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/")
|
6
setup.py
6
setup.py
@@ -6,6 +6,12 @@ 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",
|
||||
|
@@ -18,11 +18,11 @@ protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
int64_t app_id;
|
||||
int64_t app_id = 0;
|
||||
|
||||
String state;
|
||||
String details;
|
||||
// just want to make pr
|
||||
|
||||
String large_image;
|
||||
String large_image_text;
|
||||
String small_image;
|
||||
@@ -112,7 +112,6 @@ 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();
|
||||
|
Reference in New Issue
Block a user