Skip to content

Commit 632f9ff

Browse files
committed
feat(client): Add UpdateClipContext
1 parent 0938408 commit 632f9ff

File tree

7 files changed

+44
-7
lines changed

7 files changed

+44
-7
lines changed

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ public unsafe interface IClientLibrary
268268
public delegate* unmanaged[Cdecl]<nint, nint, nint[], int, ushort> Core_TriggerServerRPCEvent { get; }
269269
public delegate* unmanaged[Cdecl]<nint, nint, nint, nint[], int, void> Core_TriggerWebViewEvent { get; }
270270
public delegate* unmanaged[Cdecl]<nint, nint, byte> Core_UnloadYtyp { get; }
271+
public delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void> Core_UpdateClipContext { get; }
271272
public delegate* unmanaged[Cdecl]<nint, Vector3, Vector2*, void> Core_WorldToScreen { get; }
272273
public delegate* unmanaged[Cdecl]<nint, nint> CustomTexture_GetBaseObject { get; }
273274
public delegate* unmanaged[Cdecl]<nint, uint> CustomTexture_GetID { get; }
@@ -899,7 +900,7 @@ public unsafe interface IClientLibrary
899900

900901
public unsafe class ClientLibrary : IClientLibrary
901902
{
902-
public readonly uint Methods = 1766;
903+
public readonly uint Methods = 1767;
903904
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput { get; }
904905
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
905906
public delegate* unmanaged[Cdecl]<nint, double> Audio_GetCurrentTime { get; }
@@ -1157,6 +1158,7 @@ public unsafe class ClientLibrary : IClientLibrary
11571158
public delegate* unmanaged[Cdecl]<nint, nint, nint[], int, ushort> Core_TriggerServerRPCEvent { get; }
11581159
public delegate* unmanaged[Cdecl]<nint, nint, nint, nint[], int, void> Core_TriggerWebViewEvent { get; }
11591160
public delegate* unmanaged[Cdecl]<nint, nint, byte> Core_UnloadYtyp { get; }
1161+
public delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void> Core_UpdateClipContext { get; }
11601162
public delegate* unmanaged[Cdecl]<nint, Vector3, Vector2*, void> Core_WorldToScreen { get; }
11611163
public delegate* unmanaged[Cdecl]<nint, nint> CustomTexture_GetBaseObject { get; }
11621164
public delegate* unmanaged[Cdecl]<nint, uint> CustomTexture_GetID { get; }
@@ -2298,6 +2300,8 @@ public unsafe class ClientLibrary : IClientLibrary
22982300
private static void Core_TriggerWebViewEventFallback(nint _core, nint _webview, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerWebViewEvent", "Core_TriggerWebViewEvent SDK method is outdated. Please update your module nuget");
22992301
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_UnloadYtypDelegate(nint _core, nint _path);
23002302
private static byte Core_UnloadYtypFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_UnloadYtyp", "Core_UnloadYtyp SDK method is outdated. Please update your module nuget");
2303+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_UpdateClipContextDelegate(nint _core, nint[] keys, nint[] values, ulong _size);
2304+
private static void Core_UpdateClipContextFallback(nint _core, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_UpdateClipContext", "Core_UpdateClipContext SDK method is outdated. Please update your module nuget");
23012305
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_WorldToScreenDelegate(nint _core, Vector3 _in, Vector2* _out);
23022306
private static void Core_WorldToScreenFallback(nint _core, Vector3 _in, Vector2* _out) => throw new Exceptions.OutdatedSdkException("Core_WorldToScreen", "Core_WorldToScreen SDK method is outdated. Please update your module nuget");
23032307
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint CustomTexture_GetBaseObjectDelegate(nint _costumTexture);
@@ -3561,7 +3565,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
35613565
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
35623566
{
35633567
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
3564-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3200807633316865025UL) Outdated = true;
3568+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18144996551249947726UL) Outdated = true;
35653569
Audio_AddOutput = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutputDelegate>(funcTable, 9914412815391408844UL, Audio_AddOutputFallback);
35663570
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);
35673571
Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]<nint, double>) GetUnmanagedPtr<Audio_GetCurrentTimeDelegate>(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback);
@@ -3819,6 +3823,7 @@ public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
38193823
Core_TriggerServerRPCEvent = (delegate* unmanaged[Cdecl]<nint, nint, nint[], int, ushort>) GetUnmanagedPtr<Core_TriggerServerRPCEventDelegate>(funcTable, 5920144219377072122UL, Core_TriggerServerRPCEventFallback);
38203824
Core_TriggerWebViewEvent = (delegate* unmanaged[Cdecl]<nint, nint, nint, nint[], int, void>) GetUnmanagedPtr<Core_TriggerWebViewEventDelegate>(funcTable, 3268039739443301173UL, Core_TriggerWebViewEventFallback);
38213825
Core_UnloadYtyp = (delegate* unmanaged[Cdecl]<nint, nint, byte>) GetUnmanagedPtr<Core_UnloadYtypDelegate>(funcTable, 17753040748478874447UL, Core_UnloadYtypFallback);
3826+
Core_UpdateClipContext = (delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void>) GetUnmanagedPtr<Core_UpdateClipContextDelegate>(funcTable, 17801058509158105354UL, Core_UpdateClipContextFallback);
38223827
Core_WorldToScreen = (delegate* unmanaged[Cdecl]<nint, Vector3, Vector2*, void>) GetUnmanagedPtr<Core_WorldToScreenDelegate>(funcTable, 5389506501733691988UL, Core_WorldToScreenFallback);
38233828
CustomTexture_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<CustomTexture_GetBaseObjectDelegate>(funcTable, 4168880360490742954UL, CustomTexture_GetBaseObjectFallback);
38243829
CustomTexture_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<CustomTexture_GetIDDelegate>(funcTable, 12755828446518747613UL, CustomTexture_GetIDFallback);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ public unsafe interface IServerLibrary
485485

486486
public unsafe class ServerLibrary : IServerLibrary
487487
{
488-
public readonly uint Methods = 1766;
488+
public readonly uint Methods = 1767;
489489
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
490490
public delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void> BaseObject_SetMultipleSyncedMetaData { get; }
491491
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
@@ -1905,7 +1905,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
19051905
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
19061906
{
19071907
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1908-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3200807633316865025UL) Outdated = true;
1908+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18144996551249947726UL) Outdated = true;
19091909
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
19101910
BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void>) GetUnmanagedPtr<BaseObject_SetMultipleSyncedMetaDataDelegate>(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback);
19111911
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);

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 = 1766;
428+
public readonly uint Methods = 1767;
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 != 3200807633316865025UL) Outdated = true;
1668+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18144996551249947726UL) 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.Client/Alt.Globals.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ public static partial class Alt
9292
public static void RemoveVoiceFilter(uint playerRemoteId) => Core.RemoveVoiceFilter(playerRemoteId);
9393
public static IAudioFilter GetVoiceFilter(uint playerRemoteId) => Core.GetVoiceFilter(playerRemoteId);
9494

95+
public static void UpdateClipContext(Dictionary<string, string> context) => Core.UpdateClipContext(context);
96+
9597
public static MapZoomData GetMapZoomData(uint id) => Core.GetMapZoomData(id);
9698
public static MapZoomData GetMapZoomData(string alias) => Core.GetMapZoomData(alias);
9799
public static void ResetAllMapZoomData() => Core.ResetAllMapZoomData();

api/AltV.Net.Client/Core.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,34 @@ public IColShape CreateColShapeSphere(Vector3 position, float radius)
704704
return PoolManager.ColShape.Create(this, ptr, id);
705705
}
706706

707+
public void UpdateClipContext(Dictionary<string, string> context)
708+
{
709+
unsafe
710+
{
711+
var data = new Dictionary<IntPtr, IntPtr>();
712+
713+
var keys = new IntPtr[context.Count];
714+
var values = new IntPtr[context.Count];
715+
716+
for (var i = 0; i < context.Count; i++)
717+
{
718+
var keyptr = MemoryUtils.StringToHGlobalUtf8(context.ElementAt(i).Key);
719+
var valueptr = MemoryUtils.StringToHGlobalUtf8(context.ElementAt(i).Value);
720+
keys[i] = keyptr;
721+
values[i] = valueptr;
722+
data.Add(keyptr, valueptr);
723+
}
724+
725+
Library.Client.Core_UpdateClipContext(NativePointer, keys, values,(uint)data.Count);
726+
727+
foreach (var dataValue in data)
728+
{
729+
Marshal.FreeHGlobal(dataValue.Key);
730+
Marshal.FreeHGlobal(dataValue.Value);
731+
}
732+
}
733+
}
734+
707735
#endregion
708736

709737
#region TriggerServerEvent

api/AltV.Net.Client/ICore.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,5 +227,7 @@ ILocalObject CreateLocalObject(uint modelHash, Position position, Rotation rotat
227227
void AddVoiceFilter(uint playerRemoteId, IAudioFilter filter);
228228
void RemoveVoiceFilter(uint playerRemoteId);
229229
IAudioFilter GetVoiceFilter(uint playerRemoteId);
230+
231+
void UpdateClipContext(Dictionary<string, string> context);
230232
}
231233
}

runtime

0 commit comments

Comments
 (0)