Skip to content

Commit ed6db22

Browse files
committed
Merge branch 'dev' into rc
# Conflicts: # runtime
2 parents 52993ce + 8ec65a5 commit ed6db22

File tree

11 files changed

+68
-72
lines changed

11 files changed

+68
-72
lines changed

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

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading.Tasks;
23
using AltV.Net.Elements.Entities;
34

45
namespace AltV.Net.Async.Elements.Entities;
@@ -160,17 +161,6 @@ public string SocialName
160161
}
161162
}
162163
}
163-
public string CloudAuthHash
164-
{
165-
get
166-
{
167-
lock (ConnectionInfo)
168-
{
169-
if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default;
170-
return ConnectionInfo.CloudAuthHash;
171-
}
172-
}
173-
}
174164

175165
public string Text
176166
{
@@ -222,6 +212,15 @@ public void Decline(string reason)
222212
}
223213
}
224214

215+
public Task<string> RequestCloudId()
216+
{
217+
lock (ConnectionInfo)
218+
{
219+
if (!AsyncContext.CheckIfExistsNullable(ConnectionInfo)) return Task.FromResult<string>(default);
220+
return ConnectionInfo.RequestCloudId();
221+
}
222+
}
223+
225224

226225
[Obsolete("Use new async API instead")]
227226
public IConnectionInfo ToAsync(IAsyncContext asyncContext)

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

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,18 +1281,6 @@ public string SocialClubName
12811281
}
12821282
}
12831283

1284-
public string CloudAuthHash
1285-
{
1286-
get
1287-
{
1288-
lock (Player)
1289-
{
1290-
if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default;
1291-
return Player.CloudAuthHash;
1292-
}
1293-
}
1294-
}
1295-
12961284
public void SetAmmo(uint ammoHash, ushort ammo)
12971285
{
12981286
lock (Player)
@@ -1469,7 +1457,7 @@ public Task<string> RequestCloudId()
14691457
lock (Player)
14701458
{
14711459
if (!AsyncContext.CheckIfExistsNullable(Player)) return Task.FromResult<string>(default);
1472-
return Task.FromResult(Player.RequestCloudId().Result);
1460+
return Player.RequestCloudId();
14731461
}
14741462
}
14751463

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,7 @@ public unsafe interface IClientLibrary
881881

882882
public unsafe class ClientLibrary : IClientLibrary
883883
{
884-
public readonly uint Methods = 1716;
884+
public readonly uint Methods = 1715;
885885
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput { get; }
886886
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
887887
public delegate* unmanaged[Cdecl]<nint, double> Audio_GetCurrentTime { get; }
@@ -3492,7 +3492,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
34923492
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
34933493
{
34943494
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
3495-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10796895324229959904UL) Outdated = true;
3495+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10494575567167650847UL) Outdated = true;
34963496
Audio_AddOutput = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutputDelegate>(funcTable, 9914412815391408844UL, Audio_AddOutputFallback);
34973497
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);
34983498
Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]<nint, double>) GetUnmanagedPtr<Audio_GetCurrentTimeDelegate>(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback);

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

Lines changed: 7 additions & 12 deletions
Large diffs are not rendered by default.

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

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

406406
public unsafe class SharedLibrary : ISharedLibrary
407407
{
408-
public readonly uint Methods = 1716;
408+
public readonly uint Methods = 1715;
409409
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
410410
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
411411
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1588,7 +1588,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
15881588
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
15891589
{
15901590
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1591-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10796895324229959904UL) Outdated = true;
1591+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10494575567167650847UL) Outdated = true;
15921592
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
15931593
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
15941594
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

api/AltV.Net.Mock/MockConnectionInfo.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading.Tasks;
23
using AltV.Net.Elements.Args;
34
using AltV.Net.Elements.Entities;
45
using AltV.Net.Shared.Elements.Entities;
@@ -26,7 +27,6 @@ public MockConnectionInfo(ICore core, IntPtr nativePointer, uint id) : base(core
2627
public string Ip { get; }
2728
public long DiscordUserId { get; }
2829
public string SocialName { get; }
29-
public string CloudAuthHash { get; }
3030
public string Text { get; set; }
3131
public bool IsAccepted { get; }
3232

@@ -39,5 +39,10 @@ public void Decline(string reason)
3939
{
4040
throw new NotImplementedException();
4141
}
42+
43+
public Task<string> RequestCloudId()
44+
{
45+
throw new NotImplementedException();
46+
}
4247
}
4348
}

api/AltV.Net/Elements/Entities/ConnectionInfo.cs

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
using System;
22
using System.Runtime.InteropServices;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using AltV.Net.CApi.ServerEvents;
36
using AltV.Net.Native;
47

58
namespace AltV.Net.Elements.Entities;
@@ -187,19 +190,6 @@ public string SocialName
187190
}
188191
}
189192

190-
public string CloudAuthHash
191-
{
192-
get
193-
{
194-
unsafe
195-
{
196-
var size = 0;
197-
return Core.PtrToStringUtf8AndFree(
198-
Core.Library.Server.ConnectionInfo_GetCloudAuthHash(ConnectionInfoNativePointer, &size), size);
199-
}
200-
}
201-
}
202-
203193
public string Text
204194
{
205195
get
@@ -251,4 +241,37 @@ public void Decline(string reason)
251241
Marshal.FreeHGlobal(stringPtr);
252242
}
253243
}
244+
245+
public async Task<string> RequestCloudId()
246+
{
247+
GCHandle handle;
248+
bool success = false;
249+
string data = null;
250+
var semaphore = new SemaphoreSlim(0, 1);
251+
252+
unsafe
253+
{
254+
void ResolveTask(byte ok, IntPtr resultPtr)
255+
{
256+
success = ok == 1;
257+
data = Marshal.PtrToStringUTF8(resultPtr);
258+
semaphore.Release();
259+
}
260+
261+
RequestAuthCallbackDelegate resolveTask = ResolveTask;
262+
handle = GCHandle.Alloc(resolveTask);
263+
Core.Library.Server.ConnectionInfo_RequestCloudID(ConnectionInfoNativePointer, resolveTask);
264+
}
265+
266+
await semaphore.WaitAsync();
267+
handle.Free();
268+
semaphore.Dispose();
269+
270+
if (!success)
271+
{
272+
throw new CloudIDRequestException(data);
273+
}
274+
275+
return data;
276+
}
254277
}

api/AltV.Net/Elements/Entities/IConnectionInfo.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading.Tasks;
23
using AltV.Net.Elements.Entities;
34

45
namespace AltV.Net.Elements.Entities;
@@ -20,11 +21,11 @@ public interface IConnectionInfo : IBaseObject
2021
long DiscordUserId { get; }
2122
string SocialName { get; }
2223

23-
string CloudAuthHash { get; }
2424
string Text { get; set; }
2525

2626
bool IsAccepted { get; }
2727

2828
void Accept(bool sendNames = true);
2929
void Decline(string reason);
30+
Task<string> RequestCloudId();
3031
}

api/AltV.Net/Elements/Entities/IPlayer.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,6 @@ void PlayAnimation(string animDict, string animName, float blendInSpeed, float b
434434
void ClearTasks();
435435

436436
string SocialClubName { get; }
437-
string CloudAuthHash { get; }
438437
void SetAmmo(uint ammoHash, ushort ammo);
439438
ushort GetAmmo(uint ammoHash);
440439
void SetWeaponAmmo(uint weaponHash, ushort ammo);

api/AltV.Net/Elements/Entities/Player.cs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -192,21 +192,7 @@ public string SocialClubName
192192
}
193193
}
194194
}
195-
196-
public string CloudAuthHash
197-
{
198-
get
199-
{
200-
unsafe
201-
{
202-
CheckIfEntityExistsOrCached();
203-
var size = 0;
204-
return Core.PtrToStringUtf8AndFree(
205-
Core.Library.Server.Player_GetCloudAuthHash(PlayerNativePointer, &size), size);
206-
}
207-
}
208-
}
209-
195+
210196
public void SetAmmo(uint ammoHash, ushort ammo)
211197
{
212198
unsafe

0 commit comments

Comments
 (0)