Skip to content

Commit 1ea47d4

Browse files
committed
add 'show indicators when active' option to streamer mode config
1 parent a44622b commit 1ea47d4

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

src/main/java/org/modernbeta/admintoolbox/AdminToolboxPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,13 @@ public Configuration getConfigDefaults() {
190190
streamerMode.set("allow", true);
191191
streamerMode.set("max-duration", 720d); // 720 minutes = 12 hours default max duration
192192
streamerMode.set("disable-permissions", List.of("admintoolbox.broadcast.receive"));
193+
streamerMode.set("show-indicators-when-active", false);
193194

194195
// docs
195196
streamerMode.setInlineComments("allow", List.of("Enable or disable usage of streamer mode. 'true' is enabled, 'false' is disabled"));
196197
streamerMode.setInlineComments("max-duration", List.of("The maximum duration a player can enable streamer mode for, in minutes."));
197198
streamerMode.setInlineComments("disable-permissions", List.of("The list of permissions to disable for the given time period."));
199+
streamerMode.setInlineComments("show-indicators-when-active", List.of("Should players see the streamer mode placeholder while in streamer mode? (See https://github.com/ModernBetaNetwork/AdminToolbox#placeholder)"));
198200
}
199201

200202
return defaults;

src/main/java/org/modernbeta/admintoolbox/integration/placeholderapi/expansion/StreamerModePlaceholder.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import org.bukkit.entity.Player;
77
import org.jetbrains.annotations.NotNull;
88
import org.modernbeta.admintoolbox.AdminToolboxPlugin;
9+
import org.modernbeta.admintoolbox.managers.StreamerModeManager;
910

1011
import javax.annotation.Nullable;
12+
import java.util.Optional;
1113

1214
public class StreamerModePlaceholder extends PlaceholderExpansion implements Relational {
1315
private final AdminToolboxPlugin plugin;
@@ -44,11 +46,20 @@ public boolean persist() {
4446
@Override
4547
public String onPlaceholderRequest(Player viewer, Player wearer, String identifier) {
4648
if (viewer == null || wearer == null) return "";
49+
50+
Optional<StreamerModeManager> streamerModeManager = plugin.getStreamerModeManager();
51+
52+
// hide placeholder from players currently in streamer mode
53+
if (!plugin.getConfig().getBoolean("streamermode.show-indicators-when-active", false)
54+
&& streamerModeManager.map(sm ->
55+
sm.isActive(viewer))
56+
.orElse(false)) return "";
57+
4758
if (!viewer.hasPermission(SM_VIEW_PERMISSION)) return "";
4859
if (!wearer.hasPermission(SM_WEAR_PERMISSION)) return "";
4960

50-
boolean isActive = plugin.getStreamerModeManager()
51-
.map(sm -> sm.isActive(wearer))
61+
boolean isActive = streamerModeManager.map(sm ->
62+
sm.isActive(wearer))
5263
.orElse(false);
5364
if (!isActive) return "";
5465

0 commit comments

Comments
 (0)