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();
string messageText;
// Used for 1.19+ to mark: system message, legal / illegal signature
string color = string.Empty;
if (message.isSignedChat)
{
if (!Config.Signature.ShowIllegalSignedChat && !message.isSystemChat && !(bool)message.isSignatureLegal!)
return;
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
{
@ -2648,7 +2678,7 @@ namespace MinecraftClient
messageText = message.content;
}
Log.Chat(messageText);
Log.Chat(color + messageText);
if (Config.Main.Advanced.ShowChatLinks)
foreach (string link in links)

View file

@ -4,15 +4,19 @@ namespace MinecraftClient.Protocol.Message
{
public class ChatMessage
{
// in 1.19 and above, isSignedChat = true
/// <summary>
/// In 1.19 and above, isSignedChat = true
/// </summary>
public bool isSignedChat;
public string content;
public bool isJson, isSenderJson;
// 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>
/// 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 Guid senderUUID;

View file

@ -142,34 +142,7 @@ namespace MinecraftClient.Protocol.Message
default:
goto case MessageType.CHAT;
}
string color = string.Empty;
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;
return text;
}
/// <summary>