Skip to content

Commit 0874ae5

Browse files
committed
feat(client): add new voice methods / feat(server): add minor version number to IConnectionInfo & CPlayerConnectDeniedEvent
1 parent 02fb296 commit 0874ae5

File tree

17 files changed

+218
-30
lines changed

17 files changed

+218
-30
lines changed

api/AltV.Net.Async/AsyncCore.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -869,14 +869,14 @@ public override void OnGivePedScriptedTaskEvent(IntPtr eventPointer, IPlayer sou
869869
}
870870

871871
public override void OnPlayerConnectDeniedEvent(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash,
872-
bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId)
872+
bool isDebug, string branch, ushort versionMajor, ushort versionMinor, string cdnUrl, long discordId)
873873
{
874-
base.OnPlayerConnectDeniedEvent(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, discordId);
874+
base.OnPlayerConnectDeniedEvent(reason, name, ip, passwordHash, isDebug, branch, versionMajor, versionMinor, cdnUrl, discordId);
875875

876876
if (!PlayerConnectDeniedAsyncEventHandler.HasEvents()) return;
877877
Task.Run(async () =>
878878
{
879-
await PlayerConnectDeniedAsyncEventHandler.CallAsync(@delegate => @delegate(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, discordId));
879+
await PlayerConnectDeniedAsyncEventHandler.CallAsync(@delegate => @delegate(reason, name, ip, passwordHash, isDebug, branch, versionMajor, versionMinor, cdnUrl, discordId));
880880
});
881881
}
882882

api/AltV.Net.Async/Elements/Entities/AsyncConnectionInfo.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,31 @@ public string Branch
9696
}
9797
}
9898
}
99-
public uint Build
99+
100+
public ushort VersionMajor
101+
{
102+
get
103+
{
104+
lock (ConnectionInfo)
105+
{
106+
if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default;
107+
return ConnectionInfo.VersionMajor;
108+
}
109+
}
110+
}
111+
112+
public ushort VersionMinor
100113
{
101114
get
102115
{
103116
lock (ConnectionInfo)
104117
{
105118
if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default;
106-
return ConnectionInfo.Build;
119+
return ConnectionInfo.VersionMinor;
107120
}
108121
}
109122
}
123+
110124
public string CdnUrl
111125
{
112126
get

api/AltV.Net.Async/Events/Events.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace AltV.Net.Async.Events
1414
public delegate Task PlayerConnectAsyncDelegate(IPlayer player, string reason);
1515

1616
public delegate Task PlayerConnectDeniedAsyncDelegate(PlayerConnectDeniedReason reason, string name, string ip,
17-
ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId);
17+
ulong passwordHash, bool isDebug, string branch, ushort versionMajor, ushort versionMinor, string cdnUrl, long discordId);
1818

1919
public delegate Task ResourceEventAsyncDelegate(INativeResource resource);
2020

api/AltV.Net.CApi/Libraries/ClientLibrary.cs

Lines changed: 47 additions & 2 deletions
Large diffs are not rendered by default.

api/AltV.Net.CApi/Libraries/ServerLibrary.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public unsafe interface IServerLibrary
3131
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetAuthToken { get; }
3232
public delegate* unmanaged[Cdecl]<IntPtr, nint> ConnectionInfo_GetBaseObject { get; }
3333
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetBranch { get; }
34-
public delegate* unmanaged[Cdecl]<IntPtr, uint> ConnectionInfo_GetBuild { get; }
3534
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetCdnUrl { get; }
3635
public delegate* unmanaged[Cdecl]<IntPtr, byte> ConnectionInfo_GetCloudAuthResult { get; }
3736
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetCloudID { get; }
@@ -46,6 +45,8 @@ public unsafe interface IServerLibrary
4645
public delegate* unmanaged[Cdecl]<IntPtr, ulong> ConnectionInfo_GetSocialId { get; }
4746
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetSocialName { get; }
4847
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetText { get; }
48+
public delegate* unmanaged[Cdecl]<IntPtr, ushort> ConnectionInfo_GetVersionMajor { get; }
49+
public delegate* unmanaged[Cdecl]<IntPtr, ushort> ConnectionInfo_GetVersionMinor { get; }
4950
public delegate* unmanaged[Cdecl]<IntPtr, byte> ConnectionInfo_IsAccepted { get; }
5051
public delegate* unmanaged[Cdecl]<IntPtr, nint, void> ConnectionInfo_SetText { get; }
5152
public delegate* unmanaged[Cdecl]<nint, nint, void> Core_AddClientConfigKey { get; }
@@ -484,7 +485,7 @@ public unsafe interface IServerLibrary
484485

485486
public unsafe class ServerLibrary : IServerLibrary
486487
{
487-
public readonly uint Methods = 1756;
488+
public readonly uint Methods = 1766;
488489
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
489490
public delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void> BaseObject_SetMultipleSyncedMetaData { get; }
490491
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
@@ -505,7 +506,6 @@ public unsafe class ServerLibrary : IServerLibrary
505506
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetAuthToken { get; }
506507
public delegate* unmanaged[Cdecl]<IntPtr, nint> ConnectionInfo_GetBaseObject { get; }
507508
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetBranch { get; }
508-
public delegate* unmanaged[Cdecl]<IntPtr, uint> ConnectionInfo_GetBuild { get; }
509509
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetCdnUrl { get; }
510510
public delegate* unmanaged[Cdecl]<IntPtr, byte> ConnectionInfo_GetCloudAuthResult { get; }
511511
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetCloudID { get; }
@@ -520,6 +520,8 @@ public unsafe class ServerLibrary : IServerLibrary
520520
public delegate* unmanaged[Cdecl]<IntPtr, ulong> ConnectionInfo_GetSocialId { get; }
521521
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetSocialName { get; }
522522
public delegate* unmanaged[Cdecl]<IntPtr, int*, nint> ConnectionInfo_GetText { get; }
523+
public delegate* unmanaged[Cdecl]<IntPtr, ushort> ConnectionInfo_GetVersionMajor { get; }
524+
public delegate* unmanaged[Cdecl]<IntPtr, ushort> ConnectionInfo_GetVersionMinor { get; }
523525
public delegate* unmanaged[Cdecl]<IntPtr, byte> ConnectionInfo_IsAccepted { get; }
524526
public delegate* unmanaged[Cdecl]<IntPtr, nint, void> ConnectionInfo_SetText { get; }
525527
public delegate* unmanaged[Cdecl]<nint, nint, void> Core_AddClientConfigKey { get; }
@@ -994,8 +996,6 @@ public unsafe class ServerLibrary : IServerLibrary
994996
private static nint ConnectionInfo_GetBaseObjectFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBaseObject", "ConnectionInfo_GetBaseObject SDK method is outdated. Please update your module nuget");
995997
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetBranchDelegate(IntPtr _connectionInfo, int* _size);
996998
private static nint ConnectionInfo_GetBranchFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBranch", "ConnectionInfo_GetBranch SDK method is outdated. Please update your module nuget");
997-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ConnectionInfo_GetBuildDelegate(IntPtr _connectionInfo);
998-
private static uint ConnectionInfo_GetBuildFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBuild", "ConnectionInfo_GetBuild SDK method is outdated. Please update your module nuget");
999999
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetCdnUrlDelegate(IntPtr _connectionInfo, int* _size);
10001000
private static nint ConnectionInfo_GetCdnUrlFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetCdnUrl", "ConnectionInfo_GetCdnUrl SDK method is outdated. Please update your module nuget");
10011001
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ConnectionInfo_GetCloudAuthResultDelegate(IntPtr _connectionInfo);
@@ -1024,6 +1024,10 @@ public unsafe class ServerLibrary : IServerLibrary
10241024
private static nint ConnectionInfo_GetSocialNameFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetSocialName", "ConnectionInfo_GetSocialName SDK method is outdated. Please update your module nuget");
10251025
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetTextDelegate(IntPtr _connectionInfo, int* _size);
10261026
private static nint ConnectionInfo_GetTextFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetText", "ConnectionInfo_GetText SDK method is outdated. Please update your module nuget");
1027+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort ConnectionInfo_GetVersionMajorDelegate(IntPtr _connectionInfo);
1028+
private static ushort ConnectionInfo_GetVersionMajorFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetVersionMajor", "ConnectionInfo_GetVersionMajor SDK method is outdated. Please update your module nuget");
1029+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort ConnectionInfo_GetVersionMinorDelegate(IntPtr _connectionInfo);
1030+
private static ushort ConnectionInfo_GetVersionMinorFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetVersionMinor", "ConnectionInfo_GetVersionMinor SDK method is outdated. Please update your module nuget");
10271031
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ConnectionInfo_IsAcceptedDelegate(IntPtr _connectionInfo);
10281032
private static byte ConnectionInfo_IsAcceptedFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_IsAccepted", "ConnectionInfo_IsAccepted SDK method is outdated. Please update your module nuget");
10291033
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ConnectionInfo_SetTextDelegate(IntPtr _connectionInfo, nint _text);
@@ -1901,7 +1905,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
19011905
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
19021906
{
19031907
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1904-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 9602013249028565151UL) Outdated = true;
1908+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3200807633316865025UL) Outdated = true;
19051909
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
19061910
BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void>) GetUnmanagedPtr<BaseObject_SetMultipleSyncedMetaDataDelegate>(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback);
19071911
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
@@ -1922,7 +1926,6 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
19221926
ConnectionInfo_GetAuthToken = (delegate* unmanaged[Cdecl]<IntPtr, int*, nint>) GetUnmanagedPtr<ConnectionInfo_GetAuthTokenDelegate>(funcTable, 8194004283135524333UL, ConnectionInfo_GetAuthTokenFallback);
19231927
ConnectionInfo_GetBaseObject = (delegate* unmanaged[Cdecl]<IntPtr, nint>) GetUnmanagedPtr<ConnectionInfo_GetBaseObjectDelegate>(funcTable, 12397496971801767822UL, ConnectionInfo_GetBaseObjectFallback);
19241928
ConnectionInfo_GetBranch = (delegate* unmanaged[Cdecl]<IntPtr, int*, nint>) GetUnmanagedPtr<ConnectionInfo_GetBranchDelegate>(funcTable, 1577439110274874884UL, ConnectionInfo_GetBranchFallback);
1925-
ConnectionInfo_GetBuild = (delegate* unmanaged[Cdecl]<IntPtr, uint>) GetUnmanagedPtr<ConnectionInfo_GetBuildDelegate>(funcTable, 14204191833155309704UL, ConnectionInfo_GetBuildFallback);
19261929
ConnectionInfo_GetCdnUrl = (delegate* unmanaged[Cdecl]<IntPtr, int*, nint>) GetUnmanagedPtr<ConnectionInfo_GetCdnUrlDelegate>(funcTable, 5988681596904693572UL, ConnectionInfo_GetCdnUrlFallback);
19271930
ConnectionInfo_GetCloudAuthResult = (delegate* unmanaged[Cdecl]<IntPtr, byte>) GetUnmanagedPtr<ConnectionInfo_GetCloudAuthResultDelegate>(funcTable, 7415605567391116903UL, ConnectionInfo_GetCloudAuthResultFallback);
19281931
ConnectionInfo_GetCloudID = (delegate* unmanaged[Cdecl]<IntPtr, int*, nint>) GetUnmanagedPtr<ConnectionInfo_GetCloudIDDelegate>(funcTable, 7998061229071288348UL, ConnectionInfo_GetCloudIDFallback);
@@ -1937,6 +1940,8 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
19371940
ConnectionInfo_GetSocialId = (delegate* unmanaged[Cdecl]<IntPtr, ulong>) GetUnmanagedPtr<ConnectionInfo_GetSocialIdDelegate>(funcTable, 10464338232675126241UL, ConnectionInfo_GetSocialIdFallback);
19381941
ConnectionInfo_GetSocialName = (delegate* unmanaged[Cdecl]<IntPtr, int*, nint>) GetUnmanagedPtr<ConnectionInfo_GetSocialNameDelegate>(funcTable, 12079559810042444284UL, ConnectionInfo_GetSocialNameFallback);
19391942
ConnectionInfo_GetText = (delegate* unmanaged[Cdecl]<IntPtr, int*, nint>) GetUnmanagedPtr<ConnectionInfo_GetTextDelegate>(funcTable, 15232547943166326905UL, ConnectionInfo_GetTextFallback);
1943+
ConnectionInfo_GetVersionMajor = (delegate* unmanaged[Cdecl]<IntPtr, ushort>) GetUnmanagedPtr<ConnectionInfo_GetVersionMajorDelegate>(funcTable, 17632900701407653009UL, ConnectionInfo_GetVersionMajorFallback);
1944+
ConnectionInfo_GetVersionMinor = (delegate* unmanaged[Cdecl]<IntPtr, ushort>) GetUnmanagedPtr<ConnectionInfo_GetVersionMinorDelegate>(funcTable, 5117935778920368749UL, ConnectionInfo_GetVersionMinorFallback);
19401945
ConnectionInfo_IsAccepted = (delegate* unmanaged[Cdecl]<IntPtr, byte>) GetUnmanagedPtr<ConnectionInfo_IsAcceptedDelegate>(funcTable, 8806505177995284480UL, ConnectionInfo_IsAcceptedFallback);
19411946
ConnectionInfo_SetText = (delegate* unmanaged[Cdecl]<IntPtr, nint, void>) GetUnmanagedPtr<ConnectionInfo_SetTextDelegate>(funcTable, 13680172646316204766UL, ConnectionInfo_SetTextFallback);
19421947
Core_AddClientConfigKey = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Core_AddClientConfigKeyDelegate>(funcTable, 17282535440709139868UL, Core_AddClientConfigKeyFallback);

api/AltV.Net.CApi/Libraries/SharedLibrary.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ public unsafe interface ISharedLibrary
425425

426426
public unsafe class SharedLibrary : ISharedLibrary
427427
{
428-
public readonly uint Methods = 1756;
428+
public readonly uint Methods = 1766;
429429
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
430430
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
431431
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1665,7 +1665,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
16651665
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
16661666
{
16671667
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1668-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 9602013249028565151UL) Outdated = true;
1668+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3200807633316865025UL) Outdated = true;
16691669
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
16701670
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
16711671
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

api/AltV.Net.CApi/Native/AltV.Resource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ internal delegate void CheckpointDelegate(IntPtr checkpointPointer, IntPtr entit
2727
internal delegate void PlayerConnectDelegate(IntPtr playerPointer, string reason);
2828

2929
internal delegate void PlayerConnectDeniedDelegate(PlayerConnectDeniedReason reason, string name, string ip,
30-
ulong passwordHash, byte isDebug, string branch, uint majorVersion, string cdnUrl, long discordId);
30+
ulong passwordHash, byte isDebug, string branch, ushort versionMajor, ushort versionMinor, string cdnUrl, long discordId);
3131

3232
internal delegate void ResourceEventDelegate(IntPtr resourcePointer);
3333

api/AltV.Net.Client/Alt.Globals.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Numerics;
22
using AltV.Net.Client.Elements.Data;
3+
using AltV.Net.Client.Elements.Interfaces;
34
using AltV.Net.Data;
45

56
namespace AltV.Net.Client
@@ -80,6 +81,17 @@ public static partial class Alt
8081
public static uint GetPoolCount(string pool) => Core.GetPoolCount(pool);
8182
public static uint[] GetPoolEntities(string pool) => Core.GetPoolEntities(pool);
8283

84+
public static uint[] GetVoicePlayers() => Core.GetVoicePlayers();
85+
public static void RemoveVoicePlayer(uint playerRemoteId) => Core.RemoveVoicePlayer(playerRemoteId);
86+
public static float GetVoiceSpatialVolume(uint playerRemoteId) => Core.GetVoiceSpatialVolume(playerRemoteId);
87+
public static void SetVoiceSpatialVolume(uint playerRemoteId, float volume) => Core.SetVoiceSpatialVolume(playerRemoteId, volume);
88+
public static float GetVoiceNonSpatialVolume(uint playerRemoteId) => Core.GetVoiceNonSpatialVolume(playerRemoteId);
89+
public static void SetVoiceNonSpatialVolume(uint playerRemoteId, float volume) => Core.SetVoiceNonSpatialVolume(playerRemoteId, volume);
90+
91+
public static void AddVoiceFilter(uint playerRemoteId, IAudioFilter filter) => Core.AddVoiceFilter(playerRemoteId, filter);
92+
public static void RemoveVoiceFilter(uint playerRemoteId) => Core.RemoveVoiceFilter(playerRemoteId);
93+
public static IAudioFilter GetVoiceFilter(uint playerRemoteId) => Core.GetVoiceFilter(playerRemoteId);
94+
8395
public static MapZoomData GetMapZoomData(uint id) => Core.GetMapZoomData(id);
8496
public static MapZoomData GetMapZoomData(string alias) => Core.GetMapZoomData(alias);
8597
public static void ResetAllMapZoomData() => Core.ResetAllMapZoomData();

0 commit comments

Comments
 (0)