Esempio n. 1
0
 void ParseTab(Client player, string[] cmd, int iarg, TabComplete tab)
 {
     if (cmd.Length <= iarg)
         return;
     
     c.CompleteCommand(player, cmd [iarg - 1], tab);
 }
Esempio n. 2
0
        public static TabComplete Single(string str)
        {
            var tc = new TabComplete();

            tc.Alternatives.Add(str);
            return(tc);
        }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 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);
         }
     }
 }
Esempio n. 5
0
        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));
                }
            }
        }
Esempio n. 6
0
 public static TabComplete Single(string str)
 {
     var tc = new TabComplete();
     tc.Alternatives.Add(str);
     return tc;
 }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
 /// <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);
 }
Esempio n. 9
0
 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");
     }
 }
Esempio n. 10
0
 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);
 }
Esempio n. 11
0
 void RegionTab(Client player, string[] cmd, int iarg, TabComplete tab)
 {
     base.ParseTab(player, cmd, iarg + 1, tab);
 }
Esempio n. 12
0
        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);
        }