Beispiel #1
0
        private static void GoNamedArea(IWorldManager manager, bool worldport, string[] args)
        {
            bool   isinstance = args[0] == "instance";
            string needle     = string.Join(" ", args.Skip(isinstance ? 1 : 0)); // Replace "area" and "instance"

            var expansion = manager.SandboxHost.Expansion;
            var locations = worldport ? Worldports.FindLocation(needle, expansion) : AreaTriggers.FindTrigger(needle, expansion);

            switch (locations.Count())
            {
            case 0:     // No matches
                manager.Send(manager.Account.ActiveCharacter.BuildMessage("No matching locations found"));
                break;

            case 1:     // Single match
                manager.Account.ActiveCharacter.Teleport(locations.First(), ref manager);
                break;

            default:     // Multiple possible matches
                manager.Send(manager.Account.ActiveCharacter.BuildMessage("Multiple matches:"));

                foreach (var location in locations)
                {
                    manager.Send(manager.Account.ActiveCharacter.BuildMessage(" " + location.Description));
                }

                break;
            }
        }
Beispiel #2
0
        private static void GoNamedArea(IWorldManager manager, bool worldport, string[] args)
        {
            int    skip   = args[0] == "area" || args[0] == "instance" ? 1 : 0;
            string needle = string.Join(" ", args.Skip(skip).ToArray());             //Replace "area" and "instance"

            var locations = worldport ? Worldports.FindLocation(needle) : AreaTriggers.FindTrigger(needle);

            switch (locations.Count())
            {
            case 0:                     //No matches
                manager.Send(manager.Account.ActiveCharacter.BuildMessage("No matching locations found"));
                break;

            case 1:                     //Single match
                manager.Account.ActiveCharacter.Teleport(locations.First().Value, ref manager);
                break;

            default:                     //Multiple possible matches
                manager.Send(manager.Account.ActiveCharacter.BuildMessage("Multiple matches:"));

                foreach (var l in locations)
                {
                    manager.Send(manager.Account.ActiveCharacter.BuildMessage(" " + l.Key));
                }

                break;
            }
        }