Files
2026-08-18 21:00:42 +02:00

34 lines
1.2 KiB
C#

using InnerNet;
using UnityEngine;
using System;
using AmongUs.GameOptions;
namespace AmongUsRevamped
{
[HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.DisconnectInternal))]
public static class DisconnectManager
{
public static bool Rehosting;
public static void Prefix(InnerNetClient __instance, DisconnectReasons reason, string stringReason)
{
Logger.Info($" Disconnected due to {reason}/{stringReason}, ping:{__instance.Ping})", "DisconnectManager");
if (!EOSManager.Instance.loginFlowFinished || EOSManager.Instance.authExpiredCallbackTriggered)
{
Logger.Info("Attempted to log in using EOS", "DisconnectManager");
EOSManager.Instance.AdultPermissionsFlow();
}
if (!Options.Rehost.GetBool() || reason == DisconnectReasons.NewConnection || reason == DisconnectReasons.ConnectionLimit || reason == DisconnectReasons.ExitGame) return;
_ = new LateTask(() =>
{
Rehosting = true;
PSManager.Instance.CreateGame(GameModes.Normal);
Logger.Info(Translator.Get("rehostSuccess"), "DisconnectManager");
}, 5f, "RehostManager");
}
}
}