From b57d02094f241a7bd31dc766e17c2d44131079ec Mon Sep 17 00:00:00 2001 From: SGKoishi Date: Sun, 27 Nov 2022 22:30:40 -0800 Subject: [PATCH] Fix Utils.GetByName add duplicate candidate for same target i18n --- TShockAPI/Utils.cs | 64 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 8 deletions(-) diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs index db5e9887..efe17130 100644 --- a/TShockAPI/Utils.cs +++ b/TShockAPI/Utils.cs @@ -290,9 +290,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { GetItemById(i) }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } currentName = EnglishLanguage.GetItemNameById(i); if (!string.IsNullOrEmpty(currentName)) @@ -300,9 +306,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { GetItemById(i) }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } } @@ -377,9 +389,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { GetNPCById(i) }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } currentName = EnglishLanguage.GetNpcNameById(i); if (!string.IsNullOrEmpty(currentName)) @@ -387,9 +405,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { GetNPCById(i) }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } } @@ -435,9 +459,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { i }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } currentName = EnglishLanguage.GetBuffNameById(i); if (!string.IsNullOrWhiteSpace(currentName)) @@ -445,9 +475,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { i }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } } @@ -483,9 +519,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { i }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } currentName = EnglishLanguage.GetPrefixById(i); if (!string.IsNullOrWhiteSpace(currentName)) @@ -493,9 +535,15 @@ namespace TShockAPI if (currentName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) return new List { i }; if (currentName.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)) + { startswith.Add(i); - else if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + continue; + } + if (currentName.Contains(name, StringComparison.InvariantCultureIgnoreCase)) + { contains.Add(i); + continue; + } } }