mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-11-07 17:36:07 +00:00
Catch IndexOutOfRangeException for IsChatMessage
This commit is contained in:
parent
29a9fe810a
commit
e5364566c3
1 changed files with 21 additions and 13 deletions
|
|
@ -307,7 +307,7 @@ namespace MinecraftClient
|
||||||
if (sender[0] == '~') { sender = sender.Substring(1); }
|
if (sender[0] == '~') { sender = sender.Substring(1); }
|
||||||
return IsValidName(sender);
|
return IsValidName(sender);
|
||||||
}
|
}
|
||||||
catch (IndexOutOfRangeException) { return false; }
|
catch (IndexOutOfRangeException) { /* Not a vanilla/faction message */ }
|
||||||
}
|
}
|
||||||
|
|
||||||
//Detect HeroChat Messages
|
//Detect HeroChat Messages
|
||||||
|
|
@ -315,11 +315,15 @@ namespace MinecraftClient
|
||||||
//[Channel] [Rank] User: Message
|
//[Channel] [Rank] User: Message
|
||||||
else if (text[0] == '[' && text.Contains(':') && tmp.Length > 2)
|
else if (text[0] == '[' && text.Contains(':') && tmp.Length > 2)
|
||||||
{
|
{
|
||||||
int name_end = text.IndexOf(':');
|
try
|
||||||
int name_start = text.Substring(0, name_end).LastIndexOf(']') + 2;
|
{
|
||||||
sender = text.Substring(name_start, name_end - name_start);
|
int name_end = text.IndexOf(':');
|
||||||
message = text.Substring(name_end + 2);
|
int name_start = text.Substring(0, name_end).LastIndexOf(']') + 2;
|
||||||
return IsValidName(sender);
|
sender = text.Substring(name_start, name_end - name_start);
|
||||||
|
message = text.Substring(name_end + 2);
|
||||||
|
return IsValidName(sender);
|
||||||
|
}
|
||||||
|
catch (IndexOutOfRangeException) { /* Not a herochat message */ }
|
||||||
}
|
}
|
||||||
|
|
||||||
//Detect (Unknown Plugin) Messages
|
//Detect (Unknown Plugin) Messages
|
||||||
|
|
@ -334,15 +338,19 @@ namespace MinecraftClient
|
||||||
&& text.IndexOf('>') < text.IndexOf(' ')
|
&& text.IndexOf('>') < text.IndexOf(' ')
|
||||||
&& text.IndexOf(' ') < text.IndexOf(':'))
|
&& text.IndexOf(' ') < text.IndexOf(':'))
|
||||||
{
|
{
|
||||||
string prefix = tmp[0];
|
try
|
||||||
string user = tmp[1];
|
|
||||||
string semicolon = tmp[2];
|
|
||||||
if (prefix.All(c => char.IsLetterOrDigit(c) || new char[] { '*', '<', '>', '_' }.Contains(c))
|
|
||||||
&& semicolon == ":")
|
|
||||||
{
|
{
|
||||||
message = text.Substring(prefix.Length + user.Length + 4);
|
string prefix = tmp[0];
|
||||||
return IsValidName(user);
|
string user = tmp[1];
|
||||||
|
string semicolon = tmp[2];
|
||||||
|
if (prefix.All(c => char.IsLetterOrDigit(c) || new char[] { '*', '<', '>', '_' }.Contains(c))
|
||||||
|
&& semicolon == ":")
|
||||||
|
{
|
||||||
|
message = text.Substring(prefix.Length + user.Length + 4);
|
||||||
|
return IsValidName(user);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
catch (IndexOutOfRangeException) { /* Not a <unknown plugin> message */ }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue