NLDClient-yudde/ProjectNLD/Assets/ThirdParty/AntiCheatToolkit/Editor/Scripts/ACTkMenuItems.cs

134 lines
4.9 KiB
C#
Raw Normal View History

2023-10-19 15:00:19 +08:00
#region copyright
// ------------------------------------------------------
// Copyright (C) Dmitriy Yukhanov [https://codestage.net]
// ------------------------------------------------------
#endregion
namespace CodeStage.AntiCheat.EditorCode
{
using Detectors;
using UnityEditor;
using Common;
using PostProcessors;
using UnityEngine;
using Processors;
internal static class ACTkMenuItems
{
// ---------------------------------------------------------------
// Main menu items
// ---------------------------------------------------------------
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Settings...", false, 100)]
private static void ShowSettingsWindow()
{
ACTkSettings.Show();
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Injection Detector Whitelist Editor...", false, 1000)]
private static void ShowAssembliesWhitelistWindow()
{
UserWhitelistEditor.ShowWindow();
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Calculate external build hashes", false, 1200)]
private static async void HashExternalBuild()
{
var buildHashes = await CodeHashGeneratorPostprocessor.CalculateExternalBuildHashesAsync(null, true);
if (buildHashes == null || buildHashes.FileHashes.Count == 0)
{
Debug.LogError(ACTk.LogPrefix + "External build hashing was not successful. " +
"See previous log messages for possible details.");
}
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Configure proguard-user.txt", false, 1201)]
private static void CheckProGuard()
{
BuildPreProcessor.CheckProGuard(true);
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Migrate/Migrate obscured types on prefabs...", false, 1500)]
private static void MigrateObscuredTypesOnPrefabs()
{
MigrateUtils.MigrateObscuredTypesOnPrefabs("ObscuredFloat", "ObscuredDouble", "ObscuredVector2", "ObscuredVector3", "ObscuredQuaternion");
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Migrate/Migrate obscured types in opened scene(s)...", false, 1501)]
private static void MigrateObscuredTypesInScene()
{
MigrateUtils.MigrateObscuredTypesInScene("ObscuredFloat", "ObscuredDouble", "ObscuredVector2", "ObscuredVector3", "ObscuredQuaternion");
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Validate/Validate obscured types in assets...", false, 1500)]
private static void ValidateObscuredTypesInAssets()
{
ObscuredTypesValidator.ValidateProjectAssets();
}
[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Validate/Validate obscured types in opened scene(s)...", false, 1501)]
private static void ValidateObscuredTypesInOpenedScenes()
{
ObscuredTypesValidator.ValidateOpenedScenes();
}
/* will be needed when obsolete string internals will be deprecated along with automatic migration */
//[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Migrate/Migrate ObscuredString on prefabs...", false, 1600)]
private static void MigrateObscuredStringOnPrefabs()
{
MigrateUtils.MigrateObscuredTypesOnPrefabs("ObscuredString");
}
//[MenuItem(ACTkEditorConstants.ToolsMenuPath + "Migrate/Migrate ObscuredString in opened scene(s)...", false, 1601)]
private static void MigrateObscuredStringInScene()
{
MigrateUtils.MigrateObscuredTypesInScene("ObscuredString");
}
// ---------------------------------------------------------------
// GameObject menu items
// ---------------------------------------------------------------
[MenuItem(ACTkEditorConstants.GameObjectMenuPath + "All detectors", false, 0)]
private static void AddAllDetectorsToScene()
{
AddInjectionDetectorToScene();
AddObscuredCheatingDetectorToScene();
AddSpeedHackDetectorToScene();
AddWallHackDetectorToScene();
AddTimeCheatingDetectorToScene();
}
[MenuItem(ACTkEditorConstants.GameObjectMenuPath + InjectionDetector.ComponentName, false, 1)]
private static void AddInjectionDetectorToScene()
{
DetectorTools.SetupDetectorInScene<InjectionDetector>();
}
[MenuItem(ACTkEditorConstants.GameObjectMenuPath + ObscuredCheatingDetector.ComponentName, false, 1)]
private static void AddObscuredCheatingDetectorToScene()
{
DetectorTools.SetupDetectorInScene<ObscuredCheatingDetector>();
}
[MenuItem(ACTkEditorConstants.GameObjectMenuPath + SpeedHackDetector.ComponentName, false, 1)]
private static void AddSpeedHackDetectorToScene()
{
DetectorTools.SetupDetectorInScene<SpeedHackDetector>();
}
[MenuItem(ACTkEditorConstants.GameObjectMenuPath + WallHackDetector.ComponentName, false, 1)]
private static void AddWallHackDetectorToScene()
{
DetectorTools.SetupDetectorInScene<WallHackDetector>();
}
[MenuItem(ACTkEditorConstants.GameObjectMenuPath + TimeCheatingDetector.ComponentName, false, 1)]
private static void AddTimeCheatingDetectorToScene()
{
DetectorTools.SetupDetectorInScene<TimeCheatingDetector>();
}
}
}