diff --git a/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileByNameMessageParser.cs b/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileByNameMessageParser.cs index 0c105ed..6fef912 100644 --- a/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileByNameMessageParser.cs +++ b/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileByNameMessageParser.cs @@ -6,5 +6,9 @@ namespace TurboSamplePlugin.Revision.Revision20260112.Parsers.Users; internal class GetExtendedProfileByNameMessageParser : IParser { - public IMessageEvent Parse(IClientPacket packet) => new GetExtendedProfileByNameMessage(); + public IMessageEvent Parse(IClientPacket packet) => + new GetExtendedProfileByNameMessage + { + UserName = packet.PopString() + }; } diff --git a/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileMessageParser.cs b/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileMessageParser.cs index ed5e047..b925961 100644 --- a/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileMessageParser.cs +++ b/TurboSamplePlugin/Revision/Revision20260112/Parsers/Users/GetExtendedProfileMessageParser.cs @@ -1,10 +1,15 @@ using Turbo.Primitives.Messages.Incoming.Users; using Turbo.Primitives.Networking; using Turbo.Primitives.Packets; +using Turbo.Primitives.Players; namespace TurboSamplePlugin.Revision.Revision20260112.Parsers.Users; internal class GetExtendedProfileMessageParser : IParser { - public IMessageEvent Parse(IClientPacket packet) => new GetExtendedProfileMessage(); + public IMessageEvent Parse(IClientPacket packet) => + new GetExtendedProfileMessage + { + UserId = (PlayerId)packet.PopInt() + }; } diff --git a/TurboSamplePlugin/Revision/Revision20260112/Revision20260112.cs b/TurboSamplePlugin/Revision/Revision20260112/Revision20260112.cs index b7f0a5b..d097d03 100644 --- a/TurboSamplePlugin/Revision/Revision20260112/Revision20260112.cs +++ b/TurboSamplePlugin/Revision/Revision20260112/Revision20260112.cs @@ -3117,6 +3117,12 @@ public class Revision20260112 : IRevision MessageComposer.EmailStatusResultComposer ) }, + { + typeof(ExtendedProfileMessageComposer), + new ExtendedProfileMessageComposerSerializer( + MessageComposer.ExtendedProfileMessageComposer + ) + }, { typeof(ExtendedProfileChangedMessageComposer), new ExtendedProfileChangedMessageComposerSerializer( diff --git a/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/Data/GuildInfoSerializer.cs b/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/Data/GuildInfoSerializer.cs new file mode 100644 index 0000000..6bff9d7 --- /dev/null +++ b/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/Data/GuildInfoSerializer.cs @@ -0,0 +1,19 @@ +using Turbo.Primitives.Messages.Outgoing.Users; +using Turbo.Primitives.Packets; + +namespace TurboSamplePlugin.Revision.Revision20260112.Serializers.Users.Data; + +internal class GuildInfoSerializer +{ + public static void Serialize(IServerPacket packet, GuildInfo guild) + { + packet.WriteInteger(guild.GroupId); + packet.WriteString(guild.GroupName); + packet.WriteString(guild.BadgeCode); + packet.WriteString(guild.PrimaryColor); + packet.WriteString(guild.SecondaryColor); + packet.WriteBoolean(guild.Favourite); + packet.WriteInteger(guild.OwnerId); + packet.WriteBoolean(guild.HasForum); + } +} diff --git a/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileChangedMessageComposerSerializer.cs b/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileChangedMessageComposerSerializer.cs index 489ce99..6658647 100644 --- a/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileChangedMessageComposerSerializer.cs +++ b/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileChangedMessageComposerSerializer.cs @@ -11,6 +11,6 @@ protected override void Serialize( ExtendedProfileChangedMessageComposer message ) { - // + packet.WriteInteger(message.UserId); } } diff --git a/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileMessageComposerSerializer.cs b/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileMessageComposerSerializer.cs index 7b11ad2..e3afaf6 100644 --- a/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileMessageComposerSerializer.cs +++ b/TurboSamplePlugin/Revision/Revision20260112/Serializers/Users/ExtendedProfileMessageComposerSerializer.cs @@ -1,5 +1,6 @@ using Turbo.Primitives.Messages.Outgoing.Users; using Turbo.Primitives.Packets; +using TurboSamplePlugin.Revision.Revision20260112.Serializers.Users.Data; namespace TurboSamplePlugin.Revision.Revision20260112.Serializers.Users; @@ -8,6 +9,28 @@ internal class ExtendedProfileMessageComposerSerializer(int header) { protected override void Serialize(IServerPacket packet, ExtendedProfileMessageComposer message) { - // + packet.WriteInteger(message.UserId); + packet.WriteString(message.UserName); + packet.WriteString(message.Figure); + packet.WriteString(message.Motto); + packet.WriteString(message.CreationDate); + packet.WriteInteger(message.AchievementScore); + packet.WriteInteger(message.FriendCount); + packet.WriteBoolean(message.IsFriend); + packet.WriteBoolean(message.IsFriendRequestSent); + packet.WriteBoolean(message.IsOnline); + + packet.WriteInteger(message.Guilds.Count); + foreach (var guild in message.Guilds) + GuildInfoSerializer.Serialize(packet, guild); + + packet.WriteInteger(message.LastAccessSinceInSeconds); + packet.WriteBoolean(message.OpenProfileWindow); + packet.WriteBoolean(message.IsHidden); + packet.WriteInteger(message.AccountLevel); + packet.WriteInteger(message.IntegerField24); + packet.WriteInteger(message.StarGemCount); + packet.WriteBoolean(message.BooleanField26); + packet.WriteBoolean(message.BooleanField27); } }