using System; using System.Collections.Generic; using System.Net; using System.Text; using ReallifeGamemode.Server.Core.API; using ReallifeGamemode.Server.Types; namespace ReallifeGamemode.Server.Core.RageMP { public class RagePlayer : RageEntity, IPlayer { private readonly GTANetworkAPI.Player client; public string Name { get => client.Name; set => client.Name = value; } public string SocialClubName => client.SocialClubName; public IPAddress RemoteAddress => IPAddress.Parse(client.Address); public IVehicle Vehicle => client.IsInVehicle ? new RageVehicle(client.Vehicle) : null; public VehicleSeat VehicleSeat => (VehicleSeat)client.VehicleSeat; public bool IsInVehicle => Vehicle != null; public int Health { get => client.Health; set => client.Health = value; } public int Armor { get => client.Armor; set => client.Armor = value; } public RagePlayer(GTANetworkAPI.Player client) : base(client) { this.client = client; } public void SendRawMessage(string message) { client.SendChatMessage(message); } public void TriggerEventRaw(string eventName, params object[] args) { client.TriggerEvent(eventName, args); } public void SetIntoVehicle(IVehicle vehicle, VehicleSeat seat) { client.SetIntoVehicle(new GTANetworkAPI.NetHandle((ushort)vehicle.Handle, GTANetworkAPI.EntityType.Vehicle), (int)seat - 1); } public void Kick() => client.Kick(); public void SendNotification(string message, bool flashing = true) { client.SendNotification(message, flashing); } public void Spawn(Position position, float heading = 0) { Health = 100; Armor = 0; Position = position; Heading = heading; } public void PlayAnimation(string dict, string name, AnimationFlags flags, float speed = 8.0f) { GTANetworkAPI.NAPI.Player.PlayPlayerAnimation(client, (int)flags, dict, name, speed); } public void CancelAnimation() { client.StopAnimation(); } } }