Skip to content

Commit 32a1199

Browse files
committed
Fixing the data of who requested the sound to be played. Updated the new UI to be default. Old UI is gone. Few more minor fixes to the UI.
1 parent 26e7e28 commit 32a1199

File tree

15 files changed

+77
-38
lines changed

15 files changed

+77
-38
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
[![Release](https://img.shields.io/github/release/Darkside138/DiscordSoundboard.svg)](https://github.com/Darkside138/DiscordSoundboard/releases/latest)
55
[![License](https://img.shields.io/github/license/Darkside138/DiscordSoundboard.svg)](https://github.com/Darkside138/DiscordSoundboard/blob/master/LICENSE)
66
![Java CI with Gradle](https://github.com/Darkside138/DiscordSoundboard/workflows/Java%20CI%20with%20Gradle/badge.svg)
7-
[![CodeFactor](https://www.codefactor.io/repository/github/darkside138/discordsoundboard/badge/master)](https://www.codefactor.io/repository/github/darkside138/discordsoundboard/overview/master)
87

98
Simple soundboard for discord. You can trigger sounds by commands typed in discord chat, or you can
109
choose the sound from the web UI. You will need to create a bot account that the bot will use to join

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ tasks.register("copyFrontend", Copy) {
115115
dependsOn buildFrontend
116116
from "${project.projectDir}/src/frontend/build"
117117
into "${layout.buildDirectory.get().asFile}/resources/main/static"
118-
rename { String fileName ->
119-
fileName.replace("index.html", "indexV2.html") }
120118
from "${project.projectDir}/public/favicon.png"
121119
into "${layout.buildDirectory.get().asFile}/resources/main/static"
122120
}
@@ -145,6 +143,8 @@ bootDistZip {
145143
}
146144
into("DiscordSoundboard/bin/static") {
147145
from('src/main/webapp')
146+
rename { String fileName ->
147+
fileName.replace("index.html", "indexV2.html") }
148148
from ("${layout.buildDirectory.get()}/resources/main/static/")
149149
}
150150
into("DiscordSoundboard/bin/sounds") {

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
projectVersion=4.1.9
1+
projectVersion=4.1.10
22
org.gradle.configuration-cache=false

src/frontend/src/components/DiscordUsersList.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -353,12 +353,12 @@ export function DiscordUsersList({ theme, onUserSelect, selectedUserId, onVolume
353353
}
354354

355355
return (
356-
<div className={`rounded-lg border ${
356+
<div className={`rounded-lg border max-h-[229px] flex flex-col ${
357357
theme === 'dark'
358358
? 'bg-gray-800 border-gray-700'
359359
: 'bg-white border-gray-200'
360360
}`}>
361-
<div className={`p-4 border-b ${
361+
<div className={`p-4 border-b flex-shrink-0 ${
362362
theme === 'dark' ? 'border-gray-700' : 'border-gray-200'
363363
}`}>
364364
<div className="flex items-center gap-2">
@@ -374,7 +374,7 @@ export function DiscordUsersList({ theme, onUserSelect, selectedUserId, onVolume
374374
</div>
375375
</div>
376376

377-
<div className="max-h-[229px] overflow-y-auto">
377+
<div className="flex-1 overflow-y-auto min-h-0">
378378
{users.length === 0 ? (
379379
<div className="p-4 text-center">
380380
<p className={theme === 'dark' ? 'text-gray-400' : 'text-gray-500'}>

src/frontend/src/index.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,10 @@
624624
max-height: 229px;
625625
}
626626

627+
.min-h-0 {
628+
min-height: calc(var(--spacing) * 0);
629+
}
630+
627631
.min-h-screen {
628632
min-height: 100vh;
629633
}

src/main/java/net/dirtydeeds/discordsoundboard/SoundPlayer.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public float getSoundPlayerVolume(String user, String voiceChannelId) {
216216
return 0;
217217
}
218218

219-
public SoundFile playRandomSoundFile(String requestingUser, MessageReceivedEvent event) throws SoundPlaybackException {
219+
public SoundFile playRandomSoundFile(String User, MessageReceivedEvent event, String requestingUser) throws SoundPlaybackException {
220220
try {
221221
Map<String, SoundFile> sounds = getAvailableSoundFiles();
222222
List<String> keysAsArray = new ArrayList<>(sounds.keySet());
@@ -227,12 +227,12 @@ public SoundFile playRandomSoundFile(String requestingUser, MessageReceivedEvent
227227
try {
228228
if (event != null) {
229229
if (event.getChannelType().equals(ChannelType.PRIVATE)) {
230-
playForUser(randomValue.getSoundFileId(), requestingUser, 1, null);
230+
playForUser(randomValue.getSoundFileId(), User, 1, null, requestingUser);
231231
} else {
232232
playFileForEvent(randomValue.getSoundFileId(), event);
233233
}
234234
} else {
235-
playForUser(randomValue.getSoundFileId(), requestingUser, 1, null);
235+
playForUser(randomValue.getSoundFileId(), User, 1, null, requestingUser);
236236
}
237237

238238
if (botConfig.isLeaveAfterPlayback()) {
@@ -255,16 +255,17 @@ public SoundFile playRandomSoundFile(String requestingUser, MessageReceivedEvent
255255
* @param fileName - The name of the file to play.
256256
* @param userName - The name of the user to lookup what VoiceChannel they are in.
257257
* @param voiceChannelId - The ID of the voice channel to play music in
258+
* @param requestingUser - The name of the requestingUser
258259
*/
259-
public void playForUser(String fileName, String userName, Integer repeatTimes, String voiceChannelId) {
260+
public void playForUser(String fileName, String userName, Integer repeatTimes, String voiceChannelId, String requestingUser) {
260261
if (userName == null || userName.isEmpty()) {
261262
userName = botConfig.getBotOwnerName();
262263
}
263264
try {
264265
Guild guild = getGuildForUserOrChannelId(userName, voiceChannelId);
265266
joinUsersCurrentChannel(userName, voiceChannelId);
266267

267-
playFile(fileName, guild, repeatTimes, userName, voiceChannelId);
268+
playFile(fileName, guild, repeatTimes, userName, voiceChannelId, requestingUser);
268269

269270
if (botConfig.isLeaveAfterPlayback()) {
270271
disconnectFromChannel(guild);
@@ -285,7 +286,7 @@ public void playFileInChannel(String fileName, AudioChannel channel, DiscordUser
285286
moveToChannel(channel, channel.getGuild());
286287
LOG.info("Playing file for user: " + fileName + " in channel: " + channel.getName());
287288

288-
playFile(fileName, channel.getGuild(), 1, user.getUsername(), channel.getName());
289+
playFile(fileName, channel.getGuild(), 1, user.getUsername(), channel.getName(), user.getUsername());
289290
if (botConfig.isLeaveAfterPlayback()) {
290291
disconnectFromChannel(channel.getGuild());
291292
}
@@ -305,7 +306,7 @@ private void playFileForEvent(String fileName, MessageReceivedEvent event) {
305306
if (fileToPlay != null) {
306307
moveToUserIdsChannel(event, guild);
307308

308-
playFile(fileName, guild, 1, event.getAuthor().getName(), findUsersChannel(event, guild).getName());
309+
playFile(fileName, guild, 1, event.getAuthor().getName(), findUsersChannel(event, guild).getName(), event.getAuthor().getName());
309310

310311
if (botConfig.isLeaveAfterPlayback()) {
311312
disconnectFromChannel(event.getGuild());
@@ -321,7 +322,7 @@ private void playFileForEvent(String fileName, MessageReceivedEvent event) {
321322
*
322323
* @param fileName - fileName to play.
323324
*/
324-
private void playFile(String fileName, Guild guild, Integer repeatTimes, String user, String voiceChannelId) {
325+
private void playFile(String fileName, Guild guild, Integer repeatTimes, String user, String voiceChannelId, String requestingUser) {
325326
SoundFile fileToPlay = soundService.findOneBySoundFileIdIgnoreCase(fileName);
326327

327328
if (fileToPlay != null) {
@@ -331,7 +332,7 @@ private void playFile(String fileName, Guild guild, Integer repeatTimes, String
331332
LOG.error("Guild is null or you're not in a voice channel the bot has permission to access. Have you added your bot to a guild? https://discord.com/developers/docs/topics/oauth2");
332333
} else {
333334
DiscordUser discordUser = discordUserService.findOneByIdOrUsernameIgnoreCase(user, user);
334-
playbackService.sendTrackStart(fileToPlay.getSoundFileId(), fileToPlay.getDisplayName(), discordUser.getUsername());
335+
playbackService.sendTrackStart(fileToPlay.getSoundFileId(), fileToPlay.getDisplayName(), requestingUser);
335336
soundController.broadcastUpdate();
336337

337338
fileToPlay = soundService.updateSoundPlayed(fileToPlay);

src/main/java/net/dirtydeeds/discordsoundboard/commands/PlayCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ protected void execute(CommandEvent event) {
4040
}
4141
LOG.info("Attempting to play file: {} {} times. Requested by {}.", fileNameRequested, repeatNumber, event.getRequestingUser());
4242

43-
soundPlayer.playForUser(fileNameRequested, event.getAuthor().getName(), repeatNumber, null);
43+
soundPlayer.playForUser(fileNameRequested, event.getAuthor().getName(), repeatNumber, null, event.getAuthor().getName());
4444
} catch (Exception e) {
4545
e.printStackTrace();
4646
}

src/main/java/net/dirtydeeds/discordsoundboard/commands/RandomCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public RandomCommand(SoundPlayer soundPlayer) {
2121
@Override
2222
protected void execute(CommandEvent event) {
2323
try {
24-
soundPlayer.playRandomSoundFile(event.getRequestingUser(), event.getMessageReceivedEvent());
24+
soundPlayer.playRandomSoundFile(event.getRequestingUser(), event.getMessageReceivedEvent(), event.getRequestingUser());
2525
} catch (SoundPlaybackException e) {
2626
event.replyByPrivateMessage("Problem playing random file:" + e);
2727
}

src/main/java/net/dirtydeeds/discordsoundboard/commands/URLCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public URLCommand(SoundPlayer soundPlayer) {
2121
@Override
2222
protected void execute(CommandEvent event) {
2323
if (!event.getArguments().isEmpty()) {
24-
soundPlayer.playForUser(event.getArguments().getFirst(), event.getRequestingUser(), 1, null);
24+
soundPlayer.playForUser(event.getArguments().getFirst(), event.getRequestingUser(), 1, null, event.getRequestingUser());
2525
}
2626
}
2727
}

src/main/java/net/dirtydeeds/discordsoundboard/controllers/BotCommandController.java

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
import net.dirtydeeds.discordsoundboard.SoundPlayer;
77
import net.dirtydeeds.discordsoundboard.beans.SoundFile;
88
import net.dirtydeeds.discordsoundboard.controllers.response.ChannelResponse;
9+
import net.dirtydeeds.discordsoundboard.service.DiscordUserService;
910
import net.dirtydeeds.discordsoundboard.service.PlaybackService;
11+
import net.dirtydeeds.discordsoundboard.util.JwtUtil;
12+
import net.dirtydeeds.discordsoundboard.util.UserRoleConfig;
1013
import org.springframework.beans.factory.annotation.Autowired;
1114
import org.springframework.http.HttpStatus;
1215
import org.springframework.http.ResponseEntity;
@@ -22,34 +25,59 @@ public class BotCommandController {
2225

2326
private final SoundPlayer soundPlayer;
2427
private final BotVolumeController botVolumeController;
28+
private final UserRoleConfig userRoleConfig;
29+
private final DiscordUserService discordUserService;
2530

2631
@Autowired
2732
public BotCommandController(SoundPlayer soundPlayer,
28-
BotVolumeController botVolumeController) {
33+
BotVolumeController botVolumeController,
34+
UserRoleConfig userRoleConfig,
35+
DiscordUserService discordUserService) {
2936
this.soundPlayer = soundPlayer;
3037
this.botVolumeController = botVolumeController;
38+
this.userRoleConfig = userRoleConfig;
39+
this.discordUserService = discordUserService;
3140
}
3241

3342
@PostMapping(value = "/playFile")
34-
public ResponseEntity<Void> playSoundFile(@RequestParam String soundFileId, @RequestParam String username,
35-
@RequestParam(defaultValue = "1") Integer repeatTimes,
36-
@RequestParam(defaultValue = "") String voiceChannelId) {
37-
soundPlayer.playForUser(soundFileId, username, repeatTimes, voiceChannelId);
43+
public ResponseEntity<Void> playSoundFile(@RequestParam String soundFileId,
44+
@RequestParam String username,
45+
@RequestParam(defaultValue = "1") Integer repeatTimes,
46+
@RequestParam(defaultValue = "") String voiceChannelId,
47+
@RequestHeader(value = "Authorization", required = false) String authorization) {
48+
String requestingUser = "anonymous";
49+
if (authorization != null) {
50+
String requestingUserId = userRoleConfig.getUserIdFromAuth(authorization);
51+
requestingUser = discordUserService.findOneByIdOrUsernameIgnoreCase(requestingUserId, requestingUserId).getUsername();
52+
}
53+
soundPlayer.playForUser(soundFileId, username, repeatTimes, voiceChannelId, requestingUser);
3854
return ResponseEntity.ok().build();
3955
}
4056

4157
@PostMapping(value = "/playUrl")
4258
public ResponseEntity<Void> playSoundUrl(@RequestParam String url, @RequestParam String username,
43-
@RequestParam(defaultValue = "") String voiceChannelId) {
44-
soundPlayer.playForUser(url, username, 1, voiceChannelId);
59+
@RequestParam(defaultValue = "") String voiceChannelId,
60+
@RequestHeader(value = "Authorization", required = false) String authorization) {
61+
String requestingUser = "anonymous";
62+
if (authorization != null) {
63+
String requestingUserId = userRoleConfig.getUserIdFromAuth(authorization);
64+
requestingUser = discordUserService.findOneByIdOrUsernameIgnoreCase(requestingUserId, requestingUserId).getUsername();
65+
}
66+
soundPlayer.playForUser(url, username, 1, voiceChannelId, requestingUser);
4567
return ResponseEntity.ok().build();
4668
}
4769

4870
@PostMapping(value = "/random")
4971
public ResponseEntity<Void> soundCommand(@RequestParam String username,
50-
@RequestParam(defaultValue = "") String voiceChannelId) {
72+
@RequestParam(defaultValue = "") String voiceChannelId,
73+
@RequestHeader(value = "Authorization", required = false) String authorization) {
5174
try {
52-
SoundFile soundFile = soundPlayer.playRandomSoundFile(username, null);
75+
String requestingUser = "anonymous";
76+
if (authorization != null) {
77+
String requestingUserId = userRoleConfig.getUserIdFromAuth(authorization);
78+
requestingUser = discordUserService.findOneByIdOrUsernameIgnoreCase(requestingUserId, requestingUserId).getUsername();
79+
}
80+
SoundFile soundFile = soundPlayer.playRandomSoundFile(username, null, requestingUser);
5381
} catch (SoundPlaybackException e) {
5482
return ResponseEntity.internalServerError().build();
5583
}

0 commit comments

Comments
 (0)