Skip to content

Commit 0574e8a

Browse files
committed
feat(Player): UserID
1 parent dce0a80 commit 0574e8a

File tree

5 files changed

+24
-2
lines changed

5 files changed

+24
-2
lines changed

managed/src/SwiftlyS2.Core/Modules/Players/Player.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public Player( int pid )
2020

2121
public int Slot { get; }
2222

23+
public int UserID => NativePlayer.GetUserID(Slot);
24+
2325
public bool IsFakeClient => NativePlayer.IsFakeClient(Slot);
2426

2527
public bool IsAuthorized => NativePlayer.IsAuthorized(Slot);

managed/src/SwiftlyS2.Generated/Natives/Player.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,4 +234,11 @@ public unsafe static bool IsFirstSpawn(int playerid) {
234234
var ret = _IsFirstSpawn(playerid);
235235
return ret == 1;
236236
}
237+
238+
private unsafe static delegate* unmanaged<int, int> _GetUserID;
239+
240+
public unsafe static int GetUserID(int playerid) {
241+
var ret = _GetUserID(playerid);
242+
return ret;
243+
}
237244
}

managed/src/SwiftlyS2.Shared/Modules/Players/IPlayer.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ public interface IPlayer : IEquatable<IPlayer>
3939
/// </summary>
4040
public int PlayerID { get; }
4141

42+
/// <summary>
43+
/// Gets the user ID for the player.
44+
/// </summary>
45+
public int UserID { get; }
46+
4247
/// <summary>
4348
/// Gets the slot of the player. Equals to the player ID.
4449
/// </summary>

natives/server/player.native

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ void SetCenterMenuRender = int32 playerid, string text
2525
void ClearCenterMenuRender = int32 playerid
2626
bool HasMenuShown = int32 playerid
2727
void ExecuteCommand = int32 playerid, string command
28-
bool IsFirstSpawn = int32 playerid
28+
bool IsFirstSpawn = int32 playerid
29+
int32 GetUserID = int32 playerid

src/scripting/server/player.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,12 @@ uint8_t Bridge_Player_IsFirstSpawn(int playerid)
355355
return player->IsFirstSpawn() ? 1 : 0;
356356
}
357357

358+
int Bridge_Player_GetUserID(int playerid)
359+
{
360+
static auto engine = g_ifaceService.FetchInterface<IVEngineServer2>(INTERFACEVERSION_VENGINESERVER);
361+
return engine->GetPlayerUserId(CPlayerSlot(playerid)).Get();
362+
}
363+
358364
DEFINE_NATIVE("Player.SendMessage", Bridge_Player_SendMessage);
359365
DEFINE_NATIVE("Player.IsFakeClient", Bridge_Player_IsFakeClient);
360366
DEFINE_NATIVE("Player.IsAuthorized", Bridge_Player_IsAuthorized);
@@ -380,4 +386,5 @@ DEFINE_NATIVE("Player.SetCenterMenuRender", Bridge_Player_SetCenterMenuRender);
380386
DEFINE_NATIVE("Player.ClearCenterMenuRender", Bridge_Player_ClearCenterMenuRender);
381387
DEFINE_NATIVE("Player.HasMenuShown", Bridge_Player_HasMenuShown);
382388
DEFINE_NATIVE("Player.ExecuteCommand", Bridge_Player_ExecuteCommand);
383-
DEFINE_NATIVE("Player.IsFirstSpawn", Bridge_Player_IsFirstSpawn);
389+
DEFINE_NATIVE("Player.IsFirstSpawn", Bridge_Player_IsFirstSpawn);
390+
DEFINE_NATIVE("Player.GetUserID", Bridge_Player_GetUserID);

0 commit comments

Comments
 (0)