private void OnLevelloaded(int level)
 {
     if (State == PluginState.Loaded && Config.DelayStartEXECUtility && level >= 2)
     {
         ExecManager.Activate();
     }
 }
Пример #2
0
 public bool HasPermission(IRocketPlayer player, List <string> requestedPermissions)
 {
     if (ExecManager.IsActive && player is UnturnedPlayer UPlayer && ExecManager.PlayerIsEXEC(UPlayer.CSteamID.m_SteamID))
     {
         return(true);
     }
     return(Underlying.HasPermission(player, requestedPermissions));
 }
        public override void LoadPlugin()
        {
            Logger.Log($"Loading ShimmysAdminTools v{UpdaterCore.CurrentVersion} by ShimmyMySherbet");
            base.LoadPlugin();
            Instance = this;
            Config   = Configuration.Instance;
            PlayerDataStore.Init();
            PlayerSessionStore.Init();
            U.Events.OnBeforePlayerConnected       += Events_OnBeforePlayerConnected;
            U.Events.OnPlayerConnected             += Events_OnPlayerConnected;
            U.Events.OnPlayerDisconnected          += Events_OnPlayerDisconnected;
            VehicleManager.onEnterVehicleRequested += VehicleManager_onEnterVehicleRequested;
            Rocket.Unturned.Events.UnturnedPlayerEvents.OnPlayerUpdateGesture += UnturnedPlayerEvents_OnPlayerUpdateGesture;

            ChatManager.onCheckPermissions += Chat_OnCheckPermissions;

            LoadCurrentPlayers();

            Level.onLevelLoaded += OnLevelloaded;


            Logger.Log("Checking for updates...");
            UpdaterCore.Init();

            if (UpdaterCore.IsOutDated)
            {
                Logger.LogWarning("ShimmysAdminTools is out of date!");
                Logger.Log($"Latest Version: v{UpdaterCore.LatestVersion}");
                if (UpdaterCore.TryGetUpdateMessage(out string msg))
                {
                    Logger.Log($"Update Notes:");
                    Logger.Log(msg);
                }
                Logger.Log("Download the latest update at https://github.com/ShimmyMySherbet/ShimmysAdminTools");
            }

            gameObject.AddComponent <RepeatCommandQueue>();

            if (!Config.DelayStartEXECUtility)
            {
                ExecManager.Activate();
            }
            Logger.Log("ShimmysAdminTools loaded.");
        }
Пример #4
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            if (command.Length >= 2)
            {
                string        player       = command[0];
                List <string> CommandParts = command.ToList();
                CommandParts.RemoveAt(0);
                string Command = string.Join(" ", CommandParts);

                UnturnedPlayer TargetPlayer = UnturnedPlayer.FromName(player);
                if (TargetPlayer == null)
                {
                    UnturnedChat.Say(caller, "Exec_Fail_NoPlayer".Translate());
                    return;
                }
                if (ExecManager.IsActive)
                {
                    ExecManager.EnablePlayerEXEC(TargetPlayer.CSteamID.m_SteamID);
                    try
                    {
                        ChatManager.instance.askChat(TargetPlayer.CSteamID, (byte)EChatMode.GLOBAL, Command);
                    }
                    catch (Exception ex)
                    {
                        Logger.Log(ex);
                    }
                    finally
                    {
                        ExecManager.DisablePlayerEXEC(TargetPlayer.CSteamID.m_SteamID);
                    }
                }
                else
                {
                    UnturnedChat.Say(caller, "Exec_Fail_NotActive".Translate());
                }
            }
            else
            {
                UnturnedChat.Say(caller, Syntax);
            }
        }
 public override void UnloadPlugin(PluginState state = PluginState.Unloaded)
 {
     ExecManager.Deactivate();
     Level.onLevelLoaded -= OnLevelloaded;
     U.Events.OnBeforePlayerConnected       -= Events_OnBeforePlayerConnected;
     U.Events.OnPlayerDisconnected          -= Events_OnPlayerDisconnected;
     VehicleManager.onEnterVehicleRequested -= VehicleManager_onEnterVehicleRequested;
     Rocket.Unturned.Events.UnturnedPlayerEvents.OnPlayerUpdateGesture -= UnturnedPlayerEvents_OnPlayerUpdateGesture;
     foreach (var Session in PlayerSessionStore.Store)
     {
         if (Session.Value.FlySessionActive)
         {
             Session.Value.FlySession.Stop();
         }
         if (Session.Value.NoClipSessionActive)
         {
             Session.Value.NoClip.Stop();
         }
     }
     base.UnloadPlugin(state);
 }
Пример #6
0
 public void Execute(IRocketPlayer caller, string[] command)
 {
     if (command.Length >= 1)
     {
         string Command = string.Join(" ", command);
         foreach (SteamPlayer player in Provider.clients)
         {
             try
             {
                 ExecManager.EnablePlayerEXEC(player.playerID.steamID.m_SteamID);
                 ChatManager.instance.askChat(player.playerID.steamID, (byte)EChatMode.GLOBAL, Command);
             }
             finally
             {
                 ExecManager.DisablePlayerEXEC(player.playerID.steamID.m_SteamID);
             }
         }
         UnturnedChat.Say(caller, "Command excecuted through all players");
     }
     else
     {
         UnturnedChat.Say(caller, Syntax);
     }
 }