diff --git a/api/AltV.Net.ColShape.Tests/MockPlayer.cs b/api/AltV.Net.ColShape.Tests/MockPlayer.cs index dd80939991..60248fc50c 100644 --- a/api/AltV.Net.ColShape.Tests/MockPlayer.cs +++ b/api/AltV.Net.ColShape.Tests/MockPlayer.cs @@ -128,6 +128,11 @@ public void GetSyncedMetaData(string key, ref MValue value) public IVehicle Vehicle { get; } public byte Seat { get; } public uint Ping { get; } + public ulong SocialClubId { get; } + public ulong HardwareIdHash { get; } + public ulong HardwareIdExHash { get; } + public string AuthToken { get; } + public void Spawn(Position position, uint delayMs = 0) { throw new NotImplementedException(); diff --git a/api/AltV.Net.Mock/MockPlayer.cs b/api/AltV.Net.Mock/MockPlayer.cs index ca14f55475..c429a076ab 100644 --- a/api/AltV.Net.Mock/MockPlayer.cs +++ b/api/AltV.Net.Mock/MockPlayer.cs @@ -36,6 +36,11 @@ public MockPlayer(IntPtr nativePointer, ushort id) : base(nativePointer, BaseObj public Position EntityAimOffset { get; } public bool IsFlashlightActive { get; } public string Ip { get; } + public ulong SocialClubId { get; } + public ulong HardwareIdHash { get; } + public ulong HardwareIdExHash { get; } + public string AuthToken { get; } + public void AddWeaponComponent(uint weapon, uint weaponComponent) { throw new NotImplementedException(); diff --git a/api/AltV.Net.Networking.Example/Program.cs b/api/AltV.Net.Networking.Example/Program.cs index b0ef9e3d77..c60e7dedaa 100644 --- a/api/AltV.Net.Networking.Example/Program.cs +++ b/api/AltV.Net.Networking.Example/Program.cs @@ -20,8 +20,8 @@ private static void Main(string[] args) var data2 = new Dictionary(); data["bla"] = "123"; data["bla2"] = 1235; - var entityToUpdate = AltNetworking.CreateEntity(new Position {X = 0, Y = 0, Z = 0}, 1, 50, data); - AltNetworking.CreateEntity(new Position {X = 1, Y = 1, Z = 1}, 1, 50, data2); + var entityToUpdate = AltNetworking.CreateEntity(new Position {X = 0, Y = 0, Z = 0}, 1, 50, data, StreamingType.DataStreaming); + AltNetworking.CreateEntity(new Position {X = 1, Y = 1, Z = 1}, 1, 50, data2, StreamingType.DataStreaming); AltNetworking.OnEntityStreamIn = (entity, client) => { Console.WriteLine("streamed in " + entity.Id + " in client " + client.Token); diff --git a/api/AltV.Net/Data/ReadOnlyPlayer.cs b/api/AltV.Net/Data/ReadOnlyPlayer.cs index e9c0b2a0d5..eac606f20a 100644 --- a/api/AltV.Net/Data/ReadOnlyPlayer.cs +++ b/api/AltV.Net/Data/ReadOnlyPlayer.cs @@ -39,14 +39,29 @@ public struct ReadOnlyPlayer : IPlayer, IDisposable public bool Exists => false; public BaseObjectType Type => BaseObjectType.Player; - public ushort MaxHealth { get; set; } - public ushort MaxArmor { get; set; } - public uint CurrentWeapon { get; set; } - public IntPtr entityAimingAt; - public byte entityAimingAtEntityType; - public Position EntityAimOffset { get; } - public bool IsFlashlightActive { get; } - public string Ip { get; } + //TODO: implement in struct + public ushort MaxHealth + { + get => 0; + set { } + } + + public ushort MaxArmor + { + get => 0; + set { } + } + + public uint CurrentWeapon + { + get => 0; + set { } + } + public IntPtr entityAimingAt => IntPtr.Zero; + public byte entityAimingAtEntityType => 0; + public Position EntityAimOffset => new Position(); + public bool IsFlashlightActive => false; + public string Ip => "0.0.0.0"; public IEntity EntityAimingAt { @@ -58,6 +73,11 @@ public IEntity EntityAimingAt } } + public ulong SocialClubId { get; } + public ulong HardwareIdHash { get; } + public ulong HardwareIdExHash { get; } + public string AuthToken { get; } + public void SetMetaData(string key, object value) { throw new NotImplementedException(); diff --git a/api/AltV.Net/Elements/Entities/IPlayer.cs b/api/AltV.Net/Elements/Entities/IPlayer.cs index 24f553f926..3678746e30 100644 --- a/api/AltV.Net/Elements/Entities/IPlayer.cs +++ b/api/AltV.Net/Elements/Entities/IPlayer.cs @@ -9,7 +9,15 @@ public interface IPlayer : IEntity bool IsConnected { get; } - string Name { get; set; } + string Name { get; } + + ulong SocialClubId { get; } + + ulong HardwareIdHash { get; } + + ulong HardwareIdExHash { get; } + + string AuthToken { get; } ushort Health { get; set; } diff --git a/api/AltV.Net/Elements/Entities/Player.cs b/api/AltV.Net/Elements/Entities/Player.cs index d6a43bebae..8c479ffe11 100644 --- a/api/AltV.Net/Elements/Entities/Player.cs +++ b/api/AltV.Net/Elements/Entities/Player.cs @@ -120,12 +120,50 @@ public string Name AltNative.Player.Player_GetName(NativePointer, ref ptr); return Marshal.PtrToStringUTF8(ptr); } - set + /*set { CheckIfEntityExists(); var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); AltNative.Player.Player_SetName(NativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); + }*/ + } + + public ulong SocialClubId + { + get + { + CheckIfEntityExists(); + return AltNative.Player.Player_GetSocialID(NativePointer); + } + } + + public ulong HardwareIdHash + { + get + { + CheckIfEntityExists(); + return AltNative.Player.Player_GetHwidHash(NativePointer); + } + } + + public ulong HardwareIdExHash + { + get + { + CheckIfEntityExists(); + return AltNative.Player.Player_GetHwidExHash(NativePointer); + } + } + + public string AuthToken + { + get + { + CheckIfEntityExists(); + var ptr = IntPtr.Zero; + AltNative.Player.Player_GetName(NativePointer, ref ptr); + return Marshal.PtrToStringUTF8(ptr); } } diff --git a/api/AltV.Net/Native/AltV.Player.cs b/api/AltV.Net/Native/AltV.Player.cs index 4e68210d0c..fc78c317b0 100644 --- a/api/AltV.Net/Native/AltV.Player.cs +++ b/api/AltV.Net/Native/AltV.Player.cs @@ -70,6 +70,18 @@ internal static extern void [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void Player_SetName(IntPtr playerPointer, IntPtr name); + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern ulong Player_GetSocialID(IntPtr playerPointer); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern ulong Player_GetHwidHash(IntPtr playerPointer); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern ulong Player_GetHwidExHash(IntPtr playerPointer); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void Player_GetAuthToken(IntPtr playerPointer, IntPtr name); + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern ushort Player_GetHealth(IntPtr playerPointer); diff --git a/runtime/src/altv-c-api/player.cpp b/runtime/src/altv-c-api/player.cpp index c9de89df2e..057043bf58 100644 --- a/runtime/src/altv-c-api/player.cpp +++ b/runtime/src/altv-c-api/player.cpp @@ -79,7 +79,23 @@ void Player_GetName(alt::IPlayer* player, const char*&name) { } void Player_SetName(alt::IPlayer* player, const char* name) { - player->SetName(name); + //player->SetName(name); +} + +uint64_t Player_GetSocialID(alt::IPlayer* player) { + return player->GetSocialID(); +} + +uint64_t Player_GetHwidHash(alt::IPlayer* player) { + return player->GetHwidHash(); +} + +uint64_t Player_GetHwidExHash(alt::IPlayer* player) { + return player->GetHwidExHash(); +} + +void Player_GetAuthToken(alt::IPlayer* player, const char*&name) { + name = player->GetAuthToken().CStr(); } uint16_t Player_GetHealth(alt::IPlayer* player) { diff --git a/runtime/src/altv-c-api/player.h b/runtime/src/altv-c-api/player.h index 0461d76fa7..6f49eac57e 100644 --- a/runtime/src/altv-c-api/player.h +++ b/runtime/src/altv-c-api/player.h @@ -65,6 +65,11 @@ EXPORT void Player_Despawn(alt::IPlayer* player); EXPORT void Player_GetName(alt::IPlayer* player, const char*&name); EXPORT void Player_SetName(alt::IPlayer* player, const char* name); +EXPORT uint64_t Player_GetSocialID(alt::IPlayer* player); +EXPORT uint64_t Player_GetHwidHash(alt::IPlayer* player); +EXPORT uint64_t Player_GetHwidExHash(alt::IPlayer* player); +EXPORT void Player_GetAuthToken(alt::IPlayer* player, const char*& name); + EXPORT uint16_t Player_GetHealth(alt::IPlayer* player); EXPORT void Player_SetHealth(alt::IPlayer* player, uint16_t health); diff --git a/runtime/thirdparty/altv-cpp-api b/runtime/thirdparty/altv-cpp-api index ff9ff33c80..8cd94042bf 160000 --- a/runtime/thirdparty/altv-cpp-api +++ b/runtime/thirdparty/altv-cpp-api @@ -1 +1 @@ -Subproject commit ff9ff33c80e629d2204c39356e6317c8cee7d4b0 +Subproject commit 8cd94042bf1249bb8e40680562f82b0ce21b951c