M Core/NosSmooth.Packets/Enums/Chat/MessageType.cs => Core/NosSmooth.Packets/Enums/Chat/MessageType.cs +1 -1
@@ 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.
M Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs => Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs +5 -2
@@ 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<LongTypeConverter>()
.AddTypeConverter<StringTypeConverter>()
.AddTypeConverter<NameStringConverter>()
- .AddTypeConverter<CharTypeConverter>();
+ .AddTypeConverter<CharTypeConverter>()
+ .AddTypeConverter<UpgradeRareSubPacketConverter>();
}
/// <summary>
M Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs => Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs +1 -1
@@ 18,7 18,7 @@ namespace NosSmooth.Packets.Packets.Client.Battle;
/// <param name="EntityType">The type of the focused entity.</param>
/// <param name="TargetId">The focused entity id.</param>
[PacketHeader("ncif", PacketSource.Client)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record NcifPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs => Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs +1 -1
@@ 15,7 15,7 @@ namespace NosSmooth.Packets.Packets.Client.Battle;
/// <param name="PositionX">The x coordinate where to target to.</param>
/// <param name="PositionY">The y coordinate where to targe to.</param>
[PacketHeader("u_as", PacketSource.Client)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record UseAOESkillPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs => Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs +1 -1
@@ 16,7 16,7 @@ namespace NosSmooth.Packets.Packets.Client.Battle;
/// Contains the position etc. for dashes.
/// </remarks>
[PacketHeader("u_s", PacketSource.Client)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record UseSkillPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs => Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs +1 -1
@@ 16,7 16,7 @@ namespace NosSmooth.Packets.Packets.Client.Misc;
/// </remarks>
/// <param name="Seconds">The number of seconds till connected. (should be sent only as multiples of 60)</param>
/// <param name="Unknown">Unknown TODO</param>
-[GenerateSerializer]
+[GenerateSerializer(true)]
[PacketHeader("pulse", PacketSource.Client)]
public record PulsePacket
(
M Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs => Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs +1 -1
@@ 23,7 23,7 @@ namespace NosSmooth.Packets.Packets.Client.Movement;
/// <param name="CheckSum">The check sum. Has value: (walkPacket.PositionX + walkPacket.PositionY) % 3 % 2. </param>
/// <param name="Speed">The movement speed.</param>
[PacketHeader("walk", PacketSource.Client)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record WalkPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs => Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs +1 -1
@@ 24,7 24,7 @@ namespace NosSmooth.Packets.Packets.Server.Act4;
/// <param name="AngelState">The status of angel faction, see <see cref="FcSubPacket"/>.</param>
/// <param name="DemonState">The status of demon faction, see <see cref="FcSubPacket"/>.</param>
[PacketHeader("fc", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record FcPacket(
[PacketIndex(0)]
FactionType Faction,
M Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs +1 -1
@@ 22,7 22,7 @@ namespace NosSmooth.Packets.Packets.Server.Act4;
/// <param name="IsCalvina">Whether the current raid is Calvina.</param>
/// <param name="IsBerios">Whether the current raid is Berios.</param>
/// <param name="Unknown">Unknown value, seems to be always 0.</param>
-[GenerateSerializer]
+[GenerateSerializer(true)]
[PacketHeader(null, PacketSource.Server)]
public record FcSubPacket
(
M Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs => Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs +1 -1
@@ 15,7 15,7 @@ namespace NosSmooth.Packets.Packets.Server.Chat;
/// <param name="Type">The type of the message.</param>
/// <param name="Message">The message text.</param>
[PacketHeader("msg", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record MsgPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs => Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs +1 -1
@@ 18,7 18,7 @@ namespace NosSmooth.Packets.Packets.Server.Chat;
/// <param name="Color">The color of the message in chat.</param>
/// <param name="Message">The message received.</param>
[PacketHeader("say", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record SayPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs +2 -1
@@ 23,7 23,8 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="CostumeHatVNum">The VNum of the costume hat.</param>
/// <param name="WeaponSkin">The skin of the weapon.</param>
/// <param name="WingSkin">The skin of the wings.</param>
-[GenerateSerializer]
+[PacketHeader(null, PacketSource.Server)]
+[GenerateSerializer(true)]
public record InEquipmentSubPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs +1 -1
@@ 16,7 16,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="IsQuestRelative">Whether the item is needed for a quest.</param>
/// <param name="OwnerId">The id of the owner of the item.</param>
[PacketHeader(null, PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record InItemSubPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs +1 -1
@@ 38,7 38,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="Unknown4">Unknown.</param>
/// <param name="Unknown5">Unknown.</param>
[PacketHeader(null, PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record InNonPlayerSubPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs +1 -1
@@ 25,7 25,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="ItemSubPacket">The item data sub packet present only for objects.</param>
/// <param name="NonPlayerSubPacket">The non player data sub packet present only for npcs and monsters.</param>
[PacketHeader("in", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record InPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs +1 -1
@@ 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)]
M Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs +1 -1
@@ 18,7 18,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="MapY">The y coordinate the entity has moved to.</param>
/// <param name="Speed">The speed of the entity.</param>
[PacketHeader("mv", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record MovePacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs +1 -1
@@ 22,7 22,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="Hp">The current amount of hp.</param>
/// <param name="Mp">The current amount of mp.</param>
[PacketHeader("st", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record StPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs => Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs +1 -1
@@ 18,7 18,7 @@ namespace NosSmooth.Packets.Packets.Server.Entities;
/// <param name="Unknown">Unknown TODO.</param>
/// <param name="Option">Contains blockages (family block, exchange block etc). TODO add correct options.</param>
[PacketHeader("stat", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record StatPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs => Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs +1 -1
@@ 17,7 17,7 @@ namespace NosSmooth.Packets.Packets.Server.Groups;
/// </remarks>
/// <param name="GroupSize">The size of the group.</param>
/// <param name="PinitSubPackets">The members of the group. (including pet and partner, if any)</param>
-[GenerateSerializer]
+[GenerateSerializer(true)]
[PacketHeader("pinit", PacketSource.Server)]
public record PinitPacket
(
M Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs +1 -1
@@ 26,7 26,7 @@ namespace NosSmooth.Packets.Packets.Server.Groups;
/// <param name="HeroLevel">The hero level of the entity.</param>
/// <param name="Unknown1">Unknown.</param>
/// <param name="Unknown2">Unknown.</param>
-[GenerateSerializer]
+[GenerateSerializer(true)]
[PacketHeader(null, PacketSource.Server)]
public record PinitSubPacket
(
M Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs => Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs +1 -1
@@ 15,7 15,7 @@ namespace NosSmooth.Packets.Packets.Server.Maps;
/// <param name="Id">The id of the map.</param>
/// <param name="IsBaseType">Whether the map is a base map.</param>
[PacketHeader("c_map", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record CMapPacket
(
[PacketIndex(0)]
A Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs => Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs +13 -0
@@ 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
M Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs => Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs +1 -1
@@ 21,7 21,7 @@ namespace NosSmooth.Packets.Packets.Server.Players;
/// <param name="Size">The size of the entity on the screen.</param>
/// <param name="MorphSkin">Unknown TODO</param>
[PacketHeader("c_mode", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record CModePacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs +2 -1
@@ 14,7 14,8 @@ namespace NosSmooth.Packets.Packets.Server.Players;
/// <param name="FamilyId">The id of the family.</param>
/// <param name="Title">The title of the family.</param>
/// <param name="FamilyName">The name of the family.</param>
-[GenerateSerializer]
+[GenerateSerializer(true)]
+[PacketHeader(null, PacketSource.Server)]
public record FamilySubPacket
(
[PacketIndex(0, AfterSeparator = '.')]
M Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs => Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs +1 -1
@@ 26,7 26,7 @@ namespace NosSmooth.Packets.Packets.Server.Players;
/// <param name="HeroLevel">The hero level. (shown as (+xx))</param>
/// <param name="HeroXpLoad">Unknown TODO</param>
[PacketHeader("lev", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record LevPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs => Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs +1 -1
@@ 17,7 17,7 @@ namespace NosSmooth.Packets.Packets.Server.Skills;
/// <param name="SecondarySkillId">The secondary skill id. (may be same as primary in some cases, like for special cards).</param>
/// <param name="SkillSubPackets">The rest of the skills.</param>
[PacketHeader("ski", PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record SkiPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs => Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs +1 -1
@@ 14,7 14,7 @@ namespace NosSmooth.Packets.Packets.Server.Skills;
/// <param name="SkillId">The id of the skill.</param>
/// <param name="Rank">The rank of the skill.</param>
[PacketHeader(null, PacketSource.Server)]
-[GenerateSerializer]
+[GenerateSerializer(true)]
public record SkiSubPacket
(
[PacketIndex(0)]
M Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs => Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs +6 -2
@@ 19,5 19,9 @@ namespace NosSmooth.Packets.Packets.Server.Skills;
/// </remarks>
/// <param name="SkillId">The id of the skill that is resetted.</param>
[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