private static void OnList(Player p, Command cmd) { World w = p.World; if (null == w) { p.Message("&WYou are in limbo state. Prepare for eternal torment."); return; } string param = cmd.Next(); Func <Life2DZone, bool> f = l => true; if (!string.IsNullOrWhiteSpace(param)) { switch (param) { case "started": f = l => !l.Stopped; break; case "stopped": f = l => l.Stopped; break; default: p.Message("&WUnrecognised parameter " + param + ". Ignored.\n"); break; } } int i = 0; foreach (Life2DZone life in w.GetLifes().Where(life => f(life))) { if (i++ > 0) { p.Message(", "); } p.Message((life.Stopped ? "&8" : "&2") + life.Name); } }