From 57ae3b4104fbc04fa4846cd36824a09772b7a781 Mon Sep 17 00:00:00 2001 From: akanora Date: Thu, 29 May 2025 09:40:17 +0300 Subject: [PATCH] Add DiscordUser_GetDisplayName native This commit introduces a new native function to the `discord-api` plugin, allowing other SourcePawn plugins to retrieve a Discord user's "display name". --- discord/UserObject.sp | 7 +++++++ discord_api.sp | 4 +++- include/discord.inc | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/discord/UserObject.sp b/discord/UserObject.sp index bbe8ab2..3f2587e 100644 --- a/discord/UserObject.sp +++ b/discord/UserObject.sp @@ -41,4 +41,11 @@ public int Native_DiscordUser_IsVerified(Handle plugin, int numParams) { public int Native_DiscordUser_IsBot(Handle plugin, int numParams) { Handle hJson = GetNativeCell(1); return JsonObjectGetBool(hJson, "bot"); +} + +public int Native_DiscordUser_GetDisplayName(Handle plugin, int numParams) { + Handle hJson = GetNativeCell(1); + char buffer[64]; + JsonObjectGetString(hJson, "global_name", buffer, sizeof(buffer)); + SetNativeString(2, buffer, GetNativeCell(3)); } \ No newline at end of file diff --git a/discord_api.sp b/discord_api.sp index b5a33f1..fc8e699 100644 --- a/discord_api.sp +++ b/discord_api.sp @@ -1,6 +1,7 @@ #pragma semicolon 1 +#pragma dynamic 25000 -#define PLUGIN_VERSION "0.1.103" +#define PLUGIN_VERSION "0.1.107" #include #include @@ -79,6 +80,7 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max CreateNative("DiscordUser.IsVerified", Native_DiscordUser_IsVerified); CreateNative("DiscordUser.GetEmail", Native_DiscordUser_GetEmail); CreateNative("DiscordUser.IsBot", Native_DiscordUser_IsBot); + CreateNative("DiscordUser.GetDisplayName", Native_DiscordUser_GetDisplayName); //MessageObject.sp CreateNative("DiscordMessage.GetID", Native_DiscordMessage_GetID); diff --git a/include/discord.inc b/include/discord.inc index 1be2c54..f73a056 100644 --- a/include/discord.inc +++ b/include/discord.inc @@ -101,6 +101,8 @@ methodmap DiscordUser < Handle { public native void GetID(char[] buffer, int maxlength); public native void GetUsername(char[] buffer, int maxlength); + + public native void GetDisplayName(char[] buffer, int maxlength); public native void GetDiscriminator(char[] buffer, int maxlength); public int GetDiscriminatorInt() { @@ -161,6 +163,7 @@ public void __pl_discordapi_SetNTVOptional() MarkNativeAsOptional("DiscordUser.IsVerified"); MarkNativeAsOptional("DiscordUser.GetEmail"); MarkNativeAsOptional("DiscordUser.IsBot"); + MarkNativeAsOptional("DiscordUser.GetDisplayName"); MarkNativeAsOptional("DiscordMessage.GetID"); MarkNativeAsOptional("DiscordMessage.IsPinned"); MarkNativeAsOptional("DiscordMessage.DiscordUser GetAuthor");