Fixed a crash with a chat message

Fixed bad code and the bug
Fixed a crash when a chat message was received on a server that uses protocol lib and viaversion.
This commit is contained in:
Anon 2024-01-28 21:57:47 +01:00 committed by GitHub
commit 7aabe8ba28
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -484,7 +484,6 @@ namespace MinecraftClient.Protocol.Handlers
private bool HandlePlayPackets(int packetId, Queue<byte> packetData) private bool HandlePlayPackets(int packetId, Queue<byte> packetData)
{ {
try{
switch (packetPalette.GetIncommingTypeById(packetId)) switch (packetPalette.GetIncommingTypeById(packetId))
{ {
case PacketTypesIn.KeepAlive: // Keep Alive (Play) case PacketTypesIn.KeepAlive: // Keep Alive (Play)
@ -797,9 +796,10 @@ namespace MinecraftClient.Protocol.Handlers
: null; : null;
var chatInfo = Json.ParseJson(chatName).Properties; var chatInfo = Json.ParseJson(chatName).Properties;
var senderDisplayName = var senderDisplayName = chatInfo != null && chatInfo.Count > 0
(chatInfo.ContainsKey("insertion") ? chatInfo["insertion"] : (chatInfo.ContainsKey("text") ? chatInfo["text"] : "")) ? (chatInfo.ContainsKey("insertion") ? chatInfo["insertion"] : chatInfo["text"])
.StringValue; .StringValue
: "";
string? senderTeamName = null; string? senderTeamName = null;
var messageTypeEnum = var messageTypeEnum =
ChatParser.ChatId2Type!.GetValueOrDefault(chatTypeId, ChatParser.MessageType.CHAT); ChatParser.ChatId2Type!.GetValueOrDefault(chatTypeId, ChatParser.MessageType.CHAT);
@ -909,12 +909,14 @@ namespace MinecraftClient.Protocol.Handlers
var chatInfo = var chatInfo =
Json.ParseJson(targetName ?? chatName).Properties; Json.ParseJson(targetName ?? chatName).Properties;
var senderDisplayName = var senderDisplayName = chatInfo != null && chatInfo.Count > 0
(chatInfo.ContainsKey("insertion") ? chatInfo["insertion"] : (chatInfo.ContainsKey("text") ? chatInfo["text"] : "")) ? (chatInfo.ContainsKey("insertion") ? chatInfo["insertion"] : chatInfo["text"])
.StringValue; .StringValue
: "";
string? senderTeamName = null; string? senderTeamName = null;
if (targetName != null && if (targetName != null &&
messageTypeEnum is ChatParser.MessageType.TEAM_MSG_COMMAND_INCOMING or ChatParser.MessageType.TEAM_MSG_COMMAND_OUTGOING) messageTypeEnum is ChatParser.MessageType.TEAM_MSG_COMMAND_INCOMING
or ChatParser.MessageType.TEAM_MSG_COMMAND_OUTGOING)
senderTeamName = Json.ParseJson(targetName).Properties["with"].DataArray[0] senderTeamName = Json.ParseJson(targetName).Properties["with"].DataArray[0]
.Properties["text"].StringValue; .Properties["text"].StringValue;
@ -2571,9 +2573,6 @@ namespace MinecraftClient.Protocol.Handlers
} }
return true; //Packet processed return true; //Packet processed
}catch(Exception exception){
exception.printStackTrace();
}
} }
/// <summary> /// <summary>