private async Task ExecuteDelegateCommand(IPlayer player, DelegateCommand delegateCommand, string[] arguments) { try { await delegateCommand.CommandDelegate(player, arguments.Skip(1).ToArray()); } catch (Exception e) { _logger.Error($"An error occured when player {await player.GetNameAsync()} executed command: {delegateCommand.Name}: ", e); } }