mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
Fix minor bugs (#2759)
* add miscellaneous fixes * Fixed connecting to server when compression threshold is set to 0 The client assumes that 0 means disabled, when on a notchian (vanilla) server, it is possible to set the compression threshold to 0 (compress all packets). * Try to capture all exceptions through Sentry No exceptions are being logged through Sentry, so be more aggressive when sending exceptions (cherry picked from commit eb1c2f5e771760fb3be32ffea79f8292adca92f1) * Call OnSpawnPlayer packet when a player is spawned using the SpawnEntity packet references #2721 (cherry picked from commit ef28ae09ac89e8988dd612de61f2849a9f0e528c)
This commit is contained in:
parent
2f9cf7bc8c
commit
c50b360eae
2 changed files with 17 additions and 4 deletions
|
|
@ -74,6 +74,11 @@ namespace MinecraftClient
|
||||||
options.EnableTracing = true;
|
options.EnableTracing = true;
|
||||||
options.SendDefaultPii = false;
|
options.SendDefaultPii = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += (sender, eventArgs) =>
|
||||||
|
{
|
||||||
|
SentrySdk.CaptureException((Exception)eventArgs.ExceptionObject);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
@ -72,7 +72,7 @@ namespace MinecraftClient.Protocol.Handlers
|
||||||
internal const int MC_1_20_2_Version = 764;
|
internal const int MC_1_20_2_Version = 764;
|
||||||
internal const int MC_1_20_4_Version = 765;
|
internal const int MC_1_20_4_Version = 765;
|
||||||
|
|
||||||
private int compression_treshold = 0;
|
private int compression_treshold = -1;
|
||||||
private int autocomplete_transaction_id = 0;
|
private int autocomplete_transaction_id = 0;
|
||||||
private readonly Dictionary<int, short> window_actions = new();
|
private readonly Dictionary<int, short> window_actions = new();
|
||||||
private CurrentState currentState = CurrentState.Login;
|
private CurrentState currentState = CurrentState.Login;
|
||||||
|
|
@ -345,7 +345,7 @@ namespace MinecraftClient.Protocol.Handlers
|
||||||
|
|
||||||
//Handle packet decompression
|
//Handle packet decompression
|
||||||
if (protocolVersion >= MC_1_8_Version
|
if (protocolVersion >= MC_1_8_Version
|
||||||
&& compression_treshold > 0)
|
&& compression_treshold >= 0)
|
||||||
{
|
{
|
||||||
var sizeUncompressed = dataTypes.ReadNextVarInt(packetData);
|
var sizeUncompressed = dataTypes.ReadNextVarInt(packetData);
|
||||||
if (sizeUncompressed != 0) // != 0 means compressed, let's decompress
|
if (sizeUncompressed != 0) // != 0 means compressed, let's decompress
|
||||||
|
|
@ -2196,6 +2196,14 @@ namespace MinecraftClient.Protocol.Handlers
|
||||||
if (handler.GetEntityHandlingEnabled())
|
if (handler.GetEntityHandlingEnabled())
|
||||||
{
|
{
|
||||||
var entity = dataTypes.ReadNextEntity(packetData, entityPalette, false);
|
var entity = dataTypes.ReadNextEntity(packetData, entityPalette, false);
|
||||||
|
|
||||||
|
if (protocolVersion >= MC_1_20_2_Version)
|
||||||
|
{
|
||||||
|
if (entity.Type == EntityType.Player)
|
||||||
|
handler.OnSpawnPlayer(entity.ID, entity.UUID, entity.Location, (byte)entity.Yaw, (byte)entity.Pitch);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
handler.OnSpawnEntity(entity);
|
handler.OnSpawnEntity(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2759,7 +2767,7 @@ namespace MinecraftClient.Protocol.Handlers
|
||||||
//The inner packet
|
//The inner packet
|
||||||
var thePacket = dataTypes.ConcatBytes(DataTypes.GetVarInt(packetId), packetData.ToArray());
|
var thePacket = dataTypes.ConcatBytes(DataTypes.GetVarInt(packetId), packetData.ToArray());
|
||||||
|
|
||||||
if (compression_treshold > 0) //Compression enabled?
|
if (compression_treshold >= 0) //Compression enabled?
|
||||||
{
|
{
|
||||||
thePacket = thePacket.Length >= compression_treshold
|
thePacket = thePacket.Length >= compression_treshold
|
||||||
? dataTypes.ConcatBytes(DataTypes.GetVarInt(thePacket.Length), ZlibUtils.Compress(thePacket))
|
? dataTypes.ConcatBytes(DataTypes.GetVarInt(thePacket.Length), ZlibUtils.Compress(thePacket))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue