static void HandleGoto(Player p, string map, string ignored)
        {
            byte mapNum = 0;

            if (map.Length == 0 || map == "1")
            {
                map = FirstMapName(p);
            }
            else
            {
                if (!byte.TryParse(map, out mapNum))
                {
                    p.MessageLines(gotoHelp);
                    return;
                }
                map = p.name.ToLower() + map;
            }

            if (LevelInfo.FindExact(map) == null)
            {
                LevelActions.Load(p, map, !Server.Config.AutoLoadMaps);
            }
            if (LevelInfo.FindExact(map) != null)
            {
                PlayerActions.ChangeMap(p, map);
            }
        }
Exemple #2
0
        protected internal override void OnBuyCommand(Player p, string message, string[] args)
        {
            if (args.Length < 3)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                p.Message("%WThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                p.Message("%WYou don't have enough &3" + ServerConfig.Currency + "%W to buy that map"); return;
            }
            string name = p.name + "_" + args[2];

            p.Message("&aCreating level: '&f" + name + "&a' . . .");
            UseCommand(p, "NewLvl", name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);

            Level level = LevelActions.Load(Player.Console, name, true);

            CmdOverseer.SetPerms(p, level);
            Level.SaveSettings(level);
            PlayerActions.ChangeMap(p, name);

            p.Message("&aSuccessfully created your map: '&f" + name + "&a'");
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Exemple #3
0
        protected internal override void OnBuyCommand(Player p, string message, string[] args)
        {
            if (args.Length < 2)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                p.Message("%WThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                p.Message("%WYou don't have enough &3" + Server.Config.Currency + "%W to buy that map"); return;
            }

            string name = null;

            if (args.Length >= 3)
            {
                name = p.name + "_" + args[2];
            }
            else
            {
                // use a numbered map by default
                for (int i = 1; i < 100; i++)
                {
                    name = p.name + "_" + i;
                    if (!LevelInfo.MapExists(name))
                    {
                        break;
                    }
                }
            }

            if (LevelInfo.MapExists(name))
            {
                p.Message("%WLevel \"{0}\" already exists", name); return;
            }

            p.Message("&aCreating level: '&f" + name + "&a' . . .");
            UseCommand(p, "NewLvl", name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);

            Level level = LevelActions.Load(Player.Console, name, true);

            CmdOverseer.SetPerms(p, level);
            level.SaveSettings();
            PlayerActions.ChangeMap(p, name);

            p.Message("&aSuccessfully created your map: '&f" + name + "&a'");
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Exemple #4
0
 public override void Use(Player p, string message, CommandData data)
 {
     if (message.Length == 0)
     {
         Help(p); return;
     }
     string[] args = message.SplitSpaces();
     if (args.Length > 2)
     {
         Help(p); return;
     }
     LevelActions.Load(p, args[0], true);
 }
Exemple #5
0
        public override void Use(Player p, string message, CommandData data)
        {
            string[] args = message.SplitSpaces();
            if (args.Length != 2)
            {
                Help(p); return;
            }

            Level lvl = Matcher.FindLevels(p, args[0]);

            if (lvl == null)
            {
                return;
            }
            string newMap = args[1].ToLower();

            if (!Formatter.ValidMapName(p, newMap))
            {
                return;
            }

            if (LevelInfo.MapExists(newMap))
            {
                p.Message("Level already exists."); return;
            }
            if (lvl == Server.mainLevel)
            {
                p.Message("Cannot rename the main level."); return;
            }
            if (!LevelInfo.Check(p, data.Rank, lvl, "rename this level"))
            {
                return;
            }

            List <Player> players = lvl.getPlayers();

            lvl.Unload();

            LevelActions.Rename(lvl.name, newMap);
            LevelActions.Load(p, newMap, true);
            Chat.MessageGlobal("Renamed {0} to {1}", lvl.name, newMap);
            // Move all the old players to the renamed map
            foreach (Player pl in players)
            {
                PlayerActions.ChangeMap(pl, newMap);
            }
        }
        protected virtual bool SetMap(string map)
        {
            Picker.QueuedMap = null;
            Level next = LevelInfo.FindExact(map);

            if (next == null)
            {
                next = LevelActions.Load(Player.Console, map, false);
            }
            if (next == null)
            {
                return(false);
            }

            Map             = next;
            Map.SaveChanges = false;

            if (GetConfig().SetMainLevel)
            {
                Server.SetMainLevel(Map);
            }
            UpdateMapConfig();
            return(true);
        }