Пример #1
0
        public async Task <string> Teleport(string input, Player player)
        {
            var response = "";

            try
            {
                var parameters = input.ToLower().Split(" ");

                var worldName = parameters[0];
                int.TryParse(parameters[1], out var x);
                int.TryParse(parameters[2], out var y);
                int.TryParse(parameters[3], out var z);

                var newCell = await _cellLogic.GetCellInWorld(worldName, x, y, z);

                if (newCell != null)
                {
                    response += $"You teleport to {worldName}.\n";

                    await Replicate($"{player.Name} teleports out of sight.", player);

                    await _cellLogic.UpdateEntityCell(player, newCell);

                    await Replicate($"{player.Name} arrives from a portal.", player);

                    response += _cellLogic.CellDescriptionForPlayer(player);
                }
                else
                {
                    response += "You cannot teleport somewhere that does not exist.";
                }
            }
            catch (Exception)
            {
                response = "The correct format for Teleport is: Teleport world x y z";
            }
            return(response);
        }