Skip to content

Commit 0a8278d

Browse files
authored
Merge pull request #6 from Diddyy/feature/catalog-integration-base
Fix revision parser mapping duplicates and serializer payloads
2 parents b464a39 + f913689 commit 0a8278d

11 files changed

Lines changed: 103 additions & 10 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Turbo.Primitives.Messages.Incoming.Quest;
2+
using Turbo.Primitives.Networking;
3+
using Turbo.Primitives.Packets;
4+
5+
namespace TurboSamplePlugin.Revision.Revision20260112.Parsers.Quest;
6+
7+
internal class GetDailyTasksMessageParser : IParser
8+
{
9+
public IMessageEvent Parse(IClientPacket packet) => new GetDailyTasksMessage();
10+
}
11+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Turbo.Primitives.Messages.Incoming.Room.Engine;
2+
using Turbo.Primitives.Networking;
3+
using Turbo.Primitives.Packets;
4+
5+
namespace TurboSamplePlugin.Revision.Revision20260112.Parsers.Room.Engine;
6+
7+
internal class ClickCharacterMessageParser : IParser
8+
{
9+
public IMessageEvent Parse(IClientPacket packet) =>
10+
new ClickCharacterMessage { UserId = packet.PopInt() };
11+
}
12+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Turbo.Primitives.Messages.Incoming.Users;
2+
using Turbo.Primitives.Networking;
3+
using Turbo.Primitives.Packets;
4+
5+
namespace TurboSamplePlugin.Revision.Revision20260112.Parsers.Users;
6+
7+
internal class BlockListInitMessageParser : IParser
8+
{
9+
public IMessageEvent Parse(IClientPacket packet) => new BlockListInitMessage();
10+
}
11+

TurboSamplePlugin/Revision/Revision20260112/Revision20260112.cs

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Turbo.Primitives.Messages.Outgoing.Catalog;
1010
using Turbo.Primitives.Messages.Outgoing.Collectibles;
1111
using Turbo.Primitives.Messages.Outgoing.FriendList;
12+
using Turbo.Primitives.Messages.Outgoing.Groupforums;
1213
using Turbo.Primitives.Messages.Outgoing.Handshake;
1314
using Turbo.Primitives.Messages.Outgoing.Inventory.Achievements;
1415
using Turbo.Primitives.Messages.Outgoing.Inventory.Avatareffect;
@@ -22,7 +23,9 @@
2223
using Turbo.Primitives.Messages.Outgoing.Mysterybox;
2324
using Turbo.Primitives.Messages.Outgoing.Navigator;
2425
using Turbo.Primitives.Messages.Outgoing.NewNavigator;
26+
using Turbo.Primitives.Messages.Outgoing.Nft;
2527
using Turbo.Primitives.Messages.Outgoing.Notifications;
28+
using Turbo.Primitives.Messages.Outgoing.Perk;
2629
using Turbo.Primitives.Messages.Outgoing.Preferences;
2730
using Turbo.Primitives.Messages.Outgoing.Room.Action;
2831
using Turbo.Primitives.Messages.Outgoing.Room.Bots;
@@ -110,6 +113,7 @@
110113
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Catalog;
111114
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Collectibles;
112115
using TurboSamplePlugin.Revision.Revision20260112.Serializers.FriendList;
116+
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Groupforums;
113117
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Handshake;
114118
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Inventory.Achievements;
115119
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Inventory.Avatareffect;
@@ -123,7 +127,9 @@
123127
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Mysterybox;
124128
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Navigator;
125129
using TurboSamplePlugin.Revision.Revision20260112.Serializers.NewNavigator;
130+
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Nft;
126131
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Notifications;
132+
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Perk;
127133
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Preferences;
128134
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Room.Action;
129135
using TurboSamplePlugin.Revision.Revision20260112.Serializers.Room.Bots;
@@ -946,8 +952,8 @@ public class Revision20260112 : IRevision
946952
MessageEvent.GetConcurrentUsersRewardMessageEvent,
947953
new GetConcurrentUsersRewardMessageParser()
948954
},
955+
{ MessageEvent.GetDailyTasksEvent, new GetDailyTasksMessageParser() },
949956
{ MessageEvent.GetDailyQuestMessageEvent, new GetDailyQuestMessageParser() },
950-
{ MessageEvent.GetDailyTasksEvent, new GetDailyQuestMessageParser() },
951957
{ MessageEvent.GetQuestsMessageEvent, new GetQuestsMessageParser() },
952958
{
953959
MessageEvent.GetSeasonalQuestsOnlyMessageEvent,
@@ -991,7 +997,6 @@ public class Revision20260112 : IRevision
991997
},
992998
{ MessageEvent.DanceMessageEvent, new DanceMessageParser() },
993999
{ MessageEvent.DropCarryItemMessageEvent, new DropCarryItemMessageParser() },
994-
{ MessageEvent.ClickCharacterEvent, new LookToMessageParser() },
9951000
{ MessageEvent.LookToMessageEvent, new LookToMessageParser() },
9961001
{ MessageEvent.PassCarryItemMessageEvent, new PassCarryItemMessageParser() },
9971002
{ MessageEvent.PassCarryItemToPetMessageEvent, new PassCarryItemToPetMessageParser() },
@@ -1015,6 +1020,7 @@ public class Revision20260112 : IRevision
10151020
#endregion
10161021

10171022
#region Room Engine
1023+
{ MessageEvent.ClickCharacterEvent, new ClickCharacterMessageParser() },
10181024
{ MessageEvent.ClickFurniMessageEvent, new ClickFurniMessageParser() },
10191025
{
10201026
MessageEvent.GetFurnitureAliasesMessageEvent,
@@ -1331,8 +1337,8 @@ public class Revision20260112 : IRevision
13311337
MessageEvent.GetHabboGroupDetailsMessageEvent,
13321338
new GetHabboGroupDetailsMessageParser()
13331339
},
1340+
{ MessageEvent.BlockListInitEvent, new BlockListInitMessageParser() },
13341341
{ MessageEvent.GetIgnoredUsersMessageEvent, new GetIgnoredUsersMessageParser() },
1335-
{ MessageEvent.BlockListInitEvent, new GetIgnoredUsersMessageParser() },
13361342
{
13371343
MessageEvent.GetMemberGuildItemCountMessageEvent,
13381344
new GetMemberGuildItemCountMessageParser()
@@ -1782,6 +1788,12 @@ public class Revision20260112 : IRevision
17821788
MessageComposer.SilverBalanceMessageComposer
17831789
)
17841790
},
1791+
{
1792+
typeof(UserNftChatStylesMessageComposer),
1793+
new UserNftChatStylesMessageComposerSerializer(
1794+
MessageComposer.UserNftChatStylesMessageComposer
1795+
)
1796+
},
17851797
#endregion
17861798

17871799
#region FriendList
@@ -1863,6 +1875,15 @@ public class Revision20260112 : IRevision
18631875
},
18641876
#endregion
18651877

1878+
#region Groupforums
1879+
{
1880+
typeof(UnreadForumsCountMessageComposer),
1881+
new UnreadForumsCountMessageComposerSerializer(
1882+
MessageComposer.UnreadForumsCountMessageComposer
1883+
)
1884+
},
1885+
#endregion
1886+
18661887
#region Inventory
18671888

18681889
#region Inventory Achievements
@@ -2431,6 +2452,15 @@ public class Revision20260112 : IRevision
24312452
},
24322453
#endregion
24332454

2455+
#region Perk
2456+
{
2457+
typeof(PerkAllowancesMessageComposer),
2458+
new PerkAllowancesMessageComposerSerializer(
2459+
MessageComposer.PerkAllowancesMessageComposer
2460+
)
2461+
},
2462+
#endregion
2463+
24342464
#region Preferences
24352465
{
24362466
typeof(AccountPreferencesEventMessageComposer),
@@ -3132,6 +3162,12 @@ public class Revision20260112 : IRevision
31323162
MessageComposer.ExtendedProfileChangedMessageComposer
31333163
)
31343164
},
3165+
{
3166+
typeof(IgnoredUsersMessageComposer),
3167+
new IgnoredUsersMessageComposerSerializer(
3168+
MessageComposer.IgnoredUsersMessageComposer
3169+
)
3170+
},
31353171
{
31363172
typeof(ScrSendUserInfoMessageComposer),
31373173
new ScrSendUserInfoMessageSerializer(MessageComposer.ScrSendUserInfoComposer)

TurboSamplePlugin/Revision/Revision20260112/Serializers/Catalog/NotEnoughBalanceMessageComposerSerializer.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ internal class NotEnoughBalanceMessageComposerSerializer(int header)
88
{
99
protected override void Serialize(IServerPacket packet, NotEnoughBalanceMessageComposer message)
1010
{
11-
//
11+
packet.WriteBoolean(message.NotEnoughCredits);
12+
packet.WriteBoolean(message.NotEnoughActivityPoints);
13+
packet.WriteInteger(message.ActivityPointType);
1214
}
1315
}

TurboSamplePlugin/Revision/Revision20260112/Serializers/Groupforums/UnreadForumsCountMessageComposerSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ protected override void Serialize(
1111
UnreadForumsCountMessageComposer message
1212
)
1313
{
14-
//
14+
packet.WriteInteger(message.UnreadForumsCount);
1515
}
1616
}

TurboSamplePlugin/Revision/Revision20260112/Serializers/Inventory/Badges/BadgePointLimitsEventMessageComposerSerializer.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ protected override void Serialize(
1111
BadgePointLimitsEventMessageComposer message
1212
)
1313
{
14-
//
14+
packet.WriteInteger(message.LimitsByBadgeCodePrefix.Count);
15+
16+
foreach (var group in message.LimitsByBadgeCodePrefix)
17+
{
18+
packet.WriteString(group.BadgeCodePrefix).WriteInteger(group.Levels.Count);
19+
20+
foreach (var level in group.Levels)
21+
packet.WriteInteger(level.Level).WriteInteger(level.Limit);
22+
}
1523
}
1624
}

TurboSamplePlugin/Revision/Revision20260112/Serializers/Nft/UserNftChatStylesMessageComposerSerializer.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ protected override void Serialize(
1111
UserNftChatStylesMessageComposer message
1212
)
1313
{
14-
//
14+
packet.WriteInteger(message.ChatStyleIds.Count);
15+
16+
foreach (var chatStyleId in message.ChatStyleIds)
17+
packet.WriteInteger(chatStyleId);
1518
}
1619
}

TurboSamplePlugin/Revision/Revision20260112/Serializers/Notifications/MOTDNotificationEventMessageComposerSerializer.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ protected override void Serialize(
1111
MOTDNotificationEventMessageComposer message
1212
)
1313
{
14-
//
14+
packet.WriteInteger(message.Messages.Count);
15+
16+
foreach (var motd in message.Messages)
17+
packet.WriteString(motd);
1518
}
1619
}

TurboSamplePlugin/Revision/Revision20260112/Serializers/Perk/PerkAllowancesMessageComposerSerializer.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Linq;
12
using Turbo.Primitives.Messages.Outgoing.Perk;
23
using Turbo.Primitives.Packets;
34

@@ -8,6 +9,9 @@ internal class PerkAllowancesMessageComposerSerializer(int header)
89
{
910
protected override void Serialize(IServerPacket packet, PerkAllowancesMessageComposer message)
1011
{
11-
//
12+
packet.WriteInteger(message.Perks.Count());
13+
14+
foreach (var perk in message.Perks)
15+
packet.WriteString(perk.Code).WriteString(perk.ErrorMessage).WriteBoolean(perk.IsAllowed);
1216
}
1317
}

0 commit comments

Comments
 (0)