execute method

  1. @override
Future<String> execute(
  1. CommandContext context
)
override

Implementation

@override
Future<String> execute(CommandContext context) async {
  final player = context.player;

  if (player.currentTrack == null) {
    return '❌ Nothing is playing!';
  }

  final buffer = StringBuffer();
  buffer.writeln('🎵 **Now Playing:**');
  buffer.writeln('${player.currentTrack?.info.title} - ${player.currentTrack?.info.author}');
  buffer.writeln('');

  if (player.queue.isEmpty) {
    buffer.writeln('Queue is empty');
  } else {
    buffer.writeln('📝 **Queue (${player.queueLength} tracks):**');
    final displayCount = player.queueLength > 10 ? 10 : player.queueLength;

    for (var i = 0; i < displayCount; i++) {
      final track = player.queue[i];
      buffer.writeln('${i + 1}. ${track.info.title} - ${track.info.author}');
    }

    if (player.queueLength > 10) {
      buffer.writeln('... and ${player.queueLength - 10} more tracks');
    }
  }

  return buffer.toString();
}