fixed crashing when discord is not open
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,6 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
#Discord_Activity.debug()
|
|
||||||
Discord_Activity.app_id = 1099618430065324082
|
Discord_Activity.app_id = 1099618430065324082
|
||||||
Discord_Activity.details = "A demo activity by vaporvee#1231"
|
Discord_Activity.details = "A demo activity by vaporvee#1231"
|
||||||
Discord_Activity.state = "Checkpoint 23/23"
|
Discord_Activity.state = "Checkpoint 23/23"
|
||||||
@@ -12,7 +11,8 @@ func _ready():
|
|||||||
Discord_Activity.small_image_text = "Fighting the end boss! D:"
|
Discord_Activity.small_image_text = "Fighting the end boss! D:"
|
||||||
|
|
||||||
Discord_Activity.start_timestamp = int(Time.get_unix_time_from_system())
|
Discord_Activity.start_timestamp = int(Time.get_unix_time_from_system())
|
||||||
#Discord_Activity.end_timestamp = 2492978400 #31. 12. 2048 in unix time
|
Discord_Activity.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # + 1 extra hour
|
||||||
|
|
||||||
Discord_Activity.refresh()
|
Discord_Activity.refresh()
|
||||||
$Info.text = $Info.text.replace("{id}",str(Discord_Activity.app_id)).replace("{details}",Discord_Activity.details).replace("{state}",Discord_Activity.state).replace("{lkey}",Discord_Activity.large_image).replace("{ltext}",Discord_Activity.large_image_text).replace("{skey}",Discord_Activity.small_image).replace("{stext}",Discord_Activity.small_image_text).replace("{stimestamp}",str(Discord_Activity.start_timestamp)).replace("{etimestamp}",str(Discord_Activity.end_timestamp))
|
|
||||||
|
$Info.text = $Info.text.replace("{isdiscordworking}",str(Discord_Activity.get_is_discord_working())).replace("{id}",str(Discord_Activity.app_id)).replace("{details}",Discord_Activity.details).replace("{state}",Discord_Activity.state).replace("{lkey}",Discord_Activity.large_image).replace("{ltext}",Discord_Activity.large_image_text).replace("{skey}",Discord_Activity.small_image).replace("{stext}",Discord_Activity.small_image_text).replace("{stimestamp}",str(Discord_Activity.start_timestamp)).replace("{etimestamp}",str(Discord_Activity.end_timestamp))
|
||||||
|
@@ -46,7 +46,9 @@ offset_left = 7.0
|
|||||||
offset_top = 6.0
|
offset_top = 6.0
|
||||||
offset_right = 514.0
|
offset_right = 514.0
|
||||||
offset_bottom = 722.0
|
offset_bottom = 722.0
|
||||||
text = "Application ID : {id}
|
text = "Is Discord working: {isdiscordworking}
|
||||||
|
|
||||||
|
Application ID : {id}
|
||||||
Details: {details}
|
Details: {details}
|
||||||
State: {state}
|
State: {state}
|
||||||
|
|
||||||
|
@@ -49,6 +49,8 @@ void Discord_Activity::_bind_methods()
|
|||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "end_timestamp"), "set_end_timestamp", "get_end_timestamp");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "end_timestamp"), "set_end_timestamp", "get_end_timestamp");
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("refresh"), &Discord_Activity::refresh);
|
ClassDB::bind_method(D_METHOD("refresh"), &Discord_Activity::refresh);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_is_discord_working"), &Discord_Activity::get_is_discord_working);
|
||||||
}
|
}
|
||||||
|
|
||||||
Discord_Activity *Discord_Activity::get_singleton()
|
Discord_Activity *Discord_Activity::get_singleton()
|
||||||
@@ -70,20 +72,25 @@ Discord_Activity::~Discord_Activity()
|
|||||||
|
|
||||||
void Discord_Activity::debug()
|
void Discord_Activity::debug()
|
||||||
{
|
{
|
||||||
auto debugresult = discord::Core::Create(1080224638845591692, DiscordCreateFlags_NoRequireDiscord, &core);
|
result = discord::Core::Create(1080224638845591692, DiscordCreateFlags_NoRequireDiscord, &core);
|
||||||
discord::Activity debugactivity{};
|
activity.SetState("Test from Godot!");
|
||||||
debugactivity.SetState("Test from Godot!");
|
activity.SetDetails("I worked months on this");
|
||||||
debugactivity.SetDetails("I worked months on this");
|
activity.GetAssets().SetLargeImage("test1");
|
||||||
debugactivity.GetAssets().SetLargeImage("test1");
|
activity.GetAssets().SetLargeText("wow test text for large image");
|
||||||
debugactivity.GetAssets().SetLargeText("wow test text for large image");
|
activity.GetAssets().SetSmallImage("godot");
|
||||||
debugactivity.GetAssets().SetSmallImage("godot");
|
activity.GetAssets().SetSmallText("wow test text for small image");
|
||||||
debugactivity.GetAssets().SetSmallText("wow test text for small image");
|
activity.GetTimestamps().SetStart(1682242800);
|
||||||
debugactivity.GetTimestamps().SetStart(1682242800);
|
if (result == discord::Result::Ok)
|
||||||
core->ActivityManager().UpdateActivity(debugactivity, [](discord::Result debugresult) {});
|
{
|
||||||
|
core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Discord_Activity::coreupdate()
|
void Discord_Activity::coreupdate()
|
||||||
{
|
{
|
||||||
|
if (result == discord::Result::Ok)
|
||||||
::core->RunCallbacks();
|
::core->RunCallbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +125,10 @@ String Discord_Activity::get_details() const
|
|||||||
|
|
||||||
void Discord_Activity::refresh()
|
void Discord_Activity::refresh()
|
||||||
{
|
{
|
||||||
|
if (result == discord::Result::Ok)
|
||||||
core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {});
|
core->ActivityManager().UpdateActivity(activity, [](discord::Result result) {});
|
||||||
|
else
|
||||||
|
UtilityFunctions::push_warning("Discord Activity couldn't be updated. It could be that Discord isn't running!");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Discord_Activity::set_large_image(const String &value)
|
void Discord_Activity::set_large_image(const String &value)
|
||||||
@@ -176,3 +186,8 @@ int64_t Discord_Activity::get_end_timestamp() const
|
|||||||
{
|
{
|
||||||
return activity.GetTimestamps().GetEnd();
|
return activity.GetTimestamps().GetEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Discord_Activity::get_is_discord_working() const
|
||||||
|
{
|
||||||
|
return result == discord::Result::Ok;
|
||||||
|
}
|
@@ -61,6 +61,8 @@ public:
|
|||||||
void set_start_timestamp(const int64_t &value);
|
void set_start_timestamp(const int64_t &value);
|
||||||
int64_t get_end_timestamp() const;
|
int64_t get_end_timestamp() const;
|
||||||
void set_end_timestamp(const int64_t &value);
|
void set_end_timestamp(const int64_t &value);
|
||||||
|
|
||||||
|
bool get_is_discord_working() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
@@ -16,7 +16,6 @@ void gdextension_initialize(ModuleInitializationLevel p_level)
|
|||||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE)
|
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE)
|
||||||
{
|
{
|
||||||
ClassDB::register_class<Discord_Activity>();
|
ClassDB::register_class<Discord_Activity>();
|
||||||
|
|
||||||
discordactivity = memnew(Discord_Activity);
|
discordactivity = memnew(Discord_Activity);
|
||||||
Engine::get_singleton()->register_singleton("Discord_Activity", Discord_Activity::get_singleton());
|
Engine::get_singleton()->register_singleton("Discord_Activity", Discord_Activity::get_singleton());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user