Packet refactor
This commit is contained in:
@ -14,7 +14,7 @@ namespace RageCoop.Client
|
|||||||
Networking.RequestHandlers.Add(PacketType.FileTransferRequest, (data) =>
|
Networking.RequestHandlers.Add(PacketType.FileTransferRequest, (data) =>
|
||||||
{
|
{
|
||||||
var fr = new Packets.FileTransferRequest();
|
var fr = new Packets.FileTransferRequest();
|
||||||
fr.Unpack(data);
|
fr.Deserialize(data);
|
||||||
if (fr.Name.EndsWith(".res"))
|
if (fr.Name.EndsWith(".res"))
|
||||||
{
|
{
|
||||||
_resources.Add(fr.Name);
|
_resources.Add(fr.Name);
|
||||||
@ -28,7 +28,7 @@ namespace RageCoop.Client
|
|||||||
Networking.RequestHandlers.Add(PacketType.FileTransferComplete, (data) =>
|
Networking.RequestHandlers.Add(PacketType.FileTransferComplete, (data) =>
|
||||||
{
|
{
|
||||||
Packets.FileTransferComplete packet = new Packets.FileTransferComplete();
|
Packets.FileTransferComplete packet = new Packets.FileTransferComplete();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
|
|
||||||
Main.Logger.Debug($"Finalizing download:{packet.ID}");
|
Main.Logger.Debug($"Finalizing download:{packet.ID}");
|
||||||
Complete(packet.ID);
|
Complete(packet.ID);
|
||||||
|
@ -172,7 +172,7 @@ namespace RageCoop.Client
|
|||||||
PendingResponses.Add(id, (type, p) =>
|
PendingResponses.Add(id, (type, p) =>
|
||||||
{
|
{
|
||||||
var result = new T();
|
var result = new T();
|
||||||
result.Unpack(p);
|
result.Deserialize(p);
|
||||||
callback(result);
|
callback(result);
|
||||||
});
|
});
|
||||||
var msg = Client.CreateMessage();
|
var msg = Client.CreateMessage();
|
||||||
|
@ -148,7 +148,7 @@ namespace RageCoop.Client
|
|||||||
if (packetType==PacketType.PublicKeyResponse)
|
if (packetType==PacketType.PublicKeyResponse)
|
||||||
{
|
{
|
||||||
var packet = new Packets.PublicKeyResponse();
|
var packet = new Packets.PublicKeyResponse();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
Security.SetServerPublicKey(packet.Modulus, packet.Exponent);
|
Security.SetServerPublicKey(packet.Modulus, packet.Exponent);
|
||||||
_publicKeyReceived.Set();
|
_publicKeyReceived.Set();
|
||||||
}
|
}
|
||||||
@ -175,7 +175,7 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
|
|
||||||
Packets.PlayerConnect packet = new Packets.PlayerConnect();
|
Packets.PlayerConnect packet = new Packets.PlayerConnect();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
|
|
||||||
Main.QueueAction(() => PlayerConnect(packet));
|
Main.QueueAction(() => PlayerConnect(packet));
|
||||||
}
|
}
|
||||||
@ -184,7 +184,7 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
|
|
||||||
Packets.PlayerDisconnect packet = new Packets.PlayerDisconnect();
|
Packets.PlayerDisconnect packet = new Packets.PlayerDisconnect();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
Main.QueueAction(() => PlayerDisconnect(packet));
|
Main.QueueAction(() => PlayerDisconnect(packet));
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -192,7 +192,7 @@ namespace RageCoop.Client
|
|||||||
case PacketType.PlayerInfoUpdate:
|
case PacketType.PlayerInfoUpdate:
|
||||||
{
|
{
|
||||||
var packet = new Packets.PlayerInfoUpdate();
|
var packet = new Packets.PlayerInfoUpdate();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
PlayerList.UpdatePlayer(packet);
|
PlayerList.UpdatePlayer(packet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -201,7 +201,7 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
|
|
||||||
Packets.VehicleSync packet = new Packets.VehicleSync();
|
Packets.VehicleSync packet = new Packets.VehicleSync();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
VehicleSync(packet);
|
VehicleSync(packet);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -210,7 +210,7 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
|
|
||||||
Packets.PedSync packet = new Packets.PedSync();
|
Packets.PedSync packet = new Packets.PedSync();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
PedSync(packet);
|
PedSync(packet);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ namespace RageCoop.Client
|
|||||||
case PacketType.ProjectileSync:
|
case PacketType.ProjectileSync:
|
||||||
{
|
{
|
||||||
Packets.ProjectileSync packet = new Packets.ProjectileSync();
|
Packets.ProjectileSync packet = new Packets.ProjectileSync();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
ProjectileSync(packet);
|
ProjectileSync(packet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -230,7 +230,7 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
return Security.Decrypt(b);
|
return Security.Decrypt(b);
|
||||||
});
|
});
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
|
|
||||||
Main.QueueAction(() => { Main.MainChat.AddMessage(packet.Username, packet.Message); return true; });
|
Main.QueueAction(() => { Main.MainChat.AddMessage(packet.Username, packet.Message); return true; });
|
||||||
|
|
||||||
@ -240,7 +240,7 @@ namespace RageCoop.Client
|
|||||||
case PacketType.CustomEvent:
|
case PacketType.CustomEvent:
|
||||||
{
|
{
|
||||||
Packets.CustomEvent packet = new Packets.CustomEvent(_resolveHandle);
|
Packets.CustomEvent packet = new Packets.CustomEvent(_resolveHandle);
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
Scripting.API.Events.InvokeCustomEventReceived(packet);
|
Scripting.API.Events.InvokeCustomEventReceived(packet);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -249,7 +249,7 @@ namespace RageCoop.Client
|
|||||||
Packets.CustomEvent packet = new Packets.CustomEvent(_resolveHandle);
|
Packets.CustomEvent packet = new Packets.CustomEvent(_resolveHandle);
|
||||||
Main.QueueAction(() =>
|
Main.QueueAction(() =>
|
||||||
{
|
{
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
Scripting.API.Events.InvokeCustomEventReceived(packet);
|
Scripting.API.Events.InvokeCustomEventReceived(packet);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -257,7 +257,7 @@ namespace RageCoop.Client
|
|||||||
case PacketType.FileTransferChunk:
|
case PacketType.FileTransferChunk:
|
||||||
{
|
{
|
||||||
Packets.FileTransferChunk packet = new Packets.FileTransferChunk();
|
Packets.FileTransferChunk packet = new Packets.FileTransferChunk();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
DownloadManager.Write(packet.ID, packet.FileChunk);
|
DownloadManager.Write(packet.ID, packet.FileChunk);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -232,14 +232,14 @@ namespace RageCoop.Client
|
|||||||
case PacketType.BulletShot:
|
case PacketType.BulletShot:
|
||||||
{
|
{
|
||||||
Packets.BulletShot p = new Packets.BulletShot();
|
Packets.BulletShot p = new Packets.BulletShot();
|
||||||
p.Unpack(data);
|
p.Deserialize(data);
|
||||||
HandleBulletShot(p.StartPosition, p.EndPosition, p.WeaponHash, p.OwnerID);
|
HandleBulletShot(p.StartPosition, p.EndPosition, p.WeaponHash, p.OwnerID);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PacketType.EnteringVehicle:
|
case PacketType.EnteringVehicle:
|
||||||
{
|
{
|
||||||
Packets.EnteringVehicle p = new Packets.EnteringVehicle();
|
Packets.EnteringVehicle p = new Packets.EnteringVehicle();
|
||||||
p.Unpack(data);
|
p.Deserialize(data);
|
||||||
HandleEnteringVehicle(EntityPool.GetPedByID(p.PedID), EntityPool.GetVehicleByID(p.VehicleID), (VehicleSeat)p.VehicleSeat);
|
HandleEnteringVehicle(EntityPool.GetPedByID(p.PedID), EntityPool.GetVehicleByID(p.VehicleID), (VehicleSeat)p.VehicleSeat);
|
||||||
|
|
||||||
|
|
||||||
@ -248,35 +248,35 @@ namespace RageCoop.Client
|
|||||||
case PacketType.LeaveVehicle:
|
case PacketType.LeaveVehicle:
|
||||||
{
|
{
|
||||||
Packets.LeaveVehicle packet = new Packets.LeaveVehicle();
|
Packets.LeaveVehicle packet = new Packets.LeaveVehicle();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
HandleLeaveVehicle(packet);
|
HandleLeaveVehicle(packet);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.OwnerChanged:
|
case PacketType.OwnerChanged:
|
||||||
{
|
{
|
||||||
Packets.OwnerChanged packet = new Packets.OwnerChanged();
|
Packets.OwnerChanged packet = new Packets.OwnerChanged();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
HandleOwnerChanged(packet);
|
HandleOwnerChanged(packet);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.PedKilled:
|
case PacketType.PedKilled:
|
||||||
{
|
{
|
||||||
var packet = new Packets.PedKilled();
|
var packet = new Packets.PedKilled();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
HandlePedKilled(packet);
|
HandlePedKilled(packet);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.EnteredVehicle:
|
case PacketType.EnteredVehicle:
|
||||||
{
|
{
|
||||||
var packet = new Packets.EnteredVehicle();
|
var packet = new Packets.EnteredVehicle();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
HandleEnteredVehicle(packet.PedID, packet.VehicleID, (VehicleSeat)packet.VehicleSeat);
|
HandleEnteredVehicle(packet.PedID, packet.VehicleID, (VehicleSeat)packet.VehicleSeat);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PacketType.NozzleTransform:
|
case PacketType.NozzleTransform:
|
||||||
{
|
{
|
||||||
var packet = new Packets.NozzleTransform();
|
var packet = new Packets.NozzleTransform();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
HandleNozzleTransform(packet);
|
HandleNozzleTransform(packet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class ChatMessage : Packet
|
internal class ChatMessage : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.ChatMessage; } }
|
||||||
private Func<string, byte[]> crypt;
|
private Func<string, byte[]> crypt;
|
||||||
private Func<byte[], byte[]> decrypt;
|
private Func<byte[], byte[]> decrypt;
|
||||||
public ChatMessage(Func<string, byte[]> crypter)
|
public ChatMessage(Func<string, byte[]> crypter)
|
||||||
@ -24,10 +25,8 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.ChatMessage);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -40,14 +39,11 @@ namespace RageCoop.Core
|
|||||||
// Write Message
|
// Write Message
|
||||||
byteArray.AddArray(crypt(Message));
|
byteArray.AddArray(crypt(Message));
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -9,6 +9,7 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class CustomEvent : Packet
|
internal class CustomEvent : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return (_queued ? PacketType.CustomEventQueued : PacketType.CustomEvent); } }
|
||||||
public CustomEvent(Func<byte,BitReader,object> onResolve = null,bool queued=false)
|
public CustomEvent(Func<byte,BitReader,object> onResolve = null,bool queued=false)
|
||||||
{
|
{
|
||||||
_resolve= onResolve;
|
_resolve= onResolve;
|
||||||
@ -17,13 +18,11 @@ namespace RageCoop.Core
|
|||||||
private bool _queued;
|
private bool _queued;
|
||||||
private Func<byte, BitReader, object> _resolve { get; set; }
|
private Func<byte, BitReader, object> _resolve { get; set; }
|
||||||
public int Hash { get; set; }
|
public int Hash { get; set; }
|
||||||
public bool IsStaged { get; set; }=false;
|
|
||||||
public object[] Args { get; set; }
|
public object[] Args { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
Args= Args ?? new object[] { };
|
Args= Args ?? new object[] { };
|
||||||
message.Write(_queued ? (byte)PacketType.CustomEventQueued: (byte)PacketType.CustomEvent);
|
|
||||||
|
|
||||||
List<byte> result = new List<byte>();
|
List<byte> result = new List<byte>();
|
||||||
result.AddInt(Hash);
|
result.AddInt(Hash);
|
||||||
@ -39,12 +38,10 @@ namespace RageCoop.Core
|
|||||||
result.Add(tup.Item1);
|
result.Add(tup.Item1);
|
||||||
result.AddRange(tup.Item2);
|
result.AddRange(tup.Item2);
|
||||||
}
|
}
|
||||||
|
return result.ToArray();
|
||||||
message.Write(result.Count);
|
|
||||||
message.Write(result.ToArray());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
|
||||||
|
@ -18,16 +18,15 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class FileTransferRequest : Packet
|
internal class FileTransferRequest : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.FileTransferRequest; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
public long FileLength { get; set; }
|
public long FileLength { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.FileTransferRequest);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -43,14 +42,11 @@ namespace RageCoop.Core
|
|||||||
// The length of the file
|
// The length of the file
|
||||||
byteArray.AddRange(BitConverter.GetBytes(FileLength));
|
byteArray.AddRange(BitConverter.GetBytes(FileLength));
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
@ -65,11 +61,11 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class FileTransferResponse : Packet
|
internal class FileTransferResponse : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.FileTransferResponse; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
public FileResponse Response { get; set; }
|
public FileResponse Response { get; set; }
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
message.Write((byte)PacketType.FileTransferResponse);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -78,13 +74,10 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
byteArray.Add((byte)Response);
|
byteArray.Add((byte)Response);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
|
||||||
@ -95,32 +88,27 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class FileTransferChunk : Packet
|
internal class FileTransferChunk : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.FileTransferChunk; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public byte[] FileChunk { get; set; }
|
public byte[] FileChunk { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.FileTransferChunk);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
// The ID from the download
|
// The ID from the download
|
||||||
byteArray.AddInt(ID);
|
byteArray.AddInt(ID);
|
||||||
|
|
||||||
// The chunk of the file
|
// The chunk of the file
|
||||||
byteArray.AddRange(BitConverter.GetBytes(FileChunk.Length));
|
byteArray.AddInt(FileChunk.Length);
|
||||||
byteArray.AddRange(FileChunk);
|
byteArray.AddRange(FileChunk);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
@ -134,26 +122,21 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class FileTransferComplete : Packet
|
internal class FileTransferComplete : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.FileTransferComplete; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.FileTransferComplete);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
// The ID for the download
|
// The ID for the download
|
||||||
byteArray.AddInt(ID);
|
byteArray.AddInt(ID);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
@ -165,18 +148,14 @@ namespace RageCoop.Core
|
|||||||
internal class AllResourcesSent : Packet
|
internal class AllResourcesSent : Packet
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override PacketType Type { get { return PacketType.AllResourcesSent; } }
|
||||||
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
return new byte[0];
|
||||||
message.Write((byte)PacketType.AllResourcesSent);
|
|
||||||
message.Write(0);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,17 +8,13 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class PingPong : Packet
|
internal class PingPong : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PingPong; } }
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
return new byte[0];
|
||||||
message.Write((byte)PacketType.PingPong);
|
|
||||||
message.Write(1);
|
|
||||||
message.Write((byte)0);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,47 +135,26 @@ namespace RageCoop.Core
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
interface IPacket
|
internal interface IPacket
|
||||||
{
|
{
|
||||||
|
PacketType Type { get; }
|
||||||
|
byte[] Serialize();
|
||||||
|
|
||||||
|
void Deserialize(byte[] data);
|
||||||
void Pack(NetOutgoingMessage message);
|
void Pack(NetOutgoingMessage message);
|
||||||
void Unpack(byte[] array);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal abstract class Packet : IPacket
|
internal abstract class Packet : IPacket
|
||||||
{
|
{
|
||||||
public abstract void Pack(NetOutgoingMessage message);
|
public abstract PacketType Type { get; }
|
||||||
public abstract void Unpack(byte[] array);
|
public abstract byte[] Serialize();
|
||||||
}
|
public void Pack(NetOutgoingMessage message)
|
||||||
|
|
||||||
|
|
||||||
internal static class CoopSerializer
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
var d=Serialize();
|
||||||
/// ?
|
message.Write((byte)Type);
|
||||||
/// </summary>
|
message.Write(d.Length);
|
||||||
public static byte[] Serialize(this object obj)
|
message.Write(d);
|
||||||
{
|
|
||||||
if (obj == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
string jsonString = JsonConvert.SerializeObject(obj);
|
|
||||||
return System.Text.Encoding.UTF8.GetBytes(jsonString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ?
|
|
||||||
/// </summary>
|
|
||||||
public static T Deserialize<T>(this byte[] bytes) where T : class
|
|
||||||
{
|
|
||||||
if (bytes == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var jsonString = System.Text.Encoding.UTF8.GetString(bytes);
|
|
||||||
return JsonConvert.DeserializeObject<T>(jsonString);
|
|
||||||
}
|
}
|
||||||
|
public abstract void Deserialize(byte[] array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class PedSync : Packet
|
internal class PedSync : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PedSync; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public int OwnerID { get; set; }
|
public int OwnerID { get; set; }
|
||||||
@ -56,10 +57,8 @@ namespace RageCoop.Core
|
|||||||
public float BlipScale { get; set; } = 1;
|
public float BlipScale { get; set; } = 1;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.PedSync);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -145,14 +144,10 @@ namespace RageCoop.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -10,6 +10,7 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class Handshake : Packet
|
internal class Handshake : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.Handshake; } }
|
||||||
public int PedID { get; set; }
|
public int PedID { get; set; }
|
||||||
|
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
@ -31,10 +32,8 @@ namespace RageCoop.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public byte[] PasswordEncrypted { get; set; }
|
public byte[] PasswordEncrypted { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.Handshake);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -61,14 +60,11 @@ namespace RageCoop.Core
|
|||||||
// Write PassHash
|
// Write PassHash
|
||||||
byteArray.AddArray(PasswordEncrypted);
|
byteArray.AddArray(PasswordEncrypted);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
@ -94,14 +90,13 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
public class PlayerConnect : Packet
|
public class PlayerConnect : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PlayerConnect; } }
|
||||||
public int PedID { get; set; }
|
public int PedID { get; set; }
|
||||||
|
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.PlayerConnect);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -117,14 +112,10 @@ namespace RageCoop.Core
|
|||||||
// Write Username
|
// Write Username
|
||||||
byteArray.AddRange(usernameBytes);
|
byteArray.AddRange(usernameBytes);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
@ -141,25 +132,20 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
public class PlayerDisconnect : Packet
|
public class PlayerDisconnect : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PlayerDisconnect; } }
|
||||||
public int PedID { get; set; }
|
public int PedID { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.PlayerDisconnect);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
byteArray.AddRange(BitConverter.GetBytes(PedID));
|
byteArray.AddRange(BitConverter.GetBytes(PedID));
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
@ -170,16 +156,16 @@ namespace RageCoop.Core
|
|||||||
}
|
}
|
||||||
public class PlayerInfoUpdate : Packet
|
public class PlayerInfoUpdate : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PlayerInfoUpdate; } }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ped ID for this Player
|
/// Ped ID for this Player
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int PedID { get; set; }
|
public int PedID { get; set; }
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public float Latency { get; set; }
|
public float Latency { get; set; }
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.PlayerInfoUpdate);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -199,14 +185,10 @@ namespace RageCoop.Core
|
|||||||
// Write Latency
|
// Write Latency
|
||||||
byteArray.AddFloat(Latency);
|
byteArray.AddFloat(Latency);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
|
||||||
@ -223,13 +205,13 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
public class PublicKeyResponse : Packet
|
public class PublicKeyResponse : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PublicKeyResponse; } }
|
||||||
|
|
||||||
public byte[] Modulus;
|
public byte[] Modulus;
|
||||||
public byte[] Exponent;
|
public byte[] Exponent;
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.PublicKeyResponse);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -238,13 +220,9 @@ namespace RageCoop.Core
|
|||||||
byteArray.AddArray(Exponent);
|
byteArray.AddArray(Exponent);
|
||||||
|
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
var reader=new BitReader(array);
|
var reader=new BitReader(array);
|
||||||
@ -257,13 +235,13 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
public class PublicKeyRequest : Packet
|
public class PublicKeyRequest : Packet
|
||||||
{
|
{
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override PacketType Type { get { return PacketType.PublicKeyRequest; } }
|
||||||
|
|
||||||
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
return new byte[0];
|
||||||
message.Write((byte)PacketType.PublicKeyRequest);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class ProjectileSync : Packet
|
internal class ProjectileSync : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.ProjectileSync; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public int ShooterID { get; set; }
|
public int ShooterID { get; set; }
|
||||||
@ -26,10 +26,8 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.ProjectileSync);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -53,14 +51,11 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
if (Exploded) { byteArray.Add(1); }
|
if (Exploded) { byteArray.Add(1); }
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -11,6 +11,7 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class BulletShot : Packet
|
internal class BulletShot : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.BulletShot; } }
|
||||||
public int OwnerID { get; set; }
|
public int OwnerID { get; set; }
|
||||||
|
|
||||||
public uint WeaponHash { get; set; }
|
public uint WeaponHash { get; set; }
|
||||||
@ -18,10 +19,8 @@ namespace RageCoop.Core
|
|||||||
public Vector3 StartPosition { get; set; }
|
public Vector3 StartPosition { get; set; }
|
||||||
public Vector3 EndPosition { get; set; }
|
public Vector3 EndPosition { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.BulletShot);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -38,14 +37,11 @@ namespace RageCoop.Core
|
|||||||
byteArray.AddVector3(EndPosition);
|
byteArray.AddVector3(EndPosition);
|
||||||
|
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -10,16 +10,15 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class EnteredVehicle : Packet
|
internal class EnteredVehicle : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.EnteredVehicle; } }
|
||||||
public int PedID { get; set; }
|
public int PedID { get; set; }
|
||||||
|
|
||||||
public int VehicleID { get; set; }
|
public int VehicleID { get; set; }
|
||||||
|
|
||||||
public short VehicleSeat { get; set; }
|
public short VehicleSeat { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.EnteredVehicle);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -27,14 +26,11 @@ namespace RageCoop.Core
|
|||||||
byteArray.AddInt(VehicleID);
|
byteArray.AddInt(VehicleID);
|
||||||
byteArray.AddInt(VehicleSeat);
|
byteArray.AddInt(VehicleSeat);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -10,16 +10,15 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class EnteringVehicle : Packet
|
internal class EnteringVehicle : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.EnteringVehicle; } }
|
||||||
public int PedID { get; set; }
|
public int PedID { get; set; }
|
||||||
|
|
||||||
public int VehicleID { get; set; }
|
public int VehicleID { get; set; }
|
||||||
|
|
||||||
public short VehicleSeat { get; set; }
|
public short VehicleSeat { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.EnteringVehicle);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
@ -27,14 +26,11 @@ namespace RageCoop.Core
|
|||||||
byteArray.AddInt(VehicleID);
|
byteArray.AddInt(VehicleID);
|
||||||
byteArray.AddInt(VehicleSeat);
|
byteArray.AddInt(VehicleSeat);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -11,26 +11,22 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class LeaveVehicle : Packet
|
internal class LeaveVehicle : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.LeaveVehicle; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.LeaveVehicle);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
byteArray.AddInt(ID);
|
byteArray.AddInt(ID);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -10,28 +10,24 @@ namespace RageCoop.Core
|
|||||||
{
|
{
|
||||||
internal class NozzleTransform : Packet
|
internal class NozzleTransform : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.NozzleTransform; } }
|
||||||
public int VehicleID { get; set; }
|
public int VehicleID { get; set; }
|
||||||
|
|
||||||
public bool Hover { get; set; }
|
public bool Hover { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.NozzleTransform);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
byteArray.AddInt(VehicleID);
|
byteArray.AddInt(VehicleID);
|
||||||
if (Hover) { byteArray.Add(1); }
|
if (Hover) { byteArray.Add(1); }
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -11,28 +11,23 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class OwnerChanged : Packet
|
internal class OwnerChanged : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.OwnerChanged; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public int NewOwnerID { get; set; }
|
public int NewOwnerID { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.OwnerChanged);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
byteArray.AddInt(ID);
|
byteArray.AddInt(ID);
|
||||||
byteArray.AddInt(NewOwnerID);
|
byteArray.AddInt(NewOwnerID);
|
||||||
|
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -11,24 +11,20 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
internal class PedKilled : Packet
|
internal class PedKilled : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.PedKilled; } }
|
||||||
public int VictimID { get; set; }
|
public int VictimID { get; set; }
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.PedKilled);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>();
|
List<byte> byteArray = new List<byte>();
|
||||||
|
|
||||||
byteArray.AddInt(VictimID);
|
byteArray.AddInt(VictimID);
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -13,6 +13,7 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
public class VehicleSync : Packet
|
public class VehicleSync : Packet
|
||||||
{
|
{
|
||||||
|
public override PacketType Type { get { return PacketType.VehicleSync; } }
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public int OwnerID { get; set; }
|
public int OwnerID { get; set; }
|
||||||
@ -63,10 +64,8 @@ namespace RageCoop.Core
|
|||||||
public string LicensePlate { get; set; }
|
public string LicensePlate { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public override void Pack(NetOutgoingMessage message)
|
public override byte[] Serialize()
|
||||||
{
|
{
|
||||||
#region PacketToNetOutGoingMessage
|
|
||||||
message.Write((byte)PacketType.VehicleSync);
|
|
||||||
|
|
||||||
List<byte> byteArray = new List<byte>(100);
|
List<byte> byteArray = new List<byte>(100);
|
||||||
|
|
||||||
@ -166,14 +165,10 @@ namespace RageCoop.Core
|
|||||||
|
|
||||||
byteArray.Add((byte)(Livery+1));
|
byteArray.Add((byte)(Livery+1));
|
||||||
}
|
}
|
||||||
byte[] result = byteArray.ToArray();
|
return byteArray.ToArray();
|
||||||
|
|
||||||
message.Write(result.Length);
|
|
||||||
message.Write(result);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Unpack(byte[] array)
|
public override void Deserialize(byte[] array)
|
||||||
{
|
{
|
||||||
#region NetIncomingMessageToPacket
|
#region NetIncomingMessageToPacket
|
||||||
BitReader reader = new BitReader(array);
|
BitReader reader = new BitReader(array);
|
||||||
|
@ -144,7 +144,7 @@ namespace RageCoop.Server.Scripting
|
|||||||
Server.RequestHandlers.Add(PacketType.FileTransferRequest, (data,client) =>
|
Server.RequestHandlers.Add(PacketType.FileTransferRequest, (data,client) =>
|
||||||
{
|
{
|
||||||
var p = new Packets.FileTransferRequest();
|
var p = new Packets.FileTransferRequest();
|
||||||
p.Unpack(data);
|
p.Deserialize(data);
|
||||||
var id=Server.NewFileID();
|
var id=Server.NewFileID();
|
||||||
if(RegisteredFiles.TryGetValue(p.Name,out var s))
|
if(RegisteredFiles.TryGetValue(p.Name,out var s))
|
||||||
{
|
{
|
||||||
|
@ -301,7 +301,7 @@ namespace RageCoop.Server
|
|||||||
byte[] data = message.ReadBytes(len);
|
byte[] data = message.ReadBytes(len);
|
||||||
|
|
||||||
Packets.Handshake packet = new();
|
Packets.Handshake packet = new();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
GetHandshake(message.SenderConnection, packet);
|
GetHandshake(message.SenderConnection, packet);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -448,7 +448,7 @@ namespace RageCoop.Server
|
|||||||
{
|
{
|
||||||
|
|
||||||
Packets.PedSync packet = new();
|
Packets.PedSync packet = new();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
|
|
||||||
PedSync(packet, sender);
|
PedSync(packet, sender);
|
||||||
|
|
||||||
@ -457,7 +457,7 @@ namespace RageCoop.Server
|
|||||||
case PacketType.VehicleSync:
|
case PacketType.VehicleSync:
|
||||||
{
|
{
|
||||||
Packets.VehicleSync packet = new();
|
Packets.VehicleSync packet = new();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
|
|
||||||
VehicleSync(packet, sender);
|
VehicleSync(packet, sender);
|
||||||
|
|
||||||
@ -467,7 +467,7 @@ namespace RageCoop.Server
|
|||||||
{
|
{
|
||||||
|
|
||||||
Packets.ProjectileSync packet = new();
|
Packets.ProjectileSync packet = new();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
ProjectileSync(packet, sender);
|
ProjectileSync(packet, sender);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -480,7 +480,7 @@ namespace RageCoop.Server
|
|||||||
{
|
{
|
||||||
return Security.Decrypt(b,sender.EndPoint);
|
return Security.Decrypt(b,sender.EndPoint);
|
||||||
});
|
});
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
|
|
||||||
ChatMessageReceived(packet.Username,packet.Message, sender);
|
ChatMessageReceived(packet.Username,packet.Message, sender);
|
||||||
}
|
}
|
||||||
@ -488,7 +488,7 @@ namespace RageCoop.Server
|
|||||||
case PacketType.CustomEvent:
|
case PacketType.CustomEvent:
|
||||||
{
|
{
|
||||||
Packets.CustomEvent packet = new Packets.CustomEvent();
|
Packets.CustomEvent packet = new Packets.CustomEvent();
|
||||||
packet.Unpack(data);
|
packet.Deserialize(data);
|
||||||
_worker.QueueJob(() => API.Events.InvokeCustomEventReceived(packet, sender));
|
_worker.QueueJob(() => API.Events.InvokeCustomEventReceived(packet, sender));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -851,7 +851,7 @@ namespace RageCoop.Server
|
|||||||
if (received.WaitOne(timeout))
|
if (received.WaitOne(timeout))
|
||||||
{
|
{
|
||||||
var p = new T();
|
var p = new T();
|
||||||
p.Unpack(response);
|
p.Deserialize(response);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user