private void OnLevelloaded(int level) { if (State == PluginState.Loaded && Config.DelayStartEXECUtility && level >= 2) { ExecManager.Activate(); } }
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."); }
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); }
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); } }