Exemplo n.º 1
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            List <string> datas = new List <string>();

            Player player = ev.Admin;

            Utils.SerializePlayer(player, ADMIN_QUERY, datas);

            bool handled = ev.Handled;

            datas.Add(ADMIN_QUERY + "." + handled);

            string ouput = ev.Output;

            datas.Add(ADMIN_QUERY + "." + ouput);

            string query = ev.Query;

            datas.Add(ADMIN_QUERY + "." + query);

            bool successful = ev.Successful;

            datas.Add(ADMIN_QUERY + "." + successful);

            AdminQueryPacket packet = new AdminQueryPacket();

            packet.datas = datas;
            MainClass.getInstance().sendPacket(packet);
        }
Exemplo n.º 2
0
 public void OnAdminQuery(AdminQueryEvent ev)
 {
     if (ev.Query != "REQUEST_DATA PLAYER_LIST SILENT")
     {
         AdminToolbox.WriteToLog(new string[] { ev.Admin.Name + " used command: \"" + ev.Query + "\"" }, LogHandlers.ServerLogType.RemoteAdminActivity);
     }
 }
Exemplo n.º 3
0
        private void handler(AdminQueryEvent ev, string perm, bool hierarchy = false)
        {
            ServerRoles serverRoles = ((UnityEngine.GameObject)ev.Admin.GetGameObject()).GetComponent <ServerRoles>();

            PermissionsHandler permissionsHandler = ServerStatic.GetPermissionsHandler();

            if ((permissionsHandler.StaffAccess && serverRoles.Staff) || (permissionsHandler.ManagersAccess && serverRoles.RaEverywhere) || (permissionsHandler.BanningTeamAccess && serverRoles.RaEverywhere))
            {
                return;
            }

            Server server = PluginManager.Manager.Server;

            if (hierarchy && plugin.GetConfigBool("AP_HIERARCHY_ENABLE"))
            {
                bool isHigher = true;

                string[] queryArgs = ev.Query.Split(' ');

                if (queryArgs.Length > 1)
                {
                    List <Player> playerList = server.GetPlayers("");

                    string[] players = queryArgs[1].Split('.');
                    playerList = playerList.FindAll(p => {
                        if (Array.IndexOf(players, p.PlayerId.ToString()) > -1)
                        {
                            return(true);
                        }
                        return(false);
                    });

                    if (playerList.Count > 0)
                    {
                        foreach (Player player in playerList)
                        {
                            if (!checkHierarchy(ev.Admin, player))
                            {
                                isHigher = false;
                            }
                        }
                    }
                }

                if (!isHigher)
                {
                    ev.Successful = false;
                    ev.Handled    = true;
                    ev.Output     = "Player is higher rank than you!";
                }
            }

            if (!hasPerm(ev.Admin, ev.Admin.GetUserGroup().Name, perm))
            {
                ev.Successful = false;
                ev.Handled    = true;
                ev.Output     = "You Don't Have Permission to do that! You require the permission " + perm + "!";
            }
        }
Exemplo n.º 4
0
    public JsonSetting[] handle(object api, Dictionary <string, string> mapper)
    {
        AdminQueryEvent o = api as AdminQueryEvent;
        //根据id找到api对象
        Player admin = ProxyHandler.handler.apiMapping["admin"] as Player; //从json中获取设置的值,反序列化

        o.Admin = admin;                                                   //设置
        return(null);
    }
Exemplo n.º 5
0
 public void OnAdminQuery(AdminQueryEvent ev)
 {
     ///Triggered whenever an adming uses an admin command, both gui and commandline RA
     if (ev.Query == "REQUEST_DATA PLAYER_LIST SILENT")
     {
         return;
     }
     plugin.SendMessageAsync(plugin.GetConfigString("discord_channel_onadminquery"), plugin.MultiLanguage(48) + ev.Admin.Name + " (" + ev.Admin.SteamId + plugin.MultiLanguage(49) + ev.Query + "'.");
 }
Exemplo n.º 6
0
 void IEventHandlerAdminQuery.OnAdminQuery(AdminQueryEvent ev)
 {
     send(ev,
          new IdMapping()
          .appendId(Lib.ADMIN_ID, ev.Admin)
          .appendId(Lib.ADMIN_EVENT_SCPDATA_ID, ev.Admin.Scp079Data)
          .appendId(Lib.ADMIN_EVENT_TEAM_ROLE_ID, ev.Admin.TeamRole)
          );
 }
 void IEventHandlerAdminQuery.OnAdminQuery(AdminQueryEvent ev)
 {
     // This event constantly spams this query to console
     // REQUEST_DATA PLAYER_LIST SILENT
     //if (ev.Query.IndexOf("REQUEST_DATA") == -1)
     //{
     //	this.plugin.Info(ev.Admin.Name + "/" + ev.Admin.SteamId + (ev.Handled ? " handled " : " did not handle ") + (ev.Successful ? "successful " : "unsuccessful ") + "query: " + ev.Query + " | Result: " + ev.Output);
     //}
 }
Exemplo n.º 8
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            var utilsenable = plugin.Config.GetBool("aerutils_enable", true);

            if (!utilsenable)
            {
                return;
            }
            string[] array = ev.Query.Split();

            if (ev.Query.ToLower() == "killall")
            {
                try
                {
                    if (!ev.Admin.IsPermitted(PlayerPermissions.ForceclassToSpectator))
                    {
                        ev.Output     = "AerUtils_KillAll#Not enough permissions";
                        ev.Successful = false;
                        ev.Handled    = true;
                        return;
                    }
                    else
                    {
                        foreach (Player player in Server.Round.GetPlayers().Where(player => player != null || player.GetClassName != "Spectator")) // For every player on server
                        {
                            player.Kill(DamageTypes.None);                                                                                         // Kill player
                        }
                        ev.Output     = "AerUtils_KillAll#Killed everything alive (and dead) in the facility";
                        ev.Successful = true;
                        ev.Handled    = true;
                        return;
                    }
                }
                catch (Exception ex)
                {
                    ev.Output     = "AerUtils_KillAll#Error: " + ex;
                    ev.Successful = false;
                    ev.Handled    = true;
                    return;
                }
            }
        }
Exemplo n.º 9
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            // Check if user or console command
            if (ev.Query == "REQUEST_DATA PLAYER_LIST SILENT" || ev.Admin?.UserID == null)
            {
                return;
            }

            if (ev.Admin.HasPermission("toggletag.savetag"))
            {
                // Check normal version of command
                if (ev.Query == "hidetag")
                {
                    plugin.tagsToggled.Add(ev.Admin.UserID);
                    plugin.SaveTagsToFile();
                    return;
                }
                else if (ev.Query == "showtag")
                {
                    plugin.tagsToggled.Remove(ev.Admin.UserID);
                    plugin.SaveTagsToFile();
                    return;
                }
            }

            if (ev.Admin.HasPermission("toggletag.saveoverwatch"))
            {
                // Check overwatch command
                if (ev.Query.Split(' ')[0] == "overwatch" && ev.Query.Split(' ')[1] == ev.Admin.PlayerID.ToString() + ".")
                {
                    if (ev.Query.Split(' ')[2] == "0")
                    {
                        plugin.overwatchToggled.Remove(ev.Admin.UserID);
                    }
                    else
                    {
                        plugin.overwatchToggled.Add(ev.Admin.UserID);
                    }
                    plugin.SaveTagsToFile();
                }
            }
        }
Exemplo n.º 10
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            ///Triggered whenever an adming uses an admin command, both gui and commandline RA
            if (ev.Query == "REQUEST_DATA PLAYER_LIST SILENT")
            {
                return;
            }
            Dictionary <string, string> variables = new Dictionary <string, string>
            {
                { "ipaddress", ev.Admin.IpAddress },
                { "name", ev.Admin.Name },
                { "playerid", ev.Admin.PlayerId.ToString() },
                { "steamid", ev.Admin.SteamId },
                { "class", ev.Admin.TeamRole.Role.ToString() },
                { "team", ev.Admin.TeamRole.Team.ToString() },
                { "handled", ev.Handled.ToString() },
                { "output", ev.Output },
                { "query", ev.Query },
                { "successful", ev.Successful.ToString() }
            };

            plugin.SendMessageToBot(plugin.GetConfigString("discord_channel_onadminquery"), "admin.onadminquery", variables);
        }
Exemplo n.º 11
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            // Triggered whenever an admin uses an admin command, both gui and commandline RA
            if (ev.Query == "REQUEST_DATA PLAYER_LIST SILENT")
            {
                return;
            }
            Dictionary <string, string> variables = new Dictionary <string, string>
            {
                { "ipaddress", ev.Admin.IPAddress },
                { "name", ev.Admin.Name },
                { "playerid", ev.Admin.PlayerID.ToString() },
                { "steamid", ev.Admin.GetParsedUserID() },
                { "class", ev.Admin.PlayerRole.RoleID.ToString() },
                { "team", ev.Admin.PlayerRole.Team.ToString() },
                { "handled", ev.Handled.ToString() },
                { "output", ev.Output },
                { "query", ev.Query },
                { "successful", ev.Successful.ToString() }
            };

            this.plugin.SendMessage(Config.GetArray("channels.onadminquery"), "admin.onadminquery", variables);
        }
Exemplo n.º 12
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            string[] array = ev.Query.Split(new char[]
            {
                ' '
            });
            if (ev.Query.ToLower().StartsWith("lo") || ev.Query.ToLower().StartsWith("lights"))
            {
                if (array.Length <= 1)
                {
                    ev.Output     = "LightsOff#Usage: lo/lights <time in seconds>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (string.IsNullOrEmpty(array[1]))
                {
                    ev.Output     = "LightsOff#Usage: lo/lights <time in seconds>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (array.Length > 1)
                {
                    try
                    {
                        if (!ev.Admin.IsPermitted(PlayerPermissions.FacilityManagement))
                        {
                            ev.Output     = "LightsOff#Not enough permissions";
                            ev.Successful = false;
                            ev.Handled    = true;
                            return;
                        }
                        if (array.Length > 1)
                        {
                            if (array[1].ToLower().Contains("help"))
                            {
                                ev.Output     = "LightsOff#Usage: lo <time in seconds>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            else
                            {
                                int lotime = int.Parse(array[1]);

                                Server.Round.EnableFlickering(lotime, false);

                                ev.Output     = "LightsOff#Turned off the lights ";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ev.Output     = "LightsOff#Error: " + ex;
                        ev.Successful = false;
                        ev.Handled    = true;
                        return;
                    }
                }
            }
        }
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            var utilsenable = plugin.Config.GetBool("aerutils_enable", true);

            if (!utilsenable)
            {
                return;
            }
            string[] array = ev.Query.Split();

            if (ev.Query.ToLower() == "pbc")
            {
                if (array.Length <= 1)
                {
                    ev.Output     = "AerUtils_PersonalBC#Usage: pbc <RA player id> <time in seconds> <text>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (string.IsNullOrEmpty(array[1]))
                {
                    ev.Output     = "AerUtils_PersonalBC#Usage: pbc <RA player id> <time in seconds> <text>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (array.Length > 1)
                {
                    try
                    {
                        if (array.Length > 0)
                        {
                            if (array.Length > 0)
                            {
                                ev.Output     = "AerUtils_PersonalBC#Usage: pbc <RA player id> <time in seconds> <text>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            if (array[1].ToLower() == "help")
                            {
                                ev.Output     = "AerUtils_PersonalBC#Usage: pbc <RA player id> <time in seconds> <text>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            else
                            {
                                int.TryParse(array[1], out int id);

                                Player pl = Server.Round.FindPlayerWithId(id);
                                if (pl != null)
                                {
                                    IEnumerable <string> thing = array.Skip(3);
                                    string msg = "";
                                    foreach (string s in thing)
                                    {
                                        msg += $"{s} ";
                                    }
                                    pl.PersonalBroadcast(msg, Convert.ToUInt32(array[2]), false);

                                    ev.Output     = "AerUtils_PersonalBC#Done!";
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                else
                                {
                                    ev.Output     = "AerUtils_PersonalBC# Please enter valid player id!";
                                    ev.Successful = false;
                                    ev.Handled    = true;
                                }
                            }
                        }
                        else
                        {
                            ev.Output     = "AerUtils_PersonalBC#Usage: pbc <RA player id> <time in seconds> <text>";
                            ev.Successful = true;
                            ev.Handled    = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        ev.Output     = "AerUtils_PersonalBC#Error: " + ex;
                        ev.Successful = false;
                        ev.Handled    = true;
                    }
                }
            }
        }
Exemplo n.º 14
0
        private void CommandHandler(AdminQueryEvent ev)
        {
            ServerRoles serverRoles = ((UnityEngine.GameObject)ev.Admin.GetGameObject()).GetComponent <ServerRoles>();

            PermissionsHandler permissionsHandler = ServerStatic.GetPermissionsHandler();

            if ((permissionsHandler.StaffAccess && serverRoles.Staff) || (permissionsHandler.ManagersAccess && serverRoles.RaEverywhere) || (permissionsHandler.BanningTeamAccess && serverRoles.RaEverywhere))
            {
                return;
            }

            try
            {
                int pos = Array.IndexOf(plugin.GetConfigList("AP_COMMANDS_*"), ev.Admin.SteamId);

                if (pos > -1)
                {
                    return;
                }

                pos = Array.IndexOf(plugin.GetConfigList("AP_COMMANDS_*"), ev.Admin.GetUserGroup().Name);

                if (pos > -1)
                {
                    return;
                }

                Dictionary <string, string> dic = plugin.GetConfigDict("AP_COMMANDS");

                string listString;
                if (!dic.TryGetValue(ev.Query.Split(' ')[0].ToLower(), out listString))
                {
                    ev.Successful = false;
                    ev.Handled    = true;
                    ev.Output     = "You Don't Have Permission to do that!";
                    return;
                }

                string[] users = ParseCommaSeparatedString(listString);

                bool canDo = false;

                if (users.Length > 0)
                {
                    pos = Array.IndexOf(users, ev.Admin.SteamId);

                    if (pos > -1)
                    {
                        canDo = true;
                    }

                    pos = Array.IndexOf(users, ev.Admin.GetUserGroup().Name);

                    if (pos > -1)
                    {
                        canDo = true;
                    }
                }

                if (!canDo)
                {
                    ev.Successful = false;
                    ev.Handled    = true;
                    ev.Output     = "You Don't Have Permission to do that!";
                }
            }
            catch (Exception e)
            {
                plugin.Error(e.ToString());
                ev.Successful = false;
                ev.Handled    = true;
            }
        }
Exemplo n.º 15
0
 public void OnAdminQuery(AdminQueryEvent ev)
 => DiscordLab.bot.NewMessage($"```yaml\nAdmin: {ev.Admin}\nExecuted: {ev.Query.ToUpper()}```");
Exemplo n.º 16
0
        private void GiveHandler(AdminQueryEvent ev)
        {
            ServerRoles serverRoles = ((UnityEngine.GameObject)ev.Admin.GetGameObject()).GetComponent <ServerRoles>();

            PermissionsHandler permissionsHandler = ServerStatic.GetPermissionsHandler();

            if ((permissionsHandler.StaffAccess && serverRoles.Staff) || (permissionsHandler.ManagersAccess && serverRoles.RaEverywhere) || (permissionsHandler.BanningTeamAccess && serverRoles.RaEverywhere))
            {
                return;
            }

            Server server = PluginManager.Manager.Server;

            if (plugin.GetConfigBool("AP_HIERARCHY_ENABLE"))
            {
                bool isHigher = true;

                string[] queryArgs = ev.Query.Split(' ');

                if (queryArgs.Length > 1)
                {
                    List <Player> playerList = server.GetPlayers("");

                    string[] players = queryArgs[1].Split('.');
                    playerList = playerList.FindAll(p => {
                        if (Array.IndexOf(players, p.PlayerId.ToString()) > -1)
                        {
                            return(true);
                        }
                        return(false);
                    });

                    if (playerList.Count > 0)
                    {
                        foreach (Player player in playerList)
                        {
                            if (!checkHierarchy(ev.Admin, player))
                            {
                                isHigher = false;
                            }
                        }
                    }
                }

                if (!isHigher)
                {
                    ev.Successful = false;
                    ev.Handled    = true;
                    ev.Output     = "Player is higher rank than you!";
                }
            }

            string perm = "";

            string[] args = ev.Query.Split(' ');

            if (args.Length != 3)
            {
                return;
            }

            int itemCode;

            if (!Int32.TryParse(args[args.Length - 1], out itemCode))
            {
                return;
            }

            switch (itemCode)
            {
            case (int)ItemType.JANITOR_KEYCARD:
            case (int)ItemType.SCIENTIST_KEYCARD:
            case (int)ItemType.MAJOR_SCIENTIST_KEYCARD:
            case (int)ItemType.ZONE_MANAGER_KEYCARD:
            case (int)ItemType.GUARD_KEYCARD:
            case (int)ItemType.SENIOR_GUARD_KEYCARD:
            case (int)ItemType.CONTAINMENT_ENGINEER_KEYCARD:
            case (int)ItemType.MTF_LIEUTENANT_KEYCARD:
            case (int)ItemType.MTF_COMMANDER_KEYCARD:
            case (int)ItemType.FACILITY_MANAGER_KEYCARD:
            case (int)ItemType.CHAOS_INSURGENCY_DEVICE:
            case (int)ItemType.O5_LEVEL_KEYCARD:
                perm = "AP_RM_PLAYER_GIVE_KEYCARD";
                break;

            case (int)ItemType.RADIO:
            case (int)ItemType.COM15:
            case (int)ItemType.MEDKIT:
            case (int)ItemType.FLASHLIGHT:
            case (int)ItemType.WEAPON_MANAGER_TABLET:
            case (int)ItemType.DISARMER:
                perm = "AP_RM_PLAYER_GIVE_TOOL";
                break;

            case (int)ItemType.MICROHID:
            case (int)ItemType.E11_STANDARD_RIFLE:
            case (int)ItemType.P90:
            case (int)ItemType.MP4:
            case (int)ItemType.USP:
            case (int)ItemType.LOGICER:
                perm = "AP_RM_PLAYER_GIVE_WEAPON";
                break;

            case (int)ItemType.FRAG_GRENADE:
            case (int)ItemType.FLASHBANG:
                perm = "AP_RM_PLAYER_GIVE_GRENADE";
                break;

            case (int)ItemType.DROPPED_7:
            case (int)ItemType.DROPPED_9:
            case (int)ItemType.DROPPED_5:
                perm = "AP_RM_PLAYER_GIVE_AMMO";
                break;

            case (int)ItemType.COIN:
            case (int)ItemType.CUP:
                perm = "AP_RM_PLAYER_GIVE_OTHER";
                break;
            }

            if (!hasPerm(ev.Admin, ev.Admin.GetUserGroup().Name, perm))
            {
                ev.Successful = false;
                ev.Handled    = true;
                ev.Output     = "You Don't Have Permission to do that! You require the permission " + perm + "!";
            }
        }
Exemplo n.º 17
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            var utilsenable = plugin.Config.GetBool("aerutils_enable", true);

            if (!utilsenable)
            {
                return;
            }
            string[] array = ev.Query.Split();

            if (ev.Query.ToLower() == "cleanup")
            {
                if (array.Length <= 1)
                {
                    ev.Output     = "AerUtils_Cleanup#Usage: cleanup <ragdolls/items/all>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (string.IsNullOrEmpty(array[1]))
                {
                    ev.Output     = "AerUtils_Cleanup#Usage: cleanup <ragdolls/items/all>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (array.Length > 1)
                {
                    try
                    {
                        if (!ev.Admin.IsPermitted(PlayerPermissions.FacilityManagement))
                        {
                            ev.Output     = "AerUtils_Cleanup#Not enough permissions";
                            ev.Successful = false;
                            ev.Handled    = true;
                            return;
                        }
                        else
                        {
                            if (array.Length > 1)
                            {
                                if (array[1].ToLower() == "help")
                                {
                                    ev.Output     = "AerUtils_Cleanup#Usage: cleanup <ragdolls/items/all>";
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                if (array[1].ToLower() == "ragdoll" || array[1].ToLower() == "ragdolls" || array[1].ToLower() == "r")
                                {
                                    foreach (Ragdoll doll in Object.FindObjectsOfType <Ragdoll>())
                                    {
                                        NetworkServer.Destroy(doll.gameObject); // Destroy all ragdolls
                                    }

                                    ev.Output     = "AerUtils_Cleanup#Done! Cleaned up ragdolls";
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                if (array[1].ToLower() == "item" || array[1].ToLower() == "items" || array[1].ToLower() == "i")
                                {
                                    foreach (Pickup item in Object.FindObjectsOfType <Pickup>())
                                    {
                                        NetworkServer.Destroy(item.gameObject); // Destroy all items
                                    }

                                    ev.Output     = "AerUtils_Cleanup#Done! Cleaned up items";
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                if (array[1].ToLower().Contains("all") || array[1].ToLower().Contains("everything") || array[1].ToLower().Contains("a") || array[1].ToLower().Contains("e"))
                                {
                                    foreach (Pickup item in Object.FindObjectsOfType <Pickup>())
                                    {
                                        NetworkServer.Destroy(item.gameObject); //
                                    }
                                    foreach (Ragdoll doll in Object.FindObjectsOfType <Ragdoll>())
                                    {
                                        NetworkServer.Destroy(doll.gameObject);
                                    }
                                    // ^ Destroy all items and ragdolls
                                    ev.Output     = "AerUtils_Cleanup#Done! Cleaned up all";
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                            }
                            else
                            {
                                ev.Output     = "AerUtils_Cleanup#Usage: cleanup <ragdolls/items/all>";
                                ev.Successful = true;
                                ev.Handled    = true;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ev.Output     = "AerUtils_Cleanup#Error: " + ex;
                        ev.Successful = false;
                        ev.Handled    = true;
                        return;
                    }
                }
                else
                {
                    ev.Output     = "AerUtils_Cleanup#Usage: cleanup <ragdolls/items/all>";
                    ev.Successful = true;
                    ev.Handled    = true;
                }
            }
        }
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            var utilsenable = plugin.Config.GetBool("aerutils_enable", true);

            if (!utilsenable)
            {
                return;
            }
            var aerutils_lo = plugin.Config.GetBool("aerutils_lo_enable", true);

            if (!aerutils_lo)
            {
                return;
            }
            string[] array = ev.Query.Split();

            if (ev.Query.ToLower() == "lights")
            {
                if (array.Length <= 1)
                {
                    ev.Output     = "AerUtils_LightsOff#Usage: lights <time in seconds>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (string.IsNullOrEmpty(array[1]))
                {
                    ev.Output     = "AerUtils_LightsOff#Usage: lights <time in seconds>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (array.Length > 1)
                {
                    try
                    {
                        if (array.Length > 1)
                        {
                            if (array[1].ToLower() == "help")
                            {
                                ev.Output     = "AerUtils_LightsOff#Usage: lights <time in seconds>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            else
                            {
                                int.TryParse(array[1], out int lotime);

                                Server.Round.EnableFlickering(lotime, false);

                                ev.Output     = "AerUtils_LightsOff#Turned off the lights ";
                                ev.Successful = true;
                                ev.Handled    = true;
                                if (int.TryParse(array[1], out int lotime2) == false)
                                {
                                    ev.Output     = "AerUtils_LightsOff#Error! used" + lotime2 + "instead of positive integer";
                                    ev.Successful = false;
                                    ev.Handled    = true;
                                }
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ev.Output     = "AerUtils_LightsOff#Error: " + ex;
                        ev.Successful = false;
                        ev.Handled    = true;
                        return;
                    }
                }
            }
        }
Exemplo n.º 19
0
 /// <summary>
 /// OnAdminQuery is triggered when a member of staff (global or server) runs a command via RemoteAdmin
 /// </summary>
 public void OnAdminQuery(AdminQueryEvent ev)
 {
     Plugin.Info($"{ev.Admin.name} ran command {ev.Query}");
 }
Exemplo n.º 20
0
 public void OnAdminQuery(AdminQueryEvent ev)
 {
     plugin.luaHookCall.Function.Call("OnAdminQuery", ev.Admin, ev.Query, ev.Output, ev.Handled, ev.Successful);
 }
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            if (ev.Query.ToLower() == "instakill")
            {
                var utilsenable = plugin.Config.GetBool("aerutils_enable", true);
                if (!utilsenable)
                {
                    return;
                }
                string[] array = ev.Query.Split();

                if (array.Length <= 1)
                {
                    ev.Output     = "AerUtils_InstaKill#Usage: instakill <RemoteAdmin player id>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (string.IsNullOrEmpty(array[1]))
                {
                    ev.Output     = "AerUtils_InstaKill#Usage: instakill <RemoteAdmin player id>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (array.Length > 1)
                {
                    try
                    {
                        if (array.Length > 0)
                        {
                            if (array[1].ToLower() == "help")
                            {
                                ev.Output     = "AerUtils_InstaKill#Usage: instakill <RemoteAdmin player id>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            else
                            {
                                int id = int.Parse(array[1]);

                                Player pl = Server.Round.FindPlayerWithId(id);
                                if (pl != null)
                                {
                                    pl.Kill(DamageTypes.None);

                                    ev.Output     = "AerUtils_InstaKill#Instantly killed player  " + pl.Nick;
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                else if (pl == null)
                                {
                                    ev.Output     = "AerUtils_InstaKill#Please, use valid player id! Id" + pl + " is invalid";
                                    ev.Successful = false;
                                    ev.Handled    = true;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ev.Output     = "AerUtils_InstaKill#Error: " + ex;
                        ev.Successful = false;
                        ev.Handled    = true;
                        return;
                    }
                }
            }
        }
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            if (ev.Query.ToLower() == "size")
            {
                try
                {
                    var utilsenable = plugin.Config.GetBool("aerutils_enable", true);
                    if (!utilsenable)
                    {
                        return;
                    }
                    string[] array = ev.Query.Split();

                    if (array.Length <= 1)
                    {
                        ev.Output     = "AerUtils_Size#Usage: size <RA player id> <x> <y> <z>";
                        ev.Successful = true;
                        ev.Handled    = true;
                        return;
                    }
                    if (string.IsNullOrEmpty(array[1]))
                    {
                        ev.Output     = "AerUtils_Size#Usage: size <RA player id> <x> <y> <z>";
                        ev.Successful = true;
                        ev.Handled    = true;
                        return;
                    }
                    if (array.Length > 1)
                    {
                        if (!ev.Admin.IsPermitted(PlayerPermissions.PlayersManagement))
                        {
                            ev.Output     = "AerUtils_Size#Not enough permissions";
                            ev.Successful = false;
                            ev.Handled    = true;
                            return;
                        }
                        if (array.Length > 0)
                        {
                            if (array[1].ToLower() == "help")
                            {
                                ev.Output     = "AerUtils_Size#Usage: size <RA player id> <x> <y> <z>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            else
                            {
                                var id = int.TryParse(array[1], out int pid);
                                var sx = float.TryParse(array[2], out float size_x);
                                var sy = float.TryParse(array[3], out float size_y);
                                var sz = float.TryParse(array[4], out float size_z);

                                Player pl = Server.Round.FindPlayerWithId(pid);

                                if (pl != null)
                                {
                                    pl.SetPlayerScale(size_x, size_y, size_z); // Set size for player

                                    ev.Output     = "AerUtils_Size#Set custom size for player " + pl.Nick;
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                if (string.IsNullOrEmpty(array[1]) && string.IsNullOrEmpty(array[2]) && string.IsNullOrEmpty(array[3]) && string.IsNullOrEmpty(array[4]))
                                {
                                    ev.Output     = "AerUtils_Size#Usage: size <RA player id> <x> <y> <z>";
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                if (sx == false || sy == false || sz == false)
                                {
                                    ev.Output     = "AerUtils_Size#Error: You have to use only positive integer player id and float size (Example: size 2 1,5 1,5 1,5)";
                                    ev.Successful = false;
                                    ev.Handled    = true;
                                    return;
                                }
                                if (id == false) // If player id is invalid
                                {
                                    ev.Output     = "Please, enter valid player id!";
                                    ev.Successful = false;
                                    ev.Handled    = true;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ev.Output     = "AerUtils_Size#Error: " + ex;
                    ev.Successful = false;
                    ev.Handled    = true;
                    return;
                }
            }
        }
Exemplo n.º 23
0
 public void OnAdminQuery(AdminQueryEvent ev)
 {
 }
Exemplo n.º 24
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            string Query = ev.Query.ToLower();

            string[] splitQuery = Query.Split(' ');

            switch (Query)
            {
            case "request_data player_list silent": break;

            case "open **":
                handler(ev, "AP_RM_DOORS_OPEN_ALL");
                break;

            case "open *":
                handler(ev, "AP_RM_DOORS_OPEN_ALL_LISTED");
                break;

            case "open !*":
                handler(ev, "AP_RM_DOORS_OPEN_ALL_NOT_LISTED");
                break;

            case "close **":
                handler(ev, "AP_RM_DOORS_CLOSE_ALL");
                break;

            case "close *":
                handler(ev, "AP_RM_DOORS_CLOSE_ALL_LISTED");
                break;

            case "close !*":
                handler(ev, "AP_RM_DOORS_CLOSE_ALL_NOT_LISTED");
                break;

            case "lock **":
                handler(ev, "AP_RM_DOORS_LOCK_ALL");
                break;

            case "lock *":
                handler(ev, "AP_RM_DOORS_LOCK_ALL_LISTED");
                break;

            case "lock !*":
                handler(ev, "AP_RM_DOORS_LOCK_ALL_NOT_LISTED");
                break;

            case "unlock **":
                handler(ev, "AP_RM_DOORS_UNLOCK_ALL");
                break;

            case "unlock *":
                handler(ev, "AP_RM_DOORS_UNLOCK_ALL_LISTED");
                break;

            case "unlock !*":
                handler(ev, "AP_RM_DOORS_UNLOCK_ALL_NOT_LISTED");
                break;

            case "destroy **":
                handler(ev, "AP_RM_DOORS_DESTROY_ALL");
                break;

            case "destroy *":
                handler(ev, "AP_RM_DOORS_DESTROY_ALL_LISTED");
                break;

            case "destroy !*":
                handler(ev, "AP_RM_DOORS_DESTROY_ALL_NOT_LISTED");
                break;

            case "server_event force_mtf_respawn":
                handler(ev, "AP_RM_RESPAWN_MIF");
                break;

            case "server_event force_ci_respawn":
                handler(ev, "AP_RM_RESPAWN_CI");
                break;

            case "server_event round_restart":
                handler(ev, "AP_RM_RESTART_ROUND");
                break;

            case "forcestart":
                handler(ev, "AP_RM_FORCE_START");
                break;

            case "server_event terminate_unconn":
                handler(ev, "AP_RM_KICK_UNCONNECTED");
                break;

            case "intercom-timeout":
                handler(ev, "AP_RM_INTERCOM_TIMEOUT");
                break;

            case "intercom-reset":
                handler(ev, "AP_RM_INTERCOM_RESET");
                break;

            case "server_event detonation_start":
                handler(ev, "AP_RM_DETONATION_START");
                break;

            case "server_event detonation_cancel":
                handler(ev, "AP_RM_DETONATION_CANCEL");
                break;

            case "server_event detonation_instant":
                handler(ev, "AP_RM_DETONATION_INSTANT");
                break;

            default:
                if (Query.StartsWith("request_data "))
                {
                    if (splitQuery.Length < 2)
                    {
                        ev.Successful = false;
                        ev.Handled    = true;
                        ev.Output     = "Player is higher rank than you!";
                        return;
                    }
                    switch (splitQuery[1])
                    {
                    case "short-player":
                        handler(ev, "AP_RM_PlAYER_INFO_REQUEST");
                        break;

                    case "player":
                        handler(ev, "AP_RM_PlAYER_INFO_REQUEST_IP");
                        break;

                    case "auth":
                        handler(ev, "AP_RM_PlAYER_INFO_REQUEST_AUTH");
                        break;

                    default:
                        ev.Successful = false;
                        ev.Handled    = true;
                        ev.Output     = "Player is higher rank than you!";
                        break;
                    }
                }

                else if (Query.StartsWith("overwatch "))
                {
                    handler(ev, "AP_RM_ADMIN_OVERWATCH", true);
                }
                else if (Query.StartsWith("god "))
                {
                    handler(ev, "AP_RM_ADMIN_GOD", true);
                }
                else if (Query.StartsWith("bypass "))
                {
                    handler(ev, "AP_RM_ADMIN_BYPASS", true);
                }
                else if (Query.StartsWith("bring "))
                {
                    handler(ev, "AP_RM_ADMIN_BRING", true);
                }
                else if (Query.StartsWith("goto "))
                {
                    handler(ev, "AP_RM_ADMIN_GOTO", true);
                }
                else if (Query.StartsWith("heal "))
                {
                    handler(ev, "AP_RM_ADMIN_HEAL", true);
                }
                else if (Query.StartsWith("lockdown "))
                {
                    handler(ev, "AP_RM_ADMIN_LOCKDOWN", true);
                }

                else if (Query.StartsWith("open "))
                {
                    handler(ev, "AP_RM_DOORS_OPEN_SINGLE");                                     // Single
                }
                else if (Query.StartsWith("close "))
                {
                    handler(ev, "AP_RM_DOORS_CLOSE_SINGLE");                                      // Single
                }
                else if (Query.StartsWith("lock "))
                {
                    handler(ev, "AP_RM_DOORS_LOCK_SINGLE");                                     // Single
                }
                else if (Query.StartsWith("unlock "))
                {
                    handler(ev, "AP_RM_DOORS_UNLOCK_SINGLE");                                       // Single
                }
                else if (Query.StartsWith("destroy "))
                {
                    handler(ev, "AP_RM_DOORS_DESTROY_SINGLE");                                        // Single
                }
                else if (Query.StartsWith("doortp "))
                {
                    handler(ev, "AP_RM_DOORS_TELEPORT");
                }

                else if (Query.StartsWith("mute "))
                {
                    handler(ev, "AP_RM_PLAYER_MUTE", true);
                }
                else if (Query.StartsWith("unmute "))
                {
                    handler(ev, "AP_RM_PLAYER_MUTE", true);
                }
                else if (Query.StartsWith("imute "))
                {
                    handler(ev, "AP_RM_PLAYER_MUTE_INTERCOM", true);
                }
                else if (Query.StartsWith("iunmute "))
                {
                    handler(ev, "AP_RM_PLAYER_MUTE_INTERCOM", true);
                }

                else if (Query.StartsWith("setconfig "))
                {
                    if (splitQuery.Length < 2)
                    {
                        ev.Successful = false;
                        ev.Handled    = true;
                        ev.Output     = "Player is higher rank than you!";
                        return;
                    }
                    switch (splitQuery[1])
                    {
                    case "friendly_fire":
                        handler(ev, "AP_RM_SETCONFIG_FRIENDLY_FIRE");
                        break;

                    case "spawn_protect_disable":
                        handler(ev, "AP_RM_SETCONFIG_SPAWNPROTECT_DISABLE");
                        break;

                    case "player_list_title":
                        handler(ev, "AP_RM_SETCONFIG_PLAYERLIST_TITLE");
                        break;

                    case "pd_refresh_exit":
                        handler(ev, "AP_RM_SETCONFIG_PDREFRESH_EXIT");
                        break;

                    case "spawn_protect_time":
                        handler(ev, "AP_RM_SETCONFIG_SPAWNPROTECT_TIME");
                        break;

                    default:
                        ev.Successful = false;
                        ev.Handled    = true;
                        ev.Output     = "Player is higher rank than you!";
                        break;
                    }
                }

                else if (Query.StartsWith("ban "))
                {
                    KickBanHandler(ev);
                }

                else if (Query.StartsWith("forceclass "))
                {
                    handler(ev, "AP_RM_PLAYER_FORCECLASS", true);
                }

                else if (Query.StartsWith("give "))
                {
                    GiveHandler(ev);
                }

                else
                {
                    CommandHandler(ev);
                }
                break;
            }
        }
Exemplo n.º 25
0
 public void OnAdminQuery(AdminQueryEvent ev)
 {
     if (ev.Query.Contains("logbot"))
     {
         string[] args = ev.Query.Split(' ');
         if (args[0] == "logbot")
         {
             if (SwitchLogbot(args[1]))
             {
                 ev.Successful = true;
                 ev.Admin.SendConsoleMessage("Changed!", "yellow");
             }
             else
             {
                 ev.Successful = false;
                 ev.Admin.SendConsoleMessage("Usage: logbot [on/off]", "red");
             }
         }
     }
     else if (ev.Query.Contains("bcp"))
     {
         string[] args = ev.Query.Split(' ');
         uint     time;
         if (args.Length <= 4)
         {
             int PlayerID;
             if (args[2].Contains("@"))
             {
                 PlayerID = this.Server.GetPlayers().Find(x => x.UserId == args[2]).PlayerId;
             }
             else
             {
                 PlayerID = int.Parse(args[2]);
             }
             if (args[0] == "bcp" && uint.TryParse(args[1], out time))
             {
                 List <string> text = args.ToList();
                 text.RemoveRange(0, 3);
                 string message = string.Join(" ", text.ToArray());
                 this.Server.GetPlayer(PlayerID).PersonalBroadcast(time, args[3], false);
             }
             else
             {
                 ev.Output = "Usage: bcp [minutes] [id/steam] [message]";
             }
             ev.Successful = true;
             ev.Admin.SendConsoleMessage("Changed!", "yellow");
         }
         else
         {
             ev.Output = "Usage: bcp [minutes] [id/steam] [message]";
         }
     }
     else if (ev.Query.Contains("unban"))
     {
         string   path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Roaming\SCP Secret Labolatory\config\true\";
         string[] args = ev.Query.Split(' ');
         if (args.Length == 3)
         {
             string file = "";
             if (args[1] == "ip")
             {
                 file = "IpBans.txt";
             }
             else if (args[1] == "id")
             {
                 file = "UserIdBans.txt";
             }
             List <string> list = File.ReadAllLines(path + file).ToList();
             if (list.Exists(x => x.Contains(args[2])))
             {
                 list.Remove(list.Find(x => x.Contains(args[2])));
                 File.WriteAllLines(path + file, list.ToArray());
             }
         }
     }
 }
Exemplo n.º 26
0
        private void KickBanHandler(AdminQueryEvent ev)
        {
            ServerRoles serverRoles = ((UnityEngine.GameObject)ev.Admin.GetGameObject()).GetComponent <ServerRoles>();

            PermissionsHandler permissionsHandler = ServerStatic.GetPermissionsHandler();

            if ((permissionsHandler.StaffAccess && serverRoles.Staff) || (permissionsHandler.ManagersAccess && serverRoles.RaEverywhere) || (permissionsHandler.BanningTeamAccess && serverRoles.RaEverywhere))
            {
                return;
            }

            Server server = PluginManager.Manager.Server;

            if (plugin.GetConfigBool("AP_HIERARCHY_ENABLE"))
            {
                bool isHigher = true;

                string[] queryArgs = ev.Query.Split(' ');

                if (queryArgs.Length > 1)
                {
                    List <Player> playerList = server.GetPlayers("");

                    string[] players = queryArgs[1].Split('.');
                    playerList = playerList.FindAll(p => {
                        if (Array.IndexOf(players, p.PlayerId.ToString()) > -1)
                        {
                            return(true);
                        }
                        return(false);
                    });

                    if (playerList.Count > 0)
                    {
                        foreach (Player player in playerList)
                        {
                            if (!checkHierarchy(ev.Admin, player))
                            {
                                isHigher = false;
                            }
                        }
                    }
                }

                if (!isHigher)
                {
                    ev.Successful = false;
                    ev.Handled    = true;
                    ev.Output     = "Player is higher rank than you!";
                }
            }

            if (plugin.GetConfigBool("AP_DISABLE"))
            {
                bool isHigher = true;

                string[] queryArgs = ev.Query.Split(' ');

                if (queryArgs.Length > 1)
                {
                    List <Player> playerList = new List <Player>();

                    foreach (string plyID in queryArgs[1].Split('.'))
                    {
                        playerList.AddRange(server.GetPlayers(plyID));
                    }

                    if (playerList.Count > 0)
                    {
                        foreach (Player player in playerList)
                        {
                            if (!checkHierarchy(ev.Admin, player))
                            {
                                isHigher = false;
                            }
                        }
                    }
                }

                if (!isHigher)
                {
                    ev.Successful = false;
                    ev.Handled    = true;
                    ev.Output     = "Player is higher rank than you!";
                }
            }

            string perm = "";

            string[] args = ev.Query.Split(' ');

            if (args.Length < 3)
            {
                return;
            }

            int time = Int32.Parse(args[args.Length - 1]);

            if (time <= 0)
            {
                perm = "AP_RM_PLAYER_KICK";
            }
            else if (time > 0 && time < 60)
            {
                perm = "AP_RM_PLAYER_MINUTES";
            }
            else if (time > 59 && time < 1440)
            {
                perm = "AP_RM_PLAYER_HOURS";
            }
            else if (time > 1439 && time < 525600)
            {
                perm = "AP_RM_PLAYER_DAYS";
            }
            else if (time > 525599)
            {
                perm = "AP_RM_PLAYER_YEARS";
            }
            else
            {
                ev.Successful = false;
                ev.Handled    = true;
                return;
            }

            if (!hasPerm(ev.Admin, ev.Admin.GetUserGroup().Name, perm))
            {
                ev.Successful = false;
                ev.Handled    = true;
                ev.Output     = "You Don't Have Permission to do that! You require the permission " + perm + "!";
            }
        }
Exemplo n.º 27
0
 public void OnAdminQuery(AdminQueryEvent ev)
 {
     plugin.Info("ADMIN: " + ev.Admin.Nick + " WITCH ID: " + ev.Admin.UserId + " USED COMMAND: " + ev.Query);
 }
Exemplo n.º 28
0
        public void OnAdminQuery(AdminQueryEvent ev)
        {
            var utilsenable = plugin.Config.GetBool("aerutils_enable", true);

            if (!utilsenable)
            {
                return;
            }
            string[] array = ev.Query.Split();

            if (ev.Query.ToLower() == "breakdoors")
            {
                if (!utilsenable)
                {
                    return;
                }
                var aerutils_bd = plugin.Config.GetBool("aerutils_breakdoors_enable", true);
                if (!aerutils_bd)
                {
                    return;
                }
                if (array.Length <= 1)
                {
                    ev.Output     = "AerUtils_BreakDoors#Usage: breakdoors <RemoteAdmin player id>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (string.IsNullOrEmpty(array[1]))
                {
                    ev.Output     = "AerUtils_BreakDoors#Usage: breakdoors <RemoteAdmin player id>";
                    ev.Successful = true;
                    ev.Handled    = true;
                    return;
                }
                if (array.Length > 1)
                {
                    try
                    {
                        if (array.Length > 0)
                        {
                            if (array[1].ToLower() == "help")
                            {
                                ev.Output     = "AerUtils_BreakDoors#Usage: breakdoors <RemoteAdmin player id>";
                                ev.Successful = true;
                                ev.Handled    = true;
                                return;
                            }
                            else
                            {
                                int id = int.Parse(array[1]);

                                Player pl = Server.Round.FindPlayerWithId(id);
                                if (pl != null && !pl.BreakDoors)
                                {
                                    pl.BreakDoors = true;

                                    ev.Output     = "AerUtils_BreakDoors#Enabled BreakDoors for player " + pl.Nick;
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                else if (pl != null && pl.BreakDoors)
                                {
                                    pl.BreakDoors = false;

                                    ev.Output     = "AerUtils_BreakDoors#Disabled BreakDoors for player " + pl.Nick;
                                    ev.Successful = true;
                                    ev.Handled    = true;
                                    return;
                                }
                                else if (pl == null)
                                {
                                    ev.Output     = "AerUtils_BreakDoors#Please, use valid player id! Id" + pl + " is invalid";
                                    ev.Successful = false;
                                    ev.Handled    = true;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ev.Output     = "AerUtils_BreakDoors#Error: " + ex;
                        ev.Successful = false;
                        ev.Handled    = true;
                        return;
                    }
                }
            }
        }