From 788e82423de289f5b45d663b5262ba4f886d8fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Sat, 1 Jan 2022 13:40:41 +0100 Subject: [PATCH] feat: enable inline converters in all packets --- Core/NosSmooth.Packets/Enums/Chat/MessageType.cs | 2 +- .../Extensions/ServiceCollectionExtensions.cs | 7 +++++-- .../Packets/Client/Battle/NcifPacket.cs | 2 +- .../Packets/Client/Battle/UseAOESkillPacket.cs | 2 +- .../Packets/Client/Battle/UseSkillPacket.cs | 2 +- .../Packets/Client/Misc/PulsePacket.cs | 2 +- .../Packets/Client/Movement/WalkPacket.cs | 2 +- .../Packets/Server/Act4/FcPacket.cs | 2 +- .../Packets/Server/Act4/FcSubPacket.cs | 2 +- .../Packets/Server/Chat/MsgPacket.cs | 2 +- .../Packets/Server/Chat/SayPacket.cs | 2 +- .../Packets/Server/Entities/InEquipmentSubPacket.cs | 3 ++- .../Packets/Server/Entities/InItemSubPacket.cs | 2 +- .../Packets/Server/Entities/InNonPlayerSubPacket.cs | 2 +- .../Packets/Server/Entities/InPacket.cs | 2 +- .../Packets/Server/Entities/InPlayerSubPacket.cs | 2 +- .../Packets/Server/Entities/MovePacket.cs | 2 +- .../Packets/Server/Entities/StPacket.cs | 2 +- .../Packets/Server/Entities/StatPacket.cs | 2 +- .../Packets/Server/Groups/PinitPacket.cs | 2 +- .../Packets/Server/Groups/PinitSubPacket.cs | 2 +- .../Packets/Server/Maps/CMapPacket.cs | 2 +- .../Packets/Server/Players/CInfoPacket.cs | 13 +++++++++++++ .../Packets/Server/Players/CModePacket.cs | 2 +- .../Packets/Server/Players/FamilySubPacket.cs | 3 ++- .../Packets/Server/Players/LevPacket.cs | 2 +- .../Packets/Server/Skills/SkiPacket.cs | 2 +- .../Packets/Server/Skills/SkiSubPacket.cs | 2 +- .../Packets/Server/Skills/SrPacket.cs | 8 ++++++-- 29 files changed, 52 insertions(+), 30 deletions(-) create mode 100644 Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs diff --git a/Core/NosSmooth.Packets/Enums/Chat/MessageType.cs b/Core/NosSmooth.Packets/Enums/Chat/MessageType.cs index ee353fc..bdf62bf 100644 --- a/Core/NosSmooth.Packets/Enums/Chat/MessageType.cs +++ b/Core/NosSmooth.Packets/Enums/Chat/MessageType.cs @@ -1,5 +1,5 @@ // -// Message.cs +// MessageType.cs // // Copyright (c) František Boháček. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. diff --git a/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs b/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs index 27181c0..5896de7 100644 --- a/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs +++ b/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs @@ -11,8 +11,10 @@ using Microsoft.Extensions.DependencyInjection; using NosSmooth.Packets.Converters; using NosSmooth.Packets.Converters.Basic; using NosSmooth.Packets.Converters.Common; +using NosSmooth.Packets.Converters.Packets; using NosSmooth.Packets.Converters.Special; using NosSmooth.Packets.Packets; +using NosSmooth.Packets.Packets.Server.Weapons; namespace NosSmooth.Packets.Extensions; @@ -47,7 +49,7 @@ public static class ServiceCollectionExtensions if (!result.IsSuccess) { // TODO: figure out how to handle this. - throw new Exception(result.Error.Message); + throw new Exception(packetType + ": " + result.Error.Message); } } @@ -100,7 +102,8 @@ public static class ServiceCollectionExtensions .AddTypeConverter() .AddTypeConverter() .AddTypeConverter() - .AddTypeConverter(); + .AddTypeConverter() + .AddTypeConverter(); } /// diff --git a/Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs b/Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs index 0fefa82..0d543dd 100644 --- a/Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs @@ -18,7 +18,7 @@ namespace NosSmooth.Packets.Packets.Client.Battle; /// The type of the focused entity. /// The focused entity id. [PacketHeader("ncif", PacketSource.Client)] -[GenerateSerializer] +[GenerateSerializer(true)] public record NcifPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs b/Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs index 294caad..7dbb13e 100644 --- a/Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs @@ -15,7 +15,7 @@ namespace NosSmooth.Packets.Packets.Client.Battle; /// The x coordinate where to target to. /// The y coordinate where to targe to. [PacketHeader("u_as", PacketSource.Client)] -[GenerateSerializer] +[GenerateSerializer(true)] public record UseAOESkillPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs b/Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs index 1160ee6..e3cb23a 100644 --- a/Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs @@ -16,7 +16,7 @@ namespace NosSmooth.Packets.Packets.Client.Battle; /// Contains the position etc. for dashes. /// [PacketHeader("u_s", PacketSource.Client)] -[GenerateSerializer] +[GenerateSerializer(true)] public record UseSkillPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs b/Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs index 112578e..1f36ef9 100644 --- a/Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs +++ b/Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs @@ -16,7 +16,7 @@ namespace NosSmooth.Packets.Packets.Client.Misc; /// /// The number of seconds till connected. (should be sent only as multiples of 60) /// Unknown TODO -[GenerateSerializer] +[GenerateSerializer(true)] [PacketHeader("pulse", PacketSource.Client)] public record PulsePacket ( diff --git a/Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs b/Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs index 4b2b174..0d17a08 100644 --- a/Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs @@ -23,7 +23,7 @@ namespace NosSmooth.Packets.Packets.Client.Movement; /// The check sum. Has value: (walkPacket.PositionX + walkPacket.PositionY) % 3 % 2. /// The movement speed. [PacketHeader("walk", PacketSource.Client)] -[GenerateSerializer] +[GenerateSerializer(true)] public record WalkPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs index 148fbad..6ead6f0 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs @@ -24,7 +24,7 @@ namespace NosSmooth.Packets.Packets.Server.Act4; /// The status of angel faction, see . /// The status of demon faction, see . [PacketHeader("fc", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record FcPacket( [PacketIndex(0)] FactionType Faction, diff --git a/Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs index 4e30522..943e7f8 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs @@ -22,7 +22,7 @@ namespace NosSmooth.Packets.Packets.Server.Act4; /// Whether the current raid is Calvina. /// Whether the current raid is Berios. /// Unknown value, seems to be always 0. -[GenerateSerializer] +[GenerateSerializer(true)] [PacketHeader(null, PacketSource.Server)] public record FcSubPacket ( diff --git a/Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs index ee398e3..1e27650 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs @@ -15,7 +15,7 @@ namespace NosSmooth.Packets.Packets.Server.Chat; /// The type of the message. /// The message text. [PacketHeader("msg", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record MsgPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs index 47809f8..aa00e68 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs @@ -18,7 +18,7 @@ namespace NosSmooth.Packets.Packets.Server.Chat; /// The color of the message in chat. /// The message received. [PacketHeader("say", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record SayPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs index dc70e2f..0203d72 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs @@ -23,7 +23,8 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// The VNum of the costume hat. /// The skin of the weapon. /// The skin of the wings. -[GenerateSerializer] +[PacketHeader(null, PacketSource.Server)] +[GenerateSerializer(true)] public record InEquipmentSubPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs index 8a33fdb..fb50954 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs @@ -16,7 +16,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// Whether the item is needed for a quest. /// The id of the owner of the item. [PacketHeader(null, PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record InItemSubPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs index 22b0a5a..c2b7c43 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs @@ -38,7 +38,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// Unknown. /// Unknown. [PacketHeader(null, PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record InNonPlayerSubPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs index ccbd5f1..e6c8906 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs @@ -25,7 +25,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// The item data sub packet present only for objects. /// The non player data sub packet present only for npcs and monsters. [PacketHeader("in", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record InPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs index 14f9d01..f51f850 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs @@ -14,7 +14,7 @@ using NosSmooth.Packets.Packets.Server.Weapons; namespace NosSmooth.Packets.Packets.Server.Entities; [PacketHeader(null, PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record InPlayerSubPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs index 5802c80..be5f84f 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs @@ -18,7 +18,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// The y coordinate the entity has moved to. /// The speed of the entity. [PacketHeader("mv", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record MovePacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs index 467d216..db716bf 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs @@ -22,7 +22,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// The current amount of hp. /// The current amount of mp. [PacketHeader("st", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record StPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs index f1ec43f..8821010 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs @@ -18,7 +18,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities; /// Unknown TODO. /// Contains blockages (family block, exchange block etc). TODO add correct options. [PacketHeader("stat", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record StatPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs index fbe8325..5332578 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs @@ -17,7 +17,7 @@ namespace NosSmooth.Packets.Packets.Server.Groups; /// /// The size of the group. /// The members of the group. (including pet and partner, if any) -[GenerateSerializer] +[GenerateSerializer(true)] [PacketHeader("pinit", PacketSource.Server)] public record PinitPacket ( diff --git a/Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs index 381f010..bc9381d 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs @@ -26,7 +26,7 @@ namespace NosSmooth.Packets.Packets.Server.Groups; /// The hero level of the entity. /// Unknown. /// Unknown. -[GenerateSerializer] +[GenerateSerializer(true)] [PacketHeader(null, PacketSource.Server)] public record PinitSubPacket ( diff --git a/Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs index 0058692..20cb0b2 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs @@ -15,7 +15,7 @@ namespace NosSmooth.Packets.Packets.Server.Maps; /// The id of the map. /// Whether the map is a base map. [PacketHeader("c_map", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record CMapPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs new file mode 100644 index 0000000..b435729 --- /dev/null +++ b/Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs @@ -0,0 +1,13 @@ +// +// CInfoPacket.cs +// +// Copyright (c) František Boháček. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using NosSmooth.Packets.Attributes; + +namespace NosSmooth.Packets.Packets.Server.Players; + +// [PacketHeader()] +// [GenerateSerializer(true)] +public record CInfoPacket(); \ No newline at end of file diff --git a/Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs b/Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs index 313277e..990e9ff 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs @@ -21,7 +21,7 @@ namespace NosSmooth.Packets.Packets.Server.Players; /// The size of the entity on the screen. /// Unknown TODO [PacketHeader("c_mode", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record CModePacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs index 2a61c94..8dd1996 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs @@ -14,7 +14,8 @@ namespace NosSmooth.Packets.Packets.Server.Players; /// The id of the family. /// The title of the family. /// The name of the family. -[GenerateSerializer] +[GenerateSerializer(true)] +[PacketHeader(null, PacketSource.Server)] public record FamilySubPacket ( [PacketIndex(0, AfterSeparator = '.')] diff --git a/Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs index 268b36a..2964c07 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs @@ -26,7 +26,7 @@ namespace NosSmooth.Packets.Packets.Server.Players; /// The hero level. (shown as (+xx)) /// Unknown TODO [PacketHeader("lev", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record LevPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs index e867b1f..b92631d 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs @@ -17,7 +17,7 @@ namespace NosSmooth.Packets.Packets.Server.Skills; /// The secondary skill id. (may be same as primary in some cases, like for special cards). /// The rest of the skills. [PacketHeader("ski", PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record SkiPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs index 6e08c6f..6685a22 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs @@ -14,7 +14,7 @@ namespace NosSmooth.Packets.Packets.Server.Skills; /// The id of the skill. /// The rank of the skill. [PacketHeader(null, PacketSource.Server)] -[GenerateSerializer] +[GenerateSerializer(true)] public record SkiSubPacket ( [PacketIndex(0)] diff --git a/Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs b/Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs index f14fa71..9f67a6f 100644 --- a/Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs +++ b/Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs @@ -19,5 +19,9 @@ namespace NosSmooth.Packets.Packets.Server.Skills; /// /// The id of the skill that is resetted. [PacketHeader("sr", PacketSource.Server)] -[GenerateSerializer] -public record SrPacket(long SkillId) : IPacket; \ No newline at end of file +[GenerateSerializer(true)] +public record SrPacket +( + [PacketIndex(0)] + long SkillId +) : IPacket; \ No newline at end of file -- 2.49.0