Skip to content

Commit

Permalink
feat(client): server time getter
Browse files Browse the repository at this point in the history
  • Loading branch information
Doxoh committed Jan 12, 2024
1 parent 7b47b8d commit 09c0b12
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 7 deletions.
9 changes: 7 additions & 2 deletions api/AltV.Net.CApi/Libraries/ClientLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ public unsafe interface IClientLibrary
public delegate* unmanaged[Cdecl]<nint, Vector2*, void> Core_GetScreenResolution { get; }
public delegate* unmanaged[Cdecl]<nint, int*, nint> Core_GetServerIp { get; }
public delegate* unmanaged[Cdecl]<nint, ushort> Core_GetServerPort { get; }
public delegate* unmanaged[Cdecl]<nint, ulong> Core_GetServerTime { get; }
public delegate* unmanaged[Cdecl]<nint, nint, byte> Core_GetStatBool { get; }
public delegate* unmanaged[Cdecl]<nint, nint, nint> Core_GetStatData { get; }
public delegate* unmanaged[Cdecl]<nint, nint, float> Core_GetStatFloat { get; }
Expand Down Expand Up @@ -901,7 +902,7 @@ public unsafe interface IClientLibrary

public unsafe class ClientLibrary : IClientLibrary
{
public readonly uint Methods = 1769;
public readonly uint Methods = 1770;
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput { get; }
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
public delegate* unmanaged[Cdecl]<nint, double> Audio_GetCurrentTime { get; }
Expand Down Expand Up @@ -1059,6 +1060,7 @@ public unsafe class ClientLibrary : IClientLibrary
public delegate* unmanaged[Cdecl]<nint, Vector2*, void> Core_GetScreenResolution { get; }
public delegate* unmanaged[Cdecl]<nint, int*, nint> Core_GetServerIp { get; }
public delegate* unmanaged[Cdecl]<nint, ushort> Core_GetServerPort { get; }
public delegate* unmanaged[Cdecl]<nint, ulong> Core_GetServerTime { get; }
public delegate* unmanaged[Cdecl]<nint, nint, byte> Core_GetStatBool { get; }
public delegate* unmanaged[Cdecl]<nint, nint, nint> Core_GetStatData { get; }
public delegate* unmanaged[Cdecl]<nint, nint, float> Core_GetStatFloat { get; }
Expand Down Expand Up @@ -2102,6 +2104,8 @@ public unsafe class ClientLibrary : IClientLibrary
private static nint Core_GetServerIpFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetServerIp", "Core_GetServerIp SDK method is outdated. Please update your module nuget");
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetServerPortDelegate(nint _core);
private static ushort Core_GetServerPortFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetServerPort", "Core_GetServerPort SDK method is outdated. Please update your module nuget");
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetServerTimeDelegate(nint _core);
private static ulong Core_GetServerTimeFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetServerTime", "Core_GetServerTime SDK method is outdated. Please update your module nuget");
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetStatBoolDelegate(nint _core, nint _stat);
private static byte Core_GetStatBoolFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatBool", "Core_GetStatBool SDK method is outdated. Please update your module nuget");
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetStatDataDelegate(nint _core, nint _stat);
Expand Down Expand Up @@ -3569,7 +3573,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
{
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 12612033657027659340UL) Outdated = true;
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true;
Audio_AddOutput = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutputDelegate>(funcTable, 9914412815391408844UL, Audio_AddOutputFallback);
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);
Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]<nint, double>) GetUnmanagedPtr<Audio_GetCurrentTimeDelegate>(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback);
Expand Down Expand Up @@ -3727,6 +3731,7 @@ public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
Core_GetScreenResolution = (delegate* unmanaged[Cdecl]<nint, Vector2*, void>) GetUnmanagedPtr<Core_GetScreenResolutionDelegate>(funcTable, 16078537130538515891UL, Core_GetScreenResolutionFallback);
Core_GetServerIp = (delegate* unmanaged[Cdecl]<nint, int*, nint>) GetUnmanagedPtr<Core_GetServerIpDelegate>(funcTable, 1389091625205062844UL, Core_GetServerIpFallback);
Core_GetServerPort = (delegate* unmanaged[Cdecl]<nint, ushort>) GetUnmanagedPtr<Core_GetServerPortDelegate>(funcTable, 14148467334937601992UL, Core_GetServerPortFallback);
Core_GetServerTime = (delegate* unmanaged[Cdecl]<nint, ulong>) GetUnmanagedPtr<Core_GetServerTimeDelegate>(funcTable, 8910809418132103019UL, Core_GetServerTimeFallback);
Core_GetStatBool = (delegate* unmanaged[Cdecl]<nint, nint, byte>) GetUnmanagedPtr<Core_GetStatBoolDelegate>(funcTable, 4132285709171755304UL, Core_GetStatBoolFallback);
Core_GetStatData = (delegate* unmanaged[Cdecl]<nint, nint, nint>) GetUnmanagedPtr<Core_GetStatDataDelegate>(funcTable, 311843349031918009UL, Core_GetStatDataFallback);
Core_GetStatFloat = (delegate* unmanaged[Cdecl]<nint, nint, float>) GetUnmanagedPtr<Core_GetStatFloatDelegate>(funcTable, 175428875067811253UL, Core_GetStatFloatFallback);
Expand Down
4 changes: 2 additions & 2 deletions api/AltV.Net.CApi/Libraries/ServerLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ public unsafe interface IServerLibrary

public unsafe class ServerLibrary : IServerLibrary
{
public readonly uint Methods = 1769;
public readonly uint Methods = 1770;
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
public delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void> BaseObject_SetMultipleSyncedMetaData { get; }
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
Expand Down Expand Up @@ -1905,7 +1905,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
{
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 12612033657027659340UL) Outdated = true;
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true;
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void>) GetUnmanagedPtr<BaseObject_SetMultipleSyncedMetaDataDelegate>(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback);
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
Expand Down
4 changes: 2 additions & 2 deletions api/AltV.Net.CApi/Libraries/SharedLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ public unsafe interface ISharedLibrary

public unsafe class SharedLibrary : ISharedLibrary
{
public readonly uint Methods = 1769;
public readonly uint Methods = 1770;
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
Expand Down Expand Up @@ -1669,7 +1669,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
{
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 12612033657027659340UL) Outdated = true;
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true;
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);
Expand Down
2 changes: 2 additions & 0 deletions api/AltV.Net.Client/Alt.Globals.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,5 +118,7 @@ public static partial class Alt
public static bool RmlControlsEnabled { get => Core.RmlControlsEnabled; set => Core.RmlControlsEnabled = value; }
public static bool VoiceControlsEnabled { get => Core.VoiceControlsEnabled; set => Core.VoiceControlsEnabled = value; }
public static int MsPerGameMinute { get => Core.MsPerGameMinute; set => Core.MsPerGameMinute = value; }

public static ulong ServerTime => Core.ServerTime;
}
}
11 changes: 11 additions & 0 deletions api/AltV.Net.Client/Core.cs
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,17 @@ public void UpdateClipContext(Dictionary<string, string> context)
}
}

public ulong ServerTime
{
get
{
unsafe
{
return this.Library.Client.Core_GetServerTime(NativePointer);
}
}
}

#endregion

#region TriggerServerEvent
Expand Down
2 changes: 2 additions & 0 deletions api/AltV.Net.Client/ICore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -229,5 +229,7 @@ ILocalObject CreateLocalObject(uint modelHash, Position position, Rotation rotat
IAudioFilter GetVoiceFilter(uint playerRemoteId);

void UpdateClipContext(Dictionary<string, string> context);

ulong ServerTime { get; }
}
}
2 changes: 1 addition & 1 deletion runtime

0 comments on commit 09c0b12

Please sign in to comment.