From cc9ff0152b068ba342b66e2beafd641b77b1e5eb Mon Sep 17 00:00:00 2001 From: Wei QI Date: Mon, 16 Jan 2017 17:57:20 +0800 Subject: [PATCH 1/2] Fix some exploit and fix alliance role updated --- src/CoCSharp.Server/Core/MessageHandler.cs | 16 ++++++++++++++-- .../Logic/Commands/AllianceRoleUpdatedCommand.cs | 7 ++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/CoCSharp.Server/Core/MessageHandler.cs b/src/CoCSharp.Server/Core/MessageHandler.cs index 19e9279..3737773 100644 --- a/src/CoCSharp.Server/Core/MessageHandler.cs +++ b/src/CoCSharp.Server/Core/MessageHandler.cs @@ -673,8 +673,20 @@ private async Task HandleCreateAlliance(IClient client, Message message, Cancell var clan = clanSave.ToClan(); // Set the values as specified in the message. - clan.Name = caMessage.Name; - clan.Description = caMessage.Description; + if (String.IsNullOrEmpty(caMessage.Name)) + clan.Name = "CoCSharp"; + else if (caMessage.Name.Length > 15) + clan.Name = caMessage.Name.Substring(0, 15); + else + clan.Name = caMessage.Name; + + if (String.IsNullOrEmpty(caMessage.Description)) + clan.Description = "Powered by CoCSharp"; + else if (caMessage.Description.Length > 255) + clan.Description = caMessage.Description.Substring(0, 255); + else + clan.Description = caMessage.Description; + clan.Badge = caMessage.Badge; clan.InviteType = caMessage.InviteType; clan.RequiredTrophies = caMessage.RequiredTrophy; diff --git a/src/CoCSharp/Logic/Commands/AllianceRoleUpdatedCommand.cs b/src/CoCSharp/Logic/Commands/AllianceRoleUpdatedCommand.cs index d901fc8..0b3feeb 100644 --- a/src/CoCSharp/Logic/Commands/AllianceRoleUpdatedCommand.cs +++ b/src/CoCSharp/Logic/Commands/AllianceRoleUpdatedCommand.cs @@ -51,9 +51,10 @@ public override void ReadCommand(MessageReader reader) ClanId = reader.ReadInt64(); + Role = (ClanMemberRole)reader.ReadInt32(); + Unknown1 = reader.ReadInt32(); - Role = (ClanMemberRole)reader.ReadInt32(); Tick = reader.ReadInt32(); } @@ -70,9 +71,9 @@ public override void WriteCommand(MessageWriter writer) writer.Write(ClanId); - writer.Write(Unknown1); - writer.Write((int)Role); + + writer.Write(Unknown1); writer.Write(Tick); } } From ea6c9a39e397d30d813755b950a4e6ace01fd26e Mon Sep 17 00:00:00 2001 From: Wei QI Date: Mon, 16 Jan 2017 20:55:13 +0800 Subject: [PATCH 2/2] Null to empty --- src/CoCSharp.Server/Core/MessageHandler.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/CoCSharp.Server/Core/MessageHandler.cs b/src/CoCSharp.Server/Core/MessageHandler.cs index 3737773..a3fa220 100644 --- a/src/CoCSharp.Server/Core/MessageHandler.cs +++ b/src/CoCSharp.Server/Core/MessageHandler.cs @@ -680,8 +680,8 @@ private async Task HandleCreateAlliance(IClient client, Message message, Cancell else clan.Name = caMessage.Name; - if (String.IsNullOrEmpty(caMessage.Description)) - clan.Description = "Powered by CoCSharp"; + if (caMessage.Description == null) + clan.Description = string.Empty; else if (caMessage.Description.Length > 255) clan.Description = caMessage.Description.Substring(0, 255); else @@ -879,9 +879,12 @@ private Task HandleChatMessageClient(IClient client, Message message, Cancellati } else { + int lenght = Server.Assets.DataTables.GetTable().Rows["MAX_MESSAGE_LENGTH"][0].NumberValue; if (cmcMessage.TextMessage.ToLower().Contains("savegame")) ChatManager.SendChatMessage(client, "Did you know? 'savegame' isn't a command and does nothing? ^^"); + if (cmcMessage.TextMessage.Length > lenght) + cmcMessage.TextMessage = cmcMessage.TextMessage.Substring(0, lenght); var cmsMessage = new ChatMessageServerMessage { UserId = senderLevel.Avatar.Id,