diff --git a/Modules/ServerAddManager.cs b/Modules/ServerAddManager.cs index 81bbc7b2f..b0b6e0a49 100644 --- a/Modules/ServerAddManager.cs +++ b/Modules/ServerAddManager.cs @@ -13,8 +13,8 @@ public static class ServerAddManager private static readonly ServerManager serverManager = DestroyableSingleton.Instance; public static void Init() { - if (CultureInfo.CurrentCulture.Name.StartsWith("zh") && serverManager.AvailableRegions.Count == 7) return; - if (!CultureInfo.CurrentCulture.Name.StartsWith("zh") && serverManager.AvailableRegions.Count == 6) return; + if (CultureInfo.CurrentCulture.Name.StartsWith("zh") && serverManager.AvailableRegions.Count == 10) return; + if (!CultureInfo.CurrentCulture.Name.StartsWith("zh") && serverManager.AvailableRegions.Count == 7) return; serverManager.AvailableRegions = ServerManager.DefaultRegions; List regionInfos = @@ -23,6 +23,7 @@ public static class ServerAddManager CreateHttp("au-as.duikbo.at", "Modded Asia (MAS)", 443, true), CreateHttp("www.aumods.xyz", "Modded NA (MNA)", 443, true), CreateHttp("au-eu.duikbo.at", "Modded EU (MEU)", 443, true), + CreateHttp("35.247.251.253", "Modded SA (MSA)", 22023, false), ]; regionInfos.Where(x => !serverManager.AvailableRegions.Contains(x)).Do(serverManager.AddOrUpdateRegion); @@ -55,4 +56,4 @@ public static class ServerAddManager return CastHelper.Cast(obj.Pointer); } -} \ No newline at end of file +} diff --git a/Patches/DiscordPatch.cs b/Patches/DiscordPatch.cs new file mode 100644 index 000000000..de62c69a1 --- /dev/null +++ b/Patches/DiscordPatch.cs @@ -0,0 +1,63 @@ +using AmongUs.Data; +using Discord; +using HarmonyLib; +using System; + +namespace TOHE.Patches +{ + // Originally from Town of Us Rewritten, by Det + [HarmonyPatch(typeof(ActivityManager), nameof(ActivityManager.UpdateActivity))] + public class DiscordRPC + { + private static string lobbycode = ""; + private static string region = ""; + public static void Prefix([HarmonyArgument(0)] Activity activity) + { + var details = $"TOHE+ v{Main.PluginDisplayVersion}"; + activity.Details = details; + + try + { + if (activity.State != "In Menus") + { + if (!DataManager.Settings.Gameplay.StreamerMode) + { + int maxSize = GameOptionsManager.Instance.currentNormalGameOptions.MaxPlayers; + if (GameStates.IsLobby) + { + lobbycode = GameStartManager.Instance.GameRoomNameCode.text; + region = ServerManager.Instance.CurrentRegion.Name; + if (region == "North America") region = "NA"; + else if (region == "Europe") region = "EU"; + else if (region == "Asia") region = "AS"; + else if (region.Contains("MNA")) region = "MNA"; + else if (region.Contains("MEU")) region = "MEU"; + else if (region.Contains("MAS")) region = "MAS"; + } + + if (lobbycode != "" && region != "") + { + details = $"TOHE+ - {lobbycode} ({region})"; + } + + activity.Details = details; + } + else + { + details = $"TOHE+ v{Main.PluginDisplayVersion}"; + + activity.Details = details; + } + } + } + + catch (ArgumentException ex) + { + Logger.Error("Error in updating discord rpc", "DiscordPatch"); + Logger.Exception(ex, "DiscordPatch"); + details = $"TOHE+ v{Main.PluginDisplayVersion}"; + activity.Details = details; + } + } + } +}