execute method

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

Implementation

@override
Future<String> execute(CommandContext context) async {
  if (!context.hasArgs) {
    return '❌ Please provide a song name or URL!';
  }

  final query = context.joinedArgs;
  final player = context.player;
  final client = context.client;

  try {
    // Search for tracks
    final results = await client.search(query);

    if (results.isEmpty) {
      return '❌ No results found for: $query';
    }

    final track = results.first;

    // If nothing playing, play immediately
    if (player.currentTrack == null) {
      await player.play(track);
      return '🎵 Now playing: **${track.info.title}** by ${track.info.author}';
    } else {
      // Add to queue
      player.addToQueue(track);
      return '✅ Added to queue: **${track.info.title}** - Position #${player.queueLength}';
    }
  } catch (e) {
    return '❌ Failed to play: $e';
  }
}