Added a custom timeout setting

Added an option for custom timeout as requested in #1337.
This commit is contained in:
Anon 2022-09-06 14:10:24 +00:00 committed by GitHub
commit 81579a7e40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 7 deletions

View file

@ -205,7 +205,7 @@ namespace MinecraftClient
{
client = ProxyHandler.newTcpClient(host, port);
client.ReceiveBufferSize = 1024 * 1024;
client.ReceiveTimeout = 30000; // 30 seconds
client.ReceiveTimeout = Settings.Timeout * 1000; // Default: 30 seconds
handler = Protocol.ProtocolHandler.GetProtocolHandler(client, protocolversion, forgeInfo, this);
Log.Info(Translations.Get("mcc.version_supported"));
@ -398,7 +398,7 @@ namespace MinecraftClient
lock (lastKeepAliveLock)
{
if (lastKeepAlive.AddSeconds(30) < DateTime.Now)
if (lastKeepAlive.AddSeconds(Settings.Timeout) < DateTime.Now)
{
if (((CancellationToken)o!).IsCancellationRequested)
return;

View file

@ -47,6 +47,7 @@ timestamps=false # Prepend timestamps to chat messages
autorespawn=false # Toggle auto respawn if client player was dead (make sure your spawn point is safe)
minecraftrealms=false # Enable support for joining Minecraft Realms worlds
moveheadwhilewalking=true # Enable head movement while walking to avoid anti-cheat triggers
timeout=30 # Set a custom timeout in seconds (Default: 30). Use only if you know what you're doing.
[Signature]
# Chat settings (affects minecraft 1.19+)

View file

@ -108,6 +108,7 @@ namespace MinecraftClient
public static bool AutoRespawn = false;
public static bool MinecraftRealmsEnabled = true;
public static bool MoveHeadWhileWalking = true;
public static int Timeout = 30;
// Signature
public static bool LoginWithSecureProfile = true;
@ -354,7 +355,8 @@ namespace MinecraftClient
{
case "login": Login = argValue; return true;
case "password": Password = argValue; return true;
case "type": AccountType = argValue == "mojang"
case "type":
AccountType = argValue == "mojang"
? ProtocolHandler.AccountType.Mojang
: ProtocolHandler.AccountType.Microsoft; return true;
case "method":
@ -385,6 +387,7 @@ namespace MinecraftClient
case "debugmessages": DebugMessages = str2bool(argValue); return true;
case "minecraftrealms": MinecraftRealmsEnabled = str2bool(argValue); return true;
case "moveheadwhilewalking": MoveHeadWhileWalking = str2bool(argValue); return true;
case "timeout": Timeout = str2int(argValue); return true;
case "botowners":
Bots_Owners.Clear();
@ -844,7 +847,8 @@ namespace MinecraftClient
{
return Convert.ToInt32(str.Trim());
}
catch {
catch
{
ConsoleIO.WriteLogLine(Translations.Get("error.setting.str2int", str));
return 0;
}