Skip to content

Commit d99618a

Browse files
committed
Merge branch 'rc' into release
2 parents 877b376 + 227bf6c commit d99618a

File tree

88 files changed

+1530
-1783
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1530
-1783
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ on:
22
push:
33
tags:
44
- '*.*.*'
5-
- '*.*.*-*'
5+
- '*.*.*-*.*'
66
jobs:
77
fetch-nethost-linux:
88
runs-on: ubuntu-22.04

api/AltV.Net.Async/AltAsync.Vehicle.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,6 @@ public static Task<IVehicle> CreateVehicle(VehicleModel model, Position pos, Rot
2222
public static Task<IVehicle> CreateVehicle(string model, Position pos, Rotation rot, uint streamingDistance = 0) =>
2323
CreateVehicle(Alt.Hash(model), pos, rot, streamingDistance);
2424

25-
[Obsolete("Use AltAsync.CreateVehicle or Alt.CreateVehicle instead")]
26-
public static IVehicleBuilder CreateVehicleBuilder(uint model, Position pos, Rotation rot) =>
27-
new VehicleBuilder(model, pos, rot);
28-
29-
[Obsolete("Use AltAsync.CreateVehicle or Alt.CreateVehicle instead")]
30-
public static IVehicleBuilder CreateVehicleBuilder(VehicleModel model, Position pos, Rotation rot) =>
31-
new VehicleBuilder((uint) model, pos, rot);
32-
33-
[Obsolete("Use AltAsync.CreateVehicle or Alt.CreateVehicle instead")]
34-
public static IVehicleBuilder CreateVehicleBuilder(string model, Position pos, Rotation rot) =>
35-
new VehicleBuilder(Alt.Hash(model), pos, rot);
36-
3725
[Obsolete("Use async entities instead")]
3826
public static Task<IPlayer> GetDriverAsync(this IVehicle vehicle) => AltVAsync.Schedule(() =>
3927
!vehicle.Exists ? null : vehicle.Driver);

api/AltV.Net.Async/AsyncCore.cs

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -724,9 +724,9 @@ await ServerStartedAsyncEventHandler.CallAsync(@delegate =>
724724
});
725725
}
726726

727-
public override void OnPlayerRequestControlEvent(IEntity target, IPlayer player)
727+
public override void OnPlayerRequestControlEvent(IntPtr eventPtr, IEntity target, IPlayer player)
728728
{
729-
base.OnPlayerRequestControlEvent(target, player);
729+
base.OnPlayerRequestControlEvent(eventPtr, target, player);
730730

731731
if (!PlayerRequestControlAsyncEventHandler.HasEvents()) return;
732732
Task.Run(async () =>
@@ -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

@@ -968,17 +968,35 @@ public override void OnPlayerStopTalkingEvent(IPlayer player)
968968
});
969969
}
970970

971-
public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, IntPtr[] args, ushort answerId)
971+
public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, IntPtr[] args, ushort answerId, bool async)
972972
{
973-
base.OnScriptRPCEvent(eventpointer, target, name, args, answerId);
973+
if (!UnansweredServerRpcRequest.Contains(answerId))
974+
{
975+
UnansweredServerRpcRequest.Add(answerId);
976+
}
977+
base.OnScriptRPCEvent(eventpointer, target, name, args, answerId, true);
978+
979+
if (UnansweredServerRpcRequest.Contains(answerId))
980+
{
981+
unsafe
982+
{
983+
Library.Shared.Event_ScriptRPCEvent_WillAnswer(eventpointer);
984+
}
985+
}
974986

975987
if (!ScriptRpcAsyncEventHandler.HasEvents()) return;
976988
Task.Run(async () =>
977989
{
978990
var mValues = MValueConst.CreateFrom(this, args);
979-
var clientScriptRPCEvent = new ScriptRpcEvent(this, eventpointer);
991+
var clientScriptRPCEvent = new AsyncScriptRpcEvent(target, answerId);
980992
await ScriptRpcAsyncEventHandler.CallAsync(@delegate => @delegate(clientScriptRPCEvent, target, name, mValues.Select(x => x.ToObject()).ToArray(), answerId));
981993
});
994+
995+
if (UnansweredServerRpcRequest.Contains(answerId))
996+
{
997+
target.EmitRPCAnswer(answerId, null, "Answer not handled");
998+
UnansweredServerRpcRequest.Remove(answerId);
999+
}
9821000
}
9831001

9841002
public override void OnScriptAnswerRPCEvent(IPlayer target, ushort answerid, IntPtr mValue, string answererror)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System;
2+
using AltV.Net.Elements.Entities;
3+
using AltV.Net.Shared.Elements.Entities;
4+
5+
namespace AltV.Net.Async;
6+
7+
public class AsyncScriptRpcEvent : IScriptRPCEvent
8+
{
9+
private readonly IPlayer _target;
10+
private readonly ushort _answerId;
11+
12+
public AsyncScriptRpcEvent(IPlayer target, ushort answerId)
13+
{
14+
_target = target;
15+
_answerId = answerId;
16+
}
17+
18+
public IntPtr ScriptRPCNativePointer { get; }
19+
20+
public bool WillAnswer()
21+
{
22+
return true;
23+
}
24+
25+
public bool Answer(object answer)
26+
{
27+
_target.EmitRPCAnswer(_answerId, answer, "");
28+
return true;
29+
}
30+
31+
public bool AnswerWithError(string error)
32+
{
33+
_target.EmitRPCAnswer(_answerId, null, error);
34+
return true;
35+
}
36+
}

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

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -95,51 +95,6 @@ public bool GetMetaData<T>(string key, out T result)
9595
}
9696
}
9797

98-
public bool GetMetaData(string key, out int result)
99-
{
100-
AsyncContext?.RunAll();
101-
lock (BaseObject)
102-
{
103-
if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject))
104-
{
105-
result = default;
106-
return false;
107-
}
108-
109-
return BaseObject.GetMetaData(key, out result);
110-
}
111-
}
112-
113-
public bool GetMetaData(string key, out uint result)
114-
{
115-
AsyncContext?.RunAll();
116-
lock (BaseObject)
117-
{
118-
if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject))
119-
{
120-
result = default;
121-
return false;
122-
}
123-
124-
return BaseObject.GetMetaData(key, out result);
125-
}
126-
}
127-
128-
public bool GetMetaData(string key, out float result)
129-
{
130-
AsyncContext?.RunAll();
131-
lock (BaseObject)
132-
{
133-
if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject))
134-
{
135-
result = default;
136-
return false;
137-
}
138-
139-
return BaseObject.GetMetaData(key, out result);
140-
}
141-
}
142-
14398
public void SetMetaData(string key, in MValueConst value)
14499
{
145100
lock (BaseObject)
@@ -232,9 +187,6 @@ public void OnDestroy()
232187
BaseObject.OnDestroy();
233188
}
234189

235-
[Obsolete("Use Destroy() instead")]
236-
public void Remove() => Destroy();
237-
238190
public void Destroy()
239191
{
240192
AsyncContext.RunOnMainThreadBlockingNullable(() => BaseObject.Destroy());

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

0 commit comments

Comments
 (0)