void ParseTab(Client player, string[] cmd, int iarg, TabComplete tab) { if (cmd.Length <= iarg) return; c.CompleteCommand(player, cmd [iarg - 1], tab); }
public static TabComplete Single(string str) { var tc = new TabComplete(); tc.Alternatives.Add(str); return(tc); }
void TabMessage(Client player, string[] cmd, int iarg, TabComplete tab) { var r = player.Session.CurrentRegion; if (r == null) player.TellSystem(Chat.Red, "No region here"); else tab.Alternatives.Add(player.Session.CurrentRegion.Message); }
public static void Complete(IEnumerable<string> list, string cmd, TabComplete tab) { if (cmd == "") { foreach (string s in list) { tab.Alternatives.Add("/" + s); } } else { foreach (string s in list) { if (s.StartsWith(cmd)) tab.Alternatives.Add("/" + s); } } }
public static void ParseClientTab(Client player, TabCompleteClient tab) { string[] cmd = tab.Command.Substring(1).Replace(" ", " ").Split(' '); cmd [0] = cmd [0].Trim().Trim('/'); var tc = new TabComplete(); var commander = player.Session.World.Commands; if (commander != null) { player.Session.World.Commands.ParseTab(player, cmd, 1, tc); if (tc.Alternatives.Count > 0) { player.Queue.Queue(tc); return; } } Instance.ParseTab(player, cmd, 1, tc); if (tc.Alternatives.Count > 0) { player.Queue.Queue(tc); return; } if (cmd.Length > 1) { Client p; if (player.Admin()) p = PlayerList.GetPlayerByUsernameOrName(cmd [cmd.Length - 1]); else p = PlayerList.GetPlayerByName(cmd [cmd.Length - 1]); if (p != null) { player.Queue.Queue(TabComplete.Single(p.Name)); } } }
public static TabComplete Single(string str) { var tc = new TabComplete(); tc.Alternatives.Add(str); return tc; }
public virtual void ParseTab(Client player, string[] cmd, int iarg, TabComplete tab) { if (cmd.Length < iarg) //Show all commands { CompleteCommand(player, "", tab); return; } if (cmd.Length == iarg) //Complete command { cmd [iarg - 1] = cmd [iarg - 1].ToLowerInvariant(); CompleteCommand(player, cmd [iarg - 1], tab); } if (CommandTabs.ContainsKey(cmd [iarg - 1])) { //Debug.WriteLine("TC: " + cmd.JoinFrom(0)); CommandTabs [cmd [iarg - 1]](player, cmd, iarg, tab); } }
/// <summary> /// Completes the command. /// </summary> /// <returns>The completion or null if no match was found.</returns> /// <param name="player">Player.</param> /// <param name="c">command without the leading /</param> public void CompleteCommand(Client player, string c, TabComplete tab) { if (player.Admin()) Complete(AdminStrings, c, tab); Complete(CommandStrings, c, tab); }
void TabSet(Client player, string[] cmd, int iarg, TabComplete tab) { if (regionStart.ContainsKey(player.MinecraftUsername)) { int a = (int)regionStart [player.MinecraftUsername].Y; int b = (int)player.Session.Position.Y; if (a > b) { int t = a; a = b; b = t; } tab.Alternatives.Add(a + " " + b); } else { tab.Alternatives.Add("50 256"); } }
void TabResize(Client player, string[] cmd, int iarg, TabComplete tab) { var r = player.Session.CurrentRegion; if (r == null) player.TellSystem(Chat.Red, "No region here"); else tab.Alternatives.Add(r.MinX + " " + r.MaxX + " " + r.MinY + " " + r.MaxY + " " + r.MinZ + " " + r.MaxZ); }
void RegionTab(Client player, string[] cmd, int iarg, TabComplete tab) { base.ParseTab(player, cmd, iarg + 1, tab); }
void GameRuleComplete(Client player, string[] cmd, int iarg, TabComplete tab) { if (cmd.Length != 2) return; string[] rules = new string[] { "doFireTick", "mobGriefing", "keepInventory", "doMobSpawning", "doMobLoot", "doTileDrops", }; CommandManager.Complete(rules, cmd [1], tab); }