Иконка ресурса

FREE Hooks : 0.1.0 0.1.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
#define DEBUG

using System;
using System.Collections.Generic;
using System.Linq;
using Oxide.Core;
using Oxide.Core.Libraries.Covalence;

namespace Oxide.Plugins
{
    [Info("Hooks", "Oxide Team", "0.1.0")]
    [Description("Tests all of the available Oxide hooks")]

    class Hooks : CovalencePlugin
    {
        #region Hook Verification

        int hookCount;
        int hooksVerified;
        Dictionary<string, bool> hooksRemaining = new Dictionary<string, bool>();

        public void HookCalled(string hook)
        {
            if (!hooksRemaining.ContainsKey(hook)) return;
            hookCount--;
            hooksVerified++;
            PrintWarning($"{hook} is working");
            hooksRemaining.Remove(hook);
            PrintWarning(hookCount == 0 ? "All hooks verified!" : $"{hooksVerified} hooks verified, {hookCount} hooks remaining");
        }

        #endregion

        #region Plugin Hooks (universal)

        private void Init()
        {
            hookCount = hooks.Count;
            hooksRemaining = hooks.Keys.ToDictionary(k => k, k => true);
            PrintWarning("{0} hook to test!", hookCount);
            HookCalled("Init");
        }

        protected override void LoadDefaultConfig() => HookCalled("LoadDefaultConfig");

        private void Loaded() => HookCalled("Loaded");

        private void Unloaded() => HookCalled("Unloaded");

        private void OnFrame() => HookCalled("OnFrame");

        #endregion

        #region Server Hooks (universal)

        private void OnServerInitialized()
        {
            HookCalled("OnServerInitialized");

            PrintWarning($"{server.Name} at {server.Address}:{server.Port}");
            PrintWarning($"Oxide {OxideMod.Version} for {covalence.Game.Humanize()} {server.Version}");
            //PrintWarning($"World time is: {server.Time.ToString("h:mm tt").ToLower()}");
            //PrintWarning($"World date is: {server.Time}");
            timer.Every(1f, () =>
            {
                PrintWarning(new DateTime(Convert.ToUInt64(TimeSpan.FromHours(EnvironmentControlCenter.Singleton.GetTime()))).ToString());
                //PrintWarning(TheForestAtmosphere.Instance.TimeOfDay.ToString());
            });
        }

        private void OnServerSave() => HookCalled("OnServerSave");

        private void OnServerShutdown() => HookCalled("OnServerShutdown");

        #endregion

        #region Player Hooks (covalence)

        private object CanUserLogin(string name, string id, string ip)
        {
            HookCalled("CanUserLogin");

            PrintWarning($"{name} ({id}) at {ip} is attempting to login");

            return null;
        }

        private void OnUserApproved(string name, string id, string ip)
        {
            HookCalled("OnUserApproved");

            PrintWarning($"{name} ({id}) at {ip} has been approved");
        }

        private object OnUserChat(IPlayer player, string message)
        {
            HookCalled("OnUserChat");

            PrintWarning($"{player.Name} said: {message}");

            return null;
        }

        private void OnUserConnected(IPlayer player)
        {
            HookCalled("OnUserConnected");

            PrintWarning($"{player.Name} ({player.Id}) connected from {player.Address}");
            if (player.IsAdmin) PrintWarning($"{player.Name} is admin");
            PrintWarning($"{player.Name} is {(player.IsBanned ? "banned" : "not banned")}");

            server.Broadcast($"Welcome {player.Name} to {server.Name}!");
            foreach (var target in players.Connected) target.Message($"Look out...{player.Name} is coming to get you!");
        }

        private void OnUserDisconnected(IPlayer player, string reason)
        {
            HookCalled("OnUserDisconnected");

            PrintWarning($"{player.Name} ({player.Id}) disconnected for: {reason ?? "Unknown"}");
            server.Broadcast($"{player.Name} has abandoned us...free loot!");
        }

        private void OnUserInit(IPlayer player)
        {
            HookCalled("OnUserInit");

            PrintWarning($"{player.Name ?? "Unnamed"} initialized");
        }

        private void OnUserSpawn(IPlayer player)
        {
            HookCalled("OnUserSpawn");

            PrintWarning($"{player.Name} is spawning now");
        }

        private void OnUserSpawned(IPlayer player)
        {
            HookCalled("OnUserSpawned");

            PrintWarning($"{player.Name} spawned at {player.Character.Position()}");
        }

        private void OnUserRespawn(IPlayer player)
        {
            HookCalled("OnUserRespawn");

            PrintWarning($"{player.Name} is respawning now");
        }

        private void OnUserRespawned(IPlayer player)
        {
            HookCalled("OnUserRespawned");

            PrintWarning($"{player.Name} respawned at {player.Character.Position()}");
        }

        #endregion

#if HIDEHOLDOUT

        #region Server Hooks

        private void OnServerCommand(string command)
        {
            HookCalled("OnServerCommand");
        }

        #endregion

        #region Player Hooks

        private void OnChatCommand(PlayerInfos player, string command)
        {
            HookCalled("OnChatCommand");
        }

        private void OnPlayerDeath(PlayerInfos player)
        {
            HookCalled("OnPlayerDeath");
        }

        #endregion

#endif

#if HURTWORLD

        #region Player Hooks

        private object OnChatCommand(PlayerSession session, string command)
        {
            HookCalled("OnChatCommand");
            return null;
        }

        private void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source)
        {
            HookCalled("OnPlayerDeath");
        }

        #endregion

        #region Vehicle Hooks

        private object CanEnterVehicle(PlayerSession session, CharacterMotorSimple passenger)
        {
            HookCalled("CanEnterVehicle");
            return null;
        }

        private object CanExitVehicle(PlayerSession session, CharacterMotorSimple passenger)
        {
            HookCalled("CanExitVehicle");
            return null;
        }

        private void OnEnterVehicle(PlayerSession session, CharacterMotorSimple passenger)
        {
            HookCalled("OnEnterVehicle");
        }

        private void OnExitVehicle(PlayerSession session, CharacterMotorSimple passenger)
        {
            HookCalled("OnExitVehicle");
        }

        #endregion

#endif

#if REIGNOFKINGS

        void OnChatCommand(CodeHatch.Engine.Networking.Player player, string command, string[] args)
        {
            PrintWarning("OnChatCommand works!");
        }

        #region Entity Hooks

        private void OnEntityHealthChange(CodeHatch.Networking.Events.Entities.EntityDamageEvent e)
        {
            HookCalled("OnEntityHealthChange");
        }

        private void OnEntityDeath(CodeHatch.Networking.Events.Entities.EntityDeathEvent e)
        {
            HookCalled("OnEntityDeath");
        }

        #endregion

        #region Structure Hooks

        private void OnCubePlacement(CodeHatch.Blocks.Networking.Events.CubePlaceEvent evt)
        {
            HookCalled("OnCubePlacement");
        }

        private void OnCubeTakeDamage(CodeHatch.Blocks.Networking.Events.CubeDamageEvent evt)
        {
            HookCalled("OnCubeTakeDamage");
        }

        private void OnCubeDestroyed(CodeHatch.Blocks.Networking.Events.CubeDestroyEvent evt)
        {
            HookCalled("OnCubeDestroyed");
        }

        #endregion

#endif

#if RUST

        #region Server Hooks

        private void OnNewSave(string name) => HookCalled("OnNewSave");

        private void OnTick() => HookCalled("OnTick");

        private void OnTerrainInitialized() => HookCalled("OnTerrainInitialized");

        private object OnServerCommand(ConsoleSystem.Arg arg)
        {
            HookCalled("OnServerCommand");
            return null;
        }

        private object OnRconConnection(System.Net.IPEndPoint ipEndPoint)
        {
            HookCalled("OnRconConnection");
            return null;
        }

        #endregion

        #region Player Hooks

        private bool CanBypassQueue(Network.Connection connection)
        {
            HookCalled("CanBypassQueue");
            return true;
        }

        private bool CanEquipItem(PlayerInventory inventory, Item item)
        {
            HookCalled("CanEquipItem");
            return true;
        }

        private bool CanWearItem(PlayerInventory inventory, Item item)
        {
            HookCalled("CanWearItem");
            return true;
        }

        private void OnFindSpawnPoint()
        {
            HookCalled("OnFindSpawnPoint");
        }

        private void OnPlayerInput(BasePlayer player, InputState input)
        {
            HookCalled("OnPlayerInput");
        }

        private void OnRunPlayerMetabolism(PlayerMetabolism metabolism)
        {
            HookCalled("OnRunPlayerMetabolism");
            // TODO: Print new metabolism values
        }

        #endregion

        #region Entity Hooks

        private void OnAirdrop(CargoPlane plane, UnityEngine.Vector3 location)
        {
            HookCalled("OnAirdrop");
        }

        private void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
            HookCalled("OnEntityTakeDamage");
        }

        private void OnEntityBuilt(Planner planner, UnityEngine.GameObject go)
        {
            HookCalled("OnEntityBuilt");
        }

        private void OnEntityDeath(BaseCombatEntity entity, HitInfo hitInfo)
        {
            HookCalled("OnEntityDeath");
            // TODO: Print player died
            // TODO: Automatically respawn admin after X time
        }

        private void OnEntityEnter(TriggerBase trigger, BaseEntity entity)
        {
            HookCalled("OnEntityEnter");
        }

        private void OnEntityLeave(TriggerBase trigger, BaseEntity entity)
        {
            HookCalled("OnEntityLeave");
        }

        private void OnEntitySpawned(BaseNetworkable entity)
        {
            HookCalled("OnEntitySpawned");
        }

        #endregion

        #region Item Hooks

        private void OnItemCraft(ItemCraftTask item)
        {
            HookCalled("OnItemCraft");
            // TODO: Print item crafting
        }

        private void OnItemDeployed(Deployer deployer, BaseEntity entity)
        {
            HookCalled("OnItemDeployed");
            // TODO: Print item deployed
        }

        private void OnCollectiblePickup(Item item, BasePlayer player)
        {
            HookCalled("OnCollectiblePickup");
            // TODO: Print item picked up
        }

        private void OnItemAddedToContainer(ItemContainer container, Item item)
        {
            HookCalled("OnItemAddedToContainer");
            // TODO: Print item added
        }

        private void OnItemRemovedFromContainer(ItemContainer container, Item item)
        {
            HookCalled("OnItemRemovedToContainer");
            // TODO: Print item removed
        }

        private void OnConsumableUse(Item item)
        {
            HookCalled("OnConsumableUse");
            // TODO: Print consumable item used
        }

        private void OnConsumeFuel(BaseOven oven, Item fuel, ItemModBurnable burnable)
        {
            HookCalled("OnConsumeFuel");
            // TODO: Print fuel consumed
        }

        private void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
        {
            HookCalled("OnDispenserGather");
            // TODO: Print item to be gathered
        }

        private void OnCropGather(PlantEntity plant, Item item, BasePlayer player)
        {
            HookCalled("OnCropGather");
            // TODO: Print item to be gathered
        }

        private void OnSurveyGather(SurveyCharge survey, Item item)
        {
            HookCalled("OnSurveyGather");
        }

        private void OnQuarryGather(MiningQuarry quarry, Item item)
        {
            HookCalled("OnQuarryGather");
        }

        private void OnQuarryEnabled() => HookCalled("OnQuarryEnabled");

        private void OnTrapArm(BearTrap trap)
        {
            HookCalled("OnTrapArm");
        }

        private void OnTrapSnapped(BaseTrapTrigger trap, UnityEngine.GameObject go)
        {
            HookCalled("OnTrapSnapped");
        }

        private void OnTrapTrigger(BaseTrap trap, UnityEngine.GameObject go)
        {
            HookCalled("OnTrapTrigger");
        }

        #endregion

        #region Structure Hooks

        private void CanUseDoor(BasePlayer player, BaseLock door)
        //private void CanUseDoor(BasePlayer player, CodeLock door)
        //private void CanUseDoor(BasePlayer player, KeyLock door)
        {
            HookCalled("CanUseDoor");
        }

        private void OnStructureDemolish(BuildingBlock block, BasePlayer player)
        {
            HookCalled("OnStructureDemolish");
        }

        private void OnStructureRepair(BaseCombatEntity entity, BasePlayer player)
        {
            HookCalled("OnStructureRepair");
        }

        private void OnStructureRotate(BuildingBlock block, BasePlayer player)
        {
            HookCalled("OnStructureRotate");
        }

        private void OnStructureUpgrade(BuildingBlock block, BasePlayer player, BuildingGrade.Enum grade)
        {
            HookCalled("OnStructureUpgrade");
        }

        private void OnHammerHit(BasePlayer player, HitInfo info)
        {
            HookCalled("OnHammerHit");
        }

        private void OnWeaponFired(BaseProjectile projectile, BasePlayer player, ItemModProjectile mod, ProtoBuf.ProjectileShoot projectiles)
        {
            HookCalled("OnWeaponFired");
        }

        private void OnMeleeThrown(BasePlayer player, Item item)
        {
            HookCalled("OnMeleeThrown");
        }

        private void OnItemThrown(BasePlayer player, BaseEntity entity)
        {
            HookCalled("OnItemThrown");
        }

        private void OnSignLocked(Signage sign, BasePlayer player)
        {
            HookCalled("OnSignLocked");
        }

        private void OnSignUpdated(Signage sign, BasePlayer player)
        {
            HookCalled("OnSignUpdated");
        }

        private void OnDoorClosed(Door door, BasePlayer player)
        {
            HookCalled("OnDoorClosed");
        }

        private void OnDoorOpened(Door door, BasePlayer player)
        {
            HookCalled("OnDoorOpened");
        }

        private void OnCupboardAuthorize(BuildingPrivlidge privilege, BasePlayer player)
        {
            HookCalled("OnCupboardAuthorize");
        }

        private void OnCupboardDeauthorize(BuildingPrivlidge privilege, BasePlayer player)
        {
            HookCalled("OnCupboardDeauthorize");
        }

        private void OnRocketLaunched(BasePlayer player, BaseEntity entity)
        {
            HookCalled("OnRocketLaunched");
        }

        private void OnTrapArm(BearTrap trap, BasePlayer player)
        {
            HookCalled("OnTrapArm");
        }

        private void OnTrapDisarm(Landmine trap, BasePlayer player)
        {
            HookCalled("OnTrapDisarm");
        }

        private void OnTrapSnapped(BearTrap trap, UnityEngine.GameObject go)
        {
            HookCalled("OnTrapSnapped");
        }

        private void OnTrapTrigger(BearTrap trap, UnityEngine.GameObject go)
        {
            HookCalled("OnTrapTrigger");
        }

        private void OnPlayerAttack(BasePlayer attacker, HitInfo info)
        {
            HookCalled("OnPlayerAttack");
        }

        #endregion

        #region XP Hooks

        private object CanSpendXp(ulong id, int amount, string item)
        {
            HookCalled("CanSpendXp");
            PrintWarning($"{id} can spend {amount} XP on {item}");
            return null;
        }

        private object OnXpEarn(ulong id, float amount, string source)
        {
            HookCalled("OnXpEarn");
            PrintWarning($"{id} will earn {amount} XP from {source.Humanize()}");
            return null;
        }

        private void OnXpEarned(ulong id, float amount, string source)
        {
            HookCalled("OnXpEarned");
            PrintWarning($"{id} earned {amount} XP from {source.Humanize()}");
        }

        private void OnXpReset(ulong id)
        {
            HookCalled("OnXpReset");
            PrintWarning($"XP has been reset for {id}");
        }

        private void OnXpSet(ulong id, float amount)
        {
            HookCalled("OnXpSet");
            PrintWarning($"XP set to {amount} for {id}");
        }

        private void OnXpSpent(ulong id, int amount, string item)
        {
            HookCalled("OnXpSpent");
            PrintWarning($"{id} spent {amount} XP on {item}");
        }

        #endregion

#endif

#if SEVENDAYS

        #region Server Hooks

        private void OnServerCommand(ClientInfo client, string[] args)
        {
            HookCalled("OnServerCommand");
        }

        #endregion

        #region Entity Hooks

        private void OnAirdrop(UnityEngine.Vector3 location)
        {
            HookCalled("OnAirdrop");
        }

        private void OnEntitySpawned(Entity entity)
        {
            HookCalled("OnEntitySpawned");
        }

        private void OnEntityTakeDamage(EntityAlive entity, DamageSource source)
        {
            HookCalled("OnEntityTakeDamage");
        }

        private void OnEntityDeath(Entity entity, DamageResponse response)
        {
            HookCalled("OnEntityDeath");
        }

        #endregion

#endif

#if THEFOREST

        void OnPlayerChat(ChatEvent evt)
        {
            if (evt.Message.Contains("kick") || evt.Message.Contains("ban"))
            {
                var coopKickToken = new CoopKickToken { KickMessage = "You said the magic word!", Banned = false };
                evt.RaisedBy.Disconnect(coopKickToken);
            }

            if (evt.Message.Contains("save"))
            {
                var gameObject = UnityEngine.GameObject.Find("PlayerPlanePosition");
                if (gameObject) TheForest.Utils.LocalPlayer.CamFollowHead.planePos = gameObject.transform;

                LevelSerializer.SaveGame("Game");
                LevelSerializer.Checkpoint();
                LogWarning("Server has been saved!");
            }

            HookCalled("OnPlayerChat");
        }

#endif

#if UNTURNED

        #region Server Hooks

        private void OnServerCommand(Steamworks.CSteamID steamId, string command, string arg)
        {
            HookCalled("OnServerCommand");
        }

        #endregion

#endif
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху