~ruther/NosSmooth

788e82423de289f5b45d663b5262ba4f886d8fdb — František Boháček 3 years ago f6b0318
feat: enable inline converters in all packets
29 files changed, 52 insertions(+), 30 deletions(-)

M Core/NosSmooth.Packets/Enums/Chat/MessageType.cs
M Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs
M Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs
M Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs
M Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs
M Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs
M Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs
A Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs
M Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs
M Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs
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

Do not follow this link