mirror of
https://github.com/D1GQ/BetterAmongUs.git
synced 2026-10-19 15:51:52 +00:00
Make everything that is public internal and remove debugmenu
This commit is contained in:
1 parent
1f4673c54b
commit
e333f8a357
155 files changed
+971
-1366
No files matched your search
+3
-3
@@ -44,15 +44,15 @@ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
|
||||
# Symbol specifications
|
||||
|
||||
dotnet_naming_symbols.interface.applicable_kinds = interface
|
||||
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.interface.applicable_accessibilities = internal, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.interface.required_modifiers =
|
||||
|
||||
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
|
||||
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.types.applicable_accessibilities = internal, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.types.required_modifiers =
|
||||
|
||||
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
|
||||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = internal, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.non_field_members.required_modifiers =
|
||||
|
||||
# Naming styles
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class AllCommandsCommand : BaseCommand
|
||||
internal class AllCommandsCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "commands";
|
||||
public override string Description => "Get information about all commands";
|
||||
internal override string Name => "commands";
|
||||
internal override string Description => "Get information about all commands";
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
BaseCommand?[] allNormalCommands = allCommands.Where(cmd => cmd.Type == CommandType.Normal && cmd.ShowCommand()).ToArray();
|
||||
BaseCommand?[] allSponsorCommands = allCommands.Where(cmd => cmd.Type == CommandType.Sponsor && cmd.ShowCommand()).ToArray();
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
namespace BetterAmongUs.Commands
|
||||
{
|
||||
public abstract class BaseArgument(BaseCommand? command, string argInfo)
|
||||
internal abstract class BaseArgument(BaseCommand? command, string argInfo)
|
||||
{
|
||||
public BaseCommand? Command { get; } = command;
|
||||
public string ArgInfo { get; } = argInfo;
|
||||
public string Arg { get; set; } = string.Empty;
|
||||
internal BaseCommand? Command { get; } = command;
|
||||
internal string ArgInfo { get; } = argInfo;
|
||||
internal string Arg { get; set; } = string.Empty;
|
||||
protected virtual string[] ArgSuggestions => GetArgSuggestions.Invoke();
|
||||
public Func<string[]> GetArgSuggestions { get; set; } = () => { return []; };
|
||||
public string GetClosestSuggestion() => ArgSuggestions.FirstOrDefault(name => name.StartsWith(Arg, StringComparison.OrdinalIgnoreCase)) ?? string.Empty;
|
||||
internal Func<string[]> GetArgSuggestions { get; set; } = () => { return []; };
|
||||
internal string GetClosestSuggestion() => ArgSuggestions.FirstOrDefault(name => name.StartsWith(Arg, StringComparison.OrdinalIgnoreCase)) ?? string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
public class BoolArgument(BaseCommand? command, string argInfo = "{bool}") : BaseArgument(command, argInfo)
|
||||
internal class BoolArgument(BaseCommand? command, string argInfo = "{bool}") : BaseArgument(command, argInfo)
|
||||
{
|
||||
protected override string[] ArgSuggestions => ["true", "false"];
|
||||
public bool? GetBool()
|
||||
internal bool? GetBool()
|
||||
{
|
||||
if (Arg.ToLower() is "true")
|
||||
{
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
public class PlayerArgument(BaseCommand? command, string argInfo = "{player}") : BaseArgument(command, argInfo)
|
||||
internal class PlayerArgument(BaseCommand? command, string argInfo = "{player}") : BaseArgument(command, argInfo)
|
||||
{
|
||||
protected override string[] ArgSuggestions => Main.AllPlayerControls.OrderBy(pc => pc.IsLocalPlayer() ? 0 : 1).Select(pc => pc.Data.PlayerName.Replace(' ', '_')).ToArray();
|
||||
public PlayerControl? TryGetTarget()
|
||||
internal PlayerControl? TryGetTarget()
|
||||
{
|
||||
var player = Main.AllPlayerControls.FirstOrDefault(pc => pc.Data.PlayerName.ToLower().Replace(' ', '_') == Arg.ToLower());
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
public class StringArgument(BaseCommand? command, string argInfo = "{String}") : BaseArgument(command, argInfo)
|
||||
internal class StringArgument(BaseCommand? command, string argInfo = "{String}") : BaseArgument(command, argInfo)
|
||||
{
|
||||
}
|
||||
+15
-15
@@ -3,34 +3,34 @@ using BetterAmongUs.Items.Attributes;
|
||||
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
public enum CommandType
|
||||
internal enum CommandType
|
||||
{
|
||||
Normal,
|
||||
Sponsor,
|
||||
Debug,
|
||||
}
|
||||
|
||||
public abstract class BaseCommand
|
||||
internal abstract class BaseCommand
|
||||
{
|
||||
public static readonly BaseCommand?[] allCommands = [.. RegisterCommandAttribute.Instances];
|
||||
public virtual CommandType Type => CommandType.Normal;
|
||||
public string[] Names => ShortNames.Concat(new[] { Name }).ToArray();
|
||||
public abstract string Name { get; }
|
||||
public virtual string[] ShortNames => [];
|
||||
public abstract string Description { get; }
|
||||
public virtual BaseArgument[]? Arguments { get; } = [];
|
||||
public virtual bool SetChatTimer { get; set; } = false;
|
||||
public virtual bool ShowCommand() => true;
|
||||
public virtual bool ShowSuggestion() => ShowCommand();
|
||||
public abstract void Run();
|
||||
internal static readonly BaseCommand?[] allCommands = [.. RegisterCommandAttribute.Instances];
|
||||
internal virtual CommandType Type => CommandType.Normal;
|
||||
internal string[] Names => ShortNames.Concat(new[] { Name }).ToArray();
|
||||
internal abstract string Name { get; }
|
||||
internal virtual string[] ShortNames => [];
|
||||
internal abstract string Description { get; }
|
||||
internal virtual BaseArgument[]? Arguments { get; } = [];
|
||||
internal virtual bool SetChatTimer { get; set; } = false;
|
||||
internal virtual bool ShowCommand() => true;
|
||||
internal virtual bool ShowSuggestion() => ShowCommand();
|
||||
internal abstract void Run();
|
||||
|
||||
public static string CommandResultText(string text, bool onlyGetStr = false)
|
||||
internal static string CommandResultText(string text, bool onlyGetStr = false)
|
||||
{
|
||||
if (!onlyGetStr) Utils.AddChatPrivate(text);
|
||||
return text;
|
||||
}
|
||||
|
||||
public static string CommandErrorText(string error, bool onlyGetStr = false)
|
||||
internal static string CommandErrorText(string error, bool onlyGetStr = false)
|
||||
{
|
||||
string er = "<color=#f50000><size=150%><b>Error:</b></size></color>";
|
||||
if (!onlyGetStr) Utils.AddChatPrivate($"<color=#730000>{er}\n{error}");
|
||||
|
||||
@@ -5,13 +5,13 @@ using BetterAmongUs.Modules;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class DumpCommand : BaseCommand
|
||||
internal class DumpCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "dump";
|
||||
public override string Description => "Dump the entire log to the user's desktop";
|
||||
public override bool ShowCommand() => !GameState.IsInGamePlay || GameState.IsDev;
|
||||
internal override string Name => "dump";
|
||||
internal override string Description => "Dump the entire log to the user's desktop";
|
||||
internal override bool ShowCommand() => !GameState.IsInGamePlay || GameState.IsDev;
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
if (GameState.IsInGamePlay && !GameState.IsDev) return;
|
||||
|
||||
|
||||
@@ -4,12 +4,12 @@ using BetterAmongUs.Modules;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class EndGameCommand : BaseCommand
|
||||
internal class EndGameCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "endgame";
|
||||
public override string Description => "Force end the game";
|
||||
public override bool ShowCommand() => GameState.IsHost && !GameState.IsLobby && !GameState.IsFreePlay;
|
||||
public override void Run()
|
||||
internal override string Name => "endgame";
|
||||
internal override string Description => "Force end the game";
|
||||
internal override bool ShowCommand() => GameState.IsHost && !GameState.IsLobby && !GameState.IsFreePlay;
|
||||
internal override void Run()
|
||||
{
|
||||
GameManager.Instance.RpcEndGame(GameOverReason.ImpostorDisconnect, false);
|
||||
}
|
||||
|
||||
@@ -5,13 +5,13 @@ using BetterAmongUs.Modules;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class ExileCommand : BaseCommand
|
||||
internal class ExileCommand : BaseCommand
|
||||
{
|
||||
public override CommandType Type => CommandType.Debug;
|
||||
public override string Name => "exile";
|
||||
public override string Description => "Set self as dead";
|
||||
public override bool ShowCommand() => GameState.IsFreePlay;
|
||||
public override void Run()
|
||||
internal override CommandType Type => CommandType.Debug;
|
||||
internal override string Name => "exile";
|
||||
internal override string Description => "Set self as dead";
|
||||
internal override bool ShowCommand() => GameState.IsFreePlay;
|
||||
internal override void Run()
|
||||
{
|
||||
PlayerControl.LocalPlayer.Exiled();
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class HelpCommand : BaseCommand
|
||||
internal class HelpCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "help";
|
||||
public override string Description => "Get help with commands";
|
||||
public override void Run()
|
||||
internal override string Name => "help";
|
||||
internal override string Description => "Get help with commands";
|
||||
internal override void Run()
|
||||
{
|
||||
CommandResultText("Welcome to <color=#0dff00>♻BetterAmongUs♻</color> This mod enhances your gameplay experience with a variety of exciting features.\n" +
|
||||
"Explore the pause menu to access more options and better settings tailored to your needs.\n" +
|
||||
|
||||
@@ -5,10 +5,10 @@ using BetterAmongUs.Modules;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class KickCommand : BaseCommand
|
||||
internal class KickCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "kick";
|
||||
public override string Description => "Kick a player from the game";
|
||||
internal override string Name => "kick";
|
||||
internal override string Description => "Kick a player from the game";
|
||||
public KickCommand()
|
||||
{
|
||||
_arguments = new Lazy<BaseArgument[]>(() => new BaseArgument[]
|
||||
@@ -18,12 +18,12 @@ public class KickCommand : BaseCommand
|
||||
});
|
||||
}
|
||||
private readonly Lazy<BaseArgument[]> _arguments;
|
||||
public override BaseArgument[]? Arguments => _arguments.Value;
|
||||
internal override BaseArgument[]? Arguments => _arguments.Value;
|
||||
|
||||
private PlayerArgument? playerArgument => (PlayerArgument)Arguments[0];
|
||||
private BoolArgument? boolArgument => (BoolArgument)Arguments[1];
|
||||
public override bool ShowCommand() => GameState.IsHost;
|
||||
public override void Run()
|
||||
internal override bool ShowCommand() => GameState.IsHost;
|
||||
internal override void Run()
|
||||
{
|
||||
var player = playerArgument.TryGetTarget();
|
||||
var isBan = boolArgument.GetBool();
|
||||
|
||||
@@ -5,12 +5,12 @@ using System.Text;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class MeCommand : BaseCommand
|
||||
internal class MeCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "me";
|
||||
public override string Description => "Get information about your user data";
|
||||
internal override string Name => "me";
|
||||
internal override string Description => "Get information about your user data";
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
StringBuilder sb = new();
|
||||
var format1 = "┌ •";
|
||||
|
||||
@@ -5,10 +5,10 @@ using System.Text;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class PlayerInfoCommand : BaseCommand
|
||||
internal class PlayerInfoCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "player";
|
||||
public override string Description => "Get a Players information";
|
||||
internal override string Name => "player";
|
||||
internal override string Description => "Get a Players information";
|
||||
|
||||
public PlayerInfoCommand()
|
||||
{
|
||||
@@ -18,11 +18,11 @@ public class PlayerInfoCommand : BaseCommand
|
||||
});
|
||||
}
|
||||
private readonly Lazy<BaseArgument[]> _arguments;
|
||||
public override BaseArgument[]? Arguments => _arguments.Value;
|
||||
internal override BaseArgument[]? Arguments => _arguments.Value;
|
||||
|
||||
private PlayerArgument? playerArgument => (PlayerArgument)Arguments[0];
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
var player = playerArgument.TryGetTarget();
|
||||
if (player != null)
|
||||
|
||||
@@ -5,12 +5,12 @@ using System.Text;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class PlayersInfoCommand : BaseCommand
|
||||
internal class PlayersInfoCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "players";
|
||||
public override string Description => "Get all Player information";
|
||||
internal override string Name => "players";
|
||||
internal override string Description => "Get all Player information";
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
StringBuilder sb = new();
|
||||
foreach (PlayerControl player in Main.AllPlayerControls.Where(player => !player.isDummy))
|
||||
|
||||
@@ -5,11 +5,11 @@ using BetterAmongUs.Managers;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class RemoveAllCommand : BaseCommand
|
||||
internal class RemoveAllCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "removeall";
|
||||
public override string Description => "Remove all players from local <color=#4f92ff>Anti-Cheat</color> data";
|
||||
public override void Run()
|
||||
internal override string Name => "removeall";
|
||||
internal override string Description => "Remove all players from local <color=#4f92ff>Anti-Cheat</color> data";
|
||||
internal override void Run()
|
||||
{
|
||||
BetterDataManager.ClearCheatData();
|
||||
Utils.AddChatPrivate($"All data successfully removed from local <color=#4f92ff>Anti-Cheat</color>!");
|
||||
|
||||
@@ -6,10 +6,10 @@ using BetterAmongUs.Modules.AntiCheat;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class RemovePlayerCommand : BaseCommand
|
||||
internal class RemovePlayerCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "removeplayer";
|
||||
public override string Description => "Remove player from local <color=#4f92ff>Anti-Cheat</color> data";
|
||||
internal override string Name => "removeplayer";
|
||||
internal override string Description => "Remove player from local <color=#4f92ff>Anti-Cheat</color> data";
|
||||
|
||||
public RemovePlayerCommand()
|
||||
{
|
||||
@@ -20,10 +20,10 @@ public class RemovePlayerCommand : BaseCommand
|
||||
identifierArgument.GetArgSuggestions = BAUAntiCheat.GatherAllData;
|
||||
}
|
||||
private readonly Lazy<BaseArgument[]> _arguments;
|
||||
public override BaseArgument[]? Arguments => _arguments.Value;
|
||||
internal override BaseArgument[]? Arguments => _arguments.Value;
|
||||
|
||||
private StringArgument? identifierArgument => (StringArgument)Arguments[0];
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
if (BetterDataManager.RemovePlayer(identifierArgument.Arg) == true)
|
||||
{
|
||||
|
||||
@@ -5,13 +5,13 @@ using BetterAmongUs.Modules;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class ReviveCommand : BaseCommand
|
||||
internal class ReviveCommand : BaseCommand
|
||||
{
|
||||
public override CommandType Type => CommandType.Debug;
|
||||
public override string Name => "revive";
|
||||
public override string Description => "Set self as alive";
|
||||
public override bool ShowCommand() => GameState.IsFreePlay;
|
||||
public override void Run()
|
||||
internal override CommandType Type => CommandType.Debug;
|
||||
internal override string Name => "revive";
|
||||
internal override string Description => "Set self as alive";
|
||||
internal override bool ShowCommand() => GameState.IsFreePlay;
|
||||
internal override void Run()
|
||||
{
|
||||
PlayerControl.LocalPlayer.Revive();
|
||||
}
|
||||
|
||||
@@ -7,11 +7,11 @@ using BetterAmongUs.Patches;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class RoleCommand : BaseCommand
|
||||
internal class RoleCommand : BaseCommand
|
||||
{
|
||||
public override CommandType Type => CommandType.Debug;
|
||||
public override string Name => "role";
|
||||
public override string Description => "Set your role for the next game";
|
||||
internal override CommandType Type => CommandType.Debug;
|
||||
internal override string Name => "role";
|
||||
internal override string Description => "Set your role for the next game";
|
||||
|
||||
public RoleCommand()
|
||||
{
|
||||
@@ -21,14 +21,15 @@ public class RoleCommand : BaseCommand
|
||||
});
|
||||
roleArgument.GetArgSuggestions = () => { return RoleManager.Instance.AllRoles.Select(role => role.NiceName.ToLower()).ToArray(); };
|
||||
}
|
||||
|
||||
private readonly Lazy<BaseArgument[]> _arguments;
|
||||
public override BaseArgument[]? Arguments => _arguments.Value;
|
||||
internal override BaseArgument[]? Arguments => _arguments.Value;
|
||||
|
||||
private StringArgument? roleArgument => (StringArgument)Arguments[0];
|
||||
|
||||
public override bool ShowCommand() => GameState.IsHost && Main.MyData.HasAll() && Main.MyData.IsVerified();
|
||||
internal override bool ShowCommand() => GameState.IsHost && Main.MyData.HasAll() && Main.MyData.IsVerified();
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
var role = RoleManager.Instance.AllRoles.FirstOrDefault(r => r.NiceName.StartsWith(roleArgument.Arg));
|
||||
if (role != null)
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class SetPrefixCommand : BaseCommand
|
||||
internal class SetPrefixCommand : BaseCommand
|
||||
{
|
||||
public override string Name => "setprefix";
|
||||
public override string Description => "Set command prefix";
|
||||
internal override string Name => "setprefix";
|
||||
internal override string Description => "Set command prefix";
|
||||
|
||||
public SetPrefixCommand()
|
||||
{
|
||||
@@ -16,11 +16,11 @@ public class SetPrefixCommand : BaseCommand
|
||||
});
|
||||
}
|
||||
private readonly Lazy<BaseArgument[]> _arguments;
|
||||
public override BaseArgument[]? Arguments => _arguments.Value;
|
||||
internal override BaseArgument[]? Arguments => _arguments.Value;
|
||||
|
||||
private StringArgument? prefixArgument => (StringArgument)Arguments[0];
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
var oldPrefix = Main.CommandPrefix.Value;
|
||||
var prefix = prefixArgument.Arg.ToCharArray().First().ToString();
|
||||
|
||||
@@ -7,11 +7,11 @@ using BetterAmongUs.Patches;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class SetRoleCommand : BaseCommand
|
||||
internal class SetRoleCommand : BaseCommand
|
||||
{
|
||||
public override CommandType Type => CommandType.Debug;
|
||||
public override string Name => "setrole";
|
||||
public override string Description => "Set another players role for the next game";
|
||||
internal override CommandType Type => CommandType.Debug;
|
||||
internal override string Name => "setrole";
|
||||
internal override string Description => "Set another players role for the next game";
|
||||
|
||||
public SetRoleCommand()
|
||||
{
|
||||
@@ -23,14 +23,14 @@ public class SetRoleCommand : BaseCommand
|
||||
roleArgument.GetArgSuggestions = () => { return RoleManager.Instance.AllRoles.Select(role => role.NiceName.ToLower()).ToArray(); };
|
||||
}
|
||||
private readonly Lazy<BaseArgument[]> _arguments;
|
||||
public override BaseArgument[]? Arguments => _arguments.Value;
|
||||
internal override BaseArgument[]? Arguments => _arguments.Value;
|
||||
|
||||
private PlayerArgument? playerArgument => (PlayerArgument)Arguments[0];
|
||||
private StringArgument? roleArgument => (StringArgument)Arguments[1];
|
||||
|
||||
public override bool ShowCommand() => GameState.IsHost && Main.MyData.HasAll() && Main.MyData.IsVerified();
|
||||
internal override bool ShowCommand() => GameState.IsHost && Main.MyData.HasAll() && Main.MyData.IsVerified();
|
||||
|
||||
public override void Run()
|
||||
internal override void Run()
|
||||
{
|
||||
var player = playerArgument.TryGetTarget();
|
||||
if (player.IsLocalPlayer())
|
||||
|
||||
@@ -5,13 +5,13 @@ using BetterAmongUs.Modules;
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class SuicideCommand : BaseCommand
|
||||
internal class SuicideCommand : BaseCommand
|
||||
{
|
||||
public override CommandType Type => CommandType.Debug;
|
||||
public override string Name => "suicide";
|
||||
public override string Description => "Kill self";
|
||||
public override bool ShowCommand() => GameState.IsFreePlay;
|
||||
public override void Run()
|
||||
internal override CommandType Type => CommandType.Debug;
|
||||
internal override string Name => "suicide";
|
||||
internal override string Description => "Kill self";
|
||||
internal override bool ShowCommand() => GameState.IsFreePlay;
|
||||
internal override void Run()
|
||||
{
|
||||
PlayerControl.LocalPlayer.MurderPlayer(PlayerControl.LocalPlayer, MurderResultFlags.Succeeded);
|
||||
}
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
namespace BetterAmongUs.Commands;
|
||||
|
||||
[RegisterCommand]
|
||||
public class TestCommand : BaseCommand
|
||||
internal class TestCommand : BaseCommand
|
||||
{
|
||||
public override CommandType Type => CommandType.Debug;
|
||||
public override string Name => "test";
|
||||
public override string Description => "Test Command";
|
||||
public override void Run()
|
||||
internal override CommandType Type => CommandType.Debug;
|
||||
internal override string Name => "test";
|
||||
internal override string Description => "Test Command";
|
||||
internal override void Run()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public static class CastHelper
|
||||
internal static class CastHelper
|
||||
{
|
||||
public static bool TryCast<T>(this object obj) => obj is T;
|
||||
internal static bool TryCast<T>(this object obj) => obj is T;
|
||||
|
||||
public static bool TryCast<T>(this object obj, out T? item) where T : class
|
||||
internal static bool TryCast<T>(this object obj, out T? item) where T : class
|
||||
{
|
||||
if (obj != null && obj is T casted)
|
||||
{
|
||||
|
||||
+12
-12
@@ -11,7 +11,7 @@ namespace BetterAmongUs;
|
||||
|
||||
class Logger
|
||||
{
|
||||
public static void Log(string info, string tag = "Log", bool logConsole = true, ConsoleColor color = ConsoleColor.White, bool hostOnly = false)
|
||||
internal static void Log(string info, string tag = "Log", bool logConsole = true, ConsoleColor color = ConsoleColor.White, bool hostOnly = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -30,7 +30,7 @@ class Logger
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
public static void LogMethod(
|
||||
internal static void LogMethod(
|
||||
string info = "",
|
||||
Type? runtimeType = null,
|
||||
bool hostOnly = false,
|
||||
@@ -52,7 +52,7 @@ class Logger
|
||||
Log(logMessage, "MethodLog", hostOnly);
|
||||
}
|
||||
|
||||
public static void LogMethodPrivate(
|
||||
internal static void LogMethodPrivate(
|
||||
string info = "",
|
||||
Type? runtimeType = null,
|
||||
bool hostOnly = false,
|
||||
@@ -74,18 +74,18 @@ class Logger
|
||||
LogPrivate(logMessage, "MethodLog", hostOnly);
|
||||
}
|
||||
|
||||
public static void LogHeader(string info, string tag = "LogHeader", bool hostOnly = false, bool logConsole = true) => Log($" >-------------- {info} --------------<", tag, hostOnly: hostOnly, logConsole: logConsole);
|
||||
public static void LogCheat(string info, string tag = "AntiCheat", bool hostOnly = false, bool logConsole = true) => Log(info, tag, color: ConsoleColor.Green, hostOnly: hostOnly, logConsole: logConsole);
|
||||
public static void Error(string info, string tag = "Error", bool hostOnly = false, bool logConsole = true) => Log(info, tag, color: ConsoleColor.Red, hostOnly: hostOnly, logConsole: logConsole);
|
||||
public static void Error(Exception ex, string tag = "Error", bool hostOnly = false, bool logConsole = true) => Log(ex.ToString(), tag, color: ConsoleColor.Red, hostOnly: hostOnly, logConsole: logConsole);
|
||||
public static void Warning(string info, string tag = "Warning", bool hostOnly = false, bool logConsole = true) => Log(info, tag, color: ConsoleColor.Yellow, hostOnly: hostOnly, logConsole: logConsole);
|
||||
public static void Test()
|
||||
internal static void LogHeader(string info, string tag = "LogHeader", bool hostOnly = false, bool logConsole = true) => Log($" >-------------- {info} --------------<", tag, hostOnly: hostOnly, logConsole: logConsole);
|
||||
internal static void LogCheat(string info, string tag = "AntiCheat", bool hostOnly = false, bool logConsole = true) => Log(info, tag, color: ConsoleColor.Green, hostOnly: hostOnly, logConsole: logConsole);
|
||||
internal static void Error(string info, string tag = "Error", bool hostOnly = false, bool logConsole = true) => Log(info, tag, color: ConsoleColor.Red, hostOnly: hostOnly, logConsole: logConsole);
|
||||
internal static void Error(Exception ex, string tag = "Error", bool hostOnly = false, bool logConsole = true) => Log(ex.ToString(), tag, color: ConsoleColor.Red, hostOnly: hostOnly, logConsole: logConsole);
|
||||
internal static void Warning(string info, string tag = "Warning", bool hostOnly = false, bool logConsole = true) => Log(info, tag, color: ConsoleColor.Yellow, hostOnly: hostOnly, logConsole: logConsole);
|
||||
internal static void Test()
|
||||
{
|
||||
Log("------------------> TEST <------------------", "TEST");
|
||||
InGame("TEST");
|
||||
}
|
||||
// Log in game join msg
|
||||
public static void InGame(string info, bool hostOnly = false)
|
||||
internal static void InGame(string info, bool hostOnly = false)
|
||||
{
|
||||
if (hostOnly && !GameState.IsHost) return;
|
||||
|
||||
@@ -96,7 +96,7 @@ class Logger
|
||||
// ------------- Private Log -------------
|
||||
// Logs that can only be accessed when dumped
|
||||
|
||||
public static void LogPrivate(string info, string tag = "Log", bool hostOnly = false)
|
||||
internal static void LogPrivate(string info, string tag = "Log", bool hostOnly = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -119,7 +119,7 @@ class Logger
|
||||
}
|
||||
}
|
||||
|
||||
public class CustomLogListener : ILogListener
|
||||
internal class CustomLogListener : ILogListener
|
||||
{
|
||||
public LogLevel LogLevelFilter { get; set; } = LogLevel.Info | LogLevel.Warning | LogLevel.Error;
|
||||
public void LogEvent(object sender, LogEventArgs eventArgs)
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public static class EnumHelper
|
||||
internal static class EnumHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// Get all values of enum
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Type of enum to be obtained</typeparam>
|
||||
/// <returns>All values of T</returns>
|
||||
public static T[] GetAllValues<T>() where T : Enum => Enum.GetValues(typeof(T)) as T[];
|
||||
internal static T[] GetAllValues<T>() where T : Enum => Enum.GetValues(typeof(T)) as T[];
|
||||
/// <summary>
|
||||
/// Get all names in enum
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Type of enum to be obtained</typeparam>
|
||||
/// <returns>All values of T</returns>
|
||||
public static string[] GetAllNames<T>() where T : Enum => Enum.GetNames(typeof(T));
|
||||
internal static string[] GetAllNames<T>() where T : Enum => Enum.GetNames(typeof(T));
|
||||
|
||||
|
||||
/// <summary>
|
||||
@@ -22,7 +22,7 @@ public static class EnumHelper
|
||||
/// <typeparam name="TEnum">Type of enum to be obtained</typeparam>
|
||||
/// <param name="chunkSize">The number of elements each chunk should contain. </param>
|
||||
/// <returns>A list of arrays, each containing up to <paramref name="chunkSize"/> elements of the enum type.</returns>
|
||||
public static List<TEnum[]> Achunk<TEnum>(int chunkSize, bool shuffle = false, Func<TEnum, bool> exclude = null) where TEnum : Enum
|
||||
internal static List<TEnum[]> Achunk<TEnum>(int chunkSize, bool shuffle = false, Func<TEnum, bool> exclude = null) where TEnum : Enum
|
||||
{
|
||||
List<TEnum[]> chunkedList = [];
|
||||
TEnum[] allValues = GetAllValues<TEnum>();
|
||||
|
||||
@@ -4,22 +4,22 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public class BetterPlayerControl(IntPtr intPtr) : MonoBehaviour(intPtr)
|
||||
internal class BetterPlayerControl(IntPtr intPtr) : MonoBehaviour(intPtr)
|
||||
{
|
||||
public PlayerControl? _Player { get; set; }
|
||||
public TextMeshPro? InfoTextInfo { get; set; }
|
||||
public TextMeshPro? InfoTextTop { get; set; }
|
||||
public TextMeshPro? InfoTextBottom { get; set; }
|
||||
internal PlayerControl? _Player { get; set; }
|
||||
internal TextMeshPro? InfoTextInfo { get; set; }
|
||||
internal TextMeshPro? InfoTextTop { get; set; }
|
||||
internal TextMeshPro? InfoTextBottom { get; set; }
|
||||
}
|
||||
|
||||
public static class PlayerControlExtension
|
||||
internal static class PlayerControlExtension
|
||||
{
|
||||
[HarmonyPatch(typeof(PlayerControl))]
|
||||
class PlayerControlPatch
|
||||
{
|
||||
[HarmonyPatch(nameof(PlayerControl.Awake))]
|
||||
[HarmonyPrefix]
|
||||
public static void Awake_Prefix(PlayerControl __instance)
|
||||
internal static void Awake_Prefix(PlayerControl __instance)
|
||||
{
|
||||
var nameTextTransform = __instance.gameObject.transform.Find("Names/NameText_TMP");
|
||||
var nameText = nameTextTransform?.GetComponent<TextMeshPro>();
|
||||
@@ -46,7 +46,7 @@ public static class PlayerControlExtension
|
||||
TryCreateExtendedPlayerControl(__instance, text1, text2, text3);
|
||||
}
|
||||
|
||||
public static void TryCreateExtendedPlayerControl(PlayerControl pc, TextMeshPro InfoText_Info_TMP, TextMeshPro InfoText_T_TMP, TextMeshPro InfoText_B_TMP)
|
||||
internal static void TryCreateExtendedPlayerControl(PlayerControl pc, TextMeshPro InfoText_Info_TMP, TextMeshPro InfoText_T_TMP, TextMeshPro InfoText_B_TMP)
|
||||
{
|
||||
if (pc.BetterPlayerControl() == null)
|
||||
{
|
||||
@@ -59,12 +59,12 @@ public static class PlayerControlExtension
|
||||
}
|
||||
}
|
||||
|
||||
public static BetterPlayerControl? BetterPlayerControl(this PlayerControl player)
|
||||
internal static BetterPlayerControl? BetterPlayerControl(this PlayerControl player)
|
||||
{
|
||||
return player?.GetComponent<BetterPlayerControl>();
|
||||
}
|
||||
|
||||
public static BetterPlayerControl? BetterPlayerControl(this PlayerPhysics playerPhysics)
|
||||
internal static BetterPlayerControl? BetterPlayerControl(this PlayerPhysics playerPhysics)
|
||||
{
|
||||
return playerPhysics?.GetComponent<BetterPlayerControl>();
|
||||
}
|
||||
|
||||
@@ -8,10 +8,10 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public class ExtendedPlayerInfo : MonoBehaviour
|
||||
internal class ExtendedPlayerInfo : MonoBehaviour
|
||||
{
|
||||
private bool hasSet = false;
|
||||
public void SetInfo(NetworkedPlayerInfo data)
|
||||
internal void SetInfo(NetworkedPlayerInfo data)
|
||||
{
|
||||
if (hasSet) return;
|
||||
MyUserData = UserData.GetPlayerUserData(data);
|
||||
@@ -21,7 +21,7 @@ public class ExtendedPlayerInfo : MonoBehaviour
|
||||
}
|
||||
|
||||
private float timeAccumulator = 0f;
|
||||
public void Update()
|
||||
internal void Update()
|
||||
{
|
||||
var time = Time.deltaTime;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class ExtendedPlayerInfo : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
public void LateUpdate()
|
||||
internal void LateUpdate()
|
||||
{
|
||||
if (gameObject == null) return;
|
||||
|
||||
@@ -59,71 +59,71 @@ public class ExtendedPlayerInfo : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
public UserData? MyUserData { get; private set; } = UserData.AllUsers.First();
|
||||
public byte _PlayerId { get; private set; }
|
||||
public NetworkedPlayerInfo? _Data { get; private set; }
|
||||
public string? RealName { get; private set; }
|
||||
public bool IsDirtyInfo { get; set; } = true;
|
||||
public Dictionary<byte, string> LastNameSetFor { get; set; } = [];
|
||||
public bool IsBetterUser { get; set; } = false;
|
||||
public bool IsVerifiedBetterUser { get; set; } = false;
|
||||
public bool IsTOHEHost { get; set; } = false;
|
||||
public bool HasShowDcMsg { get; set; } = false;
|
||||
public DisconnectReasons DisconnectReason { get; set; } = DisconnectReasons.Unknown;
|
||||
public ExtendedRoleInfo? RoleInfo { get; } = new();
|
||||
public ExtendedAntiCheatInfo? AntiCheatInfo { get; } = new();
|
||||
internal UserData? MyUserData { get; private set; } = UserData.AllUsers.First();
|
||||
internal byte _PlayerId { get; private set; }
|
||||
internal NetworkedPlayerInfo? _Data { get; private set; }
|
||||
internal string? RealName { get; private set; }
|
||||
internal bool IsDirtyInfo { get; set; } = true;
|
||||
internal Dictionary<byte, string> LastNameSetFor { get; set; } = [];
|
||||
internal bool IsBetterUser { get; set; } = false;
|
||||
internal bool IsVerifiedBetterUser { get; set; } = false;
|
||||
internal bool IsTOHEHost { get; set; } = false;
|
||||
internal bool HasShowDcMsg { get; set; } = false;
|
||||
internal DisconnectReasons DisconnectReason { get; set; } = DisconnectReasons.Unknown;
|
||||
internal ExtendedRoleInfo? RoleInfo { get; } = new();
|
||||
internal ExtendedAntiCheatInfo? AntiCheatInfo { get; } = new();
|
||||
}
|
||||
|
||||
public class ExtendedAntiCheatInfo
|
||||
internal class ExtendedAntiCheatInfo
|
||||
{
|
||||
public bool BannedByAntiCheat { get; set; } = false;
|
||||
public List<string> AUMChats { get; set; } = [];
|
||||
public static int MaxRPCSent => 35;
|
||||
public int RPCSentPS { get; set; } = 0;
|
||||
public int TimesAttemptedKilled { get; set; } = 0;
|
||||
public int OpenSabotageNum { get; set; } = 0;
|
||||
public bool IsFixingPanelSabotage => OpenSabotageNum != 0;
|
||||
public float TimeSinceLastTask { get; set; } = 5f;
|
||||
public uint LastTaskId { get; set; } = 999;
|
||||
public bool HasSetName { get; set; }
|
||||
public bool HasSetLevel { get; set; }
|
||||
internal bool BannedByAntiCheat { get; set; } = false;
|
||||
internal List<string> AUMChats { get; set; } = [];
|
||||
internal static int MaxRPCSent => 35;
|
||||
internal int RPCSentPS { get; set; } = 0;
|
||||
internal int TimesAttemptedKilled { get; set; } = 0;
|
||||
internal int OpenSabotageNum { get; set; } = 0;
|
||||
internal bool IsFixingPanelSabotage => OpenSabotageNum != 0;
|
||||
internal float TimeSinceLastTask { get; set; } = 5f;
|
||||
internal uint LastTaskId { get; set; } = 999;
|
||||
internal bool HasSetName { get; set; }
|
||||
internal bool HasSetLevel { get; set; }
|
||||
}
|
||||
|
||||
public class ExtendedRoleInfo
|
||||
internal class ExtendedRoleInfo
|
||||
{
|
||||
public int Kills { get; set; } = 0;
|
||||
public bool HasNoisemakerNotify { get; set; } = false;
|
||||
public RoleTypes DeadDisplayRole { get; set; }
|
||||
internal int Kills { get; set; } = 0;
|
||||
internal bool HasNoisemakerNotify { get; set; } = false;
|
||||
internal RoleTypes DeadDisplayRole { get; set; }
|
||||
}
|
||||
|
||||
public static class PlayerControlDataExtension
|
||||
internal static class PlayerControlDataExtension
|
||||
{
|
||||
[HarmonyPatch(typeof(NetworkedPlayerInfo))]
|
||||
class NetworkedPlayerInfoPatch
|
||||
{
|
||||
[HarmonyPatch(nameof(NetworkedPlayerInfo.Init))]
|
||||
[HarmonyPostfix]
|
||||
public static void Init_Postfix(NetworkedPlayerInfo __instance)
|
||||
internal static void Init_Postfix(NetworkedPlayerInfo __instance)
|
||||
{
|
||||
TryCreateExtendedData(__instance);
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(NetworkedPlayerInfo.Serialize))]
|
||||
[HarmonyPostfix]
|
||||
public static void Serialize_Postfix(NetworkedPlayerInfo __instance)
|
||||
internal static void Serialize_Postfix(NetworkedPlayerInfo __instance)
|
||||
{
|
||||
__instance.DirtyNameDelay();
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(NetworkedPlayerInfo.Deserialize))]
|
||||
[HarmonyPostfix]
|
||||
public static void Deserialize_Postfix(NetworkedPlayerInfo __instance)
|
||||
internal static void Deserialize_Postfix(NetworkedPlayerInfo __instance)
|
||||
{
|
||||
TryCreateExtendedData(__instance);
|
||||
__instance.DirtyNameDelay();
|
||||
}
|
||||
|
||||
public static void TryCreateExtendedData(NetworkedPlayerInfo data)
|
||||
internal static void TryCreateExtendedData(NetworkedPlayerInfo data)
|
||||
{
|
||||
if (data.BetterData() == null)
|
||||
{
|
||||
@@ -135,19 +135,19 @@ public static class PlayerControlDataExtension
|
||||
}
|
||||
|
||||
// Get BetterData from PlayerControl
|
||||
public static ExtendedPlayerInfo? BetterData(this PlayerControl player)
|
||||
internal static ExtendedPlayerInfo? BetterData(this PlayerControl player)
|
||||
{
|
||||
return player?.Data?.GetComponent<ExtendedPlayerInfo>();
|
||||
}
|
||||
|
||||
// Get BetterData from NetworkedPlayerInfo
|
||||
public static ExtendedPlayerInfo? BetterData(this NetworkedPlayerInfo data)
|
||||
internal static ExtendedPlayerInfo? BetterData(this NetworkedPlayerInfo data)
|
||||
{
|
||||
return data?.GetComponent<ExtendedPlayerInfo>();
|
||||
}
|
||||
|
||||
// Get BetterData from ClientData
|
||||
public static ExtendedPlayerInfo? BetterData(this ClientData data)
|
||||
internal static ExtendedPlayerInfo? BetterData(this ClientData data)
|
||||
{
|
||||
var player = Utils.PlayerFromClientId(data.Id);
|
||||
return player?.Data?.GetComponent<ExtendedPlayerInfo>();
|
||||
|
||||
@@ -3,9 +3,9 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public class GamePrefabHelper
|
||||
internal class GamePrefabHelper
|
||||
{
|
||||
public static UnityEngine.Object? GetPrefabByName(string objectName)
|
||||
internal static UnityEngine.Object? GetPrefabByName(string objectName)
|
||||
{
|
||||
UnityEngine.Object[] allObjects = UnityEngine.Resources.FindObjectsOfTypeAll(Il2CppType.Of<UnityEngine.Object>());
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ static class InnerNetClientHelper
|
||||
/// Writes an array of boolean values to a MessageWriter in a packed format to save space.
|
||||
/// Each byte stores up to 8 boolean values as bits.
|
||||
/// </summary>
|
||||
public static void WriteBooleans(this MessageWriter writer, IEnumerable<bool> boolsEnumerable)
|
||||
internal static void WriteBooleans(this MessageWriter writer, IEnumerable<bool> boolsEnumerable)
|
||||
{
|
||||
bool[] bools = boolsEnumerable.ToArray();
|
||||
|
||||
@@ -39,7 +39,7 @@ static class InnerNetClientHelper
|
||||
/// <summary>
|
||||
/// Reads an array of boolean values from a MessageReader that were previously packed using WriteBooleans.
|
||||
/// </summary>
|
||||
public static bool[] ReadBooleans(this MessageReader reader)
|
||||
internal static bool[] ReadBooleans(this MessageReader reader)
|
||||
{
|
||||
int length = reader.ReadInt32();
|
||||
bool[] bools = new bool[length];
|
||||
@@ -65,7 +65,7 @@ static class InnerNetClientHelper
|
||||
/// <summary>
|
||||
/// Writes an array of bytes to a MessageWriter in a packed format, combining two bytes into one to save space.
|
||||
/// </summary>
|
||||
public static void WritePackedBytes(this MessageWriter writer, IEnumerable<byte> bytesEnumerable)
|
||||
internal static void WritePackedBytes(this MessageWriter writer, IEnumerable<byte> bytesEnumerable)
|
||||
{
|
||||
byte[] bytes = bytesEnumerable.ToArray();
|
||||
|
||||
@@ -83,7 +83,7 @@ static class InnerNetClientHelper
|
||||
/// <summary>
|
||||
/// Reads an array of bytes from a MessageReader that were previously packed using WritePackedBytes.
|
||||
/// </summary>
|
||||
public static byte[] ReadPackedBytes(this MessageReader reader)
|
||||
internal static byte[] ReadPackedBytes(this MessageReader reader)
|
||||
{
|
||||
int count = reader.ReadByte();
|
||||
List<byte> bytes = [];
|
||||
@@ -103,7 +103,7 @@ static class InnerNetClientHelper
|
||||
/// Writes a floating-point value to a MessageWriter in a packed format to save space.
|
||||
/// Handles negative values, integers, and decimal numbers efficiently.
|
||||
/// </summary>
|
||||
public static void WritePacked(this MessageWriter writer, float value)
|
||||
internal static void WritePacked(this MessageWriter writer, float value)
|
||||
{
|
||||
bool isNegative = value < 0;
|
||||
float absValue = Math.Abs(value);
|
||||
@@ -181,7 +181,7 @@ static class InnerNetClientHelper
|
||||
/// Reads a floating-point value from a MessageReader that was previously packed using WritePacked.
|
||||
/// Handles negative values, integers, and decimal numbers efficiently.
|
||||
/// </summary>
|
||||
public static float ReadPackedSingle(this MessageReader reader)
|
||||
internal static float ReadPackedSingle(this MessageReader reader)
|
||||
{
|
||||
var flags = reader.ReadBooleans();
|
||||
bool isNegative = flags[0];
|
||||
@@ -218,28 +218,28 @@ static class InnerNetClientHelper
|
||||
}
|
||||
}
|
||||
|
||||
public static void WritePlayerId(this MessageWriter writer, PlayerControl player) => writer.Write(player?.PlayerId ?? 255);
|
||||
internal static void WritePlayerId(this MessageWriter writer, PlayerControl player) => writer.Write(player?.PlayerId ?? 255);
|
||||
|
||||
public static PlayerControl? ReadPlayerId(this MessageReader reader) => Utils.PlayerFromPlayerId(reader.ReadByte());
|
||||
internal static PlayerControl? ReadPlayerId(this MessageReader reader) => Utils.PlayerFromPlayerId(reader.ReadByte());
|
||||
|
||||
public static void WritePlayerDataId(this MessageWriter writer, NetworkedPlayerInfo data) => writer.Write(data?.PlayerId ?? 255);
|
||||
internal static void WritePlayerDataId(this MessageWriter writer, NetworkedPlayerInfo data) => writer.Write(data?.PlayerId ?? 255);
|
||||
|
||||
public static NetworkedPlayerInfo? ReadPlayerDataId(this MessageReader reader) => Utils.PlayerDataFromPlayerId(reader.ReadByte());
|
||||
internal static NetworkedPlayerInfo? ReadPlayerDataId(this MessageReader reader) => Utils.PlayerDataFromPlayerId(reader.ReadByte());
|
||||
|
||||
public static void WriteDeadBodyId(this MessageWriter writer, DeadBody body) => writer.Write(body?.ParentId ?? 255);
|
||||
internal static void WriteDeadBodyId(this MessageWriter writer, DeadBody body) => writer.Write(body?.ParentId ?? 255);
|
||||
|
||||
public static DeadBody? ReadDeadBodyId(this MessageReader reader) => Main.AllDeadBodys.FirstOrDefault(deadbody => deadbody.ParentId == reader.ReadByte());
|
||||
internal static DeadBody? ReadDeadBodyId(this MessageReader reader) => Main.AllDeadBodys.FirstOrDefault(deadbody => deadbody.ParentId == reader.ReadByte());
|
||||
|
||||
public static void WriteVentId(this MessageWriter writer, Vent vent) => writer.Write(vent?.Id ?? -1);
|
||||
internal static void WriteVentId(this MessageWriter writer, Vent vent) => writer.Write(vent?.Id ?? -1);
|
||||
|
||||
public static Vent? ReadVentId(this MessageReader reader) => Main.AllVents.FirstOrDefault(vent => vent.Id == reader.ReadInt32());
|
||||
internal static Vent? ReadVentId(this MessageReader reader) => Main.AllVents.FirstOrDefault(vent => vent.Id == reader.ReadInt32());
|
||||
|
||||
/// <summary>
|
||||
/// Converts a MessageWriter to a MessageReader.
|
||||
/// </summary>
|
||||
public static MessageReader ToReader(this MessageWriter writer) => MessageReader.Get(writer.ToByteArray(false));
|
||||
internal static MessageReader ToReader(this MessageWriter writer) => MessageReader.Get(writer.ToByteArray(false));
|
||||
|
||||
public static MessageReader[] ToReaders(this MessageWriter writer)
|
||||
internal static MessageReader[] ToReaders(this MessageWriter writer)
|
||||
{
|
||||
var reader = writer.ToReader();
|
||||
List<MessageReader> readers = [];
|
||||
@@ -252,7 +252,7 @@ static class InnerNetClientHelper
|
||||
return [.. readers];
|
||||
}
|
||||
|
||||
public static MessageReader[] ToReaders(this MessageReader reader)
|
||||
internal static MessageReader[] ToReaders(this MessageReader reader)
|
||||
{
|
||||
List<MessageReader> readers = [];
|
||||
|
||||
@@ -264,7 +264,7 @@ static class InnerNetClientHelper
|
||||
return [.. readers];
|
||||
}
|
||||
|
||||
public static MessageReader[] ToReadersNewBuffer(this MessageReader reader)
|
||||
internal static MessageReader[] ToReadersNewBuffer(this MessageReader reader)
|
||||
{
|
||||
List<MessageReader> readers = [];
|
||||
|
||||
@@ -276,7 +276,7 @@ static class InnerNetClientHelper
|
||||
return [.. readers];
|
||||
}
|
||||
|
||||
public static MessageWriter WriteReaders(this MessageWriter writer, IEnumerable<MessageReader> readers, bool clear = false)
|
||||
internal static MessageWriter WriteReaders(this MessageWriter writer, IEnumerable<MessageReader> readers, bool clear = false)
|
||||
{
|
||||
if (clear) writer.Clear(writer.SendOption);
|
||||
|
||||
@@ -290,7 +290,7 @@ static class InnerNetClientHelper
|
||||
return writer;
|
||||
}
|
||||
|
||||
public static MessageWriter Copy(this MessageWriter writer)
|
||||
internal static MessageWriter Copy(this MessageWriter writer)
|
||||
{
|
||||
var newWriter = MessageWriter.Get(writer.SendOption);
|
||||
newWriter.Write(writer.ToByteArray(false));
|
||||
@@ -318,7 +318,7 @@ static class InnerNetClientHelper
|
||||
messageWriter.ForEach(mW => mW.Write("RPC TEST"));
|
||||
AmongUsClient.Instance.FinishRpcDesync(messageWriter);
|
||||
*/
|
||||
public static List<MessageWriter> StartRpcDesync(this InnerNetClient client, uint playerNetId, byte callId, SendOption option, int ignoreClientId = -1, Func<ClientData, bool> clientCheck = null)
|
||||
internal static List<MessageWriter> StartRpcDesync(this InnerNetClient client, uint playerNetId, byte callId, SendOption option, int ignoreClientId = -1, Func<ClientData, bool> clientCheck = null)
|
||||
{
|
||||
List<MessageWriter> messageWriters = new List<MessageWriter>();
|
||||
|
||||
@@ -342,7 +342,7 @@ static class InnerNetClientHelper
|
||||
|
||||
|
||||
|
||||
public static void FinishRpcDesync(this InnerNetClient client, List<MessageWriter> messageWriters)
|
||||
internal static void FinishRpcDesync(this InnerNetClient client, List<MessageWriter> messageWriters)
|
||||
{
|
||||
foreach (var msg in messageWriters)
|
||||
{
|
||||
|
||||
+8
-7
@@ -2,12 +2,12 @@ namespace BetterAmongUs.Helpers;
|
||||
|
||||
class LateTask
|
||||
{
|
||||
public string name;
|
||||
public float timer;
|
||||
public bool shouldLog;
|
||||
public Action action;
|
||||
public static List<LateTask> Tasks = [];
|
||||
public bool Run(float deltaTime)
|
||||
internal string name;
|
||||
internal float timer;
|
||||
internal bool shouldLog;
|
||||
internal Action action;
|
||||
internal static List<LateTask> Tasks = [];
|
||||
internal bool Run(float deltaTime)
|
||||
{
|
||||
timer -= deltaTime;
|
||||
if (timer <= 0)
|
||||
@@ -28,7 +28,8 @@ class LateTask
|
||||
this.shouldLog = shouldLog;
|
||||
Tasks.Add(this);
|
||||
}
|
||||
public static void Update(float deltaTime)
|
||||
|
||||
internal static void Update(float deltaTime)
|
||||
{
|
||||
var TasksToRemove = new List<LateTask>();
|
||||
foreach (var task in Tasks.ToArray())
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public static class ObjectHelper
|
||||
internal static class ObjectHelper
|
||||
{
|
||||
public static GameObject? FindObjectByName(string objectName)
|
||||
internal static GameObject? FindObjectByName(string objectName)
|
||||
{
|
||||
GameObject[] allObjects = UnityEngine.Object.FindObjectsOfType<GameObject>(true);
|
||||
|
||||
@@ -18,19 +18,19 @@ public static class ObjectHelper
|
||||
|
||||
return null;
|
||||
}
|
||||
public static void DestroyObj(this GameObject obj)
|
||||
internal static void DestroyObj(this GameObject obj)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
UnityEngine.Object.Destroy(obj);
|
||||
}
|
||||
}
|
||||
public static void DestroyObj(this UnityEngine.Object obj) => obj.DestroyObj();
|
||||
public static void DestroyCom(this Component com) => com.DestroyObj();
|
||||
public static void DestroyObj(this MonoBehaviour mono) => mono?.gameObject?.DestroyObj();
|
||||
public static void DestroyMono(this MonoBehaviour mono) => UnityEngine.Object.Destroy(mono);
|
||||
internal static void DestroyObj(this UnityEngine.Object obj) => obj.DestroyObj();
|
||||
internal static void DestroyCom(this Component com) => com.DestroyObj();
|
||||
internal static void DestroyObj(this MonoBehaviour mono) => mono?.gameObject?.DestroyObj();
|
||||
internal static void DestroyMono(this MonoBehaviour mono) => UnityEngine.Object.Destroy(mono);
|
||||
|
||||
public static void DestroyTextTranslator(this GameObject obj)
|
||||
internal static void DestroyTextTranslator(this GameObject obj)
|
||||
{
|
||||
var translator = obj.GetComponent<TextTranslatorTMP>();
|
||||
if (translator != null)
|
||||
@@ -38,5 +38,5 @@ public static class ObjectHelper
|
||||
UnityEngine.Object.Destroy(translator);
|
||||
}
|
||||
}
|
||||
public static void DestroyTextTranslator(this MonoBehaviour mono) => mono.gameObject.DestroyTextTranslator();
|
||||
internal static void DestroyTextTranslator(this MonoBehaviour mono) => mono.gameObject.DestroyTextTranslator();
|
||||
}
|
||||
@@ -11,7 +11,7 @@ namespace BetterAmongUs.Helpers;
|
||||
static class PlayerControlHelper
|
||||
{
|
||||
// Get players client
|
||||
public static ClientData? GetClient(this PlayerControl player)
|
||||
internal static ClientData? GetClient(this PlayerControl player)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -24,9 +24,9 @@ static class PlayerControlHelper
|
||||
}
|
||||
}
|
||||
// Get players client id
|
||||
public static int GetClientId(this PlayerControl player) => player?.GetClient()?.Id != null ? player.GetClient().Id : -1;
|
||||
internal static int GetClientId(this PlayerControl player) => player?.GetClient()?.Id != null ? player.GetClient().Id : -1;
|
||||
// Get player name with outfit color
|
||||
public static string GetPlayerNameAndColor(this PlayerControl player)
|
||||
internal static string GetPlayerNameAndColor(this PlayerControl player)
|
||||
{
|
||||
if (player?.Data == null) return string.Empty;
|
||||
|
||||
@@ -40,10 +40,10 @@ static class PlayerControlHelper
|
||||
}
|
||||
}
|
||||
|
||||
public static void DirtyName(this PlayerControl player) => player.BetterData().IsDirtyInfo = true;
|
||||
public static void DirtyName(this NetworkedPlayerInfo data) => data.BetterData().IsDirtyInfo = true;
|
||||
public static void DirtyNameDelay(this PlayerControl player, float delay = 1f) => player.Data.DirtyNameDelay(delay);
|
||||
public static void DirtyNameDelay(this NetworkedPlayerInfo data, float delay = 1f)
|
||||
internal static void DirtyName(this PlayerControl player) => player.BetterData().IsDirtyInfo = true;
|
||||
internal static void DirtyName(this NetworkedPlayerInfo data) => data.BetterData().IsDirtyInfo = true;
|
||||
internal static void DirtyNameDelay(this PlayerControl player, float delay = 1f) => player.Data.DirtyNameDelay(delay);
|
||||
internal static void DirtyNameDelay(this NetworkedPlayerInfo data, float delay = 1f)
|
||||
{
|
||||
_ = new LateTask(() =>
|
||||
{
|
||||
@@ -56,7 +56,7 @@ static class PlayerControlHelper
|
||||
|
||||
|
||||
// Set players over head text
|
||||
public static void SetPlayerTextInfo(this PlayerControl player, string text, bool isBottom = false, bool isInfo = false)
|
||||
internal static void SetPlayerTextInfo(this PlayerControl player, string text, bool isBottom = false, bool isInfo = false)
|
||||
{
|
||||
if (player == null) return;
|
||||
|
||||
@@ -83,7 +83,7 @@ static class PlayerControlHelper
|
||||
}
|
||||
|
||||
// Reset players over head text
|
||||
public static void ResetAllPlayerTextInfo(this PlayerControl player)
|
||||
internal static void ResetAllPlayerTextInfo(this PlayerControl player)
|
||||
{
|
||||
if (player == null) return;
|
||||
player.SetPlayerTextInfo("", isInfo: true);
|
||||
@@ -91,7 +91,7 @@ static class PlayerControlHelper
|
||||
player.SetPlayerTextInfo("", isBottom: true);
|
||||
}
|
||||
// Check if players character has been created and received from the Host
|
||||
public static bool DataIsCollected(this PlayerControl player)
|
||||
internal static bool DataIsCollected(this PlayerControl player)
|
||||
{
|
||||
if (player == null) return false;
|
||||
|
||||
@@ -111,7 +111,7 @@ static class PlayerControlHelper
|
||||
return true;
|
||||
}
|
||||
// Kick player
|
||||
public static void Kick(this PlayerControl player, bool ban = false, string setReasonInfo = "", bool AntiCheatBan = false, bool bypassDataCheck = false, bool forceBan = false)
|
||||
internal static void Kick(this PlayerControl player, bool ban = false, string setReasonInfo = "", bool AntiCheatBan = false, bool bypassDataCheck = false, bool forceBan = false)
|
||||
{
|
||||
var Ban = ban || forceBan;
|
||||
|
||||
@@ -140,7 +140,7 @@ static class PlayerControlHelper
|
||||
player.BetterData().AntiCheatInfo.BannedByAntiCheat = AntiCheatBan;
|
||||
}
|
||||
// Set color outline on player
|
||||
public static void SetOutline(this PlayerControl player, bool active, Color? color = null)
|
||||
internal static void SetOutline(this PlayerControl player, bool active, Color? color = null)
|
||||
{
|
||||
player.cosmetics.currentBodySprite.BodySprite.material.SetFloat("_Outline", active ? 1 : 0);
|
||||
SpriteRenderer[] longModeParts = player.cosmetics.currentBodySprite.LongModeParts;
|
||||
@@ -159,7 +159,7 @@ static class PlayerControlHelper
|
||||
}
|
||||
}
|
||||
// Set color outline on player
|
||||
public static void SetOutlineByHex(this PlayerControl player, bool active, string hexColor = "")
|
||||
internal static void SetOutlineByHex(this PlayerControl player, bool active, string hexColor = "")
|
||||
{
|
||||
Color color = Utils.HexToColor32(hexColor);
|
||||
player.cosmetics.currentBodySprite.BodySprite.material.SetFloat("_Outline", active ? 1 : 0);
|
||||
@@ -180,27 +180,27 @@ static class PlayerControlHelper
|
||||
}
|
||||
// RPCs
|
||||
// Set name for Target
|
||||
public static void RpcSetNamePrivate(this PlayerControl player, string name, PlayerControl target)
|
||||
internal static void RpcSetNamePrivate(this PlayerControl player, string name, PlayerControl target)
|
||||
{
|
||||
if (player == null || target == null) return;
|
||||
RPC.SetNamePrivate(player, name, target);
|
||||
}
|
||||
// Exile player
|
||||
public static void RpcExile(this PlayerControl player)
|
||||
internal static void RpcExile(this PlayerControl player)
|
||||
{
|
||||
if (player == null) return;
|
||||
RPC.ExileAsync(player);
|
||||
}
|
||||
// Check if player is selecting room to spawn in, for Airship
|
||||
public static bool IsInRoomSelect(this PlayerControl player)
|
||||
internal static bool IsInRoomSelect(this PlayerControl player)
|
||||
{
|
||||
if (player == null) return false;
|
||||
return GameState.AirshipIsActive && Vector2.Distance(player.GetTruePosition(), new(-25, 40)) < 5f;
|
||||
}
|
||||
// Check if player controller is self client
|
||||
public static bool IsLocalPlayer(this PlayerControl player) => player != null && PlayerControl.LocalPlayer != null && player == PlayerControl.LocalPlayer;
|
||||
internal static bool IsLocalPlayer(this PlayerControl player) => player != null && PlayerControl.LocalPlayer != null && player == PlayerControl.LocalPlayer;
|
||||
// Get vent Id that the player is in.
|
||||
public static int GetPlayerVentId(this PlayerControl player)
|
||||
internal static int GetPlayerVentId(this PlayerControl player)
|
||||
{
|
||||
if (player == null) return -1;
|
||||
|
||||
@@ -211,16 +211,16 @@ static class PlayerControlHelper
|
||||
return ventilationSystem.PlayersInsideVents.TryGetValue(player.PlayerId, out var playerIdVentId) ? playerIdVentId : -1;
|
||||
}
|
||||
// Get true position
|
||||
public static Vector2 GetCustomPosition(this PlayerControl player) => new(player.transform.position.x, player.transform.position.y);
|
||||
internal static Vector2 GetCustomPosition(this PlayerControl player) => new(player.transform.position.x, player.transform.position.y);
|
||||
// Check if player is a dev
|
||||
public static bool IsDev(this PlayerControl player) => player.BetterData().MyUserData.IsDev();
|
||||
internal static bool IsDev(this PlayerControl player) => player.BetterData().MyUserData.IsDev();
|
||||
// Check if player is alive
|
||||
public static bool IsAlive(this PlayerControl player) => player?.Data != null && !player.Data.IsDead;
|
||||
internal static bool IsAlive(this PlayerControl player) => player?.Data != null && !player.Data.IsDead;
|
||||
// Check if player is in a vent
|
||||
public static bool IsInVent(this PlayerControl player) => player != null && (player.inVent || player.walkingToVent || player.MyPhysics?.Animations?.IsPlayingEnterVentAnimation() == true);
|
||||
internal static bool IsInVent(this PlayerControl player) => player != null && (player.inVent || player.walkingToVent || player.MyPhysics?.Animations?.IsPlayingEnterVentAnimation() == true);
|
||||
// Check if player role name
|
||||
|
||||
public static void UpdateColorBlindTextPosition(this PlayerControl player)
|
||||
internal static void UpdateColorBlindTextPosition(this PlayerControl player)
|
||||
{
|
||||
var text = player.cosmetics.colorBlindText;
|
||||
if (!text.enabled) return;
|
||||
@@ -234,7 +234,7 @@ static class PlayerControlHelper
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetRoleName(this PlayerControl player)
|
||||
internal static string GetRoleName(this PlayerControl player)
|
||||
{
|
||||
if (!player.IsAlive() && !player.IsGhostRole() && Main.GetRoleName().TryGetValue((int)player.BetterData().RoleInfo.DeadDisplayRole, out var roleName))
|
||||
{
|
||||
@@ -249,9 +249,9 @@ static class PlayerControlHelper
|
||||
return string.Empty;
|
||||
}
|
||||
// Check if player is Shapeshifting
|
||||
public static bool IsInShapeshift(this PlayerControl player) => player != null && (player.shapeshiftTargetPlayerId > -1 || player.shapeshifting) && !player.waitingForShapeshiftResponse;
|
||||
internal static bool IsInShapeshift(this PlayerControl player) => player != null && (player.shapeshiftTargetPlayerId > -1 || player.shapeshifting) && !player.waitingForShapeshiftResponse;
|
||||
// Check if player is in vanish as Phantom
|
||||
public static bool IsInVanish(this PlayerControl player)
|
||||
internal static bool IsInVanish(this PlayerControl player)
|
||||
{
|
||||
if (player != null && player.Data.Role is PhantomRole phantomRole)
|
||||
{
|
||||
@@ -260,7 +260,7 @@ static class PlayerControlHelper
|
||||
return false;
|
||||
}
|
||||
// Get hex color for team
|
||||
public static string GetTeamHexColor(this PlayerControl player)
|
||||
internal static string GetTeamHexColor(this PlayerControl player)
|
||||
{
|
||||
if (player == null) return "#ffffff";
|
||||
|
||||
@@ -274,47 +274,47 @@ static class PlayerControlHelper
|
||||
}
|
||||
}
|
||||
// Check if player is role type
|
||||
public static bool Is(this PlayerControl player, RoleTypes role) => player?.Data?.RoleType == role;
|
||||
internal static bool Is(this PlayerControl player, RoleTypes role) => player?.Data?.RoleType == role;
|
||||
// Check if player is Ghost role type
|
||||
public static bool IsGhostRole(this PlayerControl player) => player?.Data?.RoleType is RoleTypes.GuardianAngel;
|
||||
internal static bool IsGhostRole(this PlayerControl player) => player?.Data?.RoleType is RoleTypes.GuardianAngel;
|
||||
// Check if player is on imposter team
|
||||
public static bool IsImpostorTeam(this PlayerControl player) => player?.Data != null && player.Data.RoleType is RoleTypes.Impostor or RoleTypes.ImpostorGhost or RoleTypes.Shapeshifter or RoleTypes.Phantom;
|
||||
internal static bool IsImpostorTeam(this PlayerControl player) => player?.Data != null && player.Data.RoleType is RoleTypes.Impostor or RoleTypes.ImpostorGhost or RoleTypes.Shapeshifter or RoleTypes.Phantom;
|
||||
// Check if player is a imposter teammate
|
||||
public static bool IsImpostorTeammate(this PlayerControl player) =>
|
||||
internal static bool IsImpostorTeammate(this PlayerControl player) =>
|
||||
player != null && PlayerControl.LocalPlayer != null &&
|
||||
(player.IsLocalPlayer() && PlayerControl.LocalPlayer.IsImpostorTeam() ||
|
||||
PlayerControl.LocalPlayer.IsImpostorTeam() && player.IsImpostorTeam());
|
||||
// Check if player is in the Anti-Cheat list
|
||||
public static bool IsCheater(this PlayerControl player) =>
|
||||
internal static bool IsCheater(this PlayerControl player) =>
|
||||
player != null && (BAUAntiCheat.PlayerData.ContainsKey(player.GetHashPuid()) ||
|
||||
BAUAntiCheat.SickoData.ContainsKey(player.GetHashPuid()) ||
|
||||
BAUAntiCheat.AUMData.ContainsKey(player.GetHashPuid()));
|
||||
// Check if player is the host
|
||||
public static bool IsHost(this PlayerControl player) => player?.Data != null && GameData.Instance?.GetHost() == player.Data;
|
||||
internal static bool IsHost(this PlayerControl player) => player?.Data != null && GameData.Instance?.GetHost() == player.Data;
|
||||
|
||||
// Get players HashPuid
|
||||
public static string GetHashPuid(this PlayerControl player)
|
||||
internal static string GetHashPuid(this PlayerControl player)
|
||||
{
|
||||
return player.Data.GetHashPuid() ?? "";
|
||||
}
|
||||
public static string GetHashPuid(this NetworkedPlayerInfo data)
|
||||
internal static string GetHashPuid(this NetworkedPlayerInfo data)
|
||||
{
|
||||
if (data?.Puid == null) return "";
|
||||
return Utils.GetHashStr(data.Puid);
|
||||
}
|
||||
// Get players Friendcode
|
||||
public static string GetHashFriendcode(this PlayerControl player)
|
||||
internal static string GetHashFriendcode(this PlayerControl player)
|
||||
{
|
||||
return player.Data.GetHashFriendcode() ?? "";
|
||||
}
|
||||
public static string GetHashFriendcode(this NetworkedPlayerInfo data)
|
||||
internal static string GetHashFriendcode(this NetworkedPlayerInfo data)
|
||||
{
|
||||
if (data?.FriendCode == null) return "";
|
||||
return Utils.GetHashStr(data.FriendCode);
|
||||
}
|
||||
|
||||
// Report player
|
||||
public static void ReportPlayer(this PlayerControl player, ReportReasons reason = ReportReasons.None)
|
||||
internal static void ReportPlayer(this PlayerControl player, ReportReasons reason = ReportReasons.None)
|
||||
{
|
||||
if (player?.GetClient() != null)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public static class ShuffleListExtension
|
||||
internal static class ShuffleListExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Shuffles all elements in a collection randomly
|
||||
@@ -9,7 +9,7 @@ public static class ShuffleListExtension
|
||||
/// <param name="collection">The collection to be shuffled</param>
|
||||
/// <param name="random">An instance of a randomizer algorithm</param>
|
||||
/// <returns>The shuffled collection</returns>
|
||||
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> collection, Random random)
|
||||
internal static IEnumerable<T> Shuffle<T>(this IEnumerable<T> collection, Random random)
|
||||
{
|
||||
var list = collection.ToList();
|
||||
int n = list.Count;
|
||||
|
||||
+34
-34
@@ -12,9 +12,9 @@ using UnityEngine.Networking;
|
||||
|
||||
namespace BetterAmongUs.Helpers;
|
||||
|
||||
public static class Utils
|
||||
internal static class Utils
|
||||
{
|
||||
public static bool IsInternetAvailable()
|
||||
internal static bool IsInternetAvailable()
|
||||
{
|
||||
if (Application.internetReachability == NetworkReachability.NotReachable)
|
||||
return false;
|
||||
@@ -37,21 +37,21 @@ public static class Utils
|
||||
}
|
||||
}
|
||||
// Get player by client id
|
||||
public static ClientData? ClientFromClientId(int clientId) => AmongUsClient.Instance.allClients.ToArray().FirstOrDefault(cd => cd.Id == clientId) ?? null;
|
||||
internal static ClientData? ClientFromClientId(int clientId) => AmongUsClient.Instance.allClients.ToArray().FirstOrDefault(cd => cd.Id == clientId) ?? null;
|
||||
// Get player data from player id
|
||||
public static NetworkedPlayerInfo? PlayerDataFromPlayerId(int playerId) => GameData.Instance.AllPlayers.ToArray().FirstOrDefault(data => data.PlayerId == playerId);
|
||||
internal static NetworkedPlayerInfo? PlayerDataFromPlayerId(int playerId) => GameData.Instance.AllPlayers.ToArray().FirstOrDefault(data => data.PlayerId == playerId);
|
||||
// Get player data from client id
|
||||
public static NetworkedPlayerInfo? PlayerDataFromClientId(int clientId) => GameData.Instance.AllPlayers.ToArray().FirstOrDefault(data => data.ClientId == clientId);
|
||||
internal static NetworkedPlayerInfo? PlayerDataFromClientId(int clientId) => GameData.Instance.AllPlayers.ToArray().FirstOrDefault(data => data.ClientId == clientId);
|
||||
// Get player data from friend code
|
||||
public static NetworkedPlayerInfo? PlayerDataFromFriendCode(string friendCode) => GameData.Instance.AllPlayers.ToArray().FirstOrDefault(data => data.FriendCode == friendCode);
|
||||
internal static NetworkedPlayerInfo? PlayerDataFromFriendCode(string friendCode) => GameData.Instance.AllPlayers.ToArray().FirstOrDefault(data => data.FriendCode == friendCode);
|
||||
// Get player from player id
|
||||
public static PlayerControl? PlayerFromPlayerId(int playerId) => Main.AllPlayerControls.FirstOrDefault(player => player.PlayerId == playerId) ?? null;
|
||||
internal static PlayerControl? PlayerFromPlayerId(int playerId) => Main.AllPlayerControls.FirstOrDefault(player => player.PlayerId == playerId) ?? null;
|
||||
// Get player from client id
|
||||
public static PlayerControl? PlayerFromClientId(int clientId) => Main.AllPlayerControls.FirstOrDefault(player => player.GetClientId() == clientId) ?? null;
|
||||
internal static PlayerControl? PlayerFromClientId(int clientId) => Main.AllPlayerControls.FirstOrDefault(player => player.GetClientId() == clientId) ?? null;
|
||||
// Get player from net id
|
||||
public static PlayerControl? PlayerFromNetId(uint netId) => Main.AllPlayerControls.FirstOrDefault(player => player.NetId == netId) ?? null;
|
||||
internal static PlayerControl? PlayerFromNetId(uint netId) => Main.AllPlayerControls.FirstOrDefault(player => player.NetId == netId) ?? null;
|
||||
// Add msg to chat
|
||||
public static void AddChatPrivate(string text, string overrideName = "", bool setRight = false)
|
||||
internal static void AddChatPrivate(string text, string overrideName = "", bool setRight = false)
|
||||
{
|
||||
ChatController chat = HudManager.Instance.Chat;
|
||||
NetworkedPlayerInfo data = PlayerControl.LocalPlayer.Data;
|
||||
@@ -95,14 +95,14 @@ public static class Utils
|
||||
throw;
|
||||
}
|
||||
}
|
||||
public static bool SystemTypeIsSabotage(SystemTypes type) => type is SystemTypes.Reactor
|
||||
internal static bool SystemTypeIsSabotage(SystemTypes type) => type is SystemTypes.Reactor
|
||||
or SystemTypes.Laboratory
|
||||
or SystemTypes.Comms
|
||||
or SystemTypes.LifeSupp
|
||||
or SystemTypes.MushroomMixupSabotage
|
||||
or SystemTypes.HeliSabotage
|
||||
or SystemTypes.Electrical;
|
||||
public static bool SystemTypeIsSabotage(int typeNum) => (SystemTypes)typeNum is SystemTypes.Reactor
|
||||
internal static bool SystemTypeIsSabotage(int typeNum) => (SystemTypes)typeNum is SystemTypes.Reactor
|
||||
or SystemTypes.Laboratory
|
||||
or SystemTypes.Comms
|
||||
or SystemTypes.LifeSupp
|
||||
@@ -110,13 +110,13 @@ public static class Utils
|
||||
or SystemTypes.HeliSabotage
|
||||
or SystemTypes.Electrical;
|
||||
// Get players HashPuid
|
||||
public static string GetHashPuid(PlayerControl player)
|
||||
internal static string GetHashPuid(PlayerControl player)
|
||||
{
|
||||
if (player?.Data?.Puid == null) return "";
|
||||
return GetHashStr(player.Data.Puid);
|
||||
}
|
||||
// Get HashPuid from puid
|
||||
public static string GetHashStr(string str)
|
||||
internal static string GetHashStr(string str)
|
||||
{
|
||||
if (string.IsNullOrEmpty(str)) return "";
|
||||
|
||||
@@ -125,16 +125,16 @@ public static class Utils
|
||||
string sha256Hash = BitConverter.ToString(sha256Bytes).Replace("-", "").ToLower();
|
||||
return sha256Hash.Substring(0, 5) + sha256Hash.Substring(sha256Hash.Length - 4);
|
||||
}
|
||||
public static ushort GetHashUInt16(string input)
|
||||
internal static ushort GetHashUInt16(string input)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input)) return 0;
|
||||
|
||||
return (ushort)(BitConverter.ToUInt16(SHA256.HashData(Encoding.UTF8.GetBytes(input)), 0) % 65536);
|
||||
}
|
||||
// Remove Html Tags Template
|
||||
public static string RemoveHtmlTagsTemplate(string str) => Regex.Replace(str, "", "");
|
||||
internal static string RemoveHtmlTagsTemplate(string str) => Regex.Replace(str, "", "");
|
||||
// Get raw text
|
||||
public static string RemoveHtmlText(string text)
|
||||
internal static string RemoveHtmlText(string text)
|
||||
{
|
||||
text = Regex.Replace(text, "<[^>]*>", "");
|
||||
text = Regex.Replace(text, "{[^}]*}", "");
|
||||
@@ -144,10 +144,10 @@ public static class Utils
|
||||
return text;
|
||||
}
|
||||
|
||||
public static string ToColor(this string str, string hexColor) => $"<{hexColor}>{str}</color>";
|
||||
public static string ToColor(this string str, Color color) => $"<{Color32ToHex(color)}>{str}</color>";
|
||||
internal static string ToColor(this string str, string hexColor) => $"<{hexColor}>{str}</color>";
|
||||
internal static string ToColor(this string str, Color color) => $"<{Color32ToHex(color)}>{str}</color>";
|
||||
|
||||
public static bool IsHtmlText(string text)
|
||||
internal static bool IsHtmlText(string text)
|
||||
{
|
||||
if (Regex.IsMatch(text, "<[^>]*>"))
|
||||
{
|
||||
@@ -165,7 +165,7 @@ public static class Utils
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void DirtyAllNames()
|
||||
internal static void DirtyAllNames()
|
||||
{
|
||||
foreach (var player in Main.AllPlayerControls)
|
||||
{
|
||||
@@ -175,11 +175,11 @@ public static class Utils
|
||||
}
|
||||
|
||||
// Get name for role
|
||||
public static string GetRoleName(RoleTypes role) => Main.GetRoleName()[(int)role];
|
||||
internal static string GetRoleName(RoleTypes role) => Main.GetRoleName()[(int)role];
|
||||
// Get color for role
|
||||
public static string GetRoleColor(RoleTypes role) => Main.GetRoleColor[(int)role];
|
||||
internal static string GetRoleColor(RoleTypes role) => Main.GetRoleColor[(int)role];
|
||||
// Get hex color for team
|
||||
public static string GetTeamHexColor(RoleTeamTypes team)
|
||||
internal static string GetTeamHexColor(RoleTeamTypes team)
|
||||
{
|
||||
if (team == RoleTeamTypes.Impostor)
|
||||
{
|
||||
@@ -190,9 +190,9 @@ public static class Utils
|
||||
return "#8cffff";
|
||||
}
|
||||
}
|
||||
public static string Color32ToHex(Color32 color) => $"#{color.r:X2}{color.g:X2}{color.b:X2}{255:X2}";
|
||||
internal static string Color32ToHex(Color32 color) => $"#{color.r:X2}{color.g:X2}{color.b:X2}{255:X2}";
|
||||
|
||||
public static Color HexToColor32(string hex)
|
||||
internal static Color HexToColor32(string hex)
|
||||
{
|
||||
if (hex.StartsWith("#"))
|
||||
{
|
||||
@@ -206,7 +206,7 @@ public static class Utils
|
||||
return new Color32(r, g, b, 255);
|
||||
}
|
||||
|
||||
public static void DisconnectAccountFromOnline(bool apiError = false)
|
||||
internal static void DisconnectAccountFromOnline(bool apiError = false)
|
||||
{
|
||||
if (GameState.IsInGame)
|
||||
{
|
||||
@@ -222,7 +222,7 @@ public static class Utils
|
||||
}
|
||||
|
||||
// Disconnect client
|
||||
public static void DisconnectSelf(string reason, bool showReason = true)
|
||||
internal static void DisconnectSelf(string reason, bool showReason = true)
|
||||
{
|
||||
AmongUsClient.Instance.ExitGame(0);
|
||||
_ = new LateTask(() =>
|
||||
@@ -239,16 +239,16 @@ public static class Utils
|
||||
}, 0.2f, "DisconnectSelf 1");
|
||||
}
|
||||
// Show dc pop up with text
|
||||
public static void ShowPopUp(string text, bool enableWordWrapping = false)
|
||||
internal static void ShowPopUp(string text, bool enableWordWrapping = false)
|
||||
{
|
||||
DisconnectPopup.Instance.gameObject.SetActive(true);
|
||||
DisconnectPopup.Instance._textArea.enableWordWrapping = enableWordWrapping;
|
||||
DisconnectPopup.Instance._textArea.text = text;
|
||||
}
|
||||
|
||||
public static Dictionary<string, Sprite> CachedSprites = [];
|
||||
internal static Dictionary<string, Sprite> CachedSprites = [];
|
||||
|
||||
public static Sprite? LoadSprite(string path, float pixelsPerUnit = 1f)
|
||||
internal static Sprite? LoadSprite(string path, float pixelsPerUnit = 1f)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -272,7 +272,7 @@ public static class Utils
|
||||
}
|
||||
}
|
||||
|
||||
public static Texture2D? LoadTextureFromResources(string path)
|
||||
internal static Texture2D? LoadTextureFromResources(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -299,7 +299,7 @@ public static class Utils
|
||||
}
|
||||
|
||||
// Get platform name
|
||||
public static string GetPlatformName(PlayerControl player, bool useTag = false)
|
||||
internal static string GetPlatformName(PlayerControl player, bool useTag = false)
|
||||
{
|
||||
if (player == null) return string.Empty;
|
||||
if (player.GetClient() == null) return string.Empty;
|
||||
@@ -368,7 +368,7 @@ public static class Utils
|
||||
return $"{Tag}: {PlatformName}";
|
||||
}
|
||||
|
||||
public static string GetPlatformName(Platforms platform, bool useTag = false)
|
||||
internal static string GetPlatformName(Platforms platform, bool useTag = false)
|
||||
{
|
||||
string Tag = string.Empty;
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ using System.Reflection;
|
||||
|
||||
namespace BetterAmongUs.Items.Attributes;
|
||||
|
||||
public abstract class InstanceAttribute : Attribute
|
||||
internal abstract class InstanceAttribute : Attribute
|
||||
{
|
||||
public static void RegisterAll()
|
||||
internal static void RegisterAll()
|
||||
{
|
||||
var assembly = Assembly.GetExecutingAssembly();
|
||||
|
||||
@@ -28,11 +28,11 @@ public abstract class InstanceAttribute : Attribute
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public abstract class StaticInstanceAttribute<T> : InstanceAttribute where T : class
|
||||
internal abstract class StaticInstanceAttribute<T> : InstanceAttribute where T : class
|
||||
{
|
||||
private static readonly List<T> _instances = [];
|
||||
public static IReadOnlyList<T> Instances => _instances.AsReadOnly();
|
||||
public static J? GetClassInstance<J>() where J : class => _instances.FirstOrDefault(instance => instance.GetType() == typeof(J)) as J;
|
||||
internal static IReadOnlyList<T> Instances => _instances.AsReadOnly();
|
||||
internal static J? GetClassInstance<J>() where J : class => _instances.FirstOrDefault(instance => instance.GetType() == typeof(J)) as J;
|
||||
|
||||
protected override void RegisterInstances()
|
||||
{
|
||||
@@ -45,8 +45,8 @@ public abstract class StaticInstanceAttribute<T> : InstanceAttribute where T : c
|
||||
{
|
||||
if (typeof(T).IsAssignableFrom(type))
|
||||
{
|
||||
var instance = Activator.CreateInstance(type) as T;
|
||||
if (instance != null)
|
||||
var constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, Type.EmptyTypes, null);
|
||||
if (constructor != null && constructor.Invoke(null) is T instance)
|
||||
{
|
||||
_instances.Add(instance);
|
||||
}
|
||||
@@ -56,10 +56,10 @@ public abstract class StaticInstanceAttribute<T> : InstanceAttribute where T : c
|
||||
}
|
||||
|
||||
// Class instances
|
||||
public sealed class RegisterCommandAttribute : StaticInstanceAttribute<BaseCommand>
|
||||
internal sealed class RegisterCommandAttribute : StaticInstanceAttribute<BaseCommand>
|
||||
{
|
||||
}
|
||||
|
||||
public sealed class RegisterRPCHandlerAttribute : StaticInstanceAttribute<RPCHandler>
|
||||
internal sealed class RegisterRPCHandlerAttribute : StaticInstanceAttribute<RPCHandler>
|
||||
{
|
||||
}
|
||||
+12
-12
@@ -4,26 +4,26 @@ using System.Text.Json.Serialization;
|
||||
namespace BetterAmongUs.Items;
|
||||
|
||||
[method: JsonConstructor]
|
||||
public class BannedUserData(string name = "", string puid = "", string friendCode = "", string reason = "")
|
||||
internal class BannedUserData(string name = "", string puid = "", string friendCode = "", string reason = "")
|
||||
{
|
||||
public static List<BannedUserData> AllBannedUsers = [new BannedUserData("Default")];
|
||||
internal static List<BannedUserData> AllBannedUsers = [new BannedUserData("Default")];
|
||||
|
||||
public bool IsLocalBan { get; private set; }
|
||||
internal bool IsLocalBan { get; private set; }
|
||||
|
||||
[JsonPropertyName("name")]
|
||||
public string Name { get; } = name;
|
||||
internal string Name { get; } = name;
|
||||
|
||||
[JsonPropertyName("puid")]
|
||||
public string Puid { get; } = puid;
|
||||
internal string Puid { get; } = puid;
|
||||
|
||||
[JsonPropertyName("friendcode")]
|
||||
public string FriendCode { get; } = friendCode;
|
||||
internal string FriendCode { get; } = friendCode;
|
||||
|
||||
[JsonPropertyName("reason")]
|
||||
public string Reason { get; } = reason;
|
||||
internal string Reason { get; } = reason;
|
||||
|
||||
public static bool IsBanned = false;
|
||||
public static bool CheckLocalBan(out BannedUserData? bannedData)
|
||||
internal static bool IsBanned = false;
|
||||
internal static bool CheckLocalBan(out BannedUserData? bannedData)
|
||||
{
|
||||
bannedData = null;
|
||||
if (IsBanned) return true;
|
||||
@@ -42,7 +42,7 @@ public class BannedUserData(string name = "", string puid = "", string friendCod
|
||||
|
||||
return false;
|
||||
}
|
||||
public static bool CheckPlayerBan(NetworkedPlayerInfo data) => AllBannedUsers?.FirstOrDefault(user => user.Puid == data.GetHashPuid() || user.FriendCode == data.GetHashFriendcode()) != null;
|
||||
public static bool CheckPuidBan(string puid) => AllBannedUsers?.FirstOrDefault(user => user.Puid == Utils.GetHashStr(puid)) != null;
|
||||
public static bool CheckFriendCodeBan(string friendcode) => AllBannedUsers?.FirstOrDefault(user => user.FriendCode == Utils.GetHashStr(friendcode)) != null;
|
||||
internal static bool CheckPlayerBan(NetworkedPlayerInfo data) => AllBannedUsers?.FirstOrDefault(user => user.Puid == data.GetHashPuid() || user.FriendCode == data.GetHashFriendcode()) != null;
|
||||
internal static bool CheckPuidBan(string puid) => AllBannedUsers?.FirstOrDefault(user => user.Puid == Utils.GetHashStr(puid)) != null;
|
||||
internal static bool CheckFriendCodeBan(string friendcode) => AllBannedUsers?.FirstOrDefault(user => user.FriendCode == Utils.GetHashStr(friendcode)) != null;
|
||||
}
|
||||
@@ -3,16 +3,16 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionCheckboxItem : BetterOptionItem
|
||||
internal class BetterOptionCheckboxItem : BetterOptionItem
|
||||
{
|
||||
private ToggleOption? ThisOption;
|
||||
private bool? IsChecked;
|
||||
|
||||
public override bool ShowChildrenCondition() => IsChecked == true;
|
||||
public override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
public Func<bool>? ShowCondition = null;
|
||||
internal override bool ShowChildrenCondition() => IsChecked == true;
|
||||
internal override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
internal Func<bool>? ShowCondition = null;
|
||||
|
||||
public BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, bool DefaultValue = true, BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
internal BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, bool DefaultValue = true, BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
{
|
||||
Id = id;
|
||||
Tab = gameOptionsMenu;
|
||||
@@ -73,7 +73,7 @@ public class BetterOptionCheckboxItem : BetterOptionItem
|
||||
return this;
|
||||
}
|
||||
|
||||
public void Load(bool DefaultValue)
|
||||
internal void Load(bool DefaultValue)
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -89,7 +89,7 @@ public class BetterOptionCheckboxItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override bool GetBool()
|
||||
internal override bool GetBool()
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -101,7 +101,7 @@ public class BetterOptionCheckboxItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override void SetData(OptionBehaviour optionBehaviour)
|
||||
internal override void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
optionBehaviour.data = new BaseGameSetting
|
||||
{
|
||||
@@ -110,7 +110,7 @@ public class BetterOptionCheckboxItem : BetterOptionItem
|
||||
};
|
||||
}
|
||||
|
||||
public override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
internal override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
{
|
||||
IsChecked = !IsChecked;
|
||||
BetterDataManager.SaveSetting(Id, IsChecked.ToString());
|
||||
|
||||
@@ -3,20 +3,20 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionFloatItem : BetterOptionItem
|
||||
internal class BetterOptionFloatItem : BetterOptionItem
|
||||
{
|
||||
private NumberOption? ThisOption;
|
||||
public float CurrentValue;
|
||||
public FloatRange floatRange = new(0f, 180f);
|
||||
public float Increment = 2.5f;
|
||||
internal float CurrentValue;
|
||||
internal FloatRange floatRange = new(0f, 180f);
|
||||
internal float Increment = 2.5f;
|
||||
private string? PostFix;
|
||||
private string? PreFix;
|
||||
|
||||
public override bool ShowChildrenCondition() => CurrentValue > floatRange.min;
|
||||
public override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
public Func<bool>? ShowCondition = null;
|
||||
internal override bool ShowChildrenCondition() => CurrentValue > floatRange.min;
|
||||
internal override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
internal Func<bool>? ShowCondition = null;
|
||||
|
||||
public BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, float[] values, float DefaultValue, string preFix = "", string postFix = "", BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
internal BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, float[] values, float DefaultValue, string preFix = "", string postFix = "", BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
{
|
||||
Id = id;
|
||||
floatRange = new(values[0], values[1]);
|
||||
@@ -117,7 +117,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
BetterDataManager.SaveSetting(Id, CurrentValue.ToString());
|
||||
}
|
||||
|
||||
public void Increase()
|
||||
internal void Increase()
|
||||
{
|
||||
int times = 1;
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
@@ -137,7 +137,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
AdjustButtonsActiveState();
|
||||
}
|
||||
|
||||
public void Decrease()
|
||||
internal void Decrease()
|
||||
{
|
||||
int times = 1;
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
@@ -157,7 +157,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
AdjustButtonsActiveState();
|
||||
}
|
||||
|
||||
public void Load(float DefaultValue)
|
||||
internal void Load(float DefaultValue)
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -177,7 +177,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetFloat()
|
||||
internal override float GetFloat()
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -189,7 +189,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetInt()
|
||||
internal override int GetInt()
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -201,7 +201,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override void SetData(OptionBehaviour optionBehaviour)
|
||||
internal override void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
optionBehaviour.data = new BaseGameSetting
|
||||
{
|
||||
@@ -210,7 +210,7 @@ public class BetterOptionFloatItem : BetterOptionItem
|
||||
};
|
||||
}
|
||||
|
||||
public override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
internal override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
{
|
||||
if (IsParent || IsChild)
|
||||
{
|
||||
|
||||
@@ -3,20 +3,20 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionIntItem : BetterOptionItem
|
||||
internal class BetterOptionIntItem : BetterOptionItem
|
||||
{
|
||||
private NumberOption? ThisOption;
|
||||
public int CurrentValue;
|
||||
public IntRange intRange = new(0, 180);
|
||||
public int Increment = 1;
|
||||
internal int CurrentValue;
|
||||
internal IntRange intRange = new(0, 180);
|
||||
internal int Increment = 1;
|
||||
private string? PostFix;
|
||||
private string? PreFix;
|
||||
|
||||
public override bool ShowChildrenCondition() => CurrentValue > intRange.min;
|
||||
public override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
public Func<bool>? ShowCondition = null;
|
||||
internal override bool ShowChildrenCondition() => CurrentValue > intRange.min;
|
||||
internal override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
internal Func<bool>? ShowCondition = null;
|
||||
|
||||
public BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, int[] values, int DefaultValue, string preFix = "", string postFix = "", BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
internal BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, int[] values, int DefaultValue, string preFix = "", string postFix = "", BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
{
|
||||
Id = id;
|
||||
intRange = new(values[0], values[1]);
|
||||
@@ -117,7 +117,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
BetterDataManager.SaveSetting(Id, CurrentValue.ToString());
|
||||
}
|
||||
|
||||
public void Increase()
|
||||
internal void Increase()
|
||||
{
|
||||
int times = 1;
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
@@ -137,7 +137,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
AdjustButtonsActiveState();
|
||||
}
|
||||
|
||||
public void Decrease()
|
||||
internal void Decrease()
|
||||
{
|
||||
int times = 1;
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
@@ -157,7 +157,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
AdjustButtonsActiveState();
|
||||
}
|
||||
|
||||
public void Load(int DefaultValue)
|
||||
internal void Load(int DefaultValue)
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -177,7 +177,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetFloat()
|
||||
internal override float GetFloat()
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -189,7 +189,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetInt()
|
||||
internal override int GetInt()
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -201,7 +201,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override void SetData(OptionBehaviour optionBehaviour)
|
||||
internal override void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
optionBehaviour.data = new BaseGameSetting
|
||||
{
|
||||
@@ -210,7 +210,7 @@ public class BetterOptionIntItem : BetterOptionItem
|
||||
};
|
||||
}
|
||||
|
||||
public override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
internal override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
{
|
||||
if (IsParent || IsChild)
|
||||
{
|
||||
|
||||
@@ -5,31 +5,31 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionItem
|
||||
internal class BetterOptionItem
|
||||
{
|
||||
public float StaticSpacingNum => 1f;
|
||||
public float StaticSpacingNumPlus => 0.45f;
|
||||
public static Dictionary<int, int> TempPlayerOptionData = [];
|
||||
public static int TempPlayerOptionDataNum = 0;
|
||||
public static List<BetterOptionItem> BetterOptionItems = [];
|
||||
public static float SpacingNum = 0;
|
||||
internal float StaticSpacingNum => 1f;
|
||||
internal float StaticSpacingNumPlus => 0.45f;
|
||||
internal static Dictionary<int, int> TempPlayerOptionData = [];
|
||||
internal static int TempPlayerOptionDataNum = 0;
|
||||
internal static List<BetterOptionItem> BetterOptionItems = [];
|
||||
internal static float SpacingNum = 0;
|
||||
|
||||
public int maskLayer = 20;
|
||||
public int Id = 0;
|
||||
public GameOptionsMenu? Tab;
|
||||
public OptionBehaviour? Option;
|
||||
public string? Name = "None";
|
||||
public TextMeshPro? TitleText;
|
||||
public GameObject? obj;
|
||||
internal int maskLayer = 20;
|
||||
internal int Id = 0;
|
||||
internal GameOptionsMenu? Tab;
|
||||
internal OptionBehaviour? Option;
|
||||
internal string? Name = "None";
|
||||
internal TextMeshPro? TitleText;
|
||||
internal GameObject? obj;
|
||||
|
||||
public BetterOptionItem? ThisParent;
|
||||
public bool IsChild = false;
|
||||
public bool IsParent => ChildrenList.Count > 0;
|
||||
public List<BetterOptionItem> ChildrenList = [];
|
||||
public virtual bool ShowChildrenCondition() => false;
|
||||
public virtual bool SelfShowCondition() => true;
|
||||
internal BetterOptionItem? ThisParent;
|
||||
internal bool IsChild = false;
|
||||
internal bool IsParent => ChildrenList.Count > 0;
|
||||
internal List<BetterOptionItem> ChildrenList = [];
|
||||
internal virtual bool ShowChildrenCondition() => false;
|
||||
internal virtual bool SelfShowCondition() => true;
|
||||
|
||||
public static void UpdatePositions()
|
||||
internal static void UpdatePositions()
|
||||
{
|
||||
SpacingNum = 0f;
|
||||
|
||||
@@ -78,7 +78,7 @@ public class BetterOptionItem
|
||||
GameSettingMenuPatch.BetterSettingsTab.scrollBar.ScrollRelative(new(0f, 0f));
|
||||
}
|
||||
|
||||
public void SetUp(OptionBehaviour optionBehaviour)
|
||||
internal void SetUp(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
SpriteRenderer[] componentsInChildren = optionBehaviour.GetComponentsInChildren<SpriteRenderer>(true);
|
||||
for (int i = 0; i < componentsInChildren.Length; i++)
|
||||
@@ -92,32 +92,32 @@ public class BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool GetBool()
|
||||
internal virtual bool GetBool()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public virtual float GetFloat()
|
||||
internal virtual float GetFloat()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public virtual int GetInt()
|
||||
internal virtual int GetInt()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public virtual int GetValue()
|
||||
internal virtual int GetValue()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public virtual void SetData(OptionBehaviour optionBehaviour)
|
||||
internal virtual void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public virtual void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
internal virtual void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
@@ -3,16 +3,16 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionPlayerItem : BetterOptionItem
|
||||
internal class BetterOptionPlayerItem : BetterOptionItem
|
||||
{
|
||||
private NumberOption? ThisOption;
|
||||
public int CurrentIndex = -1;
|
||||
internal int CurrentIndex = -1;
|
||||
|
||||
public override bool ShowChildrenCondition() => CurrentIndex > -1;
|
||||
public override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
public Func<bool>? ShowCondition = null;
|
||||
internal override bool ShowChildrenCondition() => CurrentIndex > -1;
|
||||
internal override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
internal Func<bool>? ShowCondition = null;
|
||||
|
||||
public BetterOptionItem Create(GameOptionsMenu gameOptionsMenu, string name, BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
internal BetterOptionItem Create(GameOptionsMenu gameOptionsMenu, string name, BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
{
|
||||
Id = TempPlayerOptionDataNum + 1;
|
||||
Tab = gameOptionsMenu;
|
||||
@@ -110,7 +110,7 @@ public class BetterOptionPlayerItem : BetterOptionItem
|
||||
TempPlayerOptionData[Id] = CurrentIndex;
|
||||
}
|
||||
|
||||
public void Increase()
|
||||
internal void Increase()
|
||||
{
|
||||
if (CurrentIndex < Main.AllPlayerControls.Count)
|
||||
{
|
||||
@@ -119,7 +119,7 @@ public class BetterOptionPlayerItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public void Decrease()
|
||||
internal void Decrease()
|
||||
{
|
||||
if (CurrentIndex > -1)
|
||||
{
|
||||
@@ -128,7 +128,7 @@ public class BetterOptionPlayerItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public int Load()
|
||||
internal int Load()
|
||||
{
|
||||
if (TempPlayerOptionData.ContainsKey(Id))
|
||||
{
|
||||
@@ -150,7 +150,7 @@ public class BetterOptionPlayerItem : BetterOptionItem
|
||||
return CurrentIndex;
|
||||
}
|
||||
|
||||
public override int GetValue()
|
||||
internal override int GetValue()
|
||||
{
|
||||
if (SelfShowCondition())
|
||||
{
|
||||
@@ -162,7 +162,7 @@ public class BetterOptionPlayerItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override void SetData(OptionBehaviour optionBehaviour)
|
||||
internal override void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
optionBehaviour.data = new BaseGameSetting
|
||||
{
|
||||
@@ -171,7 +171,7 @@ public class BetterOptionPlayerItem : BetterOptionItem
|
||||
};
|
||||
}
|
||||
|
||||
public override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
internal override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
{
|
||||
if (IsParent || IsChild)
|
||||
{
|
||||
|
||||
@@ -3,17 +3,17 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionStringItem : BetterOptionItem
|
||||
internal class BetterOptionStringItem : BetterOptionItem
|
||||
{
|
||||
private StringOption? ThisOption;
|
||||
public string[] Values = [];
|
||||
public int CurrentValue;
|
||||
internal string[] Values = [];
|
||||
internal int CurrentValue;
|
||||
|
||||
public override bool ShowChildrenCondition() => CurrentValue > 0;
|
||||
public override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
public Func<bool>? ShowCondition = null;
|
||||
internal override bool ShowChildrenCondition() => CurrentValue > 0;
|
||||
internal override bool SelfShowCondition() => ShowCondition != null ? ShowCondition() : base.SelfShowCondition();
|
||||
internal Func<bool>? ShowCondition = null;
|
||||
|
||||
public BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, string[] strings, int DefaultValue = 0, BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
internal BetterOptionItem Create(int id, GameOptionsMenu gameOptionsMenu, string name, string[] strings, int DefaultValue = 0, BetterOptionItem? Parent = null, Func<bool>? selfShowCondition = null)
|
||||
{
|
||||
Id = id;
|
||||
Values = strings;
|
||||
@@ -112,7 +112,7 @@ public class BetterOptionStringItem : BetterOptionItem
|
||||
BetterDataManager.SaveSetting(Id, CurrentValue.ToString());
|
||||
}
|
||||
|
||||
public void Increase()
|
||||
internal void Increase()
|
||||
{
|
||||
if (CurrentValue < Values.Length)
|
||||
{
|
||||
@@ -121,7 +121,7 @@ public class BetterOptionStringItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public void Decrease()
|
||||
internal void Decrease()
|
||||
{
|
||||
if (CurrentValue > 0)
|
||||
{
|
||||
@@ -130,7 +130,7 @@ public class BetterOptionStringItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public void Load(int DefaultValue)
|
||||
internal void Load(int DefaultValue)
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -150,7 +150,7 @@ public class BetterOptionStringItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetValue()
|
||||
internal override int GetValue()
|
||||
{
|
||||
if (BetterDataManager.CanLoadSetting(Id))
|
||||
{
|
||||
@@ -162,7 +162,7 @@ public class BetterOptionStringItem : BetterOptionItem
|
||||
}
|
||||
}
|
||||
|
||||
public override void SetData(OptionBehaviour optionBehaviour)
|
||||
internal override void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
optionBehaviour.data = new BaseGameSetting
|
||||
{
|
||||
@@ -171,7 +171,7 @@ public class BetterOptionStringItem : BetterOptionItem
|
||||
};
|
||||
}
|
||||
|
||||
public override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
internal override void ValueChanged(int id, OptionBehaviour optionBehaviour)
|
||||
{
|
||||
if (IsParent || IsChild)
|
||||
{
|
||||
|
||||
@@ -3,9 +3,9 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionDividerItem : BetterOptionItem
|
||||
internal class BetterOptionDividerItem : BetterOptionItem
|
||||
{
|
||||
public BetterOptionItem Create(GameOptionsMenu gameOptionsMenu)
|
||||
internal BetterOptionItem Create(GameOptionsMenu gameOptionsMenu)
|
||||
{
|
||||
if (gameOptionsMenu == null)
|
||||
{
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionHeaderItem : BetterOptionItem
|
||||
internal class BetterOptionHeaderItem : BetterOptionItem
|
||||
{
|
||||
public BetterOptionItem Create(GameOptionsMenu gameOptionsMenu, string name)
|
||||
internal BetterOptionItem Create(GameOptionsMenu gameOptionsMenu, string name)
|
||||
{
|
||||
if (gameOptionsMenu == null)
|
||||
{
|
||||
|
||||
@@ -3,9 +3,9 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Items.OptionItems;
|
||||
|
||||
public class BetterOptionTitleItem : BetterOptionItem
|
||||
internal class BetterOptionTitleItem : BetterOptionItem
|
||||
{
|
||||
public BetterOptionItem Create(GameOptionsMenu gameOptionsMenu, string name)
|
||||
internal BetterOptionItem Create(GameOptionsMenu gameOptionsMenu, string name)
|
||||
{
|
||||
if (gameOptionsMenu == null)
|
||||
{
|
||||
@@ -45,7 +45,7 @@ public class BetterOptionTitleItem : BetterOptionItem
|
||||
return this;
|
||||
}
|
||||
|
||||
public override void SetData(OptionBehaviour optionBehaviour)
|
||||
internal override void SetData(OptionBehaviour optionBehaviour)
|
||||
{
|
||||
optionBehaviour.data = new BaseGameSetting
|
||||
{
|
||||
|
||||
+24
-24
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
||||
namespace BetterAmongUs.Items;
|
||||
|
||||
[Flags]
|
||||
public enum MultiPermissionFlags : ushort
|
||||
internal enum MultiPermissionFlags : ushort
|
||||
{
|
||||
Contributor_1 = 1 << 0,
|
||||
Contributor_2 = 1 << 1,
|
||||
@@ -16,32 +16,32 @@ public enum MultiPermissionFlags : ushort
|
||||
}
|
||||
|
||||
[method: JsonConstructor]
|
||||
public class UserData(string name = "", string puid = "", string friendCode = "", string overheadTag = "", string overheadColor = "", ushort permissions = 0)
|
||||
internal class UserData(string name = "", string puid = "", string friendCode = "", string overheadTag = "", string overheadColor = "", ushort permissions = 0)
|
||||
{
|
||||
public static List<UserData> AllUsers = [new UserData("Default")];
|
||||
internal static List<UserData> AllUsers = [new UserData("Default")];
|
||||
|
||||
public bool IsLocalData { get; private set; }
|
||||
internal bool IsLocalData { get; private set; }
|
||||
|
||||
[JsonPropertyName("name")]
|
||||
public string Name { get; } = name;
|
||||
internal string Name { get; } = name;
|
||||
|
||||
[JsonPropertyName("puid")]
|
||||
public string Puid { get; } = puid;
|
||||
internal string Puid { get; } = puid;
|
||||
|
||||
[JsonPropertyName("friendcode")]
|
||||
public string FriendCode { get; } = friendCode;
|
||||
internal string FriendCode { get; } = friendCode;
|
||||
|
||||
[JsonPropertyName("overheadtag")]
|
||||
public string OverheadTag { get; } = overheadTag;
|
||||
internal string OverheadTag { get; } = overheadTag;
|
||||
|
||||
[JsonPropertyName("overheadColor")]
|
||||
public string OverheadColor { get; } = overheadColor;
|
||||
internal string OverheadColor { get; } = overheadColor;
|
||||
|
||||
[JsonPropertyName("permissions")]
|
||||
public ushort Permissions { get; } = permissions;
|
||||
internal ushort Permissions { get; } = permissions;
|
||||
|
||||
private static bool HasLocalData = false;
|
||||
public static void TrySetLocalData()
|
||||
internal static void TrySetLocalData()
|
||||
{
|
||||
if (!HasLocalData)
|
||||
{
|
||||
@@ -61,9 +61,9 @@ public class UserData(string name = "", string puid = "", string friendCode = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
public static UserData? GetPlayerUserData(NetworkedPlayerInfo data) => AllUsers?.FirstOrDefault(user => user.Puid == data.GetHashPuid() || user.FriendCode == data.GetHashFriendcode()) ?? AllUsers.First();
|
||||
public static UserData? GetPlayerUserDataFromPuid(string puid) => AllUsers?.FirstOrDefault(user => user.Puid == Utils.GetHashStr(puid)) ?? AllUsers.First();
|
||||
public static UserData? GetPlayerUserDataFromFriendCode(string friendcode) => AllUsers?.FirstOrDefault(user => user.FriendCode == Utils.GetHashStr(friendcode)) ?? AllUsers.First();
|
||||
internal static UserData? GetPlayerUserData(NetworkedPlayerInfo data) => AllUsers?.FirstOrDefault(user => user.Puid == data.GetHashPuid() || user.FriendCode == data.GetHashFriendcode()) ?? AllUsers.First();
|
||||
internal static UserData? GetPlayerUserDataFromPuid(string puid) => AllUsers?.FirstOrDefault(user => user.Puid == Utils.GetHashStr(puid)) ?? AllUsers.First();
|
||||
internal static UserData? GetPlayerUserDataFromFriendCode(string friendcode) => AllUsers?.FirstOrDefault(user => user.FriendCode == Utils.GetHashStr(friendcode)) ?? AllUsers.First();
|
||||
|
||||
private bool HasPermission(MultiPermissionFlags permissionFlags)
|
||||
{
|
||||
@@ -75,14 +75,14 @@ public class UserData(string name = "", string puid = "", string friendCode = ""
|
||||
return (Permissions & (ushort)permissionFlags) == (ushort)permissionFlags;
|
||||
}
|
||||
|
||||
public bool IsDev() => HasPermission(MultiPermissionFlags.Dev);
|
||||
public bool IsTester() => HasPermission(MultiPermissionFlags.Tester);
|
||||
public bool IsSponsorTier3() => HasPermission(MultiPermissionFlags.Contributor_3);
|
||||
public bool IsSponsorTier2() => HasPermission(MultiPermissionFlags.Contributor_2 | MultiPermissionFlags.Contributor_3);
|
||||
public bool IsSponsorTier1() => IsSponsor();
|
||||
public bool IsSponsor() => HasPermission(MultiPermissionFlags.Contributor_1 | MultiPermissionFlags.Contributor_2 | MultiPermissionFlags.Contributor_3 | MultiPermissionFlags.Dev);
|
||||
public bool HasAll() => (Permissions & (ushort)MultiPermissionFlags.All) == (ushort)MultiPermissionFlags.All;
|
||||
public bool IsVerified() => Puid == Utils.GetHashStr(EOSManager.Instance.ProductUserId) && FriendCode == Utils.GetHashStr(EOSManager.Instance.FriendCode);
|
||||
public bool IsVerified(NetworkedPlayerInfo data) => Puid == Utils.GetHashStr(data?.Puid ?? string.Empty) && FriendCode == Utils.GetHashStr(data?.FriendCode ?? string.Empty);
|
||||
public bool IsVerified(PlayerControl player) => Puid == Utils.GetHashStr(player?.Data?.Puid ?? string.Empty) && FriendCode == Utils.GetHashStr(player?.Data?.FriendCode ?? string.Empty);
|
||||
internal bool IsDev() => HasPermission(MultiPermissionFlags.Dev);
|
||||
internal bool IsTester() => HasPermission(MultiPermissionFlags.Tester);
|
||||
internal bool IsSponsorTier3() => HasPermission(MultiPermissionFlags.Contributor_3);
|
||||
internal bool IsSponsorTier2() => HasPermission(MultiPermissionFlags.Contributor_2 | MultiPermissionFlags.Contributor_3);
|
||||
internal bool IsSponsorTier1() => IsSponsor();
|
||||
internal bool IsSponsor() => HasPermission(MultiPermissionFlags.Contributor_1 | MultiPermissionFlags.Contributor_2 | MultiPermissionFlags.Contributor_3 | MultiPermissionFlags.Dev);
|
||||
internal bool HasAll() => (Permissions & (ushort)MultiPermissionFlags.All) == (ushort)MultiPermissionFlags.All;
|
||||
internal bool IsVerified() => Puid == Utils.GetHashStr(EOSManager.Instance.ProductUserId) && FriendCode == Utils.GetHashStr(EOSManager.Instance.FriendCode);
|
||||
internal bool IsVerified(NetworkedPlayerInfo data) => Puid == Utils.GetHashStr(data?.Puid ?? string.Empty) && FriendCode == Utils.GetHashStr(data?.FriendCode ?? string.Empty);
|
||||
internal bool IsVerified(PlayerControl player) => Puid == Utils.GetHashStr(player?.Data?.Puid ?? string.Empty) && FriendCode == Utils.GetHashStr(player?.Data?.FriendCode ?? string.Empty);
|
||||
}
|
||||
@@ -7,20 +7,20 @@ namespace BetterAmongUs.Managers;
|
||||
class BetterDataManager
|
||||
{
|
||||
private static string filePath = GetFilePath("BetterData");
|
||||
public static string filePathFolder = Path.Combine(Main.GetGamePathToAmongUs(), $"Better_Data");
|
||||
public static string filePathFolderSaveInfo = Path.Combine(filePathFolder, $"SaveInfo");
|
||||
public static string filePathFolderSettings = Path.Combine(filePathFolder, $"Settings");
|
||||
public static string SettingsFile = Path.Combine(filePathFolderSettings, "Preset.json");
|
||||
public static string banPlayerListFile = Path.Combine(filePathFolderSaveInfo, "BanPlayerList.txt");
|
||||
public static string banNameListFile = Path.Combine(filePathFolderSaveInfo, "BanNameList.txt");
|
||||
public static string banWordListFile = Path.Combine(filePathFolderSaveInfo, "BanWordList.txt");
|
||||
internal static string filePathFolder = Path.Combine(Main.GetGamePathToAmongUs(), $"Better_Data");
|
||||
internal static string filePathFolderSaveInfo = Path.Combine(filePathFolder, $"SaveInfo");
|
||||
internal static string filePathFolderSettings = Path.Combine(filePathFolder, $"Settings");
|
||||
internal static string SettingsFile = Path.Combine(filePathFolderSettings, "Preset.json");
|
||||
internal static string banPlayerListFile = Path.Combine(filePathFolderSaveInfo, "BanPlayerList.txt");
|
||||
internal static string banNameListFile = Path.Combine(filePathFolderSaveInfo, "BanNameList.txt");
|
||||
internal static string banWordListFile = Path.Combine(filePathFolderSaveInfo, "BanWordList.txt");
|
||||
|
||||
public static string GetFilePath(string name)
|
||||
internal static string GetFilePath(string name)
|
||||
{
|
||||
return Path.Combine(Main.GetDataPathToAmongUs(), $"{name}.json");
|
||||
}
|
||||
|
||||
public static void SetUp()
|
||||
internal static void SetUp()
|
||||
{
|
||||
if (!Directory.Exists(filePathFolder))
|
||||
{
|
||||
@@ -122,7 +122,7 @@ class BetterDataManager
|
||||
}
|
||||
}
|
||||
|
||||
public static void Save(string name, string dataToSave, string category = "Data")
|
||||
internal static void Save(string name, string dataToSave, string category = "Data")
|
||||
{
|
||||
string filePath = GetFilePath("BetterData");
|
||||
|
||||
@@ -140,7 +140,7 @@ class BetterDataManager
|
||||
File.WriteAllText(filePath, json);
|
||||
}
|
||||
|
||||
public static string Load(string name, string category = "Data")
|
||||
internal static string Load(string name, string category = "Data")
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -162,7 +162,7 @@ class BetterDataManager
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
public static void SaveSetting(int id, string input)
|
||||
internal static void SaveSetting(int id, string input)
|
||||
{
|
||||
string filePath = SettingsFile;
|
||||
|
||||
@@ -174,7 +174,7 @@ class BetterDataManager
|
||||
File.WriteAllText(filePath, json);
|
||||
}
|
||||
|
||||
public static bool CanLoadSetting(int id)
|
||||
internal static bool CanLoadSetting(int id)
|
||||
{
|
||||
string filePath = SettingsFile;
|
||||
string json = File.ReadAllText(filePath);
|
||||
@@ -191,7 +191,7 @@ class BetterDataManager
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool LoadBoolSetting(int id, bool Default = false)
|
||||
internal static bool LoadBoolSetting(int id, bool Default = false)
|
||||
{
|
||||
string filePath = SettingsFile;
|
||||
string json = File.ReadAllText(filePath);
|
||||
@@ -212,7 +212,7 @@ class BetterDataManager
|
||||
return Default;
|
||||
}
|
||||
|
||||
public static float LoadFloatSetting(int id, float Default = 0f)
|
||||
internal static float LoadFloatSetting(int id, float Default = 0f)
|
||||
{
|
||||
string filePath = SettingsFile;
|
||||
string json = File.ReadAllText(filePath);
|
||||
@@ -233,7 +233,7 @@ class BetterDataManager
|
||||
return Default;
|
||||
}
|
||||
|
||||
public static int LoadIntSetting(int id, int Default = 0)
|
||||
internal static int LoadIntSetting(int id, int Default = 0)
|
||||
{
|
||||
string filePath = SettingsFile;
|
||||
string json = File.ReadAllText(filePath);
|
||||
@@ -254,7 +254,7 @@ class BetterDataManager
|
||||
return Default;
|
||||
}
|
||||
|
||||
public static void SaveBanList(string friendCode = "", string hashPUID = "")
|
||||
internal static void SaveBanList(string friendCode = "", string hashPUID = "")
|
||||
{
|
||||
if (!string.IsNullOrEmpty(friendCode) || !string.IsNullOrEmpty(hashPUID))
|
||||
{
|
||||
@@ -284,7 +284,7 @@ class BetterDataManager
|
||||
}
|
||||
}
|
||||
|
||||
public static void SaveCheatData(string puid, string friendCode, string name, string category = "cheatData", string reason = "None")
|
||||
internal static void SaveCheatData(string puid, string friendCode, string name, string category = "cheatData", string reason = "None")
|
||||
{
|
||||
string filePath = GetFilePath("BetterData");
|
||||
|
||||
@@ -309,7 +309,7 @@ class BetterDataManager
|
||||
File.WriteAllText(filePath, json);
|
||||
}
|
||||
|
||||
public static bool RemovePlayer(string identifier)
|
||||
internal static bool RemovePlayer(string identifier)
|
||||
{
|
||||
bool successful = false;
|
||||
string filePath = GetFilePath("BetterData");
|
||||
@@ -417,7 +417,7 @@ class BetterDataManager
|
||||
}
|
||||
}
|
||||
|
||||
public static void ClearCheatData()
|
||||
internal static void ClearCheatData()
|
||||
{
|
||||
string filePath = GetFilePath("BetterData");
|
||||
string json = File.ReadAllText(filePath);
|
||||
@@ -460,12 +460,12 @@ class BetterDataManager
|
||||
Logger.LogCheat("Cleared cheat memory and data");
|
||||
}
|
||||
|
||||
public static void LoadData()
|
||||
internal static void LoadData()
|
||||
{
|
||||
LoadCheatData();
|
||||
}
|
||||
|
||||
public static void LoadCheatData()
|
||||
internal static void LoadCheatData()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -10,15 +10,15 @@ namespace BetterAmongUs.Managers;
|
||||
|
||||
class BetterNotificationManager
|
||||
{
|
||||
public static GameObject? BAUNotificationManagerObj;
|
||||
public static TextMeshPro? NameText;
|
||||
public static TextMeshPro? TextArea => BAUNotificationManagerObj.transform.Find("Sizer/ChatText (TMP)").GetComponent<TextMeshPro>();
|
||||
public static Dictionary<string, float> NotifyQueue = [];
|
||||
public static float showTime = 0f;
|
||||
internal static GameObject? BAUNotificationManagerObj;
|
||||
internal static TextMeshPro? NameText;
|
||||
internal static TextMeshPro? TextArea => BAUNotificationManagerObj.transform.Find("Sizer/ChatText (TMP)").GetComponent<TextMeshPro>();
|
||||
internal static Dictionary<string, float> NotifyQueue = [];
|
||||
internal static float showTime = 0f;
|
||||
private static Camera? localCamera;
|
||||
public static bool Notifying = false;
|
||||
internal static bool Notifying = false;
|
||||
|
||||
public static void Notify(string text, float Time = 5f)
|
||||
internal static void Notify(string text, float Time = 5f)
|
||||
{
|
||||
if (!Main.BetterNotifications.Value) return;
|
||||
|
||||
@@ -41,7 +41,7 @@ class BetterNotificationManager
|
||||
}
|
||||
}
|
||||
|
||||
public static void NotifyCheat(PlayerControl player, string reason, string newText = "", bool kickPlayer = true, bool forceBan = false)
|
||||
internal static void NotifyCheat(PlayerControl player, string reason, string newText = "", bool kickPlayer = true, bool forceBan = false)
|
||||
{
|
||||
if (player?.Data == null) return;
|
||||
|
||||
@@ -86,7 +86,7 @@ class BetterNotificationManager
|
||||
}
|
||||
|
||||
|
||||
public static void Update()
|
||||
internal static void Update()
|
||||
{
|
||||
if (BAUNotificationManagerObj != null)
|
||||
{
|
||||
|
||||
@@ -10,13 +10,13 @@ namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
class BAUAntiCheat
|
||||
{
|
||||
public static Dictionary<string, string> PlayerData = []; // HashPuid, FriendCode
|
||||
public static Dictionary<string, string> SickoData = []; // HashPuid, FriendCode
|
||||
public static Dictionary<string, string> AUMData = []; // HashPuid, FriendCode
|
||||
public static Dictionary<string, string> KNData = []; // HashPuid, FriendCode
|
||||
public static bool IsEnabled => PlayerControl.LocalPlayer?.Data?.IsIncomplete == false;
|
||||
internal static Dictionary<string, string> PlayerData = []; // HashPuid, FriendCode
|
||||
internal static Dictionary<string, string> SickoData = []; // HashPuid, FriendCode
|
||||
internal static Dictionary<string, string> AUMData = []; // HashPuid, FriendCode
|
||||
internal static Dictionary<string, string> KNData = []; // HashPuid, FriendCode
|
||||
internal static bool IsEnabled => PlayerControl.LocalPlayer?.Data?.IsIncomplete == false;
|
||||
|
||||
public static string[] GatherAllData()
|
||||
internal static string[] GatherAllData()
|
||||
{
|
||||
return PlayerData.Keys
|
||||
.Concat(PlayerData.Values)
|
||||
@@ -30,7 +30,7 @@ class BAUAntiCheat
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
public static void Update()
|
||||
internal static void Update()
|
||||
{
|
||||
if (GameState.IsHost && GameState.IsInGame)
|
||||
{
|
||||
@@ -71,7 +71,7 @@ class BAUAntiCheat
|
||||
{
|
||||
[HarmonyPatch(nameof(PlatformSpecificData.Deserialize))]
|
||||
[HarmonyPostfix]
|
||||
public static void Deserialize_Postfix(PlatformSpecificData __instance)
|
||||
internal static void Deserialize_Postfix(PlatformSpecificData __instance)
|
||||
{
|
||||
if (!Main.AntiCheat.Value || !GameState.IsVanillaServer) return;
|
||||
|
||||
@@ -128,7 +128,7 @@ class BAUAntiCheat
|
||||
}
|
||||
|
||||
// Handle RPC before anti cheat detection
|
||||
public static void HandleCheatRPCBeforeCheck(PlayerControl player, byte callId, MessageReader oldReader)
|
||||
internal static void HandleCheatRPCBeforeCheck(PlayerControl player, byte callId, MessageReader oldReader)
|
||||
{
|
||||
MessageReader reader = MessageReader.Get(oldReader);
|
||||
|
||||
@@ -138,7 +138,7 @@ class BAUAntiCheat
|
||||
}
|
||||
|
||||
// Check and notify for invalid rpcs
|
||||
public static void CheckRPC(PlayerControl player, byte callId, MessageReader oldReader)
|
||||
internal static void CheckRPC(PlayerControl player, byte callId, MessageReader oldReader)
|
||||
{
|
||||
MessageReader reader = MessageReader.Get(oldReader);
|
||||
|
||||
@@ -149,7 +149,7 @@ class BAUAntiCheat
|
||||
}
|
||||
|
||||
// Check notify and cancel out request for invalid rpcs
|
||||
public static bool CheckCancelRPC(PlayerControl player, byte callId, MessageReader oldReader)
|
||||
internal static bool CheckCancelRPC(PlayerControl player, byte callId, MessageReader oldReader)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -243,7 +243,7 @@ class BAUAntiCheat
|
||||
}
|
||||
|
||||
// Check game states when sabotaging
|
||||
public static bool RpcUpdateSystemCheck(PlayerControl player, SystemTypes systemType, MessageReader oldReader)
|
||||
internal static bool RpcUpdateSystemCheck(PlayerControl player, SystemTypes systemType, MessageReader oldReader)
|
||||
{
|
||||
MessageReader reader = MessageReader.Get(oldReader);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ using UnityEngine;
|
||||
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
public enum HandlerFlag
|
||||
internal enum HandlerFlag
|
||||
{
|
||||
Handle,
|
||||
AntiCheatCheck,
|
||||
@@ -17,33 +17,33 @@ public enum HandlerFlag
|
||||
HandleGameDataTag
|
||||
}
|
||||
|
||||
public abstract class RPCHandler
|
||||
internal abstract class RPCHandler
|
||||
{
|
||||
public static readonly RPCHandler?[] allHandlers = [.. RegisterRPCHandlerAttribute.Instances];
|
||||
internal static readonly RPCHandler?[] allHandlers = [.. RegisterRPCHandlerAttribute.Instances];
|
||||
|
||||
public static RPCHandler?[] GetAllHandlerInstances() => Assembly.GetExecutingAssembly()
|
||||
internal static RPCHandler?[] GetAllHandlerInstances() => Assembly.GetExecutingAssembly()
|
||||
.GetTypes()
|
||||
.Where(t => t.IsSubclassOf(typeof(RPCHandler)) && !t.IsAbstract)
|
||||
.Select(t => (RPCHandler?)Activator.CreateInstance(t))
|
||||
.ToArray();
|
||||
|
||||
public InnerNetClient innerNetClient => DestroyableSingleton<InnerNetClient>.Instance;
|
||||
public virtual byte CallId => byte.MaxValue;
|
||||
public virtual byte GameDataTag => byte.MaxValue;
|
||||
public virtual bool LocalHandling { get; set; }
|
||||
internal InnerNetClient innerNetClient => DestroyableSingleton<InnerNetClient>.Instance;
|
||||
internal virtual byte CallId => byte.MaxValue;
|
||||
internal virtual byte GameDataTag => byte.MaxValue;
|
||||
internal virtual bool LocalHandling { get; set; }
|
||||
protected static bool CancelAsHost => !(GameState.IsHost);
|
||||
|
||||
public static bool CheckRange(Vector2 pos1, Vector2 pos2, float range) => Vector2.Distance(pos1, pos2) <= range;
|
||||
public virtual void Handle(PlayerControl? sender, MessageReader reader) { }
|
||||
public virtual void HandleGameData(MessageReader reader) { }
|
||||
public virtual void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader) { }
|
||||
public virtual bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader) => true;
|
||||
public virtual void HandleAntiCheat(PlayerControl? sender, MessageReader reader) { }
|
||||
public virtual bool BetterHandle(PlayerControl? sender, MessageReader reader) => true;
|
||||
internal static bool CheckRange(Vector2 pos1, Vector2 pos2, float range) => Vector2.Distance(pos1, pos2) <= range;
|
||||
internal virtual void Handle(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual void HandleGameData(MessageReader reader) { }
|
||||
internal virtual void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader) => true;
|
||||
internal virtual void HandleAntiCheat(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual bool BetterHandle(PlayerControl? sender, MessageReader reader) => true;
|
||||
|
||||
protected static PlayerControl? catchedSender;
|
||||
protected static HandlerFlag catchedHandlerFlag = HandlerFlag.Handle;
|
||||
public static bool HandleRPC(byte calledId, PlayerControl? sender, MessageReader reader, HandlerFlag handlerFlag)
|
||||
internal static bool HandleRPC(byte calledId, PlayerControl? sender, MessageReader reader, HandlerFlag handlerFlag)
|
||||
{
|
||||
catchedSender = sender;
|
||||
catchedHandlerFlag = handlerFlag;
|
||||
@@ -83,20 +83,20 @@ public abstract class RPCHandler
|
||||
return !(cancel);
|
||||
}
|
||||
|
||||
public void LogRpcInfo(string info, PlayerControl? player = null)
|
||||
internal void LogRpcInfo(string info, PlayerControl? player = null)
|
||||
{
|
||||
string Name = Enum.GetName((RpcCalls)CallId) ?? Enum.GetName((CustomRPC)CallId) ?? $"Unregistered({CallId})";
|
||||
Name = $"[{Enum.GetName(catchedHandlerFlag)}] > " + Name;
|
||||
Logger.LogCheat($"{catchedSender?.BetterData()?.RealName ?? player.BetterData()?.RealName ?? string.Empty} {Name}: {info}");
|
||||
}
|
||||
|
||||
public string GetFormatActionText()
|
||||
internal string GetFormatActionText()
|
||||
{
|
||||
string Name = Enum.GetName((RpcCalls)CallId) ?? Enum.GetName((CustomRPC)CallId) ?? $"Unregistered({CallId})";
|
||||
return string.Format(Translator.GetString("AntiCheat.InvalidActionRPC"), Name);
|
||||
}
|
||||
|
||||
public string GetFormatSetText()
|
||||
internal string GetFormatSetText()
|
||||
{
|
||||
string Name = Enum.GetName((RpcCalls)CallId) ?? Enum.GetName((CustomRPC)CallId) ?? $"Unregistered({CallId})";
|
||||
return string.Format(Translator.GetString("AntiCheat.InvalidSetRPC"), Name);
|
||||
|
||||
@@ -8,11 +8,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class AUMChatHandler : RPCHandler
|
||||
internal sealed class AUMChatHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => unchecked((byte)CustomRPC.AUMChat);
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.AUMChat);
|
||||
|
||||
public override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
var nameString = reader.ReadString();
|
||||
var msgString = reader.ReadString();
|
||||
|
||||
@@ -8,11 +8,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class AUMHandler : RPCHandler
|
||||
internal sealed class AUMHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => unchecked((byte)CustomRPC.AUM);
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.AUM);
|
||||
|
||||
public override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (Main.AntiCheat.Value && BetterGameSettings.DetectCheatClients.GetBool())
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class AddVoteHandler : RPCHandler
|
||||
internal sealed class AddVoteHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.AddVote;
|
||||
internal override byte CallId => (byte)RpcCalls.AddVote;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class BootFromVentHandler : RPCHandler
|
||||
internal sealed class BootFromVentHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.BootFromVent;
|
||||
internal override byte CallId => (byte)RpcCalls.BootFromVent;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CancelPetHandler : RPCHandler
|
||||
internal sealed class CancelPetHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CancelPet;
|
||||
internal override byte CallId => (byte)RpcCalls.CancelPet;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CastVoteHandler : RPCHandler
|
||||
internal sealed class CastVoteHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CastVote;
|
||||
internal override byte CallId => (byte)RpcCalls.CastVote;
|
||||
}
|
||||
@@ -6,11 +6,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckAppearHandler : RPCHandler
|
||||
internal sealed class CheckAppearHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckAppear;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckAppear;
|
||||
|
||||
public override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
bool flag = reader.ReadBoolean();
|
||||
|
||||
@@ -35,7 +35,7 @@ public sealed class CheckAppearHandler : RPCHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -4,11 +4,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckColorHandler : RPCHandler
|
||||
internal sealed class CheckColorHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckColor;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckColor;
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -6,11 +6,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckMurderHandler : RPCHandler
|
||||
internal sealed class CheckMurderHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckMurder;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckMurder;
|
||||
|
||||
public override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
PlayerControl target = reader.ReadNetObject<PlayerControl>();
|
||||
|
||||
@@ -41,7 +41,7 @@ public sealed class CheckMurderHandler : RPCHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -6,11 +6,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckNameHandler : RPCHandler
|
||||
internal sealed class CheckNameHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckName;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckName;
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost) return false;
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckProtectHandler : RPCHandler
|
||||
internal sealed class CheckProtectHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckProtect;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckProtect;
|
||||
|
||||
public override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
PlayerControl target = reader.ReadNetObject<PlayerControl>();
|
||||
if (target != null)
|
||||
@@ -31,7 +31,7 @@ public sealed class CheckProtectHandler : RPCHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -7,11 +7,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckShapeshiftHandler : RPCHandler
|
||||
internal sealed class CheckShapeshiftHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckShapeshift;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckShapeshift;
|
||||
|
||||
public override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool BetterHandle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
PlayerControl target = reader.ReadNetObject<PlayerControl>();
|
||||
bool flag = reader.ReadBoolean();
|
||||
@@ -38,7 +38,7 @@ public sealed class CheckShapeshiftHandler : RPCHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -4,11 +4,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckSporeHandler : RPCHandler
|
||||
internal sealed class CheckSporeHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckSpore;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckSpore;
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -6,11 +6,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckVanishHandler : RPCHandler
|
||||
internal sealed class CheckVanishHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckVanish;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckVanish;
|
||||
|
||||
public override bool BetterHandle(PlayerControl? player, MessageReader reader)
|
||||
internal override bool BetterHandle(PlayerControl? player, MessageReader reader)
|
||||
{
|
||||
if (player.Is(RoleTypes.Phantom)
|
||||
&& player.IsAlive()
|
||||
@@ -31,7 +31,7 @@ public sealed class CheckVanishHandler : RPCHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -4,11 +4,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CheckZiplineHandler : RPCHandler
|
||||
internal sealed class CheckZiplineHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CheckZipline;
|
||||
internal override byte CallId => (byte)RpcCalls.CheckZipline;
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ClearVoteHandler : RPCHandler
|
||||
internal sealed class ClearVoteHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.ClearVote;
|
||||
internal override byte CallId => (byte)RpcCalls.ClearVote;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ClimbLadderHandler : RPCHandler
|
||||
internal sealed class ClimbLadderHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.ClimbLadder;
|
||||
internal override byte CallId => (byte)RpcCalls.ClimbLadder;
|
||||
}
|
||||
@@ -6,10 +6,10 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CloseDoorsOfTypeHandler : RPCHandler
|
||||
internal sealed class CloseDoorsOfTypeHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CloseDoorsOfType;
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override byte CallId => (byte)RpcCalls.CloseDoorsOfType;
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!sender.IsImpostorTeam())
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CloseMeetingHandler : RPCHandler
|
||||
internal sealed class CloseMeetingHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CloseMeeting;
|
||||
internal override byte CallId => (byte)RpcCalls.CloseMeeting;
|
||||
}
|
||||
@@ -6,16 +6,16 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class CompleteTaskHandler : RPCHandler
|
||||
internal sealed class CompleteTaskHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.CompleteTask;
|
||||
internal override byte CallId => (byte)RpcCalls.CompleteTask;
|
||||
|
||||
public override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
internal override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
sender.DirtyName();
|
||||
}
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
var taskId = reader.ReadPackedUInt32();
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class EnterVentHandler : RPCHandler
|
||||
internal sealed class EnterVentHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.EnterVent;
|
||||
internal override byte CallId => (byte)RpcCalls.EnterVent;
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!sender.IsImpostorTeam() && !sender.Is(RoleTypes.Engineer))
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ExiledHandler : RPCHandler
|
||||
internal sealed class ExiledHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.Exiled;
|
||||
internal override byte CallId => (byte)RpcCalls.Exiled;
|
||||
}
|
||||
@@ -4,9 +4,9 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ExitVentHandler : RPCHandler
|
||||
internal sealed class ExitVentHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.ExitVent;
|
||||
internal override byte CallId => (byte)RpcCalls.ExitVent;
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader) => RegisterRPCHandlerAttribute.GetClassInstance<EnterVentHandler>().HandleAntiCheat(sender, reader);
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader) => RegisterRPCHandlerAttribute.GetClassInstance<EnterVentHandler>().HandleAntiCheat(sender, reader);
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ExtendLobbyTimerHandler : RPCHandler
|
||||
internal sealed class ExtendLobbyTimerHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.ExtendLobbyTimer;
|
||||
internal override byte CallId => (byte)RpcCalls.ExtendLobbyTimer;
|
||||
}
|
||||
@@ -8,11 +8,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class KillNetworkChatHandler : RPCHandler
|
||||
internal sealed class KillNetworkChatHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => unchecked((byte)CustomRPC.KillNetworkChat);
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.KillNetworkChat);
|
||||
|
||||
public override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!Main.AntiCheat.Value || !BetterGameSettings.DetectCheatClients.GetBool()) return;
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class KillNetworkHandler : RPCHandler
|
||||
internal sealed class KillNetworkHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => unchecked((byte)CustomRPC.KillNetwork);
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.KillNetwork);
|
||||
|
||||
public override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (Main.AntiCheat.Value && BetterGameSettings.DetectCheatClients.GetBool())
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class LobbyTimeExpiringHandler : RPCHandler
|
||||
internal sealed class LobbyTimeExpiringHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.LobbyTimeExpiring;
|
||||
internal override byte CallId => (byte)RpcCalls.LobbyTimeExpiring;
|
||||
}
|
||||
@@ -8,17 +8,17 @@ using InnerNet;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class MurderPlayerHandler : RPCHandler
|
||||
internal sealed class MurderPlayerHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.MurderPlayer;
|
||||
internal override byte CallId => (byte)RpcCalls.MurderPlayer;
|
||||
|
||||
public override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
internal override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
Utils.DirtyAllNames();
|
||||
}
|
||||
|
||||
// Prevent ban exploit
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? player, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? player, MessageReader reader)
|
||||
{
|
||||
PlayerControl target = reader.ReadNetObject<PlayerControl>();
|
||||
|
||||
@@ -46,7 +46,7 @@ public sealed class MurderPlayerHandler : RPCHandler
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
PlayerControl target = reader.ReadNetObject<PlayerControl>();
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ using InnerNet;
|
||||
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
public class DeserializeNetObjectHandler : RPCHandler
|
||||
internal class DeserializeNetObjectHandler : RPCHandler
|
||||
{
|
||||
public override byte GameDataTag => (byte)HandleGameDataTags.NetObjectDeserialize;
|
||||
internal override byte GameDataTag => (byte)HandleGameDataTags.NetObjectDeserialize;
|
||||
|
||||
public override void HandleGameData(MessageReader reader)
|
||||
internal override void HandleGameData(MessageReader reader)
|
||||
{
|
||||
uint netId = reader.ReadPackedUInt32();
|
||||
var innerNetObject = innerNetClient.FindObjectByNetId<InnerNetObject>(netId);
|
||||
|
||||
@@ -4,11 +4,11 @@ using InnerNet;
|
||||
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
public class DespawnNetObjectHandler : RPCHandler
|
||||
internal class DespawnNetObjectHandler : RPCHandler
|
||||
{
|
||||
public override byte GameDataTag => (byte)HandleGameDataTags.NetObjectDespawn;
|
||||
internal override byte GameDataTag => (byte)HandleGameDataTags.NetObjectDespawn;
|
||||
|
||||
public override void HandleGameData(MessageReader reader)
|
||||
internal override void HandleGameData(MessageReader reader)
|
||||
{
|
||||
// if (!GameState.IsHost) return;
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class PetHandler : RPCHandler
|
||||
internal sealed class PetHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.Pet;
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override byte CallId => (byte)RpcCalls.Pet;
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (sender?.CurrentOutfit?.PetId == "pet_EmptyPet")
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class PlayAnimationHandler : RPCHandler
|
||||
internal sealed class PlayAnimationHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.PlayAnimation;
|
||||
internal override byte CallId => (byte)RpcCalls.PlayAnimation;
|
||||
}
|
||||
@@ -7,11 +7,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ProtectPlayerHandler : RPCHandler
|
||||
internal sealed class ProtectPlayerHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.ProtectPlayer;
|
||||
internal override byte CallId => (byte)RpcCalls.ProtectPlayer;
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!sender.Is(RoleTypes.GuardianAngel))
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class RejectShapeshiftHandler : RPCHandler
|
||||
internal sealed class RejectShapeshiftHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.RejectShapeshift;
|
||||
internal override byte CallId => (byte)RpcCalls.RejectShapeshift;
|
||||
}
|
||||
@@ -6,11 +6,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class ReportDeadBodyHandler : RPCHandler
|
||||
internal sealed class ReportDeadBodyHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.ReportDeadBody;
|
||||
internal override byte CallId => (byte)RpcCalls.ReportDeadBody;
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!GameState.IsInGamePlay || !Main.AllPlayerControls.All(pc => pc.roleAssigned))
|
||||
{
|
||||
|
||||
@@ -8,11 +8,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SendChatHandler : RPCHandler
|
||||
internal sealed class SendChatHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SendChat;
|
||||
internal override byte CallId => (byte)RpcCalls.SendChat;
|
||||
|
||||
public override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
internal override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
var text = reader.ReadString();
|
||||
|
||||
@@ -48,7 +48,7 @@ public sealed class SendChatHandler : RPCHandler
|
||||
}
|
||||
}
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (sender.IsAlive() && GameState.IsInGamePlay && !GameState.IsMeeting && !GameState.IsExilling || DataManager.Settings.Multiplayer.ChatMode == InnerNet.QuickChatModes.QuickChatOnly)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SendChatNoteHandler : RPCHandler
|
||||
internal sealed class SendChatNoteHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SendChatNote;
|
||||
internal override byte CallId => (byte)RpcCalls.SendChatNote;
|
||||
}
|
||||
@@ -6,11 +6,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SendQuickChatHandler : RPCHandler
|
||||
internal sealed class SendQuickChatHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SendQuickChat;
|
||||
internal override byte CallId => (byte)RpcCalls.SendQuickChat;
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (sender.IsAlive() && GameState.IsInGamePlay && !GameState.IsMeeting && !GameState.IsExilling || reader.BytesRemaining == 0)
|
||||
{
|
||||
|
||||
@@ -4,10 +4,10 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetColorHandler : RPCHandler
|
||||
internal sealed class SetColorHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetColor;
|
||||
public override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
internal override byte CallId => (byte)RpcCalls.SetColor;
|
||||
internal override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
Logger.InGame("TEST");
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetHatHandler : RPCHandler
|
||||
internal sealed class SetHatHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetHat;
|
||||
internal override byte CallId => (byte)RpcCalls.SetHat;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetHatStrHandler : RPCHandler
|
||||
internal sealed class SetHatStrHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetHatStr;
|
||||
internal override byte CallId => (byte)RpcCalls.SetHatStr;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetInfectedHandler : RPCHandler
|
||||
internal sealed class SetInfectedHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetInfected;
|
||||
internal override byte CallId => (byte)RpcCalls.SetInfected;
|
||||
}
|
||||
@@ -7,11 +7,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetLevelHandler : RPCHandler
|
||||
internal sealed class SetLevelHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetLevel;
|
||||
internal override byte CallId => (byte)RpcCalls.SetLevel;
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (sender.DataIsCollected() == true && sender.BetterData().AntiCheatInfo.HasSetLevel && !GameState.IsLocalGame && GameState.IsVanillaServer)
|
||||
{
|
||||
@@ -26,7 +26,7 @@ public sealed class SetLevelHandler : RPCHandler
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
uint level = reader.ReadPackedUInt32();
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetNameHandler : RPCHandler
|
||||
internal sealed class SetNameHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetName;
|
||||
internal override byte CallId => (byte)RpcCalls.SetName;
|
||||
|
||||
public override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
internal override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
Utils.DirtyAllNames();
|
||||
}
|
||||
|
||||
public override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (GameState.IsHost) return false;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetNamePlateHandler : RPCHandler
|
||||
internal sealed class SetNamePlateHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetNamePlate;
|
||||
internal override byte CallId => (byte)RpcCalls.SetNamePlate;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetNamePlateStrHandler : RPCHandler
|
||||
internal sealed class SetNamePlateStrHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetNamePlateStr;
|
||||
internal override byte CallId => (byte)RpcCalls.SetNamePlateStr;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetPetHandler : RPCHandler
|
||||
internal sealed class SetPetHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetPet;
|
||||
internal override byte CallId => (byte)RpcCalls.SetPet;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using BetterAmongUs.Items.Attributes;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetPetStrHandler : RPCHandler
|
||||
internal sealed class SetPetStrHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetPetStr;
|
||||
internal override byte CallId => (byte)RpcCalls.SetPetStr;
|
||||
}
|
||||
@@ -5,11 +5,11 @@ using Hazel;
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
[RegisterRPCHandler]
|
||||
public sealed class SetRoleHandler : RPCHandler
|
||||
internal sealed class SetRoleHandler : RPCHandler
|
||||
{
|
||||
public override byte CallId => (byte)RpcCalls.SetRole;
|
||||
internal override byte CallId => (byte)RpcCalls.SetRole;
|
||||
|
||||
public override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
internal override void Handle(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
sender.DirtyName();
|
||||
}
|
||||
|
||||
Loaded 100 of 155 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user