diff --git a/FFXIVClassic Map Server/packets/BasePacket.cs b/FFXIVClassic Common Class Lib/BasePacket.cs similarity index 99% rename from FFXIVClassic Map Server/packets/BasePacket.cs rename to FFXIVClassic Common Class Lib/BasePacket.cs index d44e35d3..384dbc88 100644 --- a/FFXIVClassic Map Server/packets/BasePacket.cs +++ b/FFXIVClassic Common Class Lib/BasePacket.cs @@ -3,11 +3,10 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; -using FFXIVClassic.Common; using NLog; using NLog.Targets; -namespace FFXIVClassic_Map_Server.packets +namespace FFXIVClassic.Common { [StructLayout(LayoutKind.Sequential)] public struct BasePacketHeader diff --git a/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj b/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj index 8c708e5f..df116585 100644 --- a/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj +++ b/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj @@ -54,12 +54,14 @@ + + diff --git a/FFXIVClassic Map Server/packets/SubPacket.cs b/FFXIVClassic Common Class Lib/SubPacket.cs similarity index 99% rename from FFXIVClassic Map Server/packets/SubPacket.cs rename to FFXIVClassic Common Class Lib/SubPacket.cs index 954e80b1..199199d0 100644 --- a/FFXIVClassic Map Server/packets/SubPacket.cs +++ b/FFXIVClassic Common Class Lib/SubPacket.cs @@ -4,7 +4,7 @@ using FFXIVClassic.Common; using NLog; using NLog.Targets; -namespace FFXIVClassic_Map_Server.packets +namespace FFXIVClassic.Common { [StructLayout(LayoutKind.Sequential)] public struct SubPacketHeader diff --git a/FFXIVClassic Lobby Server/ClientConnection.cs b/FFXIVClassic Lobby Server/ClientConnection.cs index 02747492..1bc1208b 100644 --- a/FFXIVClassic Lobby Server/ClientConnection.cs +++ b/FFXIVClassic Lobby Server/ClientConnection.cs @@ -1,6 +1,5 @@ using System; using System.Net.Sockets; -using FFXIVClassic_Lobby_Server.packets; using FFXIVClassic.Common; using System.Collections.Concurrent; using Cyotek.Collections.Generic; diff --git a/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj b/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj index 8f83df96..b24f03c4 100644 --- a/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj +++ b/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj @@ -89,7 +89,6 @@ - @@ -99,7 +98,6 @@ - diff --git a/FFXIVClassic Lobby Server/Server.cs b/FFXIVClassic Lobby Server/Server.cs index e596ec26..93cd8639 100644 --- a/FFXIVClassic Lobby Server/Server.cs +++ b/FFXIVClassic Lobby Server/Server.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Threading; -using FFXIVClassic_Lobby_Server.packets; + using FFXIVClassic.Common; using NLog; diff --git a/FFXIVClassic Lobby Server/packets/BasePacket.cs b/FFXIVClassic Lobby Server/packets/BasePacket.cs deleted file mode 100644 index 075ec2b6..00000000 --- a/FFXIVClassic Lobby Server/packets/BasePacket.cs +++ /dev/null @@ -1,361 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Runtime.InteropServices; -using FFXIVClassic.Common; -using NLog; -using NLog.Targets; - -namespace FFXIVClassic_Lobby_Server.packets -{ - [StructLayout(LayoutKind.Sequential)] - public struct BasePacketHeader - { - public byte isAuthenticated; - public byte isEncrypted; - public ushort connectionType; - public ushort packetSize; - public ushort numSubpackets; - public ulong timestamp; //Miliseconds - } - - public class BasePacket - { - public const int TYPE_ZONE = 1; - public const int TYPE_CHAT = 2; - public const int BASEPACKET_SIZE = 0x10; - private static readonly Logger logger = LogManager.GetCurrentClassLogger(); - public byte[] data; - - public BasePacketHeader header; - - //Loads a sniffed packet from a file - public unsafe BasePacket(string path) - { - var bytes = File.ReadAllBytes(path); - - if (bytes.Length < BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[0]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - if (bytes.Length < header.packetSize) - throw new OverflowException("Packet Error: Packet size didn't equal given size"); - - int packetSize = header.packetSize; - - if (packetSize - BASEPACKET_SIZE != 0) - { - data = new byte[packetSize - BASEPACKET_SIZE]; - Array.Copy(bytes, BASEPACKET_SIZE, data, 0, packetSize - BASEPACKET_SIZE); - } - else - data = new byte[0]; - } - - //Loads a sniffed packet from a byte array - public unsafe BasePacket(byte[] bytes) - { - if (bytes.Length < BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[0]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - if (bytes.Length < header.packetSize) - throw new OverflowException("Packet Error: Packet size didn't equal given size"); - - int packetSize = header.packetSize; - - data = new byte[packetSize - BASEPACKET_SIZE]; - Array.Copy(bytes, BASEPACKET_SIZE, data, 0, packetSize - BASEPACKET_SIZE); - } - - public unsafe BasePacket(byte[] bytes, ref int offset) - { - if (bytes.Length < offset + BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[offset]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - int packetSize = header.packetSize; - - if (bytes.Length < offset + header.packetSize) - throw new OverflowException("Packet Error: Packet size didn't equal given size"); - - data = new byte[packetSize - BASEPACKET_SIZE]; - Array.Copy(bytes, offset + BASEPACKET_SIZE, data, 0, packetSize - BASEPACKET_SIZE); - - offset += packetSize; - } - - public BasePacket(BasePacketHeader header, byte[] data) - { - this.header = header; - this.data = data; - } - - public List GetSubpackets() - { - var subpackets = new List(header.numSubpackets); - - var offset = 0; - - while (offset < data.Length) - subpackets.Add(new SubPacket(data, ref offset)); - - return subpackets; - } - - public static unsafe BasePacketHeader GetHeader(byte[] bytes) - { - BasePacketHeader header; - if (bytes.Length < BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[0]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - return header; - } - - public byte[] GetHeaderBytes() - { - var size = Marshal.SizeOf(header); - var arr = new byte[size]; - - var ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(header, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - return arr; - } - - public byte[] GetPacketBytes() - { - var outBytes = new byte[header.packetSize]; - Array.Copy(GetHeaderBytes(), 0, outBytes, 0, BASEPACKET_SIZE); - Array.Copy(data, 0, outBytes, BASEPACKET_SIZE, data.Length); - return outBytes; - } - - //Replaces all instances of the sniffed actorID with the given one - public void ReplaceActorID(uint actorID) - { - using (var mem = new MemoryStream(data)) - { - using (var binWriter = new BinaryWriter(mem)) - { - using (var binreader = new BinaryReader(mem)) - { - while (binreader.BaseStream.Position + 4 < data.Length) - { - var read = binreader.ReadUInt32(); - if (read == 0x029B2941 || read == 0x02977DC7 || read == 0x0297D2C8 || read == 0x0230d573 || - read == 0x23317df || read == 0x23344a3 || read == 0x1730bdb) //Original ID - { - binWriter.BaseStream.Seek(binreader.BaseStream.Position - 0x4, SeekOrigin.Begin); - binWriter.Write(actorID); - } - } - } - } - } - } - - //Replaces all instances of the sniffed actorID with the given one - public void ReplaceActorID(uint fromActorID, uint actorID) - { - using (var mem = new MemoryStream(data)) - { - using (var binWriter = new BinaryWriter(mem)) - { - using (var binreader = new BinaryReader(mem)) - { - while (binreader.BaseStream.Position + 4 < data.Length) - { - var read = binreader.ReadUInt32(); - if (read == fromActorID) //Original ID - { - binWriter.BaseStream.Seek(binreader.BaseStream.Position - 0x4, SeekOrigin.Begin); - binWriter.Write(actorID); - } - } - } - } - } - } - - public void DebugPrintPacket() - { -#if DEBUG - logger.ColorDebug( - string.Format("IsAuth:{0} Size:0x{1:X}, NumSubpackets:{2}{3}{4}", - header.isAuthenticated, header.packetSize, header.numSubpackets, - Environment.NewLine, Utils.ByteArrayToHex(GetHeaderBytes())), ConsoleOutputColor.DarkYellow); - - foreach (var sub in GetSubpackets()) - { - sub.DebugPrintSubPacket(); - } -#endif - } - - #region Utility Functions - - public static BasePacket CreatePacket(List subpackets, bool isAuthed, bool isEncrypted) - { - //Create Header - var header = new BasePacketHeader(); - byte[] data = null; - - header.isAuthenticated = isAuthed ? (byte) 1 : (byte) 0; - header.isEncrypted = isEncrypted ? (byte) 1 : (byte) 0; - header.numSubpackets = (ushort) subpackets.Count; - header.packetSize = BASEPACKET_SIZE; - header.timestamp = Utils.MilisUnixTimeStampUTC(); - - //Get packet size - foreach (var subpacket in subpackets) - header.packetSize += subpacket.header.subpacketSize; - - data = new byte[header.packetSize - 0x10]; - - //Add Subpackets - var offset = 0; - foreach (var subpacket in subpackets) - { - var subpacketData = subpacket.GetBytes(); - Array.Copy(subpacketData, 0, data, offset, subpacketData.Length); - offset += (ushort) subpacketData.Length; - } - - Debug.Assert(data != null && offset == data.Length && header.packetSize == 0x10 + offset); - - var packet = new BasePacket(header, data); - return packet; - } - - public static BasePacket CreatePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted) - { - //Create Header - var header = new BasePacketHeader(); - byte[] data = null; - - header.isAuthenticated = isAuthed ? (byte) 1 : (byte) 0; - header.isEncrypted = isEncrypted ? (byte) 1 : (byte) 0; - header.numSubpackets = 1; - header.packetSize = BASEPACKET_SIZE; - header.timestamp = Utils.MilisUnixTimeStampUTC(); - - //Get packet size - header.packetSize += subpacket.header.subpacketSize; - - data = new byte[header.packetSize - 0x10]; - - //Add Subpackets - var subpacketData = subpacket.GetBytes(); - Array.Copy(subpacketData, 0, data, 0, subpacketData.Length); - - Debug.Assert(data != null); - - var packet = new BasePacket(header, data); - return packet; - } - - public static BasePacket CreatePacket(byte[] data, bool isAuthed, bool isEncrypted) - { - Debug.Assert(data != null); - - //Create Header - var header = new BasePacketHeader(); - - header.isAuthenticated = isAuthed ? (byte) 1 : (byte) 0; - header.isEncrypted = isEncrypted ? (byte) 1 : (byte) 0; - header.numSubpackets = 1; - header.packetSize = BASEPACKET_SIZE; - header.timestamp = Utils.MilisUnixTimeStampUTC(); - - //Get packet size - header.packetSize += (ushort) data.Length; - - var packet = new BasePacket(header, data); - return packet; - } - - public static unsafe void EncryptPacket(Blowfish blowfish, BasePacket packet) - { - var data = packet.data; - int size = packet.header.packetSize; - - var offset = 0; - while (offset < data.Length) - { - if (data.Length < offset + SubPacket.SUBPACKET_SIZE) - throw new OverflowException("Packet Error: Subpacket was too small"); - - SubPacketHeader header; - fixed (byte* pdata = &data[offset]) - { - header = (SubPacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(SubPacketHeader)); - } - - if (data.Length < offset + header.subpacketSize) - throw new OverflowException("Packet Error: Subpacket size didn't equal subpacket data"); - - blowfish.Encipher(data, offset + 0x10, header.subpacketSize - 0x10); - - offset += header.subpacketSize; - } - } - - public static unsafe void DecryptPacket(Blowfish blowfish, ref BasePacket packet) - { - var data = packet.data; - int size = packet.header.packetSize; - - var offset = 0; - while (offset < data.Length) - { - if (data.Length < offset + SubPacket.SUBPACKET_SIZE) - throw new OverflowException("Packet Error: Subpacket was too small"); - - SubPacketHeader header; - fixed (byte* pdata = &data[offset]) - { - header = (SubPacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(SubPacketHeader)); - } - - if (data.Length < offset + header.subpacketSize) - throw new OverflowException("Packet Error: Subpacket size didn't equal subpacket data"); - - blowfish.Decipher(data, offset + 0x10, header.subpacketSize - 0x10); - - offset += header.subpacketSize; - } - } - - #endregion - } - - public static class LoggerExtensions - { - public static void ColorDebug(this Logger logger, string message, ConsoleOutputColor color) - { - var logEvent = new LogEventInfo(LogLevel.Debug, logger.Name, message); - logEvent.Properties["color"] = (int) color; - logger.Log(logEvent); - } - } -} \ No newline at end of file diff --git a/FFXIVClassic Lobby Server/packets/SubPacket.cs b/FFXIVClassic Lobby Server/packets/SubPacket.cs deleted file mode 100644 index d684a087..00000000 --- a/FFXIVClassic Lobby Server/packets/SubPacket.cs +++ /dev/null @@ -1,163 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using FFXIVClassic.Common; -using NLog; -using NLog.Targets; - -namespace FFXIVClassic_Lobby_Server.packets -{ - [StructLayout(LayoutKind.Sequential)] - public struct SubPacketHeader - { - public ushort subpacketSize; - public ushort type; - public uint sourceId; - public uint targetId; - public uint unknown1; - } - - [StructLayout(LayoutKind.Sequential)] - public struct GameMessageHeader - { - public ushort unknown4; //Always 0x14 - public ushort opcode; - public uint unknown5; - public uint timestamp; - public uint unknown6; - } - - public class SubPacket - { - public const int SUBPACKET_SIZE = 0x10; - public const int GAMEMESSAGE_SIZE = 0x10; - private static readonly Logger logger = LogManager.GetCurrentClassLogger(); - public byte[] data; - public GameMessageHeader gameMessage; - - public SubPacketHeader header; - - public unsafe SubPacket(byte[] bytes, ref int offset) - { - if (bytes.Length < offset + SUBPACKET_SIZE) - throw new OverflowException("Packet Error: Subpacket was too small"); - - fixed (byte* pdata = &bytes[offset]) - { - header = (SubPacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(SubPacketHeader)); - } - - if (header.type == 0x3) - { - fixed (byte* pdata = &bytes[offset + SUBPACKET_SIZE]) - { - gameMessage = - (GameMessageHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(GameMessageHeader)); - } - } - - if (bytes.Length < offset + header.subpacketSize) - throw new OverflowException("Packet Error: Subpacket size didn't equal subpacket data"); - - if (header.type == 0x3) - { - data = new byte[header.subpacketSize - SUBPACKET_SIZE - GAMEMESSAGE_SIZE]; - Array.Copy(bytes, offset + SUBPACKET_SIZE + GAMEMESSAGE_SIZE, data, 0, data.Length); - } - else - { - data = new byte[header.subpacketSize - SUBPACKET_SIZE]; - Array.Copy(bytes, offset + SUBPACKET_SIZE, data, 0, data.Length); - } - - offset += header.subpacketSize; - } - - public SubPacket(ushort opcode, uint sourceId, uint targetId, byte[] data) - { - header = new SubPacketHeader(); - gameMessage = new GameMessageHeader(); - - gameMessage.opcode = opcode; - header.sourceId = sourceId; - header.targetId = targetId; - - gameMessage.timestamp = Utils.UnixTimeStampUTC(); - - header.type = 0x03; - header.unknown1 = 0x00; - gameMessage.unknown4 = 0x14; - gameMessage.unknown5 = 0x00; - gameMessage.unknown6 = 0x00; - - this.data = data; - - header.subpacketSize = (ushort) (SUBPACKET_SIZE + GAMEMESSAGE_SIZE + data.Length); - } - - public SubPacket(SubPacket original, uint newTargetId) - { - header = new SubPacketHeader(); - gameMessage = original.gameMessage; - header.subpacketSize = original.header.subpacketSize; - header.type = original.header.type; - header.sourceId = original.header.sourceId; - header.targetId = newTargetId; - data = original.data; - } - - public byte[] GetHeaderBytes() - { - var size = Marshal.SizeOf(header); - var arr = new byte[size]; - - var ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(header, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - return arr; - } - - public byte[] GetGameMessageBytes() - { - var size = Marshal.SizeOf(gameMessage); - var arr = new byte[size]; - - var ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(gameMessage, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - return arr; - } - - public byte[] GetBytes() - { - var outBytes = new byte[header.subpacketSize]; - Array.Copy(GetHeaderBytes(), 0, outBytes, 0, SUBPACKET_SIZE); - - if (header.type == 0x3) - Array.Copy(GetGameMessageBytes(), 0, outBytes, SUBPACKET_SIZE, GAMEMESSAGE_SIZE); - - Array.Copy(data, 0, outBytes, SUBPACKET_SIZE + (header.type == 0x3 ? GAMEMESSAGE_SIZE : 0), data.Length); - return outBytes; - } - - public void DebugPrintSubPacket() - { -#if DEBUG - logger.ColorDebug( - string.Format("Size:0x{0:X} Opcode:0x{1:X}{2}{3}", header.subpacketSize, gameMessage.opcode, - Environment.NewLine, - Utils.ByteArrayToHex(GetHeaderBytes())), ConsoleOutputColor.DarkRed); - - if (header.type == 0x03) - { - logger.ColorDebug(Utils.ByteArrayToHex(GetGameMessageBytes(), SUBPACKET_SIZE), - ConsoleOutputColor.DarkRed); - - logger.ColorDebug(Utils.ByteArrayToHex(data, SUBPACKET_SIZE + GAMEMESSAGE_SIZE), - ConsoleOutputColor.DarkMagenta); - } -#endif - } - } -} \ No newline at end of file diff --git a/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs b/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs index 9bedc3d3..a6c69341 100644 --- a/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic.Common; +using FFXIVClassic_Lobby_Server.dataobjects; using System; using System.Collections.Generic; using System.IO; diff --git a/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs b/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs index d5b9289b..5825c7be 100644 --- a/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; using System.Text; diff --git a/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs b/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs index 2ad1b0b9..42db777f 100644 --- a/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic.Common; +using FFXIVClassic_Lobby_Server.dataobjects; using System; using System.Collections.Generic; using System.IO; diff --git a/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs b/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs index 0e707e62..5578ee52 100644 --- a/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; using System.Text; diff --git a/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs b/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs index 80bce85c..ac389071 100644 --- a/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; using System.Text; diff --git a/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs b/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs index c12c245b..c9a6377d 100644 --- a/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; using System.Text; diff --git a/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs b/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs index 352c11e3..6b57da3f 100644 --- a/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; using System.Text; diff --git a/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs b/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs index 06866bfc..0e939700 100644 --- a/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic.Common; +using FFXIVClassic_Lobby_Server.dataobjects; using System; using System.Collections.Generic; using System.IO; diff --git a/FFXIVClassic Map Server/ClientConnection.cs b/FFXIVClassic Map Server/ClientConnection.cs index 8592d78c..fcae92c6 100644 --- a/FFXIVClassic Map Server/ClientConnection.cs +++ b/FFXIVClassic Map Server/ClientConnection.cs @@ -1,6 +1,6 @@ using System; using System.Net.Sockets; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic.Common; using System.Collections.Concurrent; using System.Net; diff --git a/FFXIVClassic Map Server/CommandProcessor.cs b/FFXIVClassic Map Server/CommandProcessor.cs index 50985884..3936a2b7 100644 --- a/FFXIVClassic Map Server/CommandProcessor.cs +++ b/FFXIVClassic Map Server/CommandProcessor.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; using System.Threading; using FFXIVClassic.Common; using FFXIVClassic_Map_Server.dataobjects; -using FFXIVClassic_Map_Server.packets; + using System.IO; using FFXIVClassic_Map_Server.packets.send.actor; using FFXIVClassic_Map_Server; diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index 823e8b13..cb8f72a4 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using FFXIVClassic.Common; using FFXIVClassic_Map_Server.utils; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.packets.send.player; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.Actors; diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index c5c79140..d71ab75b 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -121,7 +121,6 @@ - @@ -255,7 +254,6 @@ - diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs index 590315c8..a6673c93 100644 --- a/FFXIVClassic Map Server/PacketProcessor.cs +++ b/FFXIVClassic Map Server/PacketProcessor.cs @@ -1,5 +1,5 @@ using FFXIVClassic.Common; -using FFXIVClassic_Map_Server.packets; + using System; using System.Collections.Generic; using System.IO; diff --git a/FFXIVClassic Map Server/Server.cs b/FFXIVClassic Map Server/Server.cs index e7f1f1be..ca939e63 100644 --- a/FFXIVClassic Map Server/Server.cs +++ b/FFXIVClassic Map Server/Server.cs @@ -4,7 +4,7 @@ using System.Net; using System.Net.Sockets; using System.Threading; using FFXIVClassic_Map_Server.dataobjects; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic.Common; using NLog; using FFXIVClassic_Map_Server.Actors; diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 9214a075..dc26a885 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -1,4 +1,4 @@ -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index 811b9200..35e45188 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -1,6 +1,6 @@ using FFXIVClassic_Map_Server; using FFXIVClassic.Common; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.actors.area; using FFXIVClassic_Map_Server.actors.chara.npc; using FFXIVClassic_Map_Server.dataobjects; diff --git a/FFXIVClassic Map Server/actors/area/PrivateArea.cs b/FFXIVClassic Map Server/actors/area/PrivateArea.cs index dd7cf9de..340648e5 100644 --- a/FFXIVClassic Map Server/actors/area/PrivateArea.cs +++ b/FFXIVClassic Map Server/actors/area/PrivateArea.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/area/Zone.cs b/FFXIVClassic Map Server/actors/area/Zone.cs index 51622b36..e0c41e44 100644 --- a/FFXIVClassic Map Server/actors/area/Zone.cs +++ b/FFXIVClassic Map Server/actors/area/Zone.cs @@ -1,6 +1,6 @@ using FFXIVClassic_Map_Server; using FFXIVClassic.Common; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.actors.chara.npc; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; diff --git a/FFXIVClassic Map Server/actors/chara/Character.cs b/FFXIVClassic Map Server/actors/chara/Character.cs index ddde616c..41b8932a 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors.Chara; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index 2459cda7..5702a35c 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -3,7 +3,7 @@ using FFXIVClassic_Map_Server.actors; using FFXIVClassic_Map_Server.Actors.Chara; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.lua; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.packets.receive.events; using FFXIVClassic_Map_Server.packets.send.actor; using FFXIVClassic_Map_Server.utils; diff --git a/FFXIVClassic Map Server/actors/chara/player/Equipment.cs b/FFXIVClassic Map Server/actors/chara/player/Equipment.cs index ebe1f88d..3092ba39 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Equipment.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Equipment.cs @@ -1,7 +1,6 @@ using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.packets.send.actor.inventory; -using FFXIVClassic_Map_Server.packets.send.Actor.inventory; using System.Collections.Generic; namespace FFXIVClassic_Map_Server.actors.chara.player diff --git a/FFXIVClassic Map Server/actors/chara/player/Inventory.cs b/FFXIVClassic Map Server/actors/chara/player/Inventory.cs index 19538ae4..4b2d786b 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Inventory.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Inventory.cs @@ -1,8 +1,8 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.packets.send.actor.inventory; -using FFXIVClassic_Map_Server.packets.send.Actor.inventory; using System; using System.Collections.Generic; using System.Linq; diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 3f19e2f5..91dc16d6 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1,5 +1,5 @@ using FFXIVClassic.Common; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.actors.chara.player; using FFXIVClassic_Map_Server.actors.director; using FFXIVClassic_Map_Server.dataobjects; @@ -7,8 +7,6 @@ using FFXIVClassic_Map_Server.dataobjects.chara; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send; using FFXIVClassic_Map_Server.packets.send.actor; -using FFXIVClassic_Map_Server.packets.send.actor.events; -using FFXIVClassic_Map_Server.packets.send.Actor.inventory; using FFXIVClassic_Map_Server.packets.send.events; using FFXIVClassic_Map_Server.packets.send.list; using FFXIVClassic_Map_Server.packets.send.player; @@ -17,7 +15,8 @@ using System; using System.Collections.Generic; using MoonSharp.Interpreter; using FFXIVClassic_Map_Server.packets.receive.events; - +using FFXIVClassic_Map_Server.packets.send.actor.inventory; + namespace FFXIVClassic_Map_Server.Actors { class Player : Character diff --git a/FFXIVClassic Map Server/actors/debug/Debug.cs b/FFXIVClassic Map Server/actors/debug/Debug.cs index 8c84c223..ddea59d9 100644 --- a/FFXIVClassic Map Server/actors/debug/Debug.cs +++ b/FFXIVClassic Map Server/actors/debug/Debug.cs @@ -1,4 +1,4 @@ -using FFXIVClassic_Map_Server.packets; +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; using System.Collections.Generic; diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index fb50c3c8..4c06957f 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/director/OpeningDirector.cs b/FFXIVClassic Map Server/actors/director/OpeningDirector.cs index c47f18b5..07ee3a14 100644 --- a/FFXIVClassic Map Server/actors/director/OpeningDirector.cs +++ b/FFXIVClassic Map Server/actors/director/OpeningDirector.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/director/WeatherDirector.cs b/FFXIVClassic Map Server/actors/director/WeatherDirector.cs index 2ce196f9..4ed53457 100644 --- a/FFXIVClassic Map Server/actors/director/WeatherDirector.cs +++ b/FFXIVClassic Map Server/actors/director/WeatherDirector.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.actors.director; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0g001.cs b/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0g001.cs index a5404dd6..24c11a66 100644 --- a/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0g001.cs +++ b/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0g001.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0l001.cs b/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0l001.cs index 821bcb86..d415aa17 100644 --- a/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0l001.cs +++ b/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0l001.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0u001.cs b/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0u001.cs index 1c581b3b..2bf8678b 100644 --- a/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0u001.cs +++ b/FFXIVClassic Map Server/actors/director/quest/QuestDirectorMan0u001.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; diff --git a/FFXIVClassic Map Server/actors/world/WorldMaster.cs b/FFXIVClassic Map Server/actors/world/WorldMaster.cs index fd2a4a6a..5174cdfb 100644 --- a/FFXIVClassic Map Server/actors/world/WorldMaster.cs +++ b/FFXIVClassic Map Server/actors/world/WorldMaster.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Map_Server.packets; + +using FFXIVClassic.Common; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; using System.Collections.Generic; diff --git a/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs b/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs index 6122cbc2..052bec4e 100644 --- a/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs +++ b/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs @@ -1,6 +1,6 @@ using FFXIVClassic_Map_Server; using FFXIVClassic.Common; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; @@ -70,7 +70,7 @@ namespace FFXIVClassic_Map_Server.dataobjects } public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted) - { + { zoneConnection.QueuePacket(subPacket, isAuthed, isEncrypted); } diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index b2f0b3ee..ddbae92a 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -1,207 +1,208 @@ -using FFXIVClassic_Map_Server.packets; -using FFXIVClassic_Map_Server.actors.director; -using FFXIVClassic_Map_Server.Actors; -using FFXIVClassic_Map_Server.dataobjects; -using FFXIVClassic_Map_Server.packets.receive.events; -using FFXIVClassic_Map_Server.packets.send; -using FFXIVClassic_Map_Server.packets.send.events; -using MoonSharp.Interpreter; -using MoonSharp.Interpreter.Interop; -using MoonSharp.Interpreter.Loaders; -using System; -using System.Collections.Generic; -using System.IO; -using System.Diagnostics; -using FFXIVClassic_Map_Server.lua; - -namespace FFXIVClassic_Map_Server.lua -{ - class LuaEngine - { - const string FILEPATH_PLAYER = "./scripts/player.lua"; - const string FILEPATH_ZONE = "./scripts/zones/{0}/zone.lua"; - const string FILEPATH_COMMANDS = "./scripts/commands/{0}.lua"; - const string FILEPATH_DIRECTORS = "./scripts/directors/{0}.lua"; - const string FILEPATH_NPCS = "./scripts/zones/{0}/npcs/{1}.lua"; - - public LuaEngine() - { - UserData.RegistrationPolicy = InteropRegistrationPolicy.Automatic; - } - - public static List DoActorInstantiate(Player player, Actor target) - { - string luaPath; - - if (target is Npc) - { - luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return null; - - DynValue result = script.Call(script.Globals["init"], target); - List lparams = LuaUtils.CreateLuaParamList(result); - return lparams; - } - else - { - SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); - return null; - } - } - - return null; + +using FFXIVClassic_Map_Server.actors.director; +using FFXIVClassic_Map_Server.Actors; +using FFXIVClassic_Map_Server.dataobjects; +using FFXIVClassic_Map_Server.packets.receive.events; +using FFXIVClassic_Map_Server.packets.send; +using FFXIVClassic_Map_Server.packets.send.events; +using MoonSharp.Interpreter; +using MoonSharp.Interpreter.Interop; +using MoonSharp.Interpreter.Loaders; +using System; +using System.Collections.Generic; +using System.IO; +using System.Diagnostics; +using FFXIVClassic_Map_Server.lua; +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.lua +{ + class LuaEngine + { + const string FILEPATH_PLAYER = "./scripts/player.lua"; + const string FILEPATH_ZONE = "./scripts/zones/{0}/zone.lua"; + const string FILEPATH_COMMANDS = "./scripts/commands/{0}.lua"; + const string FILEPATH_DIRECTORS = "./scripts/directors/{0}.lua"; + const string FILEPATH_NPCS = "./scripts/zones/{0}/npcs/{1}.lua"; + + public LuaEngine() + { + UserData.RegistrationPolicy = InteropRegistrationPolicy.Automatic; } - public static Coroutine DoActorOnEventStarted(Player player, Actor target, EventStartPacket eventStart) - { - string luaPath; - - if (target is Command) - { - luaPath = String.Format(FILEPATH_COMMANDS, target.GetName()); - } - else if (target is Director) - { - luaPath = String.Format(FILEPATH_DIRECTORS, target.GetName()); - } - else - luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); - - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return null; - - if (!script.Globals.Get("onEventStarted").IsNil()) - return script.CreateCoroutine(script.Globals["onEventStarted"]).Coroutine; - else - return null; - } - else - { - SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); - return null; + public static List DoActorInstantiate(Player player, Actor target) + { + string luaPath; + + if (target is Npc) + { + luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return null; + + DynValue result = script.Call(script.Globals["init"], target); + List lparams = LuaUtils.CreateLuaParamList(result); + return lparams; + } + else + { + SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); + return null; + } } - } - - public static void DoActorOnSpawn(Player player, Npc target) - { - string luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); - - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return; - - //Run Script - if (!script.Globals.Get("onSpawn").IsNil()) - script.Call(script.Globals["onSpawn"], player, target); - } - else - { - SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); - } - - } - - public static void DoActorOnEventUpdated(Player player, Actor target, EventUpdatePacket eventUpdate) - { - if (target is Npc) - { - ((Npc)target).DoEventUpdate(player, eventUpdate); - return; - } - + return null; + } + + public static Coroutine DoActorOnEventStarted(Player player, Actor target, EventStartPacket eventStart) + { string luaPath; if (target is Command) - luaPath = String.Format(FILEPATH_COMMANDS, target.GetName()); - else if (target is Director) - luaPath = String.Format(FILEPATH_DIRECTORS, target.GetName()); - else - luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); - - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return; - - //Have to Do this to combine LuaParams - List objects = new List(); - objects.Add(player); - objects.Add(target); - objects.Add(eventUpdate.val2); - objects.AddRange(LuaUtils.CreateLuaParamObjectList(eventUpdate.luaParams)); - - //Run Script - if (!script.Globals.Get("onEventUpdate").IsNil()) - script.Call(script.Globals["onEventUpdate"], objects.ToArray()); - } - else - { - SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); + { + luaPath = String.Format(FILEPATH_COMMANDS, target.GetName()); } - } - - public static void OnZoneIn(Player player) - { + else if (target is Director) + { + luaPath = String.Format(FILEPATH_DIRECTORS, target.GetName()); + } + else + luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); + + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return null; + + if (!script.Globals.Get("onEventStarted").IsNil()) + return script.CreateCoroutine(script.Globals["onEventStarted"]).Coroutine; + else + return null; + } + else + { + SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); + return null; + } + + } + + public static void DoActorOnSpawn(Player player, Npc target) + { + string luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); + + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return; + + //Run Script + if (!script.Globals.Get("onSpawn").IsNil()) + script.Call(script.Globals["onSpawn"], player, target); + } + else + { + SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); + } + + } + + public static void DoActorOnEventUpdated(Player player, Actor target, EventUpdatePacket eventUpdate) + { + if (target is Npc) + { + ((Npc)target).DoEventUpdate(player, eventUpdate); + return; + } + + string luaPath; + + if (target is Command) + luaPath = String.Format(FILEPATH_COMMANDS, target.GetName()); + else if (target is Director) + luaPath = String.Format(FILEPATH_DIRECTORS, target.GetName()); + else + luaPath = String.Format(FILEPATH_NPCS, target.zoneId, target.GetName()); + + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return; + + //Have to Do this to combine LuaParams + List objects = new List(); + objects.Add(player); + objects.Add(target); + objects.Add(eventUpdate.val2); + objects.AddRange(LuaUtils.CreateLuaParamObjectList(eventUpdate.luaParams)); + + //Run Script + if (!script.Globals.Get("onEventUpdate").IsNil()) + script.Call(script.Globals["onEventUpdate"], objects.ToArray()); + } + else + { + SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); + } + } + + public static void OnZoneIn(Player player) + { string luaPath = String.Format(FILEPATH_ZONE, player.GetZone().actorId); - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return; - - //Run Script - if (!script.Globals.Get("onZoneIn").IsNil()) - script.Call(script.Globals["onZoneIn"], player); + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return; + + //Run Script + if (!script.Globals.Get("onZoneIn").IsNil()) + script.Call(script.Globals["onZoneIn"], player); } - } - - public static void OnBeginLogin(Player player) - { - if (File.Exists(FILEPATH_PLAYER)) - { - LuaScript script = LoadScript(FILEPATH_PLAYER); - - if (script == null) - return; - - //Run Script - if (!script.Globals.Get("onBeginLogin").IsNil()) - script.Call(script.Globals["onBeginLogin"], player); - } - } - - public static void OnLogin(Player player) - { - if (File.Exists(FILEPATH_PLAYER)) - { - LuaScript script = LoadScript(FILEPATH_PLAYER); - - if (script == null) - return; - - //Run Script - if (!script.Globals.Get("onLogin").IsNil()) - script.Call(script.Globals["onLogin"], player); - } - } - + } + + public static void OnBeginLogin(Player player) + { + if (File.Exists(FILEPATH_PLAYER)) + { + LuaScript script = LoadScript(FILEPATH_PLAYER); + + if (script == null) + return; + + //Run Script + if (!script.Globals.Get("onBeginLogin").IsNil()) + script.Call(script.Globals["onBeginLogin"], player); + } + } + + public static void OnLogin(Player player) + { + if (File.Exists(FILEPATH_PLAYER)) + { + LuaScript script = LoadScript(FILEPATH_PLAYER); + + if (script == null) + return; + + //Run Script + if (!script.Globals.Get("onLogin").IsNil()) + script.Call(script.Globals["onLogin"], player); + } + } + #region RunGMCommand public static void RunGMCommand(Player player, String cmd, string[] param, bool help = false) { @@ -336,22 +337,22 @@ namespace FFXIVClassic_Map_Server.lua LuaScript.Log.Error("LuaEngine.RunGMCommand: Unable to find script {0}", path); return; } - #endregion - - public static LuaScript LoadScript(string filename) - { - LuaScript script = LoadGlobals(); - - try - { - script.DoFile(filename); - } - catch (SyntaxErrorException e) - { - Program.Log.Error("LUAERROR: {0}.", e.DecoratedMessage); - return null; - } - return script; + #endregion + + public static LuaScript LoadScript(string filename) + { + LuaScript script = LoadGlobals(); + + try + { + script.DoFile(filename); + } + catch (SyntaxErrorException e) + { + Program.Log.Error("LUAERROR: {0}.", e.DecoratedMessage); + return null; + } + return script; } public static LuaScript LoadGlobals(LuaScript script = null) @@ -367,57 +368,57 @@ namespace FFXIVClassic_Map_Server.lua script.Options.DebugPrint = s => { Program.Log.Debug(s); }; return script; - } - - public static void SendError(Player player, string message) - { - List SendError = new List(); - SendError.Add(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName)); - player.SendMessage(SendMessagePacket.MESSAGE_TYPE_SYSTEM_ERROR, "", message); - player.playerSession.QueuePacket(BasePacket.CreatePacket(SendError, true, false)); - } - - - internal static void DoDirectorOnTalked(Director director, Player player, Npc npc) - { - string luaPath = String.Format(FILEPATH_DIRECTORS, director.GetName()); - - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return; - - //Run Script - if (!script.Globals.Get("onTalked").IsNil()) - script.Call(script.Globals["onTalked"], player, npc); - } - else - { - SendError(player, String.Format("ERROR: Could not find script for director {0}.", director.GetName())); - } - } - - internal static void DoDirectorOnCommand(Director director, Player player, Command command) - { - string luaPath = String.Format(FILEPATH_DIRECTORS, director.GetName()); - - if (File.Exists(luaPath)) - { - LuaScript script = LoadScript(luaPath); - - if (script == null) - return; - - //Run Script - if (!script.Globals.Get("onCommand").IsNil()) - script.Call(script.Globals["onCommand"], player, command); - } - else - { - SendError(player, String.Format("ERROR: Could not find script for director {0}.", director.GetName())); - } - } - } -} + } + + public static void SendError(Player player, string message) + { + List SendError = new List(); + SendError.Add(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName)); + player.SendMessage(SendMessagePacket.MESSAGE_TYPE_SYSTEM_ERROR, "", message); + player.playerSession.QueuePacket(BasePacket.CreatePacket(SendError, true, false)); + } + + + internal static void DoDirectorOnTalked(Director director, Player player, Npc npc) + { + string luaPath = String.Format(FILEPATH_DIRECTORS, director.GetName()); + + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return; + + //Run Script + if (!script.Globals.Get("onTalked").IsNil()) + script.Call(script.Globals["onTalked"], player, npc); + } + else + { + SendError(player, String.Format("ERROR: Could not find script for director {0}.", director.GetName())); + } + } + + internal static void DoDirectorOnCommand(Director director, Player player, Command command) + { + string luaPath = String.Format(FILEPATH_DIRECTORS, director.GetName()); + + if (File.Exists(luaPath)) + { + LuaScript script = LoadScript(luaPath); + + if (script == null) + return; + + //Run Script + if (!script.Globals.Get("onCommand").IsNil()) + script.Call(script.Globals["onCommand"], player, command); + } + else + { + SendError(player, String.Format("ERROR: Could not find script for director {0}.", director.GetName())); + } + } + } +} diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs index ee59c7d3..f8af6034 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class ActorDoEmotePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs index 14a72cb8..49b50b9f 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs @@ -4,7 +4,9 @@ using System.Collections.Generic; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class ActorInstantiatePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs index 2ba4f976..de6fc3de 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorQuestGraphicPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs index c561e9d4..138fdbe7 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs @@ -1,4 +1,8 @@ -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class AddActorPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs index e6d61e39..84122ce1 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs @@ -1,6 +1,9 @@ -using System.IO; +using FFXIVClassic.Common; +using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class BattleAction1Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs index e4bf1ef1..b2052341 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs @@ -1,4 +1,8 @@ -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class DeleteAllActorsPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs index 60e5596a..e807c4d6 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class MoveActorToPositionPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs index 6d612713..9240f53e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class RemoveActorPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs index 2769482c..0e4ed34a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs @@ -1,6 +1,8 @@ using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorAppearancePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs index 662e6096..6dde6397 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorIconPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs index 12341c95..c63c9cbe 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorIdleAnimationPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs index 5b46c55b..4dfa29f3 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorIsZoningPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs index 6036cd4d..9df353ce 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs @@ -2,7 +2,9 @@ using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorNamePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs index 7e0012ea..cfb9cf05 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorPositionPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs index b059f506..a20ccb82 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs @@ -5,7 +5,9 @@ using System.Linq; using System.Reflection; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorPropetyPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs index 5f22942b..009ee086 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs @@ -1,7 +1,8 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorSpeedPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs index bb3a0cc6..356b4f38 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs @@ -1,6 +1,9 @@ -using System; +using FFXIVClassic.Common; +using System; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorStatePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs index 277dda2b..429096ef 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs @@ -1,7 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorStatusAllPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs index bd148efb..8bd6172d 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs @@ -1,7 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorStatusPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs index ebc77e0d..f2f86d75 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs @@ -1,6 +1,8 @@ using System; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetActorTargetAnimatedPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs index 645209cc..cd2e86e6 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; namespace FFXIVClassic_Map_Server.packets.send.actor { diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs index 066cb231..b0f8bb89 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs @@ -1,8 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; +namespace FFXIVClassic_Map_Server.packets.send.actor { class _0x132Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs index 7fe72cae..2f54191d 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs @@ -1,6 +1,8 @@ using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class _0xFPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleAction.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleAction.cs index 71bf867b..e1958bf9 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleAction.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleAction.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.actor.battle +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.battle { class BattleAction { diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs index 30995408..ba3f8b2e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs @@ -1,7 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.battle +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.battle { class BattleActionX00Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs index 0a90d960..17efb745 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs @@ -1,7 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.battle +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.battle { class BattleActionX01Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs index 67775962..45884b14 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs @@ -1,7 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.battle +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.battle { class BattleActionX10Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs index 38038ab3..8f8e8fdd 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs @@ -1,7 +1,10 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.battle +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.battle { class BattleActionX18Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs index dc98bab6..f23866c2 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs @@ -1,9 +1,12 @@ -using FFXIVClassic_Map_Server.actors; +using FFXIVClassic.Common; +using FFXIVClassic_Map_Server.actors; using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetEmoteEventCondition { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs index 4867950a..c86d3a0f 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs @@ -2,7 +2,9 @@ using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetEventStatus { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs index 04099db3..f6ed17d4 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs @@ -3,7 +3,9 @@ using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetNoticeEventCondition { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs index 7b55dbd1..a093788a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs @@ -3,7 +3,9 @@ using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetPushEventConditionWithCircle { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs index 3d81c625..8b070ea7 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs @@ -3,7 +3,9 @@ using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetPushEventConditionWithFan { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs index 97a0ffd2..810ca88d 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs @@ -3,7 +3,9 @@ using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetPushEventConditionWithTriggerBox { diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs index 4616cbd9..f3b47bfd 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs @@ -3,7 +3,9 @@ using System; using System.IO; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor.events +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.events { class SetTalkEventCondition { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs index 364c575c..616c4cbd 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class EquipmentListX01Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs index ccf67e65..bf8a5d25 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs @@ -3,7 +3,9 @@ using System; using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class EquipmentListX08Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs index 5fc79272..0eeea6ee 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs @@ -3,7 +3,9 @@ using System; using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class EquipmentListX16Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs index c6dde267..ca882b09 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs @@ -3,7 +3,9 @@ using System; using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class EquipmentListX32Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs index 309f2cf5..9f48eb35 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs @@ -3,7 +3,9 @@ using System; using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class EquipmentListX64Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs index 4df15032..ab6183c8 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryBeginChangePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs index c6944676..24499b25 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryEndChangePacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs index d1665120..107a3e79 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryItemEndPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs index 75cdd97d..9a35e8e0 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryItemPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs index 5d4db4fe..964e02a4 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs @@ -1,7 +1,9 @@ using FFXIVClassic_Map_Server.dataobjects; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryListX01Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs index b136429c..448c9f3a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs @@ -3,7 +3,9 @@ using System; using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryListX08Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs index 31cf4cc4..6c406bf9 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryListX16Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs index 58e1c9c8..b9dd9dd3 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryListX32Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs index 7599f309..c1c05da0 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryListX64Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs index e210bacb..cc16251a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryRemoveX01Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs index 54f9cfa4..2dd988b2 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs @@ -1,8 +1,11 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryRemoveX08Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs index e47e0e95..b54820c0 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryRemoveX16Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs index 6af8c465..ebb568cd 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryRemoveX32Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs index b6d7a3b5..208ccbe1 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventoryRemoveX64Packet { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs index 707f9ca1..74af503d 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventorySetBeginPacket { diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs index 29da7459..5a7952d2 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventorySetEndPacket { diff --git a/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs b/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs index 9524bae1..cffe2a37 100644 --- a/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs +++ b/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs @@ -4,6 +4,8 @@ using System.Collections.Generic; using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class GameMessagePacket diff --git a/FFXIVClassic Map Server/packets/send/LogoutPacket.cs b/FFXIVClassic Map Server/packets/send/LogoutPacket.cs index cd8babaf..2348a24a 100644 --- a/FFXIVClassic Map Server/packets/send/LogoutPacket.cs +++ b/FFXIVClassic Map Server/packets/send/LogoutPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send { class LogoutPacket { diff --git a/FFXIVClassic Map Server/packets/send/PongPacket.cs b/FFXIVClassic Map Server/packets/send/PongPacket.cs index 695116b9..477e0915 100644 --- a/FFXIVClassic Map Server/packets/send/PongPacket.cs +++ b/FFXIVClassic Map Server/packets/send/PongPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; namespace FFXIVClassic_Map_Server.packets.receive diff --git a/FFXIVClassic Map Server/packets/send/QuitPacket.cs b/FFXIVClassic Map Server/packets/send/QuitPacket.cs index b10c9e24..ccdddc74 100644 --- a/FFXIVClassic Map Server/packets/send/QuitPacket.cs +++ b/FFXIVClassic Map Server/packets/send/QuitPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send { class QuitPacket { diff --git a/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs b/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs index 6152f215..5fa97c71 100644 --- a/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs +++ b/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs @@ -2,6 +2,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class SendMessagePacket diff --git a/FFXIVClassic Map Server/packets/send/SetMapPacket.cs b/FFXIVClassic Map Server/packets/send/SetMapPacket.cs index 797b8199..86ff5236 100644 --- a/FFXIVClassic Map Server/packets/send/SetMapPacket.cs +++ b/FFXIVClassic Map Server/packets/send/SetMapPacket.cs @@ -1,5 +1,7 @@ using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class SetMapPacket diff --git a/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs b/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs index 08a66521..dfe477b1 100644 --- a/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs +++ b/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class SetMusicPacket diff --git a/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs b/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs index cce963f3..93d1f425 100644 --- a/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs +++ b/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class SetWeatherPacket diff --git a/FFXIVClassic Map Server/packets/send/_0x02Packet.cs b/FFXIVClassic Map Server/packets/send/_0x02Packet.cs index 0f627e35..3e91afd5 100644 --- a/FFXIVClassic Map Server/packets/send/_0x02Packet.cs +++ b/FFXIVClassic Map Server/packets/send/_0x02Packet.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class _0x02Packet diff --git a/FFXIVClassic Map Server/packets/send/_0x10Packet.cs b/FFXIVClassic Map Server/packets/send/_0x10Packet.cs index e0f229c2..d04f8154 100644 --- a/FFXIVClassic Map Server/packets/send/_0x10Packet.cs +++ b/FFXIVClassic Map Server/packets/send/_0x10Packet.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class _0x10Packet diff --git a/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs b/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs index 0ad9b340..1602f4cf 100644 --- a/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs +++ b/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send { class _0xE2Packet diff --git a/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs b/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs index 29facf3d..ddc8fc51 100644 --- a/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs @@ -2,6 +2,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.events { class EndEventPacket diff --git a/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs b/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs index 35571c55..14e20263 100644 --- a/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs @@ -4,6 +4,8 @@ using System.Collections.Generic; using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.events { class KickEventPacket diff --git a/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs b/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs index fe2c989e..8320f103 100644 --- a/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs @@ -4,6 +4,8 @@ using System.Collections.Generic; using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.events { class RunEventFunctionPacket diff --git a/FFXIVClassic Map Server/packets/send/list/ListBeginPacket.cs b/FFXIVClassic Map Server/packets/send/list/ListBeginPacket.cs index 9acebfd7..ee63b473 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListBeginPacket.cs +++ b/FFXIVClassic Map Server/packets/send/list/ListBeginPacket.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.list { class ListBeginPacket diff --git a/FFXIVClassic Map Server/packets/send/list/ListEndPacket.cs b/FFXIVClassic Map Server/packets/send/list/ListEndPacket.cs index e8cc597d..788e7fac 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/list/ListEndPacket.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.list { class ListEndPacket diff --git a/FFXIVClassic Map Server/packets/send/list/ListEntriesEndPacket.cs b/FFXIVClassic Map Server/packets/send/list/ListEntriesEndPacket.cs index eaf661ba..0e7db0f9 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListEntriesEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/list/ListEntriesEndPacket.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.list { class ListEntriesEndPacket diff --git a/FFXIVClassic Map Server/packets/send/list/ListEntry.cs b/FFXIVClassic Map Server/packets/send/list/ListEntry.cs index 97859916..6fcb31ff 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListEntry.cs +++ b/FFXIVClassic Map Server/packets/send/list/ListEntry.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.list +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.list { class ListEntry { diff --git a/FFXIVClassic Map Server/packets/send/list/ListStartPacket.cs b/FFXIVClassic Map Server/packets/send/list/ListStartPacket.cs index 56934bef..481762c6 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListStartPacket.cs +++ b/FFXIVClassic Map Server/packets/send/list/ListStartPacket.cs @@ -2,6 +2,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.list { class ListStartPacket diff --git a/FFXIVClassic Map Server/packets/send/list/ListUtils.cs b/FFXIVClassic Map Server/packets/send/list/ListUtils.cs index 03269fe1..4f5df931 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListUtils.cs +++ b/FFXIVClassic Map Server/packets/send/list/ListUtils.cs @@ -1,5 +1,7 @@ using System.Collections.Generic; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.list { class ListUtils diff --git a/FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs b/FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs index 781e137f..4c4b9d85 100644 --- a/FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs @@ -5,7 +5,9 @@ using System.Linq; using System.Reflection; using System.Text; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetListPropetyPacket { diff --git a/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs b/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs index 59a1f583..72952578 100644 --- a/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs +++ b/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs @@ -1,5 +1,7 @@ using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.login { class _0x2Packet diff --git a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs b/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs index 63d207f9..7278b1f1 100644 --- a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs @@ -1,6 +1,9 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.login { class Login0x7ResponsePacket diff --git a/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs b/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs index 2151e81c..f7a9ed11 100644 --- a/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class AchievementEarnedPacket diff --git a/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs b/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs index 73780b4c..dd3535c0 100644 --- a/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class InfoRequestResponsePacket diff --git a/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs b/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs index 60b9b2b9..0bef5b62 100644 --- a/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SendAchievementRatePacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs index 6c4248a2..8000b570 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetAchievementPointsPacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs index 53bbb748..97f9850e 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs @@ -1,5 +1,7 @@ using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetChocoboNamePacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs index 4368f77a..887acc94 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs @@ -1,6 +1,8 @@ using FFXIVClassic.Common; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetCompletedAchievementsPacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs index 43a07cd0..f890e4e6 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetCurrentJobPacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs index b4d7a013..95f3ff97 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.player +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.player { class SetCurrentMountChocoboPacket { diff --git a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs index ec65824c..71aca97f 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.player +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.player { class SetCurrentMountGoobbuePacket { diff --git a/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs index 75211b87..84bc4c9f 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs @@ -3,6 +3,8 @@ using System; using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetCutsceneBookPacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs index 4b177966..d942efad 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs @@ -1,7 +1,9 @@ using System; using System.IO; -namespace FFXIVClassic_Map_Server.packets.send.actor +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.actor { class SetGrandCompanyPacket { diff --git a/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs index d2fe62d3..796ac55e 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.player +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.player { class SetHasChocoboPacket { diff --git a/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs index 114bf124..4f35e303 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.player +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.player { class SetHasGoobbuePacket { diff --git a/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs index cb50cdb7..5d9c6483 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetLatestAchievementsPacket diff --git a/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs index 5f357dc1..d3e3d177 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs @@ -1,4 +1,7 @@ -using System; +using FFXIVClassic.Common; +using System; + +using FFXIVClassic.Common; namespace FFXIVClassic_Map_Server.packets.send.player { diff --git a/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs index 112def38..75af7666 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs @@ -1,5 +1,7 @@ using System; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class SetPlayerTitlePacket diff --git a/FFXIVClassic Map Server/packets/send/player/_0x196Packet.cs b/FFXIVClassic Map Server/packets/send/player/_0x196Packet.cs index 221f4d37..8eff42ae 100644 --- a/FFXIVClassic Map Server/packets/send/player/_0x196Packet.cs +++ b/FFXIVClassic Map Server/packets/send/player/_0x196Packet.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.player { class _0x196Packet diff --git a/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs index 99068bf6..2b3f7a4d 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs @@ -3,6 +3,8 @@ using System; using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.recruitment { class CurrentRecruitmentDetailsPacket diff --git a/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs index e0ef929d..d6c6ffe6 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.recruitment +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.recruitment { class EndRecruitmentPacket { diff --git a/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs index 3e557b97..7356f33b 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.recruitment { class RecruiterStatePacket diff --git a/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs b/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs index 5e78f219..efa1b644 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.recruitment +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.recruitment { class StartRecruitingResponse { diff --git a/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs b/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs index eac92f94..1ac85628 100644 --- a/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class BlacklistAddedPacket diff --git a/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs b/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs index 507d8e58..22c7f8a7 100644 --- a/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class BlacklistRemovedPacket diff --git a/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs b/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs index 5cee912d..a9e279fe 100644 --- a/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs @@ -1,6 +1,8 @@ using System; using System.IO; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class FriendStatusPacket diff --git a/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs b/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs index 7f708c29..b46caf85 100644 --- a/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs @@ -2,6 +2,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class FriendlistAddedPacket diff --git a/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs b/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs index f4ccef4d..f293da3d 100644 --- a/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class FriendlistRemovedPacket diff --git a/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs b/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs index 54d3b9b9..01654a86 100644 --- a/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs @@ -2,6 +2,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class SendBlacklistPacket diff --git a/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs b/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs index 7074ca3d..117c800e 100644 --- a/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs @@ -2,6 +2,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.social { class SendFriendlistPacket diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs index 0a84b09a..b9387de5 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.supportdesk +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class EndGMTicketPacket { diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs index a3ab11c5..6704747e 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class FaqBodyResponsePacket diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs index cc8193b4..b41774f1 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class FaqListResponsePacket diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs index 3ec04973..eddd0e33 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class GMTicketPacket diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs index 502b1f74..80903b2a 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs @@ -1,4 +1,8 @@ -namespace FFXIVClassic_Map_Server.packets.send.supportdesk +using FFXIVClassic.Common; + +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class GMTicketSentResponsePacket { diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs index 7f1defa5..93337b87 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs @@ -1,6 +1,8 @@ using System.IO; using System.Text; +using FFXIVClassic.Common; + namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class IssueListResponsePacket diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs index a06b23bb..8c643882 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs @@ -1,4 +1,6 @@ -namespace FFXIVClassic_Map_Server.packets.send.supportdesk +using FFXIVClassic.Common; + +namespace FFXIVClassic_Map_Server.packets.send.supportdesk { class StartGMTicketPacket { diff --git a/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs b/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs index e86996eb..1bc142b4 100644 --- a/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs +++ b/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs @@ -1,7 +1,8 @@ -using FFXIVClassic_Map_Server.packets; + using System.Collections.Generic; using FFXIVClassic_Map_Server.packets.send.actor; using FFXIVClassic_Map_Server.Actors; +using FFXIVClassic.Common; namespace FFXIVClassic_Map_Server.utils { diff --git a/FFXIVClassic Proxy Server/App.config b/FFXIVClassic Proxy Server/App.config new file mode 100644 index 00000000..78cae18f --- /dev/null +++ b/FFXIVClassic Proxy Server/App.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic Proxy Server/ConfigConstants.cs b/FFXIVClassic Proxy Server/ConfigConstants.cs new file mode 100644 index 00000000..ff39412a --- /dev/null +++ b/FFXIVClassic Proxy Server/ConfigConstants.cs @@ -0,0 +1,44 @@ +using FFXIVClassic.Common; +using System; +using System.IO; + +namespace FFXIVClassic_World_Server +{ + class ConfigConstants + { + public static String OPTIONS_BINDIP; + public static String OPTIONS_PORT; + public static bool OPTIONS_TIMESTAMP = false; + + public static String DATABASE_HOST; + public static String DATABASE_PORT; + public static String DATABASE_NAME; + public static String DATABASE_USERNAME; + public static String DATABASE_PASSWORD; + + public static bool Load() + { + Program.Log.Info("Loading config.ini"); + + if (!File.Exists("./config.ini")) + { + Program.Log.Error("FILE NOT FOUND!"); + return false; + } + + INIFile configIni = new INIFile("./config.ini"); + + ConfigConstants.OPTIONS_BINDIP = configIni.GetValue("General", "server_ip", "127.0.0.1"); + ConfigConstants.OPTIONS_PORT = configIni.GetValue("General", "server_port", "54994"); + ConfigConstants.OPTIONS_TIMESTAMP = configIni.GetValue("General", "showtimestamp", "true").ToLower().Equals("true"); + + ConfigConstants.DATABASE_HOST = configIni.GetValue("Database", "host", ""); + ConfigConstants.DATABASE_PORT = configIni.GetValue("Database", "port", ""); + ConfigConstants.DATABASE_NAME = configIni.GetValue("Database", "database", ""); + ConfigConstants.DATABASE_USERNAME = configIni.GetValue("Database", "username", ""); + ConfigConstants.DATABASE_PASSWORD = configIni.GetValue("Database", "password", ""); + + return true; + } + } +} diff --git a/FFXIVClassic Proxy Server/DataObjects/ClientConnection.cs b/FFXIVClassic Proxy Server/DataObjects/ClientConnection.cs new file mode 100644 index 00000000..163c079e --- /dev/null +++ b/FFXIVClassic Proxy Server/DataObjects/ClientConnection.cs @@ -0,0 +1,67 @@ +using System; +using System.Net.Sockets; +using System.Collections.Concurrent; +using System.Net; +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; + +namespace FFXIVClassic_World_Server +{ + class ClientConnection + { + //Connection stuff + public Socket socket; + public byte[] buffer; + private BlockingCollection SendPacketQueue = new BlockingCollection(1000); + public int lastPartialSize = 0; + + //Instance Stuff + public Session owner; + + public void QueuePacket(BasePacket packet) + { + SendPacketQueue.Add(packet); + } + + public void QueuePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted) + { + SendPacketQueue.Add(BasePacket.CreatePacket(subpacket, isAuthed, isEncrypted)); + } + + public void FlushQueuedSendPackets() + { + if (!socket.Connected) + return; + + while (SendPacketQueue.Count > 0) + { + BasePacket packet = SendPacketQueue.Take(); + + byte[] packetBytes = packet.GetPacketBytes(); + + try + { + socket.Send(packetBytes); + } + catch (Exception e) + { Program.Log.Error("Weird case, socket was d/ced: {0}", e); } + } + } + + public String GetAddress() + { + return String.Format("{0}:{1}", (socket.RemoteEndPoint as IPEndPoint).Address, (socket.RemoteEndPoint as IPEndPoint).Port); + } + + public bool IsConnected() + { + return (socket.Poll(1, SelectMode.SelectRead) && socket.Available == 0); + } + + public void Disconnect() + { + if (socket.Connected) + socket.Disconnect(false); + } + } +} diff --git a/FFXIVClassic Proxy Server/DataObjects/Session.cs b/FFXIVClassic Proxy Server/DataObjects/Session.cs new file mode 100644 index 00000000..80e9011c --- /dev/null +++ b/FFXIVClassic Proxy Server/DataObjects/Session.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.DataObjects +{ + class Session + { + public enum Channel {ZONE, CHAT}; + + public readonly ulong sessionId; + public readonly ClientConnection clientSocket; + public readonly Channel type; + public ZoneServer routing1, routing2; + + public Session(ulong sessionId, ClientConnection socket, Channel type) + { + this.sessionId = sessionId; + this.clientSocket = socket; + this.type = type; + } + + } +} diff --git a/FFXIVClassic Proxy Server/DataObjects/ZoneServer.cs b/FFXIVClassic Proxy Server/DataObjects/ZoneServer.cs new file mode 100644 index 00000000..2f7943e0 --- /dev/null +++ b/FFXIVClassic Proxy Server/DataObjects/ZoneServer.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.DataObjects +{ + class ZoneServer + { + public string zoneServerIp; + public int zoneServerPort; + public Socket zoneServerConnection; + } +} diff --git a/FFXIVClassic Proxy Server/FFXIVClassic World Server.csproj b/FFXIVClassic Proxy Server/FFXIVClassic World Server.csproj new file mode 100644 index 00000000..f05479d2 --- /dev/null +++ b/FFXIVClassic Proxy Server/FFXIVClassic World Server.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26} + Exe + Properties + FFXIVClassic_World_Server + FFXIVClassic World Server + v4.5.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll + True + + + ..\packages\Dapper.1.42\lib\net45\Dapper.dll + True + + + ..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll + True + + + ..\packages\NLog.4.3.5\lib\net45\NLog.dll + True + + + + + + + + + + + + + + + + + + + + + + + Always + + + Designer + + + + + + {3a3d6626-c820-4c18-8c81-64811424f20e} + FFXIVClassic Common Class Lib + + + + + \ No newline at end of file diff --git a/FFXIVClassic Proxy Server/NLog.config b/FFXIVClassic Proxy Server/NLog.config new file mode 100644 index 00000000..917f8554 --- /dev/null +++ b/FFXIVClassic Proxy Server/NLog.config @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic Proxy Server/NLog.xsd b/FFXIVClassic Proxy Server/NLog.xsd new file mode 100644 index 00000000..31cd6c0a --- /dev/null +++ b/FFXIVClassic Proxy Server/NLog.xsd @@ -0,0 +1,2601 @@ + + + + + + + + + + + + + + + Watch config file for changes and reload automatically. + + + + + Print internal NLog messages to the console. Default value is: false + + + + + Print internal NLog messages to the console error output. Default value is: false + + + + + Write internal NLog messages to the specified file. + + + + + Log level threshold for internal log messages. Default value is: Info. + + + + + Global log level threshold for application log messages. Messages below this level won't be logged.. + + + + + Pass NLog internal exceptions to the application. Default value is: false. + + + + + Write internal NLog messages to the the System.Diagnostics.Trace. Default value is: false + + + + + + + + + + + + + + Make all targets within this section asynchronous (Creates additional threads but the calling thread isn't blocked by any target writes). + + + + + + + + + + + + + + + + + Prefix for targets/layout renderers/filters/conditions loaded from this assembly. + + + + + Load NLog extensions from the specified file (*.dll) + + + + + Load NLog extensions from the specified assembly. Assembly name should be fully qualified. + + + + + + + + + + Name of the logger. May include '*' character which acts like a wildcard. Allowed forms are: *, Name, *Name, Name* and *Name* + + + + + Comma separated list of levels that this rule matches. + + + + + Minimum level that this rule matches. + + + + + Maximum level that this rule matches. + + + + + Level that this rule matches. + + + + + Comma separated list of target names. + + + + + Ignore further rules if this one matches. + + + + + Enable or disable logging rule. Disabled rules are ignored. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the file to be included. The name is relative to the name of the current config file. + + + + + Ignore any errors in the include file. + + + + + + + Variable name. + + + + + Variable value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Indicates whether to add <!-- --> comments around all written texts. + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events that should be processed in a batch by the lazy writer thread. + + + + + Action to be taken when the lazy writer thread request queue count exceeds the set limit. + + + + + Limit on the number of requests in the lazy writer thread request queue. + + + + + Time in milliseconds to sleep between batches. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events to be buffered. + + + + + Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + Indicates whether to use sliding timeout. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Maximum current connections. 0 = no maximum. + + + + + Network address. + + + + + Maximum queue size. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + NDC item separator. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include dictionary contents. + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Viewer parameter name. + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to use default row highlighting rules. + + + + + The encoding for writing messages to the . + + + + + Indicates whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Condition that must be met in order to set the specified foreground and background color. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + Indicates whether to ignore case when comparing texts. + + + + + Regular expression to be matched. You must specify either text or regex. + + + + + Text to be matched. You must specify either text or regex. + + + + + Indicates whether to match whole words only. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to send the log messages to the standard error instead of the standard output. + + + + + The encoding for writing messages to the . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + Name of the connection string (as specified in <connectionStrings> configuration section. + + + + + Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string. + + + + + Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string. + + + + + Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string. + + + + + Name of the database provider. + + + + + Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string. + + + + + Indicates whether to keep the database connection open between the log events. + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. + + + + + Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + Text of the SQL command to be run on each log level. + + + + + Type of the SQL command to be run on each log level. + + + + + + + + + + + + + + + + + + + + + + + Type of the command. + + + + + Connection string to run the command against. If not provided, connection string from the target is used. + + + + + Indicates whether to ignore failures. + + + + + Command text. + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Database parameter name. + + + + + Database parameter precision. + + + + + Database parameter scale. + + + + + Database parameter size. + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Layout that renders event Category. + + + + + Layout that renders event ID. + + + + + Name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + Name of the machine on which Event Log service is running. + + + + + Value to be used as the event Source. + + + + + Action to take if the message is larger than the option. + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + Message length limit to write to the Event Log. + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether to return to the first target after any successful write. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + File encoding. + + + + + Line ending mode. + + + + + Way file archives are numbered. + + + + + Name of the file to be used for an archive. + + + + + Indicates whether to automatically archive log files every time the specified time passes. + + + + + Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot Create multiple archive files, if they should have the same name. Choose: + + + + + Maximum number of archive files that should be kept. + + + + + Indicates whether to compress archive files into the zip archive format. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation. + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing Gets written when the filename is wrong. + + + + + Name of the file to write to. + + + + + Value specifying the date format to use when archiving files. + + + + + Indicates whether to archive old log file on startup. + + + + + Indicates whether to Create directories if they Do not exist. + + + + + Indicates whether to enable log file(s) to be deleted. + + + + + File attributes (Windows only). + + + + + Indicates whether to delete old log file on startup. + + + + + Indicates whether to replace file contents on each write instead of appending log message at the end. + + + + + Indicates whether concurrent writes to the log file by multiple processes on the same host. + + + + + Delay in milliseconds to wait before attempting to write to the file again. + + + + + Maximum number of log filenames that should be stored as existing. + + + + + Indicates whether concurrent writes to the log file by multiple processes on different network hosts. + + + + + Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). + + + + + Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. + + + + + Log file buffer size in bytes. + + + + + Indicates whether to automatically flush the file buffers after each log message. + + + + + Number of times the write is appended on the file before NLog discards the log message. + + + + + Indicates whether to keep log file open instead of opening and closing it on each logging event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Condition expression. Log events who meet this condition will be forwarded to the wrapped target. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Windows Domain name to change context to. + + + + + Required impersonation level. + + + + + Type of the logon provider. + + + + + Logon Type. + + + + + User account password. + + + + + Indicates whether to revert to the credentials of the process instead of impersonating another user. + + + + + Username to change context to. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Endpoint address. + + + + + Name of the endpoint configuration in WCF configuration file. + + + + + Indicates whether to use a WCF service contract that is one way (fire and forGet) or two way (request-reply) + + + + + Client ID. + + + + + Indicates whether to include per-event properties in the payload sent to the server. + + + + + Indicates whether to use binary message encoding. + + + + + + + + + + + + + + Layout that should be use to calculate the value for the parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to send message as HTML instead of plain text. + + + + + Encoding to be used for sending e-mail. + + + + + Indicates whether to add new lines between log entries. + + + + + CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Mail message body (repeated for each log message send in one mail). + + + + + Mail subject. + + + + + Sender's email address (e.g. joe@domain.com). + + + + + Indicates whether NewLine characters in the body should be replaced with tags. + + + + + Priority used for sending mails. + + + + + Indicates the SMTP client timeout. + + + + + SMTP Server to be used for sending. + + + + + SMTP Authentication mode. + + + + + Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + + + + Port number that SMTP Server is listening on. + + + + + Indicates whether the default Settings from System.Net.MailSettings should be used. + + + + + Folder where applications save mail messages to be processed by the local SMTP server. + + + + + Specifies how outgoing email messages will be handled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Encoding to be used when writing text to the queue. + + + + + Indicates whether to use the XML format when serializing message. This will also disable creating queues. + + + + + Indicates whether to check if a queue exists before writing to it. + + + + + Indicates whether to Create the queue if it Doesn't exists. + + + + + Label to associate with each message. + + + + + Name of the queue to write to. + + + + + Indicates whether to use recoverable messages (with guaranteed delivery). + + + + + + + + + + + + + + + + + Name of the target. + + + + + Class name. + + + + + Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Encoding to be used. + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Network address. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Indicates whether to keep connection open whenever possible. + + + + + Maximum current connections. 0 = no maximum. + + + + + Maximum queue size. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Maximum current connections. 0 = no maximum. + + + + + Network address. + + + + + Maximum queue size. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + NDC item separator. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include dictionary contents. + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Indicates whether to perform layout calculation. + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether performance counter should be automatically Created. + + + + + Name of the performance counter category. + + + + + Counter help text. + + + + + Name of the performance counter. + + + + + Performance counter type. + + + + + The value by which to increment the counter. + + + + + Performance counter instance name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Default filter to be applied when no specific rule matches. + + + + + + + + + + + + + Condition to be tested. + + + + + Resulting filter to be applied when the condition matches. + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + + Name of the target. + + + + + Number of times to repeat each log message. + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of retries that should be attempted on the wrapped target in case of a failure. + + + + + Time to wait between retries in milliseconds. + + + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. This will only work for UTF-8. + + + + + Encoding. + + + + + Web service method name. Only used with Soap. + + + + + Web service namespace. Only used with Soap. + + + + + Protocol to be used when calling web service. + + + + + Web service URL. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + Custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + Column delimiter. + + + + + Quote Character. + + + + + Quoting mode. + + + + + Indicates whether CVS should include header. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout of the column. + + + + + Name of the column. + + + + + + + + + + + + + Option to suppress the extra spaces in the output json + + + + + + + + + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + Layout that will be rendered as the attribute's value. + + + + + Name of the attribute. + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + + + + + + + + + + + + + + + + + Layout text. + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Condition expression. + + + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic Proxy Server/Program.cs b/FFXIVClassic Proxy Server/Program.cs new file mode 100644 index 00000000..dfb02c88 --- /dev/null +++ b/FFXIVClassic Proxy Server/Program.cs @@ -0,0 +1,72 @@ +using MySql.Data.MySqlClient; +using NLog; +using NLog.Fluent; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server +{ + class Program + { + public static Logger Log; + + static void Main(string[] args) + { + // set up logging + Log = LogManager.GetCurrentClassLogger(); +#if DEBUG + TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); + Debug.Listeners.Add(myWriter); +#endif + bool startServer = true; + + Log.Info("=================================="); + Log.Info("FFXIV Classic World Server"); + Log.Info("Version: 0.0.1"); + Log.Info("=================================="); + + //Load Config + if (!ConfigConstants.Load()) + startServer = false; + + //Test DB Connection + Log.Info("Testing DB connection... "); + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + conn.Close(); + + Log.Info("Connection ok."); + } + catch (MySqlException e) + { + Log.Error(e.ToString()); + startServer = false; + } + } + + //Start server if A-OK + if (startServer) + { + Server server = new Server(); + server.StartServer(); + + while (startServer) + { + String input = Console.ReadLine(); + Log.Info("[Console Input] " + input); + //cp.DoCommand(input, null); + } + } + + Program.Log.Info("Press any key to continue..."); + Console.ReadKey(); + } + } +} diff --git a/FFXIVClassic Proxy Server/Properties/AssemblyInfo.cs b/FFXIVClassic Proxy Server/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..2bb7a8a3 --- /dev/null +++ b/FFXIVClassic Proxy Server/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("FFXIVClassic Proxy Server")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("FFXIVClassic Proxy Server")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3067889d-8a50-40d6-9cd5-23aa8ea96f26")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/FFXIVClassic Proxy Server/Server.cs b/FFXIVClassic Proxy Server/Server.cs new file mode 100644 index 00000000..011f5015 --- /dev/null +++ b/FFXIVClassic Proxy Server/Server.cs @@ -0,0 +1,241 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; + +namespace FFXIVClassic_World_Server +{ + class Server + { + public const int FFXIV_MAP_PORT = 54992; + public const int BUFFER_SIZE = 0xFFFF; //Max basepacket size is 0xFFFF + public const int BACKLOG = 100; + public const int HEALTH_THREAD_SLEEP_TIME = 5; + + private static Server mSelf; + + private Socket mServerSocket; + + private List mConnectionList = new List(); + private Dictionary mSessionList = new Dictionary(); + + public Server() + { + mSelf = this; + } + + public static Server GetServer() + { + return mSelf; + } + + public bool StartServer() + { + + IPEndPoint serverEndPoint = new System.Net.IPEndPoint(IPAddress.Parse(ConfigConstants.OPTIONS_BINDIP), int.Parse(ConfigConstants.OPTIONS_PORT)); + + try + { + mServerSocket = new System.Net.Sockets.Socket(serverEndPoint.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); + } + catch (Exception e) + { + throw new ApplicationException("Could not Create socket, check to make sure not duplicating port", e); + } + try + { + mServerSocket.Bind(serverEndPoint); + mServerSocket.Listen(BACKLOG); + } + catch (Exception e) + { + throw new ApplicationException("Error occured while binding socket, check inner exception", e); + } + try + { + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + catch (Exception e) + { + throw new ApplicationException("Error occured starting listeners, check inner exception", e); + } + + Console.ForegroundColor = ConsoleColor.White; + Program.Log.Info("Map Server has started @ {0}:{1}", (mServerSocket.LocalEndPoint as IPEndPoint).Address, (mServerSocket.LocalEndPoint as IPEndPoint).Port); + Console.ForegroundColor = ConsoleColor.Gray; + + return true; + } + + #region Socket Handling + private void AcceptCallback(IAsyncResult result) + { + ClientConnection conn = null; + Socket socket = (System.Net.Sockets.Socket)result.AsyncState; + + try + { + conn = new ClientConnection(); + conn.socket = socket.EndAccept(result); + conn.buffer = new byte[BUFFER_SIZE]; + + lock (mConnectionList) + { + mConnectionList.Add(conn); + } + + Program.Log.Info("Connection {0}:{1} has connected.", (conn.socket.RemoteEndPoint as IPEndPoint).Address, (conn.socket.RemoteEndPoint as IPEndPoint).Port); + //Queue recieving of data from the connection + conn.socket.BeginReceive(conn.buffer, 0, conn.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), conn); + //Queue the accept of the next incomming connection + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + catch (SocketException) + { + if (conn != null) + { + + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + catch (Exception) + { + if (conn != null) + { + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + } + + /// + /// Receive Callback. Reads in incoming data, converting them to base packets. Base packets are sent to be parsed. If not enough data at the end to build a basepacket, move to the beginning and prepend. + /// + /// + private void ReceiveCallback(IAsyncResult result) + { + ClientConnection conn = (ClientConnection)result.AsyncState; + + //Check if disconnected + if ((conn.socket.Poll(1, SelectMode.SelectRead) && conn.socket.Available == 0)) + { + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + + return; + } + + try + { + int bytesRead = conn.socket.EndReceive(result); + + bytesRead += conn.lastPartialSize; + + if (bytesRead >= 0) + { + int offset = 0; + + //Build packets until can no longer or out of data + while (true) + { + BasePacket basePacket = BuildPacket(ref offset, conn.buffer, bytesRead); + + //If can't build packet, break, else process another + if (basePacket == null) + break; + else + { + //mProcessor.ProcessPacket(conn, basePacket); + } + + } + + //Not all bytes consumed, transfer leftover to beginning + if (offset < bytesRead) + Array.Copy(conn.buffer, offset, conn.buffer, 0, bytesRead - offset); + + conn.lastPartialSize = bytesRead - offset; + + //Build any queued subpackets into basepackets and send + conn.FlushQueuedSendPackets(); + + if (offset < bytesRead) + //Need offset since not all bytes consumed + conn.socket.BeginReceive(conn.buffer, bytesRead - offset, conn.buffer.Length - (bytesRead - offset), SocketFlags.None, new AsyncCallback(ReceiveCallback), conn); + else + //All bytes consumed, full buffer available + conn.socket.BeginReceive(conn.buffer, 0, conn.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), conn); + } + else + { + + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + } + catch (SocketException) + { + if (conn.socket != null) + { + + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + } + } + + /// + /// Builds a packet from the incoming buffer + offset. If a packet can be built, it is returned else null. + /// + /// Current offset in buffer. + /// Incoming buffer. + /// Returns either a BasePacket or null if not enough data. + public BasePacket BuildPacket(ref int offset, byte[] buffer, int bytesRead) + { + BasePacket newPacket = null; + + //Too small to even get length + if (bytesRead <= offset) + return null; + + ushort packetSize = BitConverter.ToUInt16(buffer, offset); + + //Too small to whole packet + if (bytesRead < offset + packetSize) + return null; + + if (buffer.Length < offset + packetSize) + return null; + + try + { + newPacket = new BasePacket(buffer, ref offset); + } + catch (OverflowException) + { + return null; + } + + return newPacket; + } + + #endregion + + + } +} diff --git a/FFXIVClassic Proxy Server/packages.config b/FFXIVClassic Proxy Server/packages.config new file mode 100644 index 00000000..e99b9209 --- /dev/null +++ b/FFXIVClassic Proxy Server/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic.sln b/FFXIVClassic.sln index 5cb0528a..9c2838fe 100644 --- a/FFXIVClassic.sln +++ b/FFXIVClassic.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 +VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic Map Server", "FFXIVClassic Map Server\FFXIVClassic Map Server.csproj", "{E8FA2784-D4B9-4711-8CC6-712A4B1CD54F}" ProjectSection(ProjectDependencies) = postProject @@ -15,6 +15,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic Lobby Server", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic Common Class Lib", "FFXIVClassic Common Class Lib\FFXIVClassic Common Class Lib.csproj", "{3A3D6626-C820-4C18-8C81-64811424F20E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic World Server", "FFXIVClassic Proxy Server\FFXIVClassic World Server.csproj", "{3067889D-8A50-40D6-9CD5-23AA8EA96F26}" + ProjectSection(ProjectDependencies) = postProject + {3A3D6626-C820-4C18-8C81-64811424F20E} = {3A3D6626-C820-4C18-8C81-64811424F20E} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +38,10 @@ Global {3A3D6626-C820-4C18-8C81-64811424F20E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3A3D6626-C820-4C18-8C81-64811424F20E}.Release|Any CPU.ActiveCfg = Release|Any CPU {3A3D6626-C820-4C18-8C81-64811424F20E}.Release|Any CPU.Build.0 = Release|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE