예제 #1
0
        public override void Use(Player p, string message)
        {
            if (p == null)
            {
                MessageInGameOnly(p); return;
            }
            string[] command = message.ToLower().Split(' ');
            string   cmd     = String.Empty;
            string   par1    = String.Empty;

            try
            {
                cmd  = command[0].ToLower();
                par1 = command[1];
            }
            catch { }
            if (cmd == "create" || cmd == "new" || cmd == "add")
            {
                if (!WaypointList.Exists(par1, p))
                {
                    WaypointList.Create(par1, p);
                    Player.SendMessage(p, "Created waypoint");
                    return;
                }
                else
                {
                    Player.SendMessage(p, "That waypoint already exists"); return;
                }
            }
            else if (cmd == "goto")
            {
                if (WaypointList.Exists(par1, p))
                {
                    WaypointList.Goto(par1, p);
                    return;
                }
                else
                {
                    Player.SendMessage(p, "That waypoint doesn't exist"); return;
                }
            }
            else if (cmd == "replace" || cmd == "update" || cmd == "edit")
            {
                if (WaypointList.Exists(par1, p))
                {
                    WaypointList.Update(par1, p);
                    Player.SendMessage(p, "Updated waypoint");
                    return;
                }
                else
                {
                    Player.SendMessage(p, "That waypoint doesn't exist"); return;
                }
            }
            else if (cmd == "delete" || cmd == "remove")
            {
                if (WaypointList.Exists(par1, p))
                {
                    WaypointList.Remove(par1, p);
                    Player.SendMessage(p, "Deleted waypoint");
                    return;
                }
                else
                {
                    Player.SendMessage(p, "That waypoint doesn't exist"); return;
                }
            }
            else if (cmd == "list")
            {
                Player.SendMessage(p, "Waypoints:");
                foreach (Waypoint wp in p.Waypoints)
                {
                    if (LevelInfo.Find(wp.lvlname) != null)
                    {
                        Player.SendMessage(p, wp.name + ":" + wp.lvlname);
                    }
                }
                return;
            }
            else
            {
                if (WaypointList.Exists(cmd, p))
                {
                    WaypointList.Goto(cmd, p);
                    Player.SendMessage(p, "Sent you to waypoint");
                    return;
                }
                else
                {
                    Player.SendMessage(p, "That waypoint or command doesn't exist"); return;
                }
            }
        }