Skip to content

Commit 6800eeb

Browse files
committed
add .sound
1 parent e865b09 commit 6800eeb

File tree

2 files changed

+70
-3
lines changed

2 files changed

+70
-3
lines changed

src/main/java/net/oceanias/opal/utility/builder/OMessage.java

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package net.oceanias.opal.utility.builder;
22

33
import net.oceanias.opal.plugin.OPlugin;
4+
import net.oceanias.opal.utility.constant.OFeedbackSound;
5+
import net.oceanias.opal.utility.extension.OCommandSenderExtension;
46
import net.oceanias.opal.utility.extension.OStringExtension;
57
import java.util.ArrayList;
68
import java.util.List;
79
import java.util.Objects;
810
import java.util.stream.Collectors;
911
import java.util.stream.Stream;
12+
import org.bukkit.Sound;
1013
import org.bukkit.command.CommandSender;
1114
import org.bukkit.entity.Player;
1215
import net.kyori.adventure.text.Component;
@@ -19,7 +22,7 @@
1922
@SuppressWarnings("unused")
2023
@Getter
2124
@Accessors(fluent = true)
22-
@ExtensionMethod(OStringExtension.class)
25+
@ExtensionMethod({ OStringExtension.class, OCommandSenderExtension.class })
2326
@AllArgsConstructor(access = AccessLevel.PRIVATE)
2427
public final class OMessage {
2528
private final OPlugin plugin;
@@ -35,6 +38,8 @@ public final class OMessage {
3538
@Setter
3639
private boolean blanks;
3740

41+
private Sound sound;
42+
3843
public OMessage line(final String line) {
3944
lines.add(line);
4045

@@ -47,6 +52,18 @@ public OMessage lines(final List<String> lines) {
4752
return this;
4853
}
4954

55+
public OMessage sound(final @NotNull OFeedbackSound sound) {
56+
this.sound = sound.getDelegate();
57+
58+
return this;
59+
}
60+
61+
public OMessage sound(final Sound sound) {
62+
this.sound = sound;
63+
64+
return this;
65+
}
66+
5067
public @NotNull Component component() {
5168
final String addDividers = dividers ? OStringExtension.CHAT_DIVIDER_LONG : null;
5269
final String addBlanks = blanks ? "" : null;
@@ -61,19 +78,39 @@ public OMessage lines(final List<String> lines) {
6178

6279
public void send(final @NotNull CommandSender sender) {
6380
sender.sendMessage(component());
81+
82+
if (sound == null) {
83+
return;
84+
}
85+
86+
sender.soundDSR(sound);
6487
}
6588

6689
public void send(final @NotNull Iterable<? extends CommandSender> senders) {
6790
final Component message = component();
6891

6992
for (final CommandSender sender : senders) {
7093
sender.sendMessage(message);
94+
95+
if (sound == null) {
96+
continue;
97+
}
98+
99+
sender.soundDSR(sound);
71100
}
72101
}
73102

74103
public void broadcast() {
104+
final Component message = component();
105+
75106
for (final Player sender : plugin.getServer().getOnlinePlayers()) {
76-
send(sender);
107+
sender.sendMessage(message);
108+
109+
if (sound == null) {
110+
continue;
111+
}
112+
113+
sender.soundDSR(sound);
77114
}
78115
}
79116

@@ -97,6 +134,8 @@ public static class OMessageBuilder {
97134
@Setter
98135
private boolean blanks = false;
99136

137+
private Sound sound;
138+
100139
public OMessageBuilder(final OPlugin plugin) {
101140
this.plugin = plugin;
102141
}
@@ -113,8 +152,20 @@ public OMessageBuilder lines(final List<String> lines) {
113152
return this;
114153
}
115154

155+
public OMessageBuilder sound(final @NotNull OFeedbackSound sound) {
156+
this.sound = sound.getDelegate();
157+
158+
return this;
159+
}
160+
161+
public OMessageBuilder sound(final Sound sound) {
162+
this.sound = sound;
163+
164+
return this;
165+
}
166+
116167
public OMessage build() {
117-
return new OMessage(plugin, lines, prefix, dividers, blanks);
168+
return new OMessage(plugin, lines, prefix, dividers, blanks, sound);
118169
}
119170
}
120171
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package net.oceanias.opal.utility.constant;
2+
3+
import org.bukkit.Sound;
4+
import lombok.Getter;
5+
import lombok.RequiredArgsConstructor;
6+
7+
@SuppressWarnings("unused")
8+
@Getter
9+
@RequiredArgsConstructor
10+
public enum OFeedbackSound {
11+
SUCCESS(Sound.BLOCK_NOTE_BLOCK_BELL),
12+
ERROR(Sound.BLOCK_NOTE_BLOCK_BASS),
13+
CLICK(Sound.UI_BUTTON_CLICK);
14+
15+
private final Sound delegate;
16+
}

0 commit comments

Comments
 (0)