public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            if (_params.Count < 1) {
                SdtdConsole.Instance.Output ("Utilisation: played <NomDuJoueur>");
                return;
            }
            try
            {
                string nameFilter = _params[0].ToLower();
                string text = string.Empty;
                foreach (string sid in PersistentContainer.Instance.Players.SteamIDs) {
                    Player p = PersistentContainer.Instance.Players [sid,false];

                    if (nameFilter.Length == 0 || p.Name.ToLower ().Contains (nameFilter)) {
                        text = String.Format("{0} a joue sur le serveur {1}, {2} minutes (=> {3} heure(s)) depuis le 06-08-2015.",
                            p.Name,
                            "KFP",
                            (p.TotalPlayTime / 60),
                            (p.TotalPlayTime / 3600)
                        );
                        GameManager.Instance.GameMessageServer(null, text, string.Empty);
                        return;
                    }
                }
            } catch (Exception e) {
                Log.Out ("Error in PlayedTime.Run: " + e);
                SdtdConsole.Instance.Output("Error in PlayedTime.Run: " + e);
            }
        }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         if (_params.Count != 1 || _params [0].Length == 0) {
             SdtdConsole.Instance.Output ("Usage: listitems <searchString>");
             SdtdConsole.Instance.Output ("   or: li <All>");
             return;
         }
         int num = 0;
         if (_params[0].Equals("All")) {
             SdtdConsole.Instance.Output ("Liste des objets de base.");
             foreach (string s in ItemList.Instance.ItemNames) {
                 SdtdConsole.Instance.Output  (num + ". " + s);
                 num++;
             }
         }else{
             if (_params[0].Equals("Save")) {
                 Execute2();
                 return;
             }
             else {
                 SdtdConsole.Instance.Output ("Liste des objets de base.");
                 foreach (string s in ItemList.Instance.ItemNames) {
                     if (s.ToLower ().Contains (_params [0].ToLower ())) {
                         SdtdConsole.Instance.Output  (num + ". " + s);
                         num++;
                     }
                 }
             }
         }
         SdtdConsole.Instance.Output  ("La liste contient " + num + " objets.");
     } catch (Exception e) {
         Log.Out ("Error in ListItems.Run: " + e);
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                World w = GameManager.Instance.World;
                int num = 0;
                string playersList = "<playersList>";
                foreach (KeyValuePair<int, EntityPlayer> current in w.Players.dict) {
                    ClientInfo clientInfoFromEntityID =  ConnectionManager.Instance.GetClientInfoForEntityId(current.Key);
                    playersList += "<player id=\"" + ++num + "\" steamId=\"" + clientInfoFromEntityID.entityId;
                    playersList += "\" name=\"" + current.Value.EntityName;
                    playersList += "\" pos=\"" + current.Value.GetPosition ();
                    playersList += "\" />";
                    playersList += "\n";

                }
                playersList += "</playersList>";
                playersList = playersList.Replace("(","").Replace(")","");
                //SdtdConsole.Instance.Output (playersList);
                StreamWriter sw = new StreamWriter("D:\\Inventories\\playersList.xml");
                sw.Write(playersList);
                sw.Close();
                playersList = null;
            } catch (Exception e) {
                SdtdConsole.Instance.Output ("Error in WritePlayersList.Run: " + e);
            }
        }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count != 1) {
                    SdtdConsole.Instance.Output("Utilisation: sound <nomdujoueur1|gameid1> ...");
                    return;
                }

                ClientInfo ci1 = ConsoleHelper.ParseParamIdOrName (_params [0]);
                if (ci1 == null) {
                    SdtdConsole.Instance.Output("Pseudo1 ou GameId1 introuvable.");
                    return;
                }
                else {
                    EntityPlayer player1 = (EntityPlayer)GameManager.Instance.World.GetEntity(ci1.entityId);
                    string text2 = "Enemies/Acid_Puking_Hulk/hulkpain1";
                    player1.PlayOneShot(text2);
                    player1.PlayOneShot(text2);
                    SdtdConsole.Instance.Output("Son joue chez le joueur " + _params[0]);
                    return;
                }

            }
            catch (Exception e)
            {
                Log.Out("Error in Heal.Run: " + e);
            }
        }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count != 1) {
                    SdtdConsole.Instance.Output("Utilisation: sound <nomdujoueur1|gameid1> ...");
                    return;
                }
                int x = int.MinValue;

                int.TryParse (_params [0], out x);
                World world = GameManager.Instance.World;
                for (int i = world.Entities.list.Count - 1; i >= 0; i--) {
                    Entity item = world.Entities.list[i];
                    SdtdConsole.Instance.Output("item.entityId: " + item.entityId);
                    SdtdConsole.Instance.Output("x: " + x);
                    if(item.entityId == x) {
                        item.PlayOneShot("Weapons/Ranged/44Magnum/44magnum_fire");
                        SdtdConsole.Instance.Output("Sound played.");
                        return;
                    }
                }
            }
            catch (Exception e)
            {
                Log.Out("Error in Heal.Run: " + e);
            }
        }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         int _entityId = int.MinValue;
         if (!int.TryParse(_params[0], out _entityId))
         {
             SdtdConsole.Instance.Output(string.Format("Invalid entityId: {0}", _entityId));
             return;
         }
         else
         {
             GameManager.Instance.World.RemoveEntity(_entityId, EnumRemoveEntityReason.Despawned);
             SdtdConsole.Instance.Output(string.Format("Removed entity {0} ", _entityId));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in EntityRemove.Run: {0}.", e));
     }
 }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         if (_params[0].Length != 17)
         {
             SdtdConsole.Instance.Output(string.Format("Can not add SteamId: Invalid SteamId {0}", _params[0]));
             return;
         }
         string _filepath = string.Format("{0}/Player/{1}.map", GameUtils.GetSaveGameDir(), _params[0]);
         string _filepath1 = string.Format("{0}/Player/{1}.ttp", GameUtils.GetSaveGameDir(), _params[0]);
         List<ClientInfo> _cInfoList = ConnectionManager.Instance.GetClients();
         foreach (ClientInfo _cInfo in _cInfoList)
         {
             if (_cInfo.playerId == _params[0])
             {
                 string _phrase400;
                 if (!Phrases.Dict.TryGetValue(400, out _phrase400))
                 {
                     _phrase400 = "Reseting your player profile.";
                 }
                 SdtdConsole.Instance.ExecuteSync(string.Format("kick {0} \"{1}\"", _cInfo.entityId, _phrase400), _cInfo);
                 break;
             }
         }
         if (!File.Exists(_filepath))
         {
             SdtdConsole.Instance.Output(string.Format("Could not find file {0}.map", _params[0]));
         }
         else
         {
             File.Delete(_filepath);
         }
         if (!File.Exists(_filepath1))
         {
             SdtdConsole.Instance.Output(string.Format("Could not find file {0}.ttp", _params[0]));
         }
         else
         {
             File.Delete(_filepath1);
         }
         string _phrase401;
         if (!Phrases.Dict.TryGetValue(401, out _phrase401))
         {
             _phrase401 = "You have reset the profile for player {SteamId}.";
         }
         _phrase401 = _phrase401.Replace("{SteamId}", _params[0]);
         SdtdConsole.Instance.Output(string.Format("{0}", _phrase401));
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in ResetPlayer.Run: {0}.", e));
     }
 }
Example #8
0
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     if (_senderInfo.RemoteClientInfo == null) {
         Log.Out ("Command \"reply\" can only be used on clients!");
     } else {
         RunInternal (_senderInfo.RemoteClientInfo, _params);
     }
 }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         RunInternal (_params);
         }
     catch (Exception e) {
         Log.Out ("Error in SayToteam.Run: " + e);
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count != 4 && _params.Count != 2) {
                    SdtdConsole.Instance.Output ("Usage: teleportplayer <entityid|playername|steamid> <x> <y> <z>");
                    SdtdConsole.Instance.Output ("   or: teleportplayer <entityid|playername|steamid> <target entityid|playername|steamid>");
                } else {
                    ClientInfo ci1 = ConsoleHelper.ParseParamIdOrName (_params [0]);//ci1.SendPackage (pkg);
                    if (ci1 == null) {
                        SdtdConsole.Instance.Output ("Playername or entity/steamid id not found.");
                        return;
                    }
                    EntityPlayer ep1 = GameManager.Instance.World.Players.dict [ci1.entityId];

                    if (_params.Count == 4) {
                        int x = int.MinValue;
                        int y = int.MinValue;
                        int z = int.MinValue;

                        int.TryParse (_params [1], out x);
                        int.TryParse (_params [2], out y);
                        int.TryParse (_params [3], out z);

                        if (x == int.MinValue || y == int.MinValue || z == int.MinValue) {
                            SdtdConsole.Instance.Output ("At least one of the given coordinates is not a valid integer");
                            return;
                        }

                        ep1.position.x = x;
                        ep1.position.y = y;
                        ep1.position.z = z;
                    } else {
                        ClientInfo ci2 = ConsoleHelper.ParseParamIdOrName (_params [1]);
                        if (ci2 == null) {
                            SdtdConsole.Instance.Output ("Target playername or entity/steamid id not found.");
                            return;
                        }
                        EntityPlayer ep2 = GameManager.Instance.World.Players.dict [ci2.entityId];

                        ep1.position = ep2.GetPosition();
                        ep1.position.y += 1;
                        ep1.position.z += 1;

                    }

                    NetPackageEntityTeleport pkg = new NetPackageEntityTeleport (ep1);
                    //NetPackagePlayerInventory pkh = new NetPackagePlayerInventory(ep2
                    ci1.SendPackage (pkg);
                }
            } catch (Exception e) {
                Log.Out ("Error in TeleportPlayer.Run: " + e);
            }
        }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         if (_senderInfo.RemoteClientInfo != null) {
             RunInternal (_senderInfo.RemoteClientInfo, _params);
         } else {
             RunInternal (null, _params);
         }
     } catch (Exception e) {
         Log.Out ("Error in SayToPlayer.Run: " + e);
     }
 }
Example #12
0
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count != 3 && _params.Count != 4) {
                    SdtdConsole.Instance.Output ("Wrong number of arguments, expected 3 or 4, found " + _params.Count + ".");
                    return;
                }

                ClientInfo ci = ConsoleHelper.ParseParamIdOrName (_params [0]);

                if (ci == null) {
                    SdtdConsole.Instance.Output ("Playername or entity id not found.");
                    return;
                }

                ItemValue iv = ItemList.Instance.GetItemValue (_params [1]);
                if (iv == null) {
                    SdtdConsole.Instance.Output ("Item not found.");
                    return;
                }

                int n = int.MinValue;
                if (!int.TryParse (_params [2], out n) || n <= 0) {
                    SdtdConsole.Instance.Output ("Amount is not an integer or not greater than zero.");
                    return;
                }

                if (_params.Count == 4) {
                    if (!iv.HasQuality) {
                        SdtdConsole.Instance.Output ("Item " + _params [1] + " does not support quality.");
                        return;
                    }

                    int quality = int.MinValue;
                    if (!int.TryParse (_params [3], out quality) || quality <= 0) {
                        SdtdConsole.Instance.Output ("Quality is not an integer or not greater than zero.");
                        return;
                    }
                    iv.Quality = quality;
                }

                EntityPlayer p = GameManager.Instance.World.Players.dict [ci.entityId];

                ItemStack invField = new ItemStack (iv, n);

                GameManager.Instance.ItemDropServer (invField, p.GetPosition (), Vector3.zero, -1, 50);

                SdtdConsole.Instance.Output ("Dropped item");
            } catch (Exception e) {
                Log.Out ("Error in Give.Run: " + e);
            }
        }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         if (_params.Count == 1) {
             removeById (_params [0]);
         } else if (_params.Count == 3) {
             removeByPosition (_params);
         } else {
             SdtdConsole.Instance.Output ("Usage: removelandprotection <x> <y> <z>  OR  removelandprotection <steamid>");
         }
     } catch (Exception e) {
         Log.Out ("Error in RemoveLandProtection.Run: " + e);
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {

                int num;
                if (_params.Count != 1)
                {
                    SdtdConsole.Instance.Output(string.Concat("Wrong number of arguments, expected 1, found ", _params.Count, "."));
                    SdtdConsole.Instance.Output("Utilisation: heal <nomdujouer|gameid>");
                    return;
                }
                Entity item = null;

                ClientInfo clientInfoForNameOrId = ConsoleHelper.ParseParamIdOrName (_params [0]);

                if (clientInfoForNameOrId != null)
                {
                    item = GameManager.Instance.World.Players.dict[clientInfoForNameOrId.entityId];
                }
                else if (int.TryParse(_params[0], out num) && GameManager.Instance.World.Entities.dict.ContainsKey(num))
                {
                    item = GameManager.Instance.World.Entities.dict[num];
                }
                if (item == null)
                {
                    SdtdConsole.Instance.Output("Pseudo ou GameId introuvable.");
                    return;
                }
                item.DamageEntity(new DamageSource(EnumDamageSourceType.Bullet), -9999, false);

                /*try {
                    CommonMappingFunctions.GetGameManager().GetRPCNetworkView().RPC("RPC_ChatMessage", ci.networkPlayer,
                        new object[]
                        {
                            "ZBot vient de vous soigner.",
                            -1,
                            string.Empty,
                            false
                        });

                    SdtdConsole.Instance.Output ("Message prive a destination du joueur " + (receiverName != null ? "\"" + receiverName + "\"" : "unknownName"));
                } catch (Exception e) {
                    Log.Out("Error in Heal1.Run: " + e);
                }*/
                SdtdConsole.Instance.Output("Joueur soigne " + _params[0]);
            } catch (Exception e) {
                Log.Out("Error in Heal2.Run: " + e);
            }
        }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("off"))
         {
             if (Prayer.IsEnabled)
             {
                 Prayer.IsEnabled = false;
                 LoadConfig.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("Prayer has been set to off"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("Prayer is already off"));
                 return;
             }
         }
         else if (_params[0].ToLower().Equals("on"))
         {
             if (Prayer.IsEnabled)
             {
                 Prayer.IsEnabled = true;
                 LoadConfig.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("Prayer has been set to on"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("Prayer is already on"));
                 return;
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("Invalid argument {0}", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in PrayerConsole.Execute: {0}", e));
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count < 1) {
                    SdtdConsole.Instance.Output ("Usage: ShowEquipment <steamid|playername|entityid>");
                    SdtdConsole.Instance.Output ("   or: ShowEquipment <steamid|playername|entityid> <1>");
                    return;
                }

                string steamid = PersistentContainer.Instance.Players.GetSteamID (_params [0], true);
                if (steamid == null) {
                    SdtdConsole.Instance.Output ("Playername or entity/steamid id not found or no inventory saved (first saved after a player has been online for 30s).");
                    return;
                }

                Player p = PersistentContainer.Instance.Players [steamid, false];
                PersistentData.Inventory inv = p.Inventory;
                if (p.IsOnline == true) {
                    EntityPlayer ply = p.Entity;
                    int num = 0;
                    int vc = ply.equipment.GetSlotCount();
                    SdtdConsole.Instance.Output ("**** Equipment of player " + ply.EntityName  + " ****");
                    for (int i = 0; i < vc; i++){
                        //ib[k].itemValue.type =
                        ItemValue gg = p.Entity.equipment.GetSlotItem(i);
                        if (gg != null)
                        {
                            try
                            {
                                if (gg.type >= 1){
                                ItemClass itemClass = ItemClass.GetForId(gg.type);
                                string name = itemClass.GetItemName(); //ib..GetItemName ();
                                if (name != null) {
                                    num ++;
                                    SdtdConsole.Instance.Output (num + ". *    Slot # " + i +"/" + vc + " => " + name + " *");
                                    }
                                }

                            }catch (Exception e) {

                            }
                        }
                    }
                    SdtdConsole.Instance.Output ("**** Total of " + num + " slots equiped ****");
                }
            } catch (Exception e) {
                Log.Out ("Error in ShowEquipment.Run: " + e);
            }
        }
Example #17
0
        public override void Execute(List <string> parameters, CommandSenderInfo senderInfo)
        {
            TelemetryTools.CollectEvent("command", "execute", GetCommands()[0]);
            try
            {
                ParseParams(parameters, out var tasks, out bool simulate, out bool auto, out int?timerInterval);
                timerInterval = timerInterval ?? 60 * 10; // every 10 minutes by default

                if (auto)
                {
                    if (!PersistentData.Instance.RepairAuto)
                    {
                        PersistentData.Instance.RepairAuto     = true;
                        PersistentData.Instance.RepairTasks    = tasks;
                        PersistentData.Instance.RepairSimulate = simulate;
                        PersistentData.Instance.RepairInterval = timerInterval.Value; // every 10 minutes by default;
                        PersistentData.Instance.Save();
                        RepairEngine.AutoOn();
                    }
                    else
                    {
                        RepairEngine.AutoOff();
                        PersistentData.Instance.RepairAuto    = false;
                        PersistentData.Instance.RepairCounter = 0;
                        PersistentData.Instance.Save();
                    }
                }
                else
                {
                    ThreadManager.AddSingleTask(delegate
                    {
                        try
                        {
                            var repairEngine = new RepairEngine(tasks, simulate, senderInfo);
                            repairEngine.Start();
                        }
                        catch (Exception ex)
                        {
                            Log.Exception(ex);
                            SdtdConsole.Instance.OutputAsync(senderInfo, string.Format(Resources.ErrorDuringCommand, ex.Message));
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                CommandTools.HandleCommandException(ex);
            }
        }
Example #18
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("off"))
         {
             if (ChatHook.ChatFlood)
             {
                 ChatHook.ChatFlood = false;
                 Config.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Chat flood protection has been set to off"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Chat flood protection is already off"));
                 return;
             }
         }
         else if (_params[0].ToLower().Equals("on"))
         {
             if (!ChatHook.ChatFlood)
             {
                 ChatHook.ChatFlood = true;
                 Config.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Chat flood protection has been set to on"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Chat flood protection is already on"));
                 return;
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Invalid argument {0}", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in ChatFloodProtectionConsole.Execute: {0}", e.Message));
     }
 }
Example #19
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("off"))
         {
             if (ChatHook.Normal_Player_Color_Prefix)
             {
                 ChatHook.Normal_Player_Color_Prefix = false;
                 LoadConfig.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("Normal player coloring has been set to off"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("Normal player coloring is already off"));
                 return;
             }
         }
         else if (_params[0].ToLower().Equals("on"))
         {
             if (ChatHook.Normal_Player_Color_Prefix)
             {
                 ChatHook.Normal_Player_Color_Prefix = true;
                 LoadConfig.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("Normal player coloring has been set to on"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("Normal player coloring is already on"));
                 return;
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("Invalid argument {0}", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in NormalPlayerColoringConsole.Execute: {0}", e.Message));
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count != 1) {
                    SdtdConsole.Instance.Output ("Usage: ListBlocks <playername> or lb <playername>");
                    return;
                }
                if (_params.Count == 1 ){
                    RemoveBlock (_params);
                }

            } catch (Exception ex) {
                Log.Out("RemoveBlocks error: " + ex.Message);
            }
        }
Example #21
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     if (_params.Count != 1)
     {
         SdtdConsole.Instance.Output("Wrong number of arguments.");
         return;
     }
     if (!int.TryParse(_params[0], out HighPingKicker.MAXPING))
     {
         SdtdConsole.Instance.Output("Maxping is not an integer.");
         return;
     }
     SdtdConsole.Instance.Output(string.Format("Max ping limit set to {0}", HighPingKicker.MAXPING));
     Config.UpdateConfig();
 }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         if (_senderInfo.RemoteClientInfo != null)
         {
             RunInternal(_senderInfo.RemoteClientInfo, _params);
         }
         else
         {
             RunInternal(null, _params);
         }
     } catch (Exception e) {
         Log.Out("Error in SayToPlayer.Run: " + e);
     }
 }
Example #23
0
 /// <summary>
 /// Sends the given message asynchronously and immediately to the sender of the command.
 /// Note: SdtdConsole.Instance.Out does NOT work asynchronously!
 /// </summary>
 /// <param name="target"></param>
 /// <param name="senderInfo">Either NetworkConnection (telnet) or RemoteClientInfo (game client) must be set.</param>
 /// <param name="msg">Message to send; newline is added automatically</param>
 public static void OutputAsync(this SdtdConsole target, CommandSenderInfo senderInfo, string msg)
 {
     if (senderInfo.NetworkConnection != null) // telnet
     {
         senderInfo.NetworkConnection.SendLine(msg);
     }
     else if (senderInfo.RemoteClientInfo != null) // 7dtd client
     {
         senderInfo.RemoteClientInfo.SendPackage(new NetPackageConsoleCmdClient(msg, false));
     }
     else
     {
         Log.Warning("Could not find a way to send output to console asynchronously: " + msg);
     }
 }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     if (_params.Count != 1)
     {
         SdtdConsole.Instance.Output("Wrong number of arguments.");
         return;
     }
     if (!int.TryParse(_params[0], out PingChecker.MAXPING))
     {
         SdtdConsole.Instance.Output("Maxping is not an integer.");
         return;
     }
     SdtdConsole.Instance.Output("Max ping limit set to " + PingChecker.MAXPING);
     PingChecker.UpdateXml();
 }
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                int num;
                if (_params.Count != 1)
                {
                    SdtdConsole.Instance.Output(string.Concat("Wrong number of arguments, expected 1, found ", _params.Count, "."));
                    SdtdConsole.Instance.Output("Utilisation: heal <nomdujouer|gameid>");
                    return;
                }
                Entity item = null;

                ClientInfo clientInfoForNameOrId = ConsoleHelper.ParseParamIdOrName(_params [0]);

                if (clientInfoForNameOrId != null)
                {
                    item = GameManager.Instance.World.Players.dict[clientInfoForNameOrId.entityId];
                }
                else if (int.TryParse(_params[0], out num) && GameManager.Instance.World.Entities.dict.ContainsKey(num))
                {
                    item = GameManager.Instance.World.Entities.dict[num];
                }
                if (item == null)
                {
                    SdtdConsole.Instance.Output("Pseudo ou GameId introuvable.");
                    return;
                }
                item.DamageEntity(new DamageSource(EnumDamageSourceType.Bullet), -9999, false);

                /*try {
                 *      CommonMappingFunctions.GetGameManager().GetRPCNetworkView().RPC("RPC_ChatMessage", ci.networkPlayer,
                 *              new object[]
                 *              {
                 *                      "ZBot vient de vous soigner.",
                 *                      -1,
                 *                      string.Empty,
                 *                      false
                 *              });
                 *
                 *      SdtdConsole.Instance.Output ("Message prive a destination du joueur " + (receiverName != null ? "\"" + receiverName + "\"" : "unknownName"));
                 * } catch (Exception e) {
                 *      Log.Out("Error in Heal1.Run: " + e);
                 * }*/
                SdtdConsole.Instance.Output("Joueur soigne " + _params[0]);
            } catch (Exception e) {
                Log.Out("Error in Heal2.Run: " + e);
            }
        }
Example #26
0
        public override void Execute(List <string> parameters, CommandSenderInfo senderInfo)
        {
            TelemetryTools.CollectEvent("command", "execute", GetCommands()[0]);
            try
            {
                var modInfo = Api.GetExecutingMod()?.ModInfo;
                if (modInfo == null)
                {
                    SdtdConsole.Instance.Output(Constants.ModName);
                    SdtdConsole.Instance.Output("Could not load mod infos.");
                }
                else
                {
                    // ReSharper disable once UnreachableCode
                    SdtdConsole.Instance.Output(modInfo.Name.Value + " - Version " + modInfo.Version.Value + (Log.IsDebug ? " DEBUG" : ""));
                    if (modInfo.Name.Value != Constants.ModName)
                    {
                        SdtdConsole.Instance.Output("Original mod name: " + Constants.ModName);
                    }
                    SdtdConsole.Instance.Output(modInfo.Description.Value);
                    if (!string.IsNullOrEmpty(modInfo.Website.Value))
                    {
                        SdtdConsole.Instance.Output("Website: " + modInfo.Website.Value);
                    }
                }

                SdtdConsole.Instance.Output("");

                SdtdConsole.Instance.Output("Operating System: " + Environment.OSVersion);
                SdtdConsole.Instance.Output("Unity version: " + Application.unityVersion);

                var displayName = Type.GetType("Mono.Runtime")?.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
                if (displayName != null)
                {
                    SdtdConsole.Instance.Output("Mono display name: " + displayName.Invoke(null, null));
                }

                var monoRuntimeVersion = Type.GetType("Mono.Runtime")?.Assembly.ImageRuntimeVersion;
                if (monoRuntimeVersion != null)
                {
                    SdtdConsole.Instance.Output("Mono runtime version: " + monoRuntimeVersion);
                }
            }
            catch (Exception ex)
            {
                CommandTools.HandleCommandException(ex);
            }
        }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1 || _params.Count > 2)
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1 or 2, found {0}", _params.Count));
             return;
         }
         if (_params[0].Length < 1 || _params.Count > 17)
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Can not ban Id: Invalid Id {0}", _params[0]));
             return;
         }
         int _time;
         if (!int.TryParse(_params[1], out _time))
         {
             _time = 15;
         }
         ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(_params[0]);
         if (_cInfo != null)
         {
             if (GameManager.Instance.adminTools.GetUserPermissionLevel(_cInfo) > Admin_Level)
             {
                 if (_time > 60)
                 {
                     SdtdConsole.Instance.ExecuteSync(string.Format("ban add {0} {1} minutes \"You have been temporarily banned for {2} minutes\"", _cInfo.playerId, _time, _time), _cInfo);
                 }
                 else
                 {
                     SdtdConsole.Instance.ExecuteSync(string.Format("ban add {0} {1} minutes \"You have been temporarily banned for {2} minutes\"", _cInfo.playerId, _params[1], _params[1]), _cInfo);
                 }
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Can not ban Id: {0}. The Id belongs to an Admin", _params[1]));
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Player with Id {0} does not exist", _cInfo.entityId));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in TempBanConsole.Run: {0}", e.Message));
     }
 }
Example #28
0
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                AdminTools admTools = GameManager.Instance.adminTools;

                bool   onlineOnly    = false;
                bool   notBannedOnly = false;
                string nameFilter    = string.Empty;

                if (_params.Count == 1)
                {
                    if (_params [0].ToLower().Equals("-online"))
                    {
                        onlineOnly = true;
                    }
                    else if (_params [0].ToLower().Equals("-notbanned"))
                    {
                        notBannedOnly = true;
                    }
                    else
                    {
                        nameFilter = _params [0].ToLower();
                    }
                }

                int num = 0;
                foreach (string sid in PersistentContainer.Instance.Players.SteamIDs)
                {
                    Player p = PersistentContainer.Instance.Players [sid, false];

                    if (
                        (!onlineOnly || p.IsOnline) &&
                        (!notBannedOnly || !admTools.IsBanned(sid)) &&
                        (nameFilter.Length == 0 || p.Name.ToLower().Contains(nameFilter))
                        )
                    {
                        SdtdConsole.Instance.Output(String.Format("{0}. {1}, id={2}, steamid={3}, online={4}, ip={5}, playtime={6} m, seen={7}",
                                                                  ++num, p.Name, p.EntityID, sid, p.IsOnline, p.IP,
                                                                  p.TotalPlayTime / 60,
                                                                  p.LastOnline.ToString("yyyy-MM-dd HH:mm"))
                                                    );
                    }
                }
                SdtdConsole.Instance.Output("Total of " + PersistentContainer.Instance.Players.Count + " known");
            } catch (Exception e) {
                Log.Out("Error in ListKnownPlayers.Run: " + e);
            }
        }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count != 6) {
                    SdtdConsole.Instance.Output ("Usage: removeblock <target entityid|playername|steamid> <targetBlockId> <newBlockId> <sizex> <sizez> <sizey>");
                    SdtdConsole.Instance.Output ("Usage: removeblock ketchu13 295 200");
                    return;
                }
                if (_params.Count == 6 ){
                    RemoveBlock (_params);
                }

            } catch (Exception ex) {
                Log.Out("RemoveBlocks error: " + ex.Message);
            }
        }
Example #30
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output("Usage: ListBlocks <playername> or lb <playername>");
             return;
         }
         if (_params.Count == 1)
         {
             RemoveBlock(_params);
         }
     } catch (Exception ex) {
         Log.Out("RemoveBlocks error: " + ex.Message);
     }
 }
Example #31
0
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (GameManager.Instance.World == null)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output("[SERVERTOOLS] The world is not loaded. Unable to run command");

                    return;
                }
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in TestConsole.Execute: {0}", e.Message));
            }
        }
Example #32
0
 public override void Execute(List <string> _params, CommandSenderInfo senderInfo)
 {
     SenderInfo = senderInfo;
     Params     = new List <string>();
     Options    = new Dictionary <string, string>();
     ParseParams(_params);
     try
     {
         Process();
     }
     catch (Exception e)
     {
         SendOutput("Error while executing command.");
         Log.Out($"{Config.ModPrefix} Error in {GetType().Name}.{MethodBase.GetCurrentMethod().Name}: {e}");
     }
 }
Example #33
0
 public override void Execute(List <string> _p, CommandSenderInfo _s)
 {
     _senderInfo = _s;
     _params     = new List <string>();
     _options    = new Dictionary <string, string>();
     ParseParams(_p);
     try
     {
         Process();
     }
     catch (Exception e)
     {
         SdtdConsole.Instance.Output("Error while executing command.");
         Log.Out(Config.ModPrefix + " Error in " + GetType().Name + "." + MethodBase.GetCurrentMethod().Name + ": " + e);
     }
 }
Example #34
0
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count < 1 || _params.Count > 2)
                {
                    SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1 or 2, found {0}", _params.Count));
                    return;
                }
                if (_params[0] == "cancel")
                {
                    if (!isCountingDown)
                    {
                        SdtdConsole.Instance.Output("Stopserver is not running.");
                    }
                    else
                    {
                        th.Abort();
                        isCountingDown = false;
                        SdtdConsole.Instance.Output("Stopserver has stopped.");
                    }
                }
                else
                {
                    if (isCountingDown)
                    {
                        SdtdConsole.Instance.Output(string.Format("Server is already stopping in {0} mins", _mins));
                    }
                    else
                    {
                        if (!int.TryParse(_params[0], out _mins))
                        {
                            SdtdConsole.Instance.Output(string.Format("Invalid time specified: {0}", _mins));
                        }
                        else
                        {
                            Start();
                        }
                    }

                }
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in StopServer.Run: {0}.", e));
            }
        }
Example #35
0
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_senderInfo.RemoteClientInfo == null)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output("[SERVERTOOLS] Invalid operation. This command must be used manually by an administrator in game");

                    return;
                }
                if (_params.Count != 1)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found '{0}'", _params.Count));

                    return;
                }
                if (!int.TryParse(_params[0], out int _entityId))
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Invalid entityId value '{0}'", _entityId));

                    return;
                }
                Entity Entity = GameManager.Instance.World.Entities.dict[_entityId];
                if (Entity == null)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Invalid entityId. Entity not found '{0}'", _entityId));

                    return;
                }
                if (Entity is EntityPlayer)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Entity with id '{0}' can not be a player", _entityId));

                    return;
                }
                EntityPlayer _player = PersistentOperations.GetEntityPlayer(_senderInfo.RemoteClientInfo.entityId);
                if (_player != null)
                {
                    Entity.SetRotation(new UnityEngine.Vector3(_player.position.x, _player.position.y, _player.position.z));
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Rotated entity {0} to face away from you", _entityId));
                }
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in EntityRotateConsole.Execute: {0}", e.Message));
            }
        }
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count < 1)
                {
                    SdtdConsole.Instance.Output("Usage: showinventory <steamid|playername|entityid>");
                    SdtdConsole.Instance.Output("   or: showinventory <steamid|playername|entityid> <1>");
                    return;
                }
                string steamid = PersistentContainer.Instance.Players.GetSteamID(_params [0], true);
                if (steamid == null)
                {
                    SdtdConsole.Instance.Output("Playername or entity/steamid id not found or no inventory saved (first saved after a player has been online for 30s).");
                    return;
                }

                Player p = PersistentContainer.Instance.Players [steamid, false];
                PersistentData.Inventory inv = p.Inventory;
                if (_params.Count == 2)
                {
                    saveInventory(p, inv, steamid);
                    return;
                }

                SdtdConsole.Instance.Output("Belt of player " + p.Name + ":");
                for (int i = 0; i < inv.belt.Count; i++)
                {
                    if (inv.belt [i] != null)
                    {
                        SdtdConsole.Instance.Output(string.Format("    Slot {0}: {1:000} * {2}", i, inv.belt [i].count, inv.belt [i].itemName));
                    }
                }
                SdtdConsole.Instance.Output(string.Empty);
                SdtdConsole.Instance.Output("Bagpack of player " + p.Name + ":");
                for (int i = 0; i < inv.bag.Count; i++)
                {
                    if (inv.bag [i] != null)
                    {
                        SdtdConsole.Instance.Output(string.Format("    Slot {0}: {1:000} * {2}", i, inv.bag [i].count, inv.bag [i].itemName));
                    }
                }
                SdtdConsole.Instance.Output(string.Empty);
            } catch (Exception e) {
                Log.Out("Error in ShowInventory.Run: " + e);
            }
        }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         //if (_params.Length > 1) {
             Process runMapReader = new Process();
             string mapReaderPath = "D:\\Inventories\\map_reader1.3.0_64bits.exe";
             string mapFilesPath = "D:\\Inventories\\map";
             string mapTilesPath = "D:\\Inventories\\tiles";
             runMapReader.StartInfo.CreateNoWindow = false;
             runMapReader.StartInfo.UseShellExecute = false;
             runMapReader.StartInfo.FileName = mapReaderPath;
             runMapReader.StartInfo.Arguments = "-g \"" + mapFilesPath + "\" -t \"" + mapTilesPath + "\"";
             runMapReader.Start();				//}
     } catch (Exception ex) {
         Log.Out("LoadPrefab error: " + ex.Message);
     }
 }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         if (_params.Count != 6)
         {
             SdtdConsole.Instance.Output("Usage: removeblock <target entityid|playername|steamid> <targetBlockId> <newBlockId> <sizex> <sizez> <sizey>");
             SdtdConsole.Instance.Output("Usage: removeblock ketchu13 295 200");
             return;
         }
         if (_params.Count == 6)
         {
             RemoveBlock(_params);
         }
     } catch (Exception ex) {
         Log.Out("RemoveBlocks error: " + ex.Message);
     }
 }
Example #39
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1 || _params.Count > 2)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1 or 2, found {0}", _params.Count));
             return;
         }
         if (_params[0] == "cancel")
         {
             if (!isCountingDown)
             {
                 SdtdConsole.Instance.Output("Stopserver is not running.");
             }
             else
             {
                 th.Abort();
                 isCountingDown = false;
                 SdtdConsole.Instance.Output("Stopserver has stopped.");
             }
         }
         else
         {
             if (isCountingDown)
             {
                 SdtdConsole.Instance.Output(string.Format("Server is already stopping in {0} mins", _mins));
             }
             else
             {
                 if (!int.TryParse(_params[0], out _mins))
                 {
                     SdtdConsole.Instance.Output(string.Format("Invalid time specified: {0}", _mins));
                 }
                 else
                 {
                     Start();
                 }
             }
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in StopServer.Run: {0}.", e));
     }
 }
Example #40
0
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count != 1)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found '{0}'", _params.Count));

                    return;
                }
                if (!string.IsNullOrEmpty(_senderInfo.RemoteClientInfo.CrossplatformId.CombinedString))
                {
                    LinkedList <Chunk> chunkArray = new LinkedList <Chunk>();
                    DictionaryList <Vector3i, TileEntity> tiles = new DictionaryList <Vector3i, TileEntity>();
                    ChunkClusterList chunklist = GameManager.Instance.World.ChunkClusters;
                    for (int i = 0; i < chunklist.Count; i++)
                    {
                        ChunkCluster chunk = chunklist[i];
                        chunkArray = chunk.GetChunkArray();
                        foreach (Chunk _c in chunkArray)
                        {
                            tiles = _c.GetTileEntities();
                            foreach (TileEntity tile in tiles.dict.Values)
                            {
                                TileEntityType type = tile.GetTileEntityType();
                                if (type.ToString().Equals("SecureLoot"))
                                {
                                    TileEntitySecureLootContainer SecureLoot = (TileEntitySecureLootContainer)tile;
                                    if (!SecureLoot.IsUserAllowed(_senderInfo.RemoteClientInfo.CrossplatformId))
                                    {
                                        List <PlatformUserIdentifierAbs> _users = SecureLoot.GetUsers();
                                        _users.Add(_senderInfo.RemoteClientInfo.CrossplatformId);
                                        SecureLoot.SetModified();
                                    }
                                }
                            }
                        }
                    }
                }
                SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Secure loot access set for '{0}' in all loaded areas. Unloaded areas have not changed", _senderInfo.RemoteClientInfo.CrossplatformId.CombinedString));
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in SecureLootAccessConsole.Execute: {0}", e.Message));
            }
        }
Example #41
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         if (_params.Count == 1)
         {
             ClientInfo _cInfo  = _senderInfo.RemoteClientInfo;
             ClientInfo _cInfo2 = ConsoleHelper.ParseParamIdOrName(_params[0]);
             if (_cInfo2 != null)
             {
                 EntityPlayer _player2 = GameManager.Instance.World.Players.dict[_cInfo2.entityId];
                 if ((int)_player2.position.y < 13)
                 {
                     _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3((int)_player2.position.x, 0, (int)_player2.position.z), null, false));
                     SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Teleport successful"));
                     return;
                 }
                 else
                 {
                     _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3((int)_player2.position.x, (int)_player2.position.y - 10, (int)_player2.position.z), null, false));
                     SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Teleport successful"));
                     return;
                 }
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Player id {0} not found", _params[0]));
                 return;
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Invalid argument {0}", _params[0]));
             return;
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in TeleportUnderPlayerConsole.Run: {0}", e.Message));
     }
 }
Example #42
0
        private void DoExec(List <string> _params, CommandSenderInfo _senderInfo)
        {
            int maxCount = 2;

            if (int.TryParse(_params[0], out maxCount))
            {
                if (maxCount <= 15)
                {
                    ClearPlayerTeams();
                    SetupTeams(maxCount);
                }
                else
                {
                    SdtdConsole.Instance.Output("15 Teams Max");
                }
            }
        }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try {
         //if (_params.Length > 1) {
         Process runMapReader  = new Process();
         string  mapReaderPath = "D:\\Inventories\\map_reader1.3.0_64bits.exe";
         string  mapFilesPath  = "D:\\Inventories\\map";
         string  mapTilesPath  = "D:\\Inventories\\tiles";
         runMapReader.StartInfo.CreateNoWindow  = false;
         runMapReader.StartInfo.UseShellExecute = false;
         runMapReader.StartInfo.FileName        = mapReaderPath;
         runMapReader.StartInfo.Arguments       = "-g \"" + mapFilesPath + "\" -t \"" + mapTilesPath + "\"";
         runMapReader.Start();                                                   //}
     } catch (Exception ex) {
         Log.Out("LoadPrefab error: " + ex.Message);
     }
 }
Example #44
0
        /// <inheritdoc/>
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            if (_params.Count < 1)
            {
                SdtdConsole.Instance.Output("SevenMod Plugins Menu:");
                SdtdConsole.Instance.Output("    info              - Information about a plugin");
                SdtdConsole.Instance.Output("    list              - Show loaded plugins");
                SdtdConsole.Instance.Output("    load              - Load a plugin");
                SdtdConsole.Instance.Output("    refresh           - Reloads/refreshes all plugins in the plugins.ini file");
                SdtdConsole.Instance.Output("    reload            - Reload a plugin");
                SdtdConsole.Instance.Output("    unload            - Unload a plugin");
                SdtdConsole.Instance.Output("    unload_all        - Unload all plugins");
                return;
            }

            switch (_params[0])
            {
            case "info":
                this.Info(_params.Count > 1 ? _params[1] : null);
                break;

            case "list":
                this.List();
                break;

            case "load":
                this.Load(_params.Count > 1 ? _params[1] : null);
                break;

            case "refresh":
                this.Refresh();
                break;

            case "reload":
                this.Reload(_params.Count > 1 ? _params[1] : null);
                break;

            case "unload":
                this.Unload(_params.Count > 1 ? _params[1] : null);
                break;

            case "unload_all":
                this.UnloadAll();
                break;
            }
        }
Example #45
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         int _counter = 1;
         SdtdConsole.Instance.Output("Minibike List:");
         List <Entity> Entities = GameManager.Instance.World.Entities.list;
         for (int i = 0; i < Entities.Count; i++)
         {
             Entity _entity = Entities[i];
             string _name   = EntityClass.list[_entity.entityClass].entityClassName;
             if (_name == "minibike")
             {
                 Vector3 _pos            = _entity.position;
                 int     x               = (int)_pos.x;
                 int     y               = (int)_pos.y;
                 int     z               = (int)_pos.z;
                 Entity  _attachedPlayer = _entity.AttachedMainEntity;
                 if (_attachedPlayer != null)
                 {
                     List <ClientInfo> _cInfoList = ConnectionManager.Instance.Clients.List.ToList();
                     for (int j = 0; j < _cInfoList.Count; j++)
                     {
                         ClientInfo _cInfo = _cInfoList[j];
                         if (_cInfo != null)
                         {
                             if (_attachedPlayer.entityId == _cInfo.entityId)
                             {
                                 SdtdConsole.Instance.Output(string.Format("#{0}: Id {1}, Located at x {2}  y {3} z {4}, Player {5} is riding this bike.", _counter, _entity.entityId, x, y, z, _cInfo.playerName));
                             }
                         }
                     }
                 }
                 else
                 {
                     SdtdConsole.Instance.Output(string.Format("#{0}: Id {1}, Located at x {2}  y {3} z {4}.", _counter, _entity.entityId, x, y, z));
                 }
                 _counter++;
             }
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in BikeListConsole.Run: {0}.", e));
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_params.Count < 1) {
                    SdtdConsole.Instance.Output ("Usage: showinventory <steamid|playername|entityid>");
                    return;
                }

                string steamid = PersistentContainer.Instance.Players.GetSteamID (_params [0], true);
                if (steamid == null) {
                    SdtdConsole.Instance.Output ("Playername or entity/steamid id not found or no inventory saved (first saved after a player has been online for 30s).");
                    return;
                }

                Player p = PersistentContainer.Instance.Players [steamid, false];
                PersistentData.Inventory inv = p.Inventory;

                SdtdConsole.Instance.Output ("Belt of player " + p.Name + ":");
                for (int i = 0; i < inv.belt.Count; i++) {
                    if (inv.belt [i] != null){
                        if (inv.belt [i].quality < 0) {
                            SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.belt [i].count, inv.belt [i].itemName));
                        }else
                        {
                            SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.belt [i].count, inv.belt [i].itemName, inv.belt[i].quality));
                        }
                    }
                            }
                SdtdConsole.Instance.Output (string.Empty);
                SdtdConsole.Instance.Output ("Bagpack of player " + p.Name + ":");
                for (int i = 0; i < inv.bag.Count; i++) {
                    if (inv.bag [i] != null){
                        if (inv.bag [i].quality < 0) {
                            SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.bag [i].count, inv.bag [i].itemName));
                        }else
                        {
                        SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2} -- {3}", i, inv.bag [i].count, inv.bag [i].itemName, inv.bag[i].quality));
                        }
                    }
                }
                SdtdConsole.Instance.Output (string.Empty);
            } catch (Exception e) {
                Log.Out ("Error in ShowInventory.Run: " + e);
            }
        }
Example #47
0
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count != 1)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found '{0}'", _params.Count));

                    return;
                }
                ClientInfo cInfo = PersistentOperations.GetClientInfoFromNameOrId(_params[0]);
                if (cInfo != null)
                {
                    Phrases.Dict.TryGetValue("ResetPlayer1", out string phrase);
                    SingletonMonoBehaviour <SdtdConsole> .Instance.ExecuteSync(string.Format("kick {0} \"{1}\"", cInfo.CrossplatformId.CombinedString, phrase), null);

                    GameManager.Instance.World.aiDirector.RemoveEntity(PersistentOperations.GetEntityPlayer(cInfo.entityId));
                    GC.Collect();
                    MemoryPools.Cleanup();
                    ResetProfileExec(cInfo.CrossplatformId.CombinedString);
                }
                else if (_params[0].Contains("_"))
                {
                    PersistentPlayerData ppd = PersistentOperations.GetPersistentPlayerDataFromId(_params[0]);
                    if (ppd != null)
                    {
                        GC.Collect();
                        MemoryPools.Cleanup();
                        ResetProfileExec(ppd.UserIdentifier.ReadablePlatformUserIdentifier);
                    }
                    else
                    {
                        Log.Out(string.Format("[SERVERTOOLS] Unable to find player data for id '{0}'", _params[0]));
                    }
                }
                else
                {
                    Log.Out(string.Format("[SERVERTOOLS] Unable to find player data for id '{0}'", _params[0]));
                }
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in ResetPlayerConsole.Execute: {0}", e.Message));
            }
        }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found {0}", _params.Count));
             return;
         }
         if (!string.IsNullOrEmpty(_senderInfo.RemoteClientInfo.playerId))
         {
             LinkedList <Chunk> chunkArray = new LinkedList <Chunk>();
             DictionaryList <Vector3i, TileEntity> tiles = new DictionaryList <Vector3i, TileEntity>();
             ChunkClusterList chunklist = GameManager.Instance.World.ChunkClusters;
             for (int i = 0; i < chunklist.Count; i++)
             {
                 ChunkCluster chunk = chunklist[i];
                 chunkArray = chunk.GetChunkArray();
                 foreach (Chunk _c in chunkArray)
                 {
                     tiles = _c.GetTileEntities();
                     foreach (TileEntity tile in tiles.dict.Values)
                     {
                         TileEntityType type = tile.GetTileEntityType();
                         if (type.ToString().Equals("SecureDoor"))
                         {
                             TileEntitySecureDoor SecureDoor = (TileEntitySecureDoor)tile;
                             if (!SecureDoor.IsUserAllowed(_senderInfo.RemoteClientInfo.playerId))
                             {
                                 List <string> _users = SecureDoor.GetUsers();
                                 _users.Add(_senderInfo.RemoteClientInfo.playerId);
                                 SecureDoor.SetModified();
                             }
                         }
                     }
                 }
             }
         }
         SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Door access set for {0}", _senderInfo.RemoteClientInfo.playerId));
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in SecureDoorAccess.Execute: {0}", e.Message));
     }
 }
Example #49
0
        public override void Execute(List <string> parameters, CommandSenderInfo senderInfo)
        {
            TelemetryTools.CollectEvent("command", "execute", GetCommands()[0]);
            try
            {
                if (parameters.Count == 0)
                {
                    ListStatus();
                    return;
                }

                bool isModeOn  = parameters.Remove("/on");
                bool isModeOff = parameters.Remove("/off");

                if (parameters.Count == 0)
                {
                    throw new FriendlyMessageException("No event names given. See help.");
                }
                if (isModeOn && isModeOff)
                {
                    throw new FriendlyMessageException("Parameters /on and /off cannot be used simultaneously.");
                }
                if (!isModeOn && !isModeOff)
                {
                    throw new FriendlyMessageException("Neither parameter /on nor /off was specified. See help.");
                }

                if (parameters.Contains("all"))
                {
                    if (parameters.Count > 1)
                    {
                        throw new FriendlyMessageException("When using the \"all\" keyword as event name you can't use other event names additionally.");
                    }
                    UpdateAllEvents(isModeOn);
                }
                else
                {
                    UpdateLogEvents(parameters, isModeOn);
                }
            }
            catch (Exception ex)
            {
                CommandTools.HandleCommandException(ex);
            }
        }
Example #50
0
    public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
    {
        Printer.Print("ConsoleCmdZBTest");
        // GameManager.Instance.StartCoroutine(TestRouts());
        // testGetBiome(_params);
        //GetZBiome(_params);
        // ShowBlockMap(_params);
        //ShowInventory(_params);
        // ShowSurface(_params);
        //ShowInitialLocalScale(_params);

        // ShowSpeed(_params);
        // TestDamage(_params);
        // TestCoordAlign(_params);
        // TestEveryS(_params);
        //TestWriter(_params);
        Zombiome.Routines.Start(TestMB(_params));
    }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     if (_params.Count < 1) {
         SdtdConsole.Instance.Output ("Utilisation: annonce <Message>");
         return;
     }
     try {
         string text = string.Empty;
         for (int i = 0; i < _params.Count; i++) {
             text = text + " " + _params[i];
         }
         //ConnectionManager.Instance.SendPackage (new NetPackage_GameInfoMessage (text, string.Empty ), new pac);
         GameManager.Instance.GameMessageServer(null,text, string.Empty);
     } catch (Exception e) {
         Log.Out ("Error in SayToPlayer.Run: " + e);
         SdtdConsole.Instance.Output ("Error in SayToPlayer.Run: " + e);
     }
 }
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count != 2)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 2, found '{0}'", _params.Count));

                    return;
                }
                ClientInfo cInfo = ConsoleHelper.ParseParamIdOrName(_params[0]);
                if (cInfo != null)
                {
                    EntityPlayer player = PersistentOperations.GetEntityPlayer(cInfo.entityId);
                    if (player != null)
                    {
                        if (GameEventManager.GameEventSequences.ContainsKey(_params[1]))
                        {
                            GameEventManager.Current.HandleAction(_params[1], null, player, false, "");
                            cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageGameEventResponse>().Setup(_params[1], cInfo.playerName, "", "", NetPackageGameEventResponse.ResponseTypes.Approved));
                            SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Ran game event named '{0}' on player '{1}'", _params[1], cInfo.CrossplatformId.CombinedString));

                            return;
                        }
                        else
                        {
                            SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Unable to locate '{0}' in the game events list", _params[1]));

                            return;
                        }
                    }
                }
                else
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Unable to locate player '{0}' online", _params[0]));

                    return;
                }
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in RunGameEventConsole.Execute: {0}", e.Message));
            }
        }
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     if (_params.Count < 1) {
         SdtdConsole.Instance.Output  ("Utilisation: zbotsay <Message>");
         return;
     }
     try {
         string text = string.Empty;
         for (int i = 0; i < _params.Count; i++)
         {
             text = text + " " + _params[i];
         }
         //Chat.SendMessage (null, "ZBot", text);
         GameManager.Instance.GameMessageServer(null, text, "ZBot");
     } catch (Exception e) {
         Log.Out ("Error in ZBotSay.Run: " + e);
         SdtdConsole.Instance.Output ("Error in ZBotSay.Run: " + e);
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            if (_params.Count < 2) {
                SdtdConsole.Instance.Output ("Utilisation: say+ <Pseudo> <Message>");
                return;
            }
            try {
                string text = string.Empty;
                for (int i = 1; i < _params.Count; i++)
                {
                    text = text + " " + _params[i];
                }

                GameManager.Instance.GameMessageServer(null,text, _params[0]);
            } catch (Exception e) {
                Log.Out ("Error in sayk.Run: " + e);
                SdtdConsole.Instance.Output("Error in sayk.Run: " + e);
            }
        }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                AdminTools admTools = GameManager.Instance.adminTools;

                bool onlineOnly = false;
                bool notBannedOnly = false;
                string nameFilter = string.Empty;

                if (_params.Count == 1) {
                    if (_params [0].ToLower ().Equals ("-online")) {
                        onlineOnly = true;
                    } else if (_params [0].ToLower ().Equals ("-notbanned")) {
                        notBannedOnly = true;
                    } else {
                        nameFilter = _params [0].ToLower ();
                    }
                }

                int num = 0;
                foreach (string sid in PersistentContainer.Instance.Players.SteamIDs) {
                    Player p = PersistentContainer.Instance.Players [sid, false];

                    if (
                        (!onlineOnly || p.IsOnline)
                        && (!notBannedOnly || !admTools.IsBanned (sid))
                        && (nameFilter.Length == 0 || p.Name.ToLower ().Contains (nameFilter))
                    ) {
                        SdtdConsole.Instance.Output (String.Format ("{0}. {1}, id={2}, steamid={3}, online={4}, ip={5}, playtime={6} m, seen={7}",
                                                            ++num, p.Name, p.EntityID, sid, p.IsOnline, p.IP,
                                                            p.TotalPlayTime / 60,
                                                            p.LastOnline.ToString ("yyyy-MM-dd HH:mm"))
                        );
                    }
                }
                SdtdConsole.Instance.Output ("Total of " + PersistentContainer.Instance.Players.Count + " known");
            } catch (Exception e) {
                Log.Out ("Error in ListKnownPlayers.Run: " + e);
            }
        }
Example #56
0
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count != 1)
         {
             SdtdConsole.Instance.Output("Wrong number of arguments.");
             return;
         }
         if (!int.TryParse(_params[0], out HighPingKicker.MAXPING))
         {
             SdtdConsole.Instance.Output("Maxping is not an integer.");
             return;
         }
         SdtdConsole.Instance.Output(string.Format("Max ping limit set to {0}", HighPingKicker.MAXPING));
         Config.UpdateXml();
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in ReservedSlot.Run: {0}.", e));
     }
 }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                if (_senderInfo.RemoteClientInfo != null) {
                    if (_params.Count >= 1 && _params [0].ToLower ().Equals ("nearby")) {
                        _params.Add (_senderInfo.RemoteClientInfo.playerId);
                    }
                }

                World w = GameManager.Instance.World;
                PersistentPlayerList ppl = GameManager.Instance.GetPersistentPlayerList ();

                bool summaryOnly = false;
                string steamIdFilter = string.Empty;
                Vector3i closeTo = default(Vector3i);
                bool onlyCloseToPlayer = false;
                int closeToDistance = 32;

                if (_params.Count == 1) {
                    long tempLong;

                    if (_params [0].ToLower ().Equals ("summary")) {
                        summaryOnly = true;
                    } else if (_params [0].Length == 17 && long.TryParse (_params [0], out tempLong)) {
                        steamIdFilter = _params [0];
                    } else {
                        ClientInfo ci = ConsoleHelper.ParseParamIdOrName (_params [0]);
                        if (ci != null) {
                            steamIdFilter = ci.playerId;
                        } else {
                            SdtdConsole.Instance.Output ("Player name or entity id \"" + _params [0] + "\" not found.");
                            return;
                        }
                    }
                } else if (_params.Count >= 2) {
                    if (_params [0].ToLower ().Equals ("nearby")) {
                        try {
                            if (_params.Count == 3) {
                                if (!int.TryParse (_params[1], out closeToDistance)) {
                                    SdtdConsole.Instance.Output ("Given radius is not an integer!");
                                }
                            }
                            ClientInfo ci = ConsoleHelper.ParseParamSteamIdOnline (_params [_params.Count - 1]);
                            EntityPlayer ep = w.Players.dict [ci.entityId];
                            closeTo = new Vector3i (ep.GetPosition ());
                            onlyCloseToPlayer = true;
                        } catch (Exception e) {
                            SdtdConsole.Instance.Output ("Error getting current player's position");
                            Log.Out ("Error in ListLandProtection.Run: " + e);
                        }
                    } else {
                        SdtdConsole.Instance.Output ("Illegal parameter list");
                        return;
                    }
                }
                Boolean Bol = false;
                Dictionary<Vector3i, PersistentPlayerData> d = ppl.m_lpBlockMap;
                if (d != null) {
                    Dictionary<PersistentPlayerData, List<Vector3i>> owners = new Dictionary<PersistentPlayerData, List<Vector3i>> ();
                    foreach (KeyValuePair<Vector3i, PersistentPlayerData> kvp in d) {
                        if (!onlyCloseToPlayer || (Math.Abs (kvp.Key.x - closeTo.x) <= closeToDistance && Math.Abs (kvp.Key.z - closeTo.z) <= closeToDistance)) {
                            if (!owners.ContainsKey (kvp.Value)) {
                                owners.Add (kvp.Value, new List<Vector3i> ());
                            }
                            owners [kvp.Value].Add (kvp.Key);
                        }
                    }

                    foreach (KeyValuePair<PersistentPlayerData, List<Vector3i>> kvp in owners) {
                        if (steamIdFilter.Length == 0 || kvp.Key.PlayerId.Equals (steamIdFilter)) {
                            PersistentData.Player p = PersistentData.PersistentContainer.Instance.Players [kvp.Key.PlayerId, false];
                            string name = string.Empty;
                            if (p != null) {
                                name = p.Name;
                            }
                            name += " (" + kvp.Key.PlayerId + ")";
                            Bol = true;

                            SdtdConsole.Instance.Output (String.Format (
                                "Player \"{0}\" owns {3} keystones (protected: {1}, current hardness multiplier: {2})",
                                name,
                                w.IsLandProtectionValidForPlayer (kvp.Key),
                                w.GetLandProtectionHardnessModifierForPlayer (kvp.Key),
                                kvp.Value.Count)
                            );
                            if (!summaryOnly) {
                                foreach (Vector3i v in kvp.Value) {
                                    SdtdConsole.Instance.Output ("   (" + v.ToString () + ")");
                                }
                            }
                        }
                    }
                }
                if (Bol == false)
                    SdtdConsole.Instance.Output ("Player not found...");

                if (steamIdFilter.Length == 0)
                    SdtdConsole.Instance.Output ("Total of " + d.Count + " keystones in the game");
            } catch (Exception e) {
                Log.Out ("Error in ListLandProtection.Run: " + e);
            }
        }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count < 4) {
                    SdtdConsole.Instance.Output("Usage: spawnentityk <EntityId> <x> <y> <z>");
                    SdtdConsole.Instance.Output("   or: spawnentityk <EntityId> <nbr> <x> <y> <z>");
                    return;
                }
                if (_params.Count >= 4) {

                    int num = 1;
                    int num2 = -1;
                    int nbr = 1;

                    int x = int.MinValue;
                    int y = int.MinValue;
                    int z = int.MinValue;

                    int.TryParse(_params[0], out num2);
                    int.TryParse (_params [1], out x);
                    int.TryParse (_params [2], out y);
                    int.TryParse (_params [3], out z);

                    if (_params.Count == 5){
                        int.TryParse(_params[1], out nbr);
                        int.TryParse (_params [2], out x);
                        int.TryParse (_params [3], out y);
                        int.TryParse (_params [4], out z);
                        if (nbr >= 80) {
                            SdtdConsole.Instance.Output("More than 80 entities ?! 80 is too much...");
                        }
                    }

                    Vector3 transformPos = new Vector3(x, y, z);

                    foreach (int current3 in EntityClass.list.Keys)
                    {

                        if (EntityClass.list[current3].bAllowUserInstantiate)
                        {
                            if (num == num2 || EntityClass.list[current3].entityClassName.Equals(_params[0])) {
                                for(int k = 1; k <= nbr; k++){
                                    Entity entity = EntityFactory.CreateEntity(current3, transformPos);

                                    GameManager.Instance.World.SpawnEntityInWorld(entity);
                                }
                                SdtdConsole.Instance.Output("Spawned " + nbr + " entity " + EntityClass.list[current3].entityClassName);
                                return;
                            }
                            else {
                                num++;
                            }
                        }
                    }
                    SdtdConsole.Instance.Output("Entity '" + _params[0] + "' not found");
                }
            } catch (Exception e) {
                Log.Out ("Error in SpawnEntityK.Run: " + e);
            }
        }
        public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
        {
            try {
                World w = GameManager.Instance.World;
                int num = 0;
                foreach (KeyValuePair<int, EntityPlayer> current in w.Players.dict) {
                    ClientInfo clientInfoFromEntityID = ConnectionManager.Instance.GetClientInfoForEntityId(current.Key);
                    //CommonMappingFunctions.GetClientInfoFromEntityID (current.Key);
                    string ip = string.Empty;
                    //int str1 = 0;
                    int str2 = 0;
                    string str3 = "unk";
                    string str4 = "unk";
                    if (clientInfoFromEntityID != null)	{
                        ip = clientInfoFromEntityID.ip;
                        //str1 = clientInfoFromEntityID.netConnection.clientId;
                        str2 = clientInfoFromEntityID.entityId;
                        str3 = clientInfoFromEntityID.ownerId;
                        str4 = clientInfoFromEntityID.playerId;
                    }
                    PersistentData.Player p = PersistentData.PersistentContainer.Instance.Players ["" + current.Value.entityId, false];
                    SdtdConsole.Instance.Output(string.Concat (new object[]
                        {
                            string.Empty,
                            ++num,
                            ". id=",
                            current.Value.entityId,
                            ", ",
                            current.Value.EntityName,
                            ", pos=",
                            current.Value.GetPosition (),
                            ", Hp=",
                            current.Value.Health,
                            ", dth=",
                            current.Value.Died,
                            ", zkill=",
                            current.Value.KilledZombies,
                            ", pkill=",
                            current.Value.KilledPlayers,
                            ", scr=",
                            current.Value.Score,
                            ", Sid=",
                            str4,
                            ", ip=",
                            ip,
                            ", ping=",
                            current.Value.pingToServer,
                            ", level=",
                            current.Value.GetLevel(),
                            ", playtime=",
                            p.TotalPlayTime / 60

                            /*,
                            " clid=",
                            str1,
                            ". entid=",
                            str2,
                            ", ownid",
                            str3,
                            ", plyid",
                            str4*/
                        }));
                }
                SdtdConsole.Instance.Output("Total of " + w.Players.list.Count + " in the KFP game");
            } catch (Exception e) {
                Log.Out ("Error in ListPlayersExtended.Run: " + e);
            }
        }
Example #60
0
 public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1 to 3, found {0}", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("add"))
         {
             if (_params.Count != 3)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 3, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length != 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add SteamId: Invalid SteamId {0}", _params[1]));
                 return;
             }
             if (Watchlist.Dict.ContainsKey(_params[1]))
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add SteamId. {0} is already in the Watchlist.", _params[1]));
                 return;
             }
             if (_params.Count == 3)
             {
                 Watchlist.Dict.Add(_params[1], _params[2]);
                 SdtdConsole.Instance.Output(string.Format("Added SteamId {0} with the reason {1} the Watchlist.", _params[1], _params[2]));
             }
             Watchlist.UpdateXml();
         }
         else if (_params[0].ToLower().Equals("remove"))
         {
             if (_params.Count != 2)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 2, found {0}", _params.Count));
                 return;
             }
             if (!Watchlist.Dict.ContainsKey(_params[1]))
             {
                 SdtdConsole.Instance.Output(string.Format("SteamId {0} was not found.", _params[1]));
                 return;
             }
             Watchlist.Dict.Remove(_params[1]);
             SdtdConsole.Instance.Output(string.Format("Removed SteamId {0} from the Watchlist.", _params[1]));
             Watchlist.UpdateXml();
         }
         else if (_params[0].ToLower().Equals("list"))
         {
             if (_params.Count != 1)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}.", _params.Count));
                 return;
             }
             if (Watchlist.Dict.Count < 1)
             {
                 SdtdConsole.Instance.Output("There are no steamIds on the Watchlist.");
                 return;
             }
             foreach (KeyValuePair<string, string> _key in Watchlist.Dict)
             {
                 string _output = string.Format("{0} {1}", _key.Key, _key.Value);
                 SdtdConsole.Instance.Output(_output);
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("Invalid argument {0}.", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in WatchlistCommand.Run: {0}.", e));
     }
 }