Null safety

For real this time!
This commit is contained in:
Lasercar 2025-03-22 11:41:54 +10:00
parent e83b88d320
commit 9f0b935350

View file

@ -5,6 +5,7 @@ import hxdiscord_rpc.Discord;
import hxdiscord_rpc.Types;
import sys.thread.Thread;
@:nullSafety
class DiscordClient
{
static final CLIENT_ID:String = "816168432860790794";
@ -37,12 +38,12 @@ class DiscordClient
trace('[DISCORD] Initializing connection...');
// Discord.initialize(CLIENT_ID, handlers, true, null);
Discord.Initialize(CLIENT_ID, cpp.RawPointer.addressOf(handlers), 1, null);
Discord.Initialize(CLIENT_ID, cpp.RawPointer.addressOf(handlers), 1, "");
createDaemon();
}
var daemon:Thread = null;
var daemon:Null<Thread> = null;
function createDaemon():Void
{
@ -89,9 +90,9 @@ class DiscordClient
presence.largeImageText = "Friday Night Funkin'";
// State should be generally what the person is doing, like "In the Menus" or "Pico (Pico Mix) [Freeplay Hard]"
presence.state = cast(params.state, Null<String>);
presence.state = cast(params.state, Null<String>) ?? "";
// Details should be what the person is specifically doing, including stuff like timestamps (maybe something like "03:24 elapsed").
presence.details = cast(params.details, Null<String>);
presence.details = cast(params.details, Null<String>) ?? "";
// The large image displaying what the user is doing.
// This should probably be album art.
@ -107,7 +108,7 @@ class DiscordClient
// The small inset image for what the user is doing.
// This can be the opponent's health icon?
// NOTE: Like largeImageKey, this can be a URL, or an asset key.
presence.smallImageKey = cast(params.smallImageKey, Null<String>);
presence.smallImageKey = cast(params.smallImageKey, Null<String>) ?? "";
// NOTE: In previous versions, this showed as "Elapsed", but now shows as playtime and doesn't look good
// presence.startTimestamp = time - 10;
@ -133,9 +134,9 @@ class DiscordClient
final username:String = request[0].username;
final globalName:String = request[0].username;
final discriminator:Int = Std.parseInt(request[0].discriminator);
final discriminator:Null<Int> = Std.parseInt(request[0].discriminator);
if (discriminator != 0)
if (discriminator != null && discriminator != 0)
{
trace('[DISCORD] User: ${username}#${discriminator} (${globalName})');
}