Skip to content
This repository was archived by the owner on Oct 14, 2024. It is now read-only.

Commit

Permalink
新增:
Browse files Browse the repository at this point in the history
- 私服
- 服务器选择界面滑动
修复:
- 一些bug
重写:
- Ping部分
  • Loading branch information
Night-GUA committed Jul 30, 2024
1 parent dbee10e commit c45e6f0
Show file tree
Hide file tree
Showing 13 changed files with 402 additions and 121 deletions.
12 changes: 6 additions & 6 deletions YuEzTools/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public class Main : BasePlugin
public static readonly string ModColor = "#fffcbe"; // 咱们的模组颜色
public static readonly string MainMenuText = "Be Dream~"; // 咱们模组的首页标语
public const string PluginGuid = "com.Yu.YuEzTools"; //咱们模组的Guid
public const string PluginVersion = "1.1.25"; //咱们模组的版本号
public const string PluginVersion = "1.1.30"; //咱们模组的版本号
public const string CanUseInAmongUsVer = "2024.6.18"; //智齿的AU版本
public const int PluginCreation = 1;

Expand Down Expand Up @@ -84,6 +84,11 @@ public override void Load()//加载 启动!
{
Instance = this; //Main实例

PluginModuleInitializerAttribute.InitializeAll();

Logger = BepInEx.Logging.Logger.CreateLogSource("YuEzTools"); //输出前缀 设置!
YuEzTools.Logger.Enable();

menuKeybind = Config.Bind("YuET.GUI",
"Keybind",
"Delete",
Expand All @@ -106,11 +111,6 @@ public override void Load()//加载 启动!

BetaBuildURL = Config.Bind("Other", "BetaBuildURL", "");

Logger = BepInEx.Logging.Logger.CreateLogSource("YuEzTools"); //输出前缀 设置!
YuEzTools.Logger.Enable();

PluginModuleInitializerAttribute.InitializeAll();

if (Application.version == CanUseInAmongUsVer)
Logger.LogInfo($"AmongUs Version: {Application.version}"); //牢底居然有智齿的版本?!
else
Expand Down
13 changes: 13 additions & 0 deletions YuEzTools/Patches/CustomPatch.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using AmongUs.GameOptions;
using HarmonyLib;
using Hazel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace YuEzTools;

public enum CustomRPC
{
SetKickReason,
}
4 changes: 2 additions & 2 deletions YuEzTools/Patches/DisconnectPatch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ internal class ShowDisconnectPopupPatch
{
public static DisconnectReasons Reason;
public static string StringReason;
public static string ReasonByHost => string.Empty;
public static string ReasonByHost = string.Empty;
public static void Postfix(DisconnectPopup __instance)
{
_ = new LateTask(() =>
Expand All @@ -40,7 +40,7 @@ void SetText(string text)
else switch (Reason)
{
case DisconnectReasons.ExitGame:
SetText(GetString("DCNotify.ExitGame"));
SetText(__instance._textArea.text);
break;
case DisconnectReasons.Hacking:
SetText(GetString("DCNotify.Hacking"));
Expand Down
4 changes: 2 additions & 2 deletions YuEzTools/Patches/GameStartPatch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public static void Prefix(GameStartManager __instance)
public static void Postfix(GameStartManager __instance)
{
string warningMessage = "";
if(Toggles.AutoExit && PingTracker_Update.fps <= 10)
if(Toggles.AutoExit && PingTrackerUpdatePatch.fps <= 10)
{
exitTimer += Time.deltaTime;
if (exitTimer >= 5)
Expand All @@ -98,7 +98,7 @@ public static void Postfix(GameStartManager __instance)
if (exitTimer != 0)
warningMessage = Utils.Utils.ColorString(Color.red,
string.Format(GetString("Warning.AutoExitAtMismatchedFPS"),
PingTracker_Update.fps, Math.Round(5 - exitTimer).ToString()));
PingTrackerUpdatePatch.fps, Math.Round(5 - exitTimer).ToString()));
}
if (warningMessage == "")
{
Expand Down
18 changes: 9 additions & 9 deletions YuEzTools/Patches/OnPlayerJoinedPatch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ public static void Postfix(AmongUsClient __instance, [HarmonyArgument(0)] Client
}
}

// [HarmonyPatch(typeof(AmongUsClient), nameof(AmongUsClient.OnGameJoined))]
// class OnGameJoined
// {
// //private static int CID;
// public static void Postfix(AmongUsClient __instance, [HarmonyArgument(0)] ClientData client)
// {
// ShowDisconnectPopupPatch.ReasonByHost = string.Empty;
// }
// }
[HarmonyPatch(typeof(AmongUsClient), nameof(AmongUsClient.OnGameJoined))]
class OnGameJoined
{
//private static int CID;
public static void Postfix(AmongUsClient __instance, [HarmonyArgument(0)] ClientData client)
{
ShowDisconnectPopupPatch.ReasonByHost = string.Empty;
}
}
[HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.DisconnectInternal))]
class DisconnectInternalPatch
{
Expand Down
120 changes: 77 additions & 43 deletions YuEzTools/Patches/Ping.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using UnityEngine;
using UnityEngine.UI;
using System.Diagnostics;
using System.Text;
using Il2CppSystem;
using Rewired.UI.ControlMapper;
using TMPro;
Expand All @@ -13,78 +14,111 @@

namespace YuEzTools;

[HarmonyPriority(Priority.Low)]
[HarmonyPatch(typeof(PingTracker), nameof(PingTracker.Update))]
public static class PingTracker_Update
internal class PingTrackerUpdatePatch
{
private static float deltaTime;
public static string ServerName = "";
private static TextMeshPro pingTrackerCredential = null;
private static AspectPosition pingTrackerCredentialAspectPos = null;
public static float fps;

[HarmonyPostfix]
public static void Postfix(PingTracker __instance)

private static void Postfix(PingTracker __instance)
{
var offset_x = 2.5f; //从右边缘偏移
var offset_y = 6f; //从右边缘偏移
if (HudManager.InstanceExists && HudManager._instance.Chat.chatButton.gameObject.active) offset_x -= 0.8f; //如果有聊天按钮,则有额外的偏移量
//if (FriendsListManager.InstanceExists && FriendsListManager._instance.FriendsListButton.Button.active) offset_x -= 0.8f; //当有好友列表按钮时,还会有额外的偏移量
__instance.GetComponent<AspectPosition>().DistanceFromEdge = new Vector3(offset_x, offset_y, 0f);
__instance.text.text = "";
if (pingTrackerCredential == null)
{
var uselessPingTracker = UnityEngine.Object.Instantiate(__instance, __instance.transform.parent);
pingTrackerCredential = uselessPingTracker.GetComponent<TextMeshPro>();
UnityEngine.Object.Destroy(uselessPingTracker);
pingTrackerCredential.alignment = TextAlignmentOptions.TopRight;
pingTrackerCredential.color = new(1f, 1f, 1f, 0.7f);
pingTrackerCredential.rectTransform.pivot = new(1f, 1f); // 中心を右上角に設定
pingTrackerCredentialAspectPos = pingTrackerCredential.GetComponent<AspectPosition>();
pingTrackerCredentialAspectPos.Alignment = AspectPosition.EdgeAlignments.RightTop;
}

if (pingTrackerCredentialAspectPos)
{
pingTrackerCredentialAspectPos.DistanceFromEdge =
DestroyableSingleton<HudManager>.InstanceExists &&
DestroyableSingleton<HudManager>.Instance.Chat.chatButton.gameObject.active
? new(2.5f, 0f, -800f)
: new(1.8f, 0f, -800f);
}

__instance.text.text = __instance.ToString();
__instance.text.alignment = TextAlignmentOptions.TopRight;
__instance.text.text =
$"<color={Main.ModColor}>{Main.ModName}</color><color=#00FFFF> v{Main.PluginVersion}</color>";
if(Toggles.ShowCommit) __instance.text.text += $"<color=#00FFFF>({ThisAssembly.Git.Commit})</color>";
if(Toggles.ShowModText) __instance.text.text += $"\n{Main.MainMenuText}";

if(Toggles.FPSPlus && Application.targetFrameRate != 240) Application.targetFrameRate = 240;
else if(!Toggles.FPSPlus && Application.targetFrameRate != 60) Application.targetFrameRate = 60;

if(Toggles.ShowIsSafe)

StringBuilder sb = new();
sb.Append($"<color={Main.ModColor}>{Main.ModName}</color><color=#00FFFF> v{Main.PluginVersion}</color>");
if (Toggles.ShowCommit) sb.Append($"<color=#00FFFF>({ThisAssembly.Git.Commit})</color>");
if (Toggles.ShowModText) sb.Append($"\r\n").Append($"{Main.MainMenuText}");

if (Toggles.FPSPlus && Application.targetFrameRate != 240) Application.targetFrameRate = 240;
else if (!Toggles.FPSPlus && Application.targetFrameRate != 60) Application.targetFrameRate = 60;

if (Toggles.ShowIsSafe)
{
if (Toggles.SafeMode)
__instance.text.text +=
"\n<color=#DC143C>[Safe]</color>";
sb.Append($"\r\n").Append($"<color=#DC143C>[Safe]</color>");
else
__instance.text.text +=
"\n<color=#1E90FF>[UnSafe]</color>";
sb.Append($"\r\n").Append($"<color=#1E90FF>[UnSafe]</color>");
}
if(Toggles.ShowSafeText)

if (Toggles.ShowSafeText)
{
if (Toggles.SafeMode)
__instance.text.text += $"\n{Translator.GetString("SafeModeText")}";
sb.Append($"\r\n").Append($"{Translator.GetString("SafeModeText")}");
else
__instance.text.text += $"\n{Translator.GetString("UnSafeModeText")}";
sb.Append($"\r\n").Append($"{Translator.GetString("UnSafeModeText")}");
}
if(Toggles.ShowIsDark)

if (Toggles.ShowIsDark)
{
if (Toggles.DarkMode)
__instance.text.text += "\n<color=#00BFFF>[Dark]</color>";
sb.Append($"\r\n").Append("<color=#00BFFF>[Dark]</color>");
else
__instance.text.text += "\n<color=#00FA9A>[Light]</color>";
sb.Append($"\r\n").Append("<color=#00FA9A>[Light]</color>");
}

if (Toggles.ShowIsAutoExit) __instance.text.text += Toggles.AutoExit ? "\n<color=#DC143C>[AutoExit]</color>" : "\n<color=#1E90FF>[UnAutoExit]</color>";

if (Toggles.ShowIsAutoExit)
sb.Append($"\r\n").Append(Toggles.AutoExit
? "<color=#DC143C>[AutoExit]</color>"
: "<color=#1E90FF>[UnAutoExit]</color>");
#if DEBUG
__instance.text.text += "\n<color=#FFC0CB>[DEBUG]</color>";
sb.Append($"\r\n").Append("<color=#FFC0CB>[DEBUG]</color>");
#endif
#if CANARY
__instance.text.text += "\n<color=#6A5ACD>[CANARY]</color>";
sb.Append($"\r\n").Append("<color=#6A5ACD>[CANARY]</color>");
#endif
#if RELEASE
__instance.text.text += "\n<color=#00FFFF>[RELEASE]</color>";
sb.Append($"\r\n").Append("<color=#00FFFF>[RELEASE]</color>");
#endif
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
fps = Mathf.Ceil(1.0f / deltaTime);
if(Toggles.ShowPing) __instance.text.text += Utils.Utils.getColoredPingText(AmongUsClient.Instance.Ping); // 书写Ping
if(Toggles.ShowFPS) __instance.text.text += Utils.Utils.getColoredFPSText(fps); // 书写FPS

var ping = AmongUsClient.Instance.Ping;
if (Toggles.ShowPing) sb.Append($"\r\n").Append(Utils.Utils.getColoredPingText(AmongUsClient.Instance.Ping) + "<size=60%>Ping</size></color>"); // 书写Ping
if (Toggles.ShowFPS) sb.Append(!Toggles.ShowPing ? $"\r\n" : " ").Append(Utils.Utils.getColoredFPSText(fps) + "<size=60%>FPS</size></color>"); // 书写FPS
if(Toggles.ShowServer) sb.Append((!Toggles.ShowFPS && !Toggles.ShowPing) ? $"\r\n" : " ").Append(" " + (GetPlayer.IsOnlineGame ? ServerName : GetString("Local")));
// sb.Append($"\r\n")
// .Append(
// $"{Utils.Utils.getColoredPingText(ping)} <size=60%>Ping</size></color> {Utils.Utils.getColoredFPSText(fps)} <size=60%>FPS</size></color>{" " + (GetPlayer.IsOnlineGame ? ServerName : GetString("Local"))}");

DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local);
DateTime dt1 = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time"));//参数对应国家或者时区 ***对于有夏令时冬令时的区域,程序会自动调整***
if(Toggles.ShowLocalNowTime)__instance.text.text += "\n" + DateTime.Now.ToString();
if (Toggles.ShowUTC) __instance.text.text += "\r\n" + "UTC: " + dt.ToString();
DateTime dt1 =
TimeZoneInfo.ConvertTimeFromUtc(dt,
TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time")); //参数对应国家或者时区 ***对于有夏令时冬令时的区域,程序会自动调整***
if (Toggles.ShowLocalNowTime) sb.Append($"\r\n").Append(DateTime.Now.ToString());
if (Toggles.ShowUTC) sb.Append($"\r\n").Append("UTC: " + dt.ToString());


if (Toggles.ShowRoomTime && GetPlayer.IsLobby && AmongUsClient.Instance.AmHost && GetPlayer.IsOnlineGame)
sb.Append($"\r\n").Append($"<color=#FFD700>" + GameStartManagerPatch.countDown + "</color>");
sb.Append($"\r\n").Append($"<color=#FFFF00>By</color> <color=#FF0000>Yu</color>");

if (Toggles.ShowRoomTime && GetPlayer.IsLobby && AmongUsClient.Instance.AmHost && GetPlayer.IsOnlineGame)__instance.text.text += "\n<color=#FFD700>"+GameStartManagerPatch.countDown+"</color>";
__instance.text.text += "\n<color=#FFFF00>By</color> <color=#FF0000>Yu</color>";
pingTrackerCredential.gameObject.SetActive(true);
pingTrackerCredential.text = sb.ToString();
if (GameSettingMenu.Instance?.gameObject?.active ?? false)
pingTrackerCredential.text = "";
}
}
31 changes: 31 additions & 0 deletions YuEzTools/Patches/RegionMenuPatch.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using HarmonyLib;
using UnityEngine;

namespace YuEzTools.Patches;

[HarmonyPatch(typeof(RegionMenu))]
public class RegionMenuPatch
{
public static Scroller Scroller;

[HarmonyPatch(nameof(RegionMenu.Awake)), HarmonyPostfix]
public static void Awake_Postfix(RegionMenu __instance)
{
if (Scroller != null) return;

var back = __instance.ButtonPool.transform.FindChild("Backdrop");
back.transform.localScale *= 10f;

Scroller = __instance.ButtonPool.transform.parent.gameObject.AddComponent<Scroller>();
Scroller.Inner = __instance.ButtonPool.transform;
Scroller.MouseMustBeOverToScroll = true;
Scroller.ClickMask = back.GetComponent<BoxCollider2D>();
Scroller.ScrollWheelSpeed = 0.7f;
Scroller.SetYBoundsMin(0f);
Scroller.SetYBoundsMax(4f);
Scroller.allowY = true;
}
[HarmonyPatch(nameof(RegionMenu.ChooseOption)), HarmonyPostfix]
public static void ChooseOption_Postfix()
=> ServerAddManager.SetServerName();
}
Loading

0 comments on commit c45e6f0

Please sign in to comment.