From a17d60047a6c12d43532ef467fcb850df5edc4d1 Mon Sep 17 00:00:00 2001 From: ORelio Date: Tue, 4 Aug 2020 18:18:30 +0200 Subject: [PATCH] Mailer: Fix case insensitivity for recipient (#1176) --- MinecraftClient/ChatBots/Mailer.cs | 7 +++++-- MinecraftClient/Settings.cs | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/MinecraftClient/ChatBots/Mailer.cs b/MinecraftClient/ChatBots/Mailer.cs index 8fd752b1..3295b27d 100644 --- a/MinecraftClient/ChatBots/Mailer.cs +++ b/MinecraftClient/ChatBots/Mailer.cs @@ -108,6 +108,7 @@ namespace MinecraftClient.ChatBots private string sender; private string senderLower; private string recipient; + private string recipientLower; private string message; private DateTime datesent; private bool delivered; @@ -118,6 +119,7 @@ namespace MinecraftClient.ChatBots this.sender = sender; this.senderLower = sender.ToLower(); this.recipient = recipient; + this.recipientLower = recipient.ToLower(); this.message = message; this.datesent = datesent; this.delivered = false; @@ -127,6 +129,7 @@ namespace MinecraftClient.ChatBots public string Sender { get { return sender; } } public string SenderLowercase { get { return senderLower; } } public string Recipient { get { return recipient; } } + public string RecipientLowercase { get { return recipientLower; } } public string Content { get { return message; } } public DateTime DateSent { get { return datesent; } } public bool Delivered { get { return delivered; } } @@ -279,8 +282,8 @@ namespace MinecraftClient.ChatBots ignoreList = IgnoreList.FromFile(Settings.Mailer_IgnoreListFile); // Process at most 3 mails at a time to avoid spamming. Other mails will be processed on next mail send - HashSet onlinePlayer = new HashSet(GetOnlinePlayers()); - foreach (Mail mail in mailDatabase.Where(mail => !mail.Delivered && onlinePlayer.Contains(mail.Recipient)).Take(3)) + HashSet onlinePlayersLowercase = new HashSet(GetOnlinePlayers().Select(name => name.ToLower())); + foreach (Mail mail in mailDatabase.Where(mail => !mail.Delivered && onlinePlayersLowercase.Contains(mail.RecipientLowercase)).Take(3)) { string sender = mail.Anonymous ? "Anonymous" : mail.Sender; SendPrivateMessage(mail.Recipient, sender + " mailed: " + mail.Content); diff --git a/MinecraftClient/Settings.cs b/MinecraftClient/Settings.cs index cd291792..013e9a21 100644 --- a/MinecraftClient/Settings.cs +++ b/MinecraftClient/Settings.cs @@ -638,7 +638,7 @@ namespace MinecraftClient + "consoletitle=%username%@%serverip% - Minecraft Console Client\r\n" + "internalcmdchar=slash # Use 'none', 'slash' or 'backslash'\r\n" + "splitmessagedelay=2 # Seconds between each part of a long message\r\n" - + "botowners=Player1,Player2,Player3 # Name list or myfile.txt one name per line. !Server admins can impersonate owners!\r\n" + + "botowners=Player1,Player2,Player3 # Name list or myfile.txt, one name per line. !Server admins can impersonate owners!\r\n" + "botmessagedelay=2 # Seconds to delay between message a bot makes to avoid accidental spam\r\n" + "mcversion=auto # Use 'auto' or '1.X.X' values\r\n" + "mcforge=auto # Use 'auto' or 'false'\r\n"