示例#1
0
        public void UpdatePlotPlayer(PlotPlayer player)
        {
            player.UpdateDate         = DateTime.UtcNow;
            _plotPlayers[player.Xuid] = player;

            SaveConfig();
        }
示例#2
0
        public string PlotHome(Player player)
        {
            PlotPlayer plotPlayer = _plotManager.GetOrAddPlotPlayer(player);

            if (plotPlayer == null)
            {
                return("Sorry, you don't exist.");
            }

            PlotCoordinates coords = (PlotCoordinates)plotPlayer.Home;

            if (coords == null)
            {
                return("Sorry, you are homeless.");
            }
            if (!_plotManager.HasClaim(coords, player))
            {
                return("Sorry, you don't own your home. Did the bank claim it?");
            }
            if (!_plotManager.TryGetPlot(coords, out Plot plot))
            {
                return("Sorry, we lost your home. Ask an admin to find it again!");
            }

            int height = player.Level.GetHeight((BlockCoordinates)plotPlayer.Home);

            if (plotPlayer.Home.Y < height)
            {
                plotPlayer.Home.Y = height + 2;
            }
            player.Teleport(plotPlayer.Home);

            return($"Moved to your home plot {plot.Coordinates.X},{plot.Coordinates.Z}");
        }
示例#3
0
        public string PlotVisit(Player player, string username)
        {
            PlotPlayer plotPlayer = _plotManager.GetPlotPlayer(username);

            if (plotPlayer == null)
            {
                return("Sorry, that user is homeless.");
            }

            PlotCoordinates coords = (PlotCoordinates)plotPlayer.Home;

            if (coords == null)
            {
                return("Sorry, player is homeless.");
            }
            if (!_plotManager.TryGetPlot(coords, out Plot plot))
            {
                return("Sorry, we lost his home. Maybe ask an admin to find it again!");
            }

            int height = player.Level.GetHeight((BlockCoordinates)plotPlayer.Home);

            if (plotPlayer.Home.Y < height)
            {
                plotPlayer.Home.Y = height + 2;
            }
            player.Teleport(plotPlayer.Home);

            return($"Moved you to plot {plot.Coordinates.X},{plot.Coordinates.Z}. Home of {username}");
        }
示例#4
0
        public PlotPlayer GetOrAddPlotPlayer(Player player)
        {
            if (!_plotPlayers.TryGetValue(player.ClientUuid, out var plotPlayer))
            {
                plotPlayer = new PlotPlayer
                {
                    Xuid     = player.ClientUuid,
                    Username = player.Username,
                };

                if (!_plotPlayers.TryAdd(player.ClientUuid, plotPlayer))
                {
                    return(null);
                }

                SaveConfig();
            }


            return(plotPlayer);
        }
示例#5
0
        public string PlotSetHome(Player player)
        {
            PlotCoordinates coords = (PlotCoordinates)player.KnownPosition;

            if (coords == null)
            {
                return("Not able to set home plot at this position.");
            }
            if (!_plotManager.HasClaim(coords, player))
            {
                return("Not able to set home plot at this position.");
            }
            if (!_plotManager.TryGetPlot(coords, out Plot plot))
            {
                return("Not able to set home plot at this position.");
            }

            PlotPlayer plotPlayer = _plotManager.GetOrAddPlotPlayer(player);

            plotPlayer.Home = player.KnownPosition;
            _plotManager.UpdatePlotPlayer(plotPlayer);

            return($"Set home to plot {plot.Coordinates.X},{plot.Coordinates.Z}");
        }