Skip to content

Commit 55d7f55

Browse files
Add async meta data change events
1 parent 43747f9 commit 55d7f55

File tree

5 files changed

+45
-1
lines changed

5 files changed

+45
-1
lines changed

api/AltV.Net.Async/AltAsync.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,18 @@ public static event ConsoleCommandAsyncDelegate OnConsoleCommand
8484
add => Module.ConsoleCommandAsyncDelegateHandlers.Add(value);
8585
remove => Module.ConsoleCommandAsyncDelegateHandlers.Remove(value);
8686
}
87+
88+
public static event MetaDataChangeAsyncDelegate OnMetaDataChange
89+
{
90+
add => Module.MetaDataChangeAsyncDelegateHandlers.Add(value);
91+
remove => Module.MetaDataChangeAsyncDelegateHandlers.Remove(value);
92+
}
93+
94+
public static event MetaDataChangeAsyncDelegate OnSyncedMetaDataChange
95+
{
96+
add => Module.SyncedMetaDataChangeAsyncDelegateHandlers.Add(value);
97+
remove => Module.SyncedMetaDataChangeAsyncDelegateHandlers.Remove(value);
98+
}
8799

88100
public static async void Log(string message)
89101
{

api/AltV.Net.Async/AsyncModule.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ internal readonly AsyncEventHandler<PlayerChangeVehicleSeatAsyncDelegate>
4848

4949
internal readonly AsyncEventHandler<ConsoleCommandAsyncDelegate> ConsoleCommandAsyncDelegateHandlers =
5050
new AsyncEventHandler<ConsoleCommandAsyncDelegate>();
51+
52+
internal readonly AsyncEventHandler<MetaDataChangeAsyncDelegate> MetaDataChangeAsyncDelegateHandlers =
53+
new AsyncEventHandler<MetaDataChangeAsyncDelegate>();
54+
55+
internal readonly AsyncEventHandler<MetaDataChangeAsyncDelegate> SyncedMetaDataChangeAsyncDelegateHandlers =
56+
new AsyncEventHandler<MetaDataChangeAsyncDelegate>();
5157

5258
private readonly Dictionary<string, HashSet<ClientEventAsyncDelegate>> clientEventAsyncDelegateHandlers
5359
=
@@ -333,6 +339,24 @@ public override void OnConsoleCommandEvent(string name, string[] args)
333339
@delegate(name, args)));
334340
}
335341

342+
public override void OnMetaDataChangeEvent(IEntity entity, string key, object value)
343+
{
344+
base.OnMetaDataChangeEvent(entity, key, value);
345+
if (!MetaDataChangeAsyncDelegateHandlers.HasEvents()) return;
346+
Task.Run(() =>
347+
MetaDataChangeAsyncDelegateHandlers.CallAsync(@delegate =>
348+
@delegate(entity, key, value)));
349+
}
350+
351+
public override void OnSyncedMetaDataChangeEvent(IEntity entity, string key, object value)
352+
{
353+
base.OnSyncedMetaDataChangeEvent(entity, key, value);
354+
if (!SyncedMetaDataChangeAsyncDelegateHandlers.HasEvents()) return;
355+
Task.Run(() =>
356+
SyncedMetaDataChangeAsyncDelegateHandlers.CallAsync(@delegate =>
357+
@delegate(entity, key, value)));
358+
}
359+
336360
public void OnClient(string eventName, ClientEventAsyncDelegate eventDelegate)
337361
{
338362
if (eventDelegate == null) return;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,6 @@ public delegate Task PlayerChangeVehicleSeatAsyncDelegate(IVehicle vehicle, IPla
3333
public delegate Task PlayerClientEventAsyncDelegate(IPlayer player, string eventName, object[] args);
3434

3535
public delegate Task ConsoleCommandAsyncDelegate(string name, string[] args);
36+
37+
public delegate Task MetaDataChangeAsyncDelegate(IEntity entity, string key, object value);
3638
}

api/AltV.Net/Events/Events.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@ namespace AltV.Net.Events
3737

3838
public delegate void ConsoleCommandDelegate(string name, string[] args);
3939

40-
public delegate void MetaDataChangeDelegate(IEntity entity, string name, object value);
40+
public delegate void MetaDataChangeDelegate(IEntity entity, string key, object value);
4141
}

runtime/src/CSharpResource.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,12 @@ CSharpResource::CSharpResource(alt::IServer* server, CoreClr* coreClr, alt::IRes
133133
coreClr->GetDelegate(server, runtimeHost, domainId, "AltV.Net", "AltV.Net.ModuleWrapper",
134134
"OnConsoleCommand",
135135
reinterpret_cast<void**>(&OnConsoleCommandDelegate));
136+
coreClr->GetDelegate(server, runtimeHost, domainId, "AltV.Net", "AltV.Net.ModuleWrapper",
137+
"OnMetaDataChange",
138+
reinterpret_cast<void**>(&OnMetaChangeDelegate));
139+
coreClr->GetDelegate(server, runtimeHost, domainId, "AltV.Net", "AltV.Net.ModuleWrapper",
140+
"OnSyncedMetaDataChange",
141+
reinterpret_cast<void**>(&OnSyncedMetaChangeDelegate));
136142
}
137143
} else {
138144
#ifdef _WIN32

0 commit comments

Comments
 (0)