updatePlayer method
Future<Player>
updatePlayer(
- String sessionId,
- String guildId,
- PlayerUpdate update, {
- bool noReplace = false,
Update player state
Implementation
Future<Player> updatePlayer(
String sessionId,
String guildId,
PlayerUpdate update, {
bool noReplace = false,
}) async {
LavalinkLogger.debug(
'Updating player for guild $guildId',
tag: 'REST',
);
try {
final uri = Uri.parse(
'$baseUrl/v4/sessions/$sessionId/players/$guildId',
).replace(queryParameters: {'noReplace': noReplace.toString()});
final request = await _httpClient.patchUrl(uri);
_addHeaders(request);
request.headers.set('Content-Type', 'application/json');
request.write(jsonEncode(update.toJson()));
final response = await request.close();
final responseBody = await _readResponse(response);
if (response.statusCode != 200) {
throw LavalinkException(
'Failed to update player: ${response.statusCode}',
statusCode: response.statusCode,
);
}
final json = jsonDecode(responseBody) as Map<String, dynamic>;
return Player.fromJson(json);
} catch (e) {
if (e is LavalinkException) rethrow;
throw LavalinkException('Failed to update player: $e', cause: e);
}
}