Skip to content

Commit 3317b61

Browse files
GH-81 Add support for #onlinePlayers with specific permissions (#81)
* Add support for #onlinePlayers with specific permissions * Update multification-core/src/com/eternalcode/multification/notice/NoticeBroadcastImpl.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 97192b9 commit 3317b61

File tree

5 files changed

+35
-0
lines changed

5 files changed

+35
-0
lines changed

multification-bukkit/src/com/eternalcode/multification/bukkit/BukkitViewerProvider.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@ public Collection<CommandSender> onlinePlayers() {
2424
return Collections.unmodifiableCollection(Bukkit.getOnlinePlayers());
2525
}
2626

27+
@Override
28+
public Collection<CommandSender> onlinePlayers(String permission) {
29+
Collection<CommandSender> playersWithPermission = new ArrayList<>();
30+
for (CommandSender player : Bukkit.getOnlinePlayers()) {
31+
if (player.hasPermission(permission)) {
32+
playersWithPermission.add(player);
33+
}
34+
}
35+
return Collections.unmodifiableCollection(playersWithPermission);
36+
}
37+
2738
@Override
2839
public Collection<CommandSender> all() {
2940
Collection<CommandSender> viewers = new ArrayList<>(this.onlinePlayers());

multification-core/src/com/eternalcode/multification/notice/NoticeBroadcast.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public interface NoticeBroadcast<VIEWER, TRANSLATION, B extends NoticeBroadcast<
3333
@CheckReturnValue
3434
B onlinePlayers();
3535

36+
@CheckReturnValue
37+
B onlinePlayers(String permission);
38+
3639
@CheckReturnValue
3740
B notice(Notice notification);
3841

multification-core/src/com/eternalcode/multification/notice/NoticeBroadcastImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ public B onlinePlayers() {
116116
return this.getThis();
117117
}
118118

119+
@Override
120+
@CheckReturnValue
121+
public B onlinePlayers(String permission) {
122+
this.viewers.addAll(this.viewerProvider.onlinePlayers(permission));
123+
return this.getThis();
124+
}
125+
119126
@Override
120127
@CheckReturnValue
121128
public B noticeChat(TextMessageProvider<TRANSLATION> extractor) {

multification-core/src/com/eternalcode/multification/viewer/ViewerProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public interface ViewerProvider<VIEWER> {
1111

1212
Collection<VIEWER> onlinePlayers();
1313

14+
Collection<VIEWER> onlinePlayers(String permission);
15+
1416
Collection<VIEWER> all();
1517

1618
}

multification-core/test/com/eternalcode/multification/MultificationTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,18 @@ public Collection<Viewer> onlinePlayers() {
5656
return ONLINE;
5757
}
5858

59+
@Override
60+
public Collection<Viewer> onlinePlayers(String permission) {
61+
List<Viewer> playersWithPermission = new ArrayList<>();
62+
for (Viewer viewer : ONLINE) {
63+
// Simulating permission check
64+
if (viewer.uuid.equals(ROLLCZI_UUID) || viewer.uuid.equals(LUCKI_UUID)) {
65+
playersWithPermission.add(viewer);
66+
}
67+
}
68+
return playersWithPermission;
69+
}
70+
5971
@Override
6072
public Collection<Viewer> all() {
6173
List<Viewer> list = new ArrayList<>();

0 commit comments

Comments
 (0)