From 6347d832ce703d4c5616d49ffefd811c03a05f3e Mon Sep 17 00:00:00 2001 From: ORelio Date: Sat, 27 Jul 2013 12:25:14 +0200 Subject: [PATCH] Improve translation rule parsing --- MinecraftClient/ChatParser.cs | 11 ++++++++++- MinecraftClient/MinecraftClient.csproj.user | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/MinecraftClient/ChatParser.cs b/MinecraftClient/ChatParser.cs index a8c7e6d0..2d3a1e2f 100644 --- a/MinecraftClient/ChatParser.cs +++ b/MinecraftClient/ChatParser.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; namespace MinecraftClient { @@ -139,7 +140,15 @@ namespace MinecraftClient if (!init) { InitRules(); init = true; } if (TranslationRules.ContainsKey(rulename)) { - string[] syntax = TranslationRules[rulename].Split(new string[2] { "%s", "%d" }, StringSplitOptions.None); + if ((TranslationRules[rulename].IndexOf("%1$s") >= 0 && TranslationRules[rulename].IndexOf("%2$s") >= 0) + && (TranslationRules[rulename].IndexOf("%1$s") > TranslationRules[rulename].IndexOf("%2$s"))) + { + while (using_data.Count < 2) { using_data.Add(""); } + string tmp = using_data[0]; + using_data[0] = using_data[1]; + using_data[1] = tmp; + } + string[] syntax = TranslationRules[rulename].Split(new string[] { "%s", "%d", "%1$s", "%2$s" }, StringSplitOptions.None); while (using_data.Count < syntax.Length - 1) { using_data.Add(""); } string[] using_array = using_data.ToArray(); string translated = ""; diff --git a/MinecraftClient/MinecraftClient.csproj.user b/MinecraftClient/MinecraftClient.csproj.user index c1a6d7e8..f2fdfed5 100644 --- a/MinecraftClient/MinecraftClient.csproj.user +++ b/MinecraftClient/MinecraftClient.csproj.user @@ -1,7 +1,7 @@  - TestBot - localhost bot:scripting:testscript.txt + TestBot - localhost publish\