public async Task InvokeAsync(uint dimension, ulong nativeHash, IEnumerable <object> arguments) { Contract.NotNull(arguments, nameof(arguments)); var data = ArgumentConverter.ConvertFromObjects(arguments); await TickScheduler.Instance .Schedule(() => Rage.PlayerPool.PlayerPool__InvokeInDimension(_nativePointer, dimension, nativeHash, data, (ulong)data.Length)); ArgumentData.Dispose(data); }
public async Task InvokeAsync(IEnumerable <IPlayer> players, ulong nativeHash, IEnumerable <object> arguments) { Contract.NotNull(players, nameof(players)); Contract.NotNull(arguments, nameof(arguments)); var data = ArgumentConverter.ConvertFromObjects(arguments); var playerPointers = players.Select(x => x.NativePointer).ToArray(); await TickScheduler.Instance .Schedule(() => Rage.PlayerPool.PlayerPool__InvokeFor(_nativePointer, playerPointers, (ulong)playerPointers.Length, nativeHash, data, (ulong)data.Length)); ArgumentData.Dispose(data); }
public async Task InvokeAsync(ulong nativeHash, IEnumerable <object> arguments) { Contract.NotNull(arguments, nameof(arguments)); CheckExistence(); var data = ArgumentConverter.ConvertFromObjects(arguments); await TickScheduler.Instance .Schedule(() => Rage.Player.Player__Invoke(NativePointer, nativeHash, data, (ulong)data.Length)) .ConfigureAwait(false); ArgumentData.Dispose(data); }
public async Task CallAsync(Vector3 position, float range, uint dimension, string eventName, IEnumerable <object> arguments) { Contract.NotEmpty(eventName, nameof(eventName)); Contract.NotNull(arguments, nameof(arguments)); var data = ArgumentConverter.ConvertFromObjects(arguments); using (var converter = new StringConverter()) { var eventNamePointer = converter.StringToPointer(eventName); await TickScheduler.Instance.Schedule(() => Rage.PlayerPool.PlayerPool__CallInRange(_nativePointer, position, range, dimension, eventNamePointer, data, (ulong)data.Length)); } ArgumentData.Dispose(data); }
public async Task CallClientAsync(string eventName, IEnumerable <object> arguments) { Contract.NotEmpty(eventName, nameof(eventName)); Contract.NotNull(arguments, nameof(arguments)); CheckExistence(); var data = ArgumentConverter.ConvertFromObjects(arguments); using (var converter = new StringConverter()) { var eventNamePointer = converter.StringToPointer(eventName); await TickScheduler.Instance .Schedule(() => Rage.Player.Player__Call(NativePointer, eventNamePointer, data, (ulong)data.Length)) .ConfigureAwait(false); } ArgumentData.Dispose(data); }
public async Task CallAsync(IEnumerable <IPlayer> players, string eventName, IEnumerable <object> arguments) { Contract.NotNull(players, nameof(players)); Contract.NotEmpty(eventName, nameof(eventName)); Contract.NotNull(arguments, nameof(arguments)); var data = ArgumentConverter.ConvertFromObjects(arguments); var playerPointers = players.Select(x => x.NativePointer).ToArray(); if (playerPointers.Any() == false) { return; } using (var converter = new StringConverter()) { var eventNamePointer = converter.StringToPointer(eventName); await TickScheduler.Instance .Schedule(() => Rage.PlayerPool.PlayerPool__CallFor(_nativePointer, playerPointers, (ulong)playerPointers.Length, eventNamePointer, data, (ulong)data.Length)); } ArgumentData.Dispose(data); }