Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7c66fbc474 | ||
|
a8c4f33fdd |
5
.github/ISSUE_TEMPLATE/BUG.yml
vendored
5
.github/ISSUE_TEMPLATE/BUG.yml
vendored
@@ -23,11 +23,6 @@ body:
|
||||
label: Version
|
||||
description: What version of our software are you running?
|
||||
options:
|
||||
- 2.4
|
||||
- 2.3
|
||||
- 2.2
|
||||
- 2.1
|
||||
- 2.0
|
||||
- 1.5
|
||||
- 1.4
|
||||
- 1.3
|
||||
|
27
.github/ISSUE_TEMPLATE/FEATURE.yml
vendored
27
.github/ISSUE_TEMPLATE/FEATURE.yml
vendored
@@ -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
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -20,6 +20,3 @@ build/
|
||||
|
||||
#Clean files from the Game SDK
|
||||
src/lib/discord_game_sdk/
|
||||
|
||||
# release.py
|
||||
release/
|
13
README.md
13
README.md
@@ -1,23 +1,14 @@
|
||||
<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 :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
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,6 @@
|
||||
[configuration]
|
||||
|
||||
entry_symbol = "discordsdkgd_library_init"
|
||||
compatibility_minimum = 4.1
|
||||
|
||||
[libraries]
|
||||
|
||||
@@ -18,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,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!
|
||||
|
17
project/addons/discord-sdk-gd/export.gd
Normal file
17
project/addons/discord-sdk-gd/export.gd
Normal 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
|
@@ -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")
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -3,5 +3,5 @@
|
||||
name="DiscordSDK"
|
||||
description="Discord Game SDK support for GDScript in Godot"
|
||||
author="vaporvee"
|
||||
version="2.4"
|
||||
version="2.0"
|
||||
script="plugin.gd"
|
||||
|
@@ -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):
|
||||
|
@@ -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
|
||||
|
@@ -8,11 +8,15 @@
|
||||
|
||||
config_version=5
|
||||
|
||||
[DiscordSDK]
|
||||
|
||||
EditorPresence/enabled=true
|
||||
|
||||
[application]
|
||||
|
||||
config/name="GDExtension DiscordSDK Test Project"
|
||||
run/main_scene="res://main.tscn"
|
||||
config/features=PackedStringArray("4.1")
|
||||
config/features=PackedStringArray("4.0")
|
||||
boot_splash/bg_color=Color(0.25098, 0.305882, 0.929412, 1)
|
||||
boot_splash/image="res://assets/Banner_v1.png"
|
||||
boot_splash/fullsize=false
|
||||
|
12
release.py
12
release.py
@@ -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/")
|
6
setup.py
6
setup.py
@@ -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",
|
||||
|
@@ -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();
|
||||
|
Submodule src/lib/godot-cpp updated: d627942b64...feaba551b5
@@ -11,7 +11,7 @@ using namespace godot;
|
||||
|
||||
static discord_sdk *discordsdk;
|
||||
|
||||
void initialize_discordsdk_module(ModuleInitializationLevel p_level)
|
||||
void gdextension_initialize(ModuleInitializationLevel p_level)
|
||||
{
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE)
|
||||
{
|
||||
@@ -21,7 +21,7 @@ void initialize_discordsdk_module(ModuleInitializationLevel p_level)
|
||||
}
|
||||
}
|
||||
|
||||
void uninitialize_discordsdk_module(ModuleInitializationLevel p_level)
|
||||
void gdextension_terminate(ModuleInitializationLevel p_level)
|
||||
{
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE)
|
||||
{
|
||||
@@ -32,12 +32,12 @@ void uninitialize_discordsdk_module(ModuleInitializationLevel p_level)
|
||||
|
||||
extern "C"
|
||||
{
|
||||
GDExtensionBool GDE_EXPORT discordsdkgd_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization)
|
||||
GDExtensionBool GDE_EXPORT discordsdkgd_library_init(const GDExtensionInterface *p_interface, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization)
|
||||
{
|
||||
godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
|
||||
godot::GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization);
|
||||
|
||||
init_obj.register_initializer(initialize_discordsdk_module);
|
||||
init_obj.register_terminator(uninitialize_discordsdk_module);
|
||||
init_obj.register_initializer(gdextension_initialize);
|
||||
init_obj.register_terminator(gdextension_terminate);
|
||||
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
|
||||
|
||||
return init_obj.init();
|
||||
|
Reference in New Issue
Block a user