activity resource and fixed connection ready signal
This commit is contained in:
@@ -3,11 +3,14 @@ extends DiscordConnector
|
|||||||
func _on_user_connected(access_token: String, refresh_token: String, expires_in: int) -> void:
|
func _on_user_connected(access_token: String, refresh_token: String, expires_in: int) -> void:
|
||||||
print_debug("Access token: %s \nRefresh Token: %s \nExpires in: %s" % [access_token, refresh_token, expires_in])
|
print_debug("Access token: %s \nRefresh Token: %s \nExpires in: %s" % [access_token, refresh_token, expires_in])
|
||||||
|
|
||||||
func _on_user_updated() -> void:
|
|
||||||
print_debug("USER UPDATED")
|
|
||||||
|
|
||||||
func _on_user_connection_failed(error: String) -> void:
|
func _on_user_connection_failed(error: String) -> void:
|
||||||
push_error("User connection failed! Error: " + error)
|
push_error("User connection failed! Error: " + error)
|
||||||
|
|
||||||
func _on_user_update_failed(error: String) -> void:
|
func _on_user_update_failed(error: String) -> void:
|
||||||
push_error("User update failed! Error: " + error)
|
push_error("User update failed! Error: " + error)
|
||||||
|
|
||||||
|
func _on_connection_ready() -> void:
|
||||||
|
print_debug("CONNECTION READY")
|
||||||
|
|
||||||
|
func _on_connection_error(error: String) -> void:
|
||||||
|
push_error(error)
|
||||||
|
@@ -1,11 +1,9 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://dyc3kseph4el7"]
|
[gd_scene load_steps=4 format=3 uid="uid://dyc3kseph4el7"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b3qm246m7pnsx" path="res://assets/Logo_V2.png" id="2_gd222"]
|
[ext_resource type="Texture2D" uid="uid://b3qm246m7pnsx" path="res://assets/Logo_V2.png" id="2_gd222"]
|
||||||
[ext_resource type="Script" uid="uid://kmubk5a6i385" path="res://discord_connector.gd" id="3_h2yge"]
|
[ext_resource type="Script" uid="uid://kmubk5a6i385" path="res://discord_connector.gd" id="3_h2yge"]
|
||||||
[ext_resource type="Script" uid="uid://46tue7u6crd6" path="res://addons/discord-rpc-gd/nodes/debug.gd" id="6_ujijw"]
|
[ext_resource type="Script" uid="uid://46tue7u6crd6" path="res://addons/discord-rpc-gd/nodes/debug.gd" id="6_ujijw"]
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id="SpriteFrames_h2yge"]
|
|
||||||
|
|
||||||
[node name="Node" type="Node"]
|
[node name="Node" type="Node"]
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="."]
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
@@ -56,9 +54,9 @@ root_connector = NodePath("..")
|
|||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
position = Vector2(789, 330.5)
|
position = Vector2(789, 330.5)
|
||||||
scale = Vector2(0.408203, 0.408203)
|
scale = Vector2(0.408203, 0.408203)
|
||||||
sprite_frames = SubResource("SpriteFrames_h2yge")
|
|
||||||
|
|
||||||
|
[connection signal="connection_error" from="DiscordConnector" to="DiscordConnector" method="_on_connection_error"]
|
||||||
|
[connection signal="connection_ready" from="DiscordConnector" to="DiscordConnector" method="_on_connection_ready"]
|
||||||
[connection signal="user_connected" from="DiscordConnector" to="DiscordConnector" method="_on_user_connected"]
|
[connection signal="user_connected" from="DiscordConnector" to="DiscordConnector" method="_on_user_connected"]
|
||||||
[connection signal="user_connection_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_connection_failed"]
|
[connection signal="user_connection_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_connection_failed"]
|
||||||
[connection signal="user_update_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_update_failed"]
|
[connection signal="user_update_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_update_failed"]
|
||||||
[connection signal="user_updated" from="DiscordConnector" to="DiscordConnector" method="_on_user_updated"]
|
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
[gd_resource type="Compositor" format=3 uid="uid://cbg8e12ms0vvc"]
|
[gd_resource type="Compositor" format=3 uid="uid://cbg8e12ms0vvc"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
|
compositor_effects = Array[CompositorEffect]([null])
|
||||||
|
@@ -13,4 +13,6 @@
|
|||||||
typename std::conditional<std::is_integral<decltype(default_value)>::value, int64_t, \
|
typename std::conditional<std::is_integral<decltype(default_value)>::value, int64_t, \
|
||||||
decltype(default_value)>::type>::type>::type
|
decltype(default_value)>::type>::type>::type
|
||||||
|
|
||||||
#define H_SET_GET(property_name, default_value) private: RESOLVE_TYPE(default_value) property_name = default_value; public: RESOLVE_TYPE(default_value) get_##property_name(); void set_##property_name(RESOLVE_TYPE(default_value) value);
|
#define H_SET_GET(property_name, default_value) private: RESOLVE_TYPE(default_value) property_name = default_value; public: RESOLVE_TYPE(default_value) get_##property_name(); void set_##property_name(RESOLVE_TYPE(default_value) value);
|
||||||
|
|
||||||
|
#define MAKE_RESOURCE_TYPE_HINT(m_type) vformat("%s/%s:%s", Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, m_type)
|
@@ -2,7 +2,10 @@
|
|||||||
|
|
||||||
void DiscordActivity::_bind_methods()
|
void DiscordActivity::_bind_methods()
|
||||||
{
|
{
|
||||||
BIND_SET_GET(DiscordActivity, activity, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "ActivityResource");
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_activities"), &DiscordActivity::get_activities);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_activities", "value"), &DiscordActivity::set_activities);
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "activities", PROPERTY_HINT_ARRAY_TYPE, MAKE_RESOURCE_TYPE_HINT("ActivityResource")), "set_activities", "get_activities");
|
||||||
}
|
}
|
||||||
DiscordActivity::DiscordActivity()
|
DiscordActivity::DiscordActivity()
|
||||||
{
|
{
|
||||||
@@ -11,12 +14,12 @@ DiscordActivity::~DiscordActivity()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<ActivityResource> DiscordActivity::get_activity()
|
TypedArray<ActivityResource> DiscordActivity::get_activities()
|
||||||
{
|
{
|
||||||
return activity;
|
return activities;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiscordActivity::set_activity(Ref<ActivityResource> value)
|
void DiscordActivity::set_activities(TypedArray<ActivityResource> value)
|
||||||
{
|
{
|
||||||
activity = value;
|
activities = value;
|
||||||
}
|
}
|
||||||
|
@@ -14,9 +14,9 @@ protected:
|
|||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Ref<ActivityResource> activity;
|
TypedArray<ActivityResource> activities;
|
||||||
Ref<ActivityResource> get_activity();
|
TypedArray<ActivityResource> get_activities();
|
||||||
void set_activity(Ref<ActivityResource> value);
|
void set_activities(TypedArray<ActivityResource> value);
|
||||||
|
|
||||||
DiscordActivity();
|
DiscordActivity();
|
||||||
~DiscordActivity();
|
~DiscordActivity();
|
||||||
|
@@ -14,7 +14,7 @@ protected:
|
|||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NodePath root_connector; // Change to NodePath object
|
NodePath root_connector; // Change to NodePath object
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DiscordConnector *connector;
|
DiscordConnector *connector;
|
||||||
|
@@ -12,11 +12,13 @@ void DiscordConnector::_bind_methods()
|
|||||||
BIND_METHOD(DiscordConnector, refresh_user_token, "current_refresh_token");
|
BIND_METHOD(DiscordConnector, refresh_user_token, "current_refresh_token");
|
||||||
BIND_SIGNAL(user_connected, PropertyInfo(Variant::STRING, "access_token"), PropertyInfo(Variant::STRING, "refresh_token"), PropertyInfo(Variant::INT, "expires_in"));
|
BIND_SIGNAL(user_connected, PropertyInfo(Variant::STRING, "access_token"), PropertyInfo(Variant::STRING, "refresh_token"), PropertyInfo(Variant::INT, "expires_in"));
|
||||||
BIND_SIGNAL(user_connection_failed, PropertyInfo(Variant::STRING, "error"));
|
BIND_SIGNAL(user_connection_failed, PropertyInfo(Variant::STRING, "error"));
|
||||||
BIND_SIGNAL(user_updated);
|
BIND_SIGNAL(connection_ready);
|
||||||
|
BIND_SIGNAL(connection_error, PropertyInfo(Variant::STRING, "error"));
|
||||||
BIND_SIGNAL(user_update_failed, PropertyInfo(Variant::STRING, "error"));
|
BIND_SIGNAL(user_update_failed, PropertyInfo(Variant::STRING, "error"));
|
||||||
BIND_SIGNAL(user_token_refreshed, PropertyInfo(Variant::STRING, "access_token"), PropertyInfo(Variant::STRING, "refresh_token"), PropertyInfo(Variant::INT, "expires_in"));
|
BIND_SIGNAL(user_token_refreshed, PropertyInfo(Variant::STRING, "access_token"), PropertyInfo(Variant::STRING, "refresh_token"), PropertyInfo(Variant::INT, "expires_in"));
|
||||||
BIND_SIGNAL(user_token_refresh_failed, PropertyInfo(Variant::STRING, "error"));
|
BIND_SIGNAL(user_token_refresh_failed, PropertyInfo(Variant::STRING, "error"));
|
||||||
}
|
}
|
||||||
|
|
||||||
DiscordConnector::DiscordConnector()
|
DiscordConnector::DiscordConnector()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -28,6 +30,17 @@ void DiscordConnector::_ready()
|
|||||||
{
|
{
|
||||||
client = std::make_shared<discordpp::Client>();
|
client = std::make_shared<discordpp::Client>();
|
||||||
|
|
||||||
|
client->SetStatusChangedCallback([this](discordpp::Client::Status status, discordpp::Client::Error error, int32_t errorDetail) {
|
||||||
|
if (status == discordpp::Client::Status::Ready)
|
||||||
|
{
|
||||||
|
emit_signal("connection_ready");
|
||||||
|
}
|
||||||
|
if (error != discordpp::Client::Error::None)
|
||||||
|
{
|
||||||
|
emit_signal("connection_error", String(discordpp::Client::ErrorToString(error).c_str()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (Engine::get_singleton()->is_editor_hint() || editor_process)
|
if (Engine::get_singleton()->is_editor_hint() || editor_process)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -138,7 +151,6 @@ void DiscordConnector::connect_user()
|
|||||||
int32_t expiresIn,
|
int32_t expiresIn,
|
||||||
std::string scope) {
|
std::string scope) {
|
||||||
if (result.Successful()) {
|
if (result.Successful()) {
|
||||||
emit_signal("user_connected", accessToken.c_str(), refreshToken.c_str(), expiresIn);
|
|
||||||
if (auto_token_manage)
|
if (auto_token_manage)
|
||||||
{
|
{
|
||||||
DiscordUtil::get_singleton()->save_tokens(accessToken.c_str(), refreshToken.c_str(), expiresIn, auto_encryption_key);
|
DiscordUtil::get_singleton()->save_tokens(accessToken.c_str(), refreshToken.c_str(), expiresIn, auto_encryption_key);
|
||||||
@@ -158,7 +170,6 @@ void DiscordConnector::update_user_token(String access_token)
|
|||||||
{
|
{
|
||||||
if(result.Successful()) {
|
if(result.Successful()) {
|
||||||
client->Connect();
|
client->Connect();
|
||||||
emit_signal("user_updated");
|
|
||||||
} else {
|
} else {
|
||||||
emit_signal("user_update_failed", result.Error().c_str());
|
emit_signal("user_update_failed", result.Error().c_str());
|
||||||
} });
|
} });
|
||||||
|
Reference in New Issue
Block a user