Skip to content

Commit

Permalink
Allow unset joinsound
Browse files Browse the repository at this point in the history
  • Loading branch information
Menkalian committed Jan 25, 2023
1 parent 0948280 commit 0b8ef31
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,19 @@ class SetJoinsoundCommand(override val databaseHandler: IDatabaseHandler, val au

val controller = audioHandler.getGuildAudioController(guildId)

if (parameters.getDefaultArg() == null ||
parameters.getDefaultArg()?.asString()?.isBlank() == true ||
parameters.getDefaultArg()?.asString().equals("null")
) {
databaseHandler.setUserJoinsound(authorId, null)
messageHandler
.createMessage(guildId, channelId)
.withTitle("Joinsound wurde entfernt")
.withSuccessColor()
.build()
return
}

val foundAudio = controller.lookupTracks(parameters.getDefaultArg()?.asString() ?: "")
val foundTrack = foundAudio.second.firstOrNull()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ interface IDatabaseHandler : IHandler {
* @param userId Discord-ID des Nutzers
* @param audioTrackInfo Informationen zum Track, der gesetzt werden soll.
*/
fun setUserJoinsound(userId: Long, audioTrackInfo: TrackInfo)
fun setUserJoinsound(userId: Long, audioTrackInfo: TrackInfo?)

/**
* Liest den JoinSound für den angegebenen Nutzer aus der Datenbank.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,11 +183,15 @@ class JpaDatabaseHandler(
}

@Transactional
override fun setUserJoinsound(userId: Long, audioTrackInfo: TrackInfo) {
val songEntry = songEntryRepository.findByIdOrNull(createSavedSongEntryIfNotExists(audioTrackInfo)) ?: return
val dto = joinSoundRepository.findByIdOrNull(userId) ?: JoinSoundDto(userId, songEntry)
dto.song = songEntry
joinSoundRepository.save(dto)
override fun setUserJoinsound(userId: Long, audioTrackInfo: TrackInfo?) {
if (audioTrackInfo == null) {
joinSoundRepository.deleteById(userId)
} else {
val songEntry = songEntryRepository.findByIdOrNull(createSavedSongEntryIfNotExists(audioTrackInfo)) ?: return
val dto = joinSoundRepository.findByIdOrNull(userId) ?: JoinSoundDto(userId, songEntry)
dto.song = songEntry
joinSoundRepository.save(dto)
}
}

override fun getUserJoinsound(userId: Long): DatabaseSongEntry? {
Expand Down

0 comments on commit 0b8ef31

Please sign in to comment.