public override void Process() { BCMSettings _settings = PersistentContainer.Instance.Settings; string output = ""; if (_params.Count == 0) { List <string> settings = _settings.GetAll(); output += "Settings(" + settings.Count + ")" + _sep; if (settings.Count > 0) { foreach (string n in settings) { Dictionary <string, string> s = _settings.Get(n); output += n + "(" + s.Count + ")" + _sep; if (s.Count > 0) { foreach (string k in s.Keys) { string v = _settings.GetValue(n, k); output += " " + k + ": " + v + _sep; } } } } } if (_params.Count == 1) { //todo: report details on setting } if (_params.Count == 2) { //todo: report details on setting key } if (_params.Count == 3) { string v = _settings.GetValue(_params[0], _params[1]); if (v != null) { output += "Command/Key:" + _params[0] + "/" + _params[1] + _sep; output += "Previous Value:" + v + _sep; } _settings.SetValue(_params[0], _params[1], _params[2]); PersistentContainer.Instance.Save(); } SendOutput(output); }
public override bool Fire(int b) { if (PersistentContainer.IsLoaded) { _settings = PersistentContainer.Instance.Settings; int onlineplayercount = 0; try { onlineplayercount = GameManager.Instance.World.Players.Count; } catch { return(false); } if (onlineplayercount > 0) { if (EntityClassList.Count == 0) { if (EntityClass.list.Count > 0) { foreach (int entityClassID in EntityClass.list.Keys) { if (EntityClass.list[entityClassID].bAllowUserInstantiate) { EntityClassList.Add(EntityClass.list[entityClassID].entityClassName, entityClassID); } } } else { Log.Out(Config.ModPrefix + " No EntityClasses found."); } } // PLAYER TARGETED SPAWNING string smn = _neuronname + ".players"; Dictionary <string, string> players = _settings.Get(smn); if (players != null) { if (players.Count > 0) { foreach (string entityid in players.Keys) { int ent = -1; if (int.TryParse(entityid, out ent)) { string enabled = _settings.GetValue(smn, entityid); bool spawnon = false; bool.TryParse(enabled, out spawnon); if (spawnon == true) { if (GameManager.Instance.World.Players.dict.ContainsKey(ent)) { EntityPlayer ep; if (GameManager.Instance.World.Players.dict.ContainsKey(ent)) { ep = GameManager.Instance.World.Players.dict[ent]; } else { Log.Out(Config.ModPrefix + " Player not found: " + ent); continue; } BCMSpawner spawner = new BCMSpawner(); // todo: random entity from a type or group defined in the command settings // todo: delay between spawns based on command settings string classname = "zombie01"; if (EntityClassList.ContainsKey(classname)) { spawner.entityClassID = EntityClassList[classname]; spawner.pos = ep.position; EntitySpawner.spawnQueue.Enqueue(spawner); } else { Log.Out(Config.ModPrefix + "Entity Class not found: " + classname); } } } } } } } //AREA SPAWNERS // todo: return(true); } } return(false); }