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:
|
||||
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:
|
||||
push_error("User connection failed! Error: " + error)
|
||||
|
||||
func _on_user_update_failed(error: String) -> void:
|
||||
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="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"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_h2yge"]
|
||||
|
||||
[node name="Node" type="Node"]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
@@ -56,9 +54,9 @@ root_connector = NodePath("..")
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
position = Vector2(789, 330.5)
|
||||
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_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_updated" from="DiscordConnector" to="DiscordConnector" method="_on_user_updated"]
|
||||
|
@@ -1,3 +1,4 @@
|
||||
[gd_resource type="Compositor" format=3 uid="uid://cbg8e12ms0vvc"]
|
||||
|
||||
[resource]
|
||||
compositor_effects = Array[CompositorEffect]([null])
|
||||
|
@@ -14,3 +14,5 @@
|
||||
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 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()
|
||||
{
|
||||
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()
|
||||
{
|
||||
@@ -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();
|
||||
|
||||
public:
|
||||
Ref<ActivityResource> activity;
|
||||
Ref<ActivityResource> get_activity();
|
||||
void set_activity(Ref<ActivityResource> value);
|
||||
TypedArray<ActivityResource> activities;
|
||||
TypedArray<ActivityResource> get_activities();
|
||||
void set_activities(TypedArray<ActivityResource> value);
|
||||
|
||||
DiscordActivity();
|
||||
~DiscordActivity();
|
||||
|
@@ -12,11 +12,13 @@ void DiscordConnector::_bind_methods()
|
||||
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_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_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"));
|
||||
}
|
||||
|
||||
DiscordConnector::DiscordConnector()
|
||||
{
|
||||
}
|
||||
@@ -28,6 +30,17 @@ void DiscordConnector::_ready()
|
||||
{
|
||||
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)
|
||||
return;
|
||||
|
||||
@@ -138,7 +151,6 @@ void DiscordConnector::connect_user()
|
||||
int32_t expiresIn,
|
||||
std::string scope) {
|
||||
if (result.Successful()) {
|
||||
emit_signal("user_connected", accessToken.c_str(), refreshToken.c_str(), expiresIn);
|
||||
if (auto_token_manage)
|
||||
{
|
||||
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()) {
|
||||
client->Connect();
|
||||
emit_signal("user_updated");
|
||||
} else {
|
||||
emit_signal("user_update_failed", result.Error().c_str());
|
||||
} });
|
||||
|
Reference in New Issue
Block a user