Fix message marker mixed with actual message body

Should fix regex not working for autorespond and other chatbots that relied on matching message
This commit is contained in:
ReinforceZwei 2023-03-25 16:42:28 +08:00
parent 4c33c5fc27
commit 8da8f6044f
3 changed files with 39 additions and 32 deletions

View file

@ -2634,11 +2634,41 @@ namespace MinecraftClient
List<string> links = new(); List<string> links = new();
string messageText; string messageText;
// Used for 1.19+ to mark: system message, legal / illegal signature
string color = string.Empty;
if (message.isSignedChat) if (message.isSignedChat)
{ {
if (!Config.Signature.ShowIllegalSignedChat && !message.isSystemChat && !(bool)message.isSignatureLegal!) if (!Config.Signature.ShowIllegalSignedChat && !message.isSystemChat && !(bool)message.isSignatureLegal!)
return; return;
messageText = ChatParser.ParseSignedChat(message, links); messageText = ChatParser.ParseSignedChat(message, links);
if (message.isSystemChat)
{
if (Config.Signature.MarkSystemMessage)
color = "§7▌§r"; // Background Gray
}
else
{
if ((bool)message.isSignatureLegal!)
{
if (Config.Signature.ShowModifiedChat && message.unsignedContent != null)
{
if (Config.Signature.MarkModifiedMsg)
color = "§6▌§r"; // Background Yellow
}
else
{
if (Config.Signature.MarkLegallySignedMsg)
color = "§2▌§r"; // Background Green
}
}
else
{
if (Config.Signature.MarkIllegallySignedMsg)
color = "§4▌§r"; // Background Red
}
}
} }
else else
{ {
@ -2648,7 +2678,7 @@ namespace MinecraftClient
messageText = message.content; messageText = message.content;
} }
Log.Chat(messageText); Log.Chat(color + messageText);
if (Config.Main.Advanced.ShowChatLinks) if (Config.Main.Advanced.ShowChatLinks)
foreach (string link in links) foreach (string link in links)

View file

@ -4,15 +4,19 @@ namespace MinecraftClient.Protocol.Message
{ {
public class ChatMessage public class ChatMessage
{ {
// in 1.19 and above, isSignedChat = true /// <summary>
/// In 1.19 and above, isSignedChat = true
/// </summary>
public bool isSignedChat; public bool isSignedChat;
public string content; public string content;
public bool isJson, isSenderJson; public bool isJson, isSenderJson;
// 0: chat (chat box), 1: system message (chat box), 2: game info (above hotbar), 3: say command, /// <summary>
// 4: msg command, 5: team msg command, 6: emote command, 7: tellraw command /// 0: chat (chat box), 1: system message (chat box), 2: game info (above hotbar), 3: say command,
/// 4: msg command, 5: team msg command, 6: emote command, 7: tellraw command
/// </summary>
public int chatTypeId; public int chatTypeId;
public Guid senderUUID; public Guid senderUUID;

View file

@ -142,34 +142,7 @@ namespace MinecraftClient.Protocol.Message
default: default:
goto case MessageType.CHAT; goto case MessageType.CHAT;
} }
string color = string.Empty; return text;
if (message.isSystemChat)
{
if (Config.Signature.MarkSystemMessage)
color = "§7▌§r"; // Background Gray
}
else
{
if ((bool)message.isSignatureLegal!)
{
if (Config.Signature.ShowModifiedChat && message.unsignedContent != null)
{
if (Config.Signature.MarkModifiedMsg)
color = "§6▌§r"; // Background Yellow
}
else
{
if (Config.Signature.MarkLegallySignedMsg)
color = "§2▌§r"; // Background Green
}
}
else
{
if (Config.Signature.MarkIllegallySignedMsg)
color = "§4▌§r"; // Background Red
}
}
return color + text;
} }
/// <summary> /// <summary>