Actionbar unauffälliger: ♪ Name DC · Name TS
This commit is contained in:
1 parent
b335933678
commit
2e46c9ea1c
4 files changed
+21
-6
No files matched your search
@@ -142,14 +142,29 @@ final class BridgeVoicechat implements VoicechatPlugin {
|
||||
case Message.Speakers speakers -> Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
CrosstalkRoom room = rooms.get(speakers.room());
|
||||
if (room == null || speakers.names().isEmpty() || !plugin.getConfig().getBoolean("actionbar", true)) return;
|
||||
Component text = Component.text("Spricht: ", NamedTextColor.GRAY)
|
||||
.append(Component.text(String.join(", ", speakers.names()), NamedTextColor.GOLD));
|
||||
Component text = speakersLine(speakers.names());
|
||||
room.memberPlayers().stream().filter(ActionbarCommand::enabled).forEach(player -> player.sendActionBar(text));
|
||||
});
|
||||
case Message.Hello ignored -> {}
|
||||
}
|
||||
}
|
||||
|
||||
/** Unauffällige Actionbar: "♪ Anna DC · Bob TS", höchstens drei Namen, Rest als "+N". */
|
||||
static Component speakersLine(List<String> speakers) {
|
||||
int shown = Math.min(3, speakers.size());
|
||||
Component line = Component.text("♪ ", NamedTextColor.DARK_GRAY);
|
||||
for (int i = 0; i < shown; i++) {
|
||||
String entry = speakers.get(i);
|
||||
int split = entry.lastIndexOf('|');
|
||||
String name = split < 0 ? entry : entry.substring(0, split);
|
||||
String tag = split < 0 ? "" : " " + entry.substring(split + 1);
|
||||
if (i > 0) line = line.append(Component.text(" · ", NamedTextColor.DARK_GRAY));
|
||||
line = line.append(Component.text(name, NamedTextColor.GRAY)).append(Component.text(tag, NamedTextColor.DARK_GRAY));
|
||||
}
|
||||
if (speakers.size() > shown) line = line.append(Component.text(" +" + (speakers.size() - shown), NamedTextColor.DARK_GRAY));
|
||||
return line;
|
||||
}
|
||||
|
||||
/** Main-Thread: Gruppen an die Räume der Bridge angleichen. */
|
||||
private void syncRooms(List<Message.RoomInfo> infos) {
|
||||
VoicechatServerApi api = this.api;
|
||||
|
||||
@@ -3,6 +3,6 @@ bridge:
|
||||
host: 127.0.0.1
|
||||
port: 24470
|
||||
|
||||
# Actionbar "Spricht: …" mit den gerade sprechenden Leuten aus Discord/TeamSpeak.
|
||||
# Actionbar "♪ Anna DC · Bob TS" mit den gerade sprechenden Leuten aus Discord/TeamSpeak.
|
||||
# Jeder Spieler kann sie zusätzlich mit /crosstalk actionbar für sich aus- und einschalten.
|
||||
actionbar: true
|
||||
Reference in new issue
Block a user