From 95da74a95594d27f793ad8ed6ce471337d620943 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 28 Jan 2016 18:26:16 +1100 Subject: [PATCH] Fix ' not being unescaped when printing a message block. --- Player/Player.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Player/Player.cs b/Player/Player.cs index 0f4d0c425..7bdee5bb1 100644 --- a/Player/Player.cs +++ b/Player/Player.cs @@ -1215,6 +1215,7 @@ namespace MCGalaxy { } + static char[] trimChars = { ' '}; public void HandleMsgBlock(Player p, ushort x, ushort y, ushort z, byte b) { try { //safe against SQL injections because no user input is given here @@ -1223,17 +1224,14 @@ namespace MCGalaxy { int LastMsg = Messages.Rows.Count - 1; if ( LastMsg > -1 ) { string message = Messages.Rows[LastMsg]["Message"].ToString().Trim(); + message = message.Replace("\\'", "\'"); if ( message != prevMsg || Server.repeatMessage ) { if ( message.StartsWith("/") ) { - List Message = message.Remove(0, 1).Split(' ').ToList(); - string command = Message[0]; - Message.RemoveAt(0); - string args = string.Join(" ", Message.ToArray()); - HandleCommand(command, args); - } - else + string[] parts = message.Remove(0, 1).Split(trimChars, 2); + HandleCommand(parts[0], parts.Length > 1 ? parts[1] : ""); + } else { Player.SendMessage(p, message); - + } prevMsg = message; } SendBlockchange(x, y, z, b);