Skip to content

Commit 4857d8f

Browse files
committed
add new SelfFilter for PlayerUI
1 parent 8d048e4 commit 4857d8f

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/main/java/com/cyr1en/commandprompter/prompt/ui/CacheFilter.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package com.cyr1en.commandprompter.prompt.ui;
22

33
import com.cyr1en.commandprompter.CommandPrompter;
4+
import com.cyr1en.commandprompter.PluginLogger;
45
import com.cyr1en.commandprompter.config.PromptConfig;
56
import com.cyr1en.commandprompter.prompt.PromptParser;
7+
import org.bukkit.Bukkit;
8+
import org.bukkit.OfflinePlayer;
69
import org.bukkit.entity.Player;
710

811
import java.util.List;
12+
import java.util.Objects;
913
import java.util.regex.Pattern;
1014

1115
/**
@@ -82,7 +86,6 @@ public int getCapGroupOffset() {
8286
return capGroupOffset;
8387
}
8488

85-
8689
@Override
8790
public String toString() {
8891
return this.getClass().getSimpleName();
@@ -191,4 +194,24 @@ public List<Player> filter(Player relativePlayer) {
191194
.toList();
192195
}
193196
}
197+
198+
public static class SelfFilter extends CacheFilter {
199+
200+
public SelfFilter() {
201+
super(Pattern.compile("s"), "PlayerUI.Filter-Format.Self");
202+
}
203+
204+
@Override
205+
public List<Player> filter(Player relativePlayer) {
206+
return Bukkit.getOnlinePlayers().stream()
207+
.map(OfflinePlayer::getPlayer)
208+
.filter(Objects::nonNull)
209+
.filter(p -> !p.equals(relativePlayer))
210+
.toList();
211+
}
212+
213+
public CacheFilter reConstruct(String promptKey) {
214+
return new SelfFilter();
215+
}
216+
}
194217
}

src/main/java/com/cyr1en/commandprompter/prompt/ui/HeadCache.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public HeadCache(CommandPrompter plugin) {
6161
public void registerFilters() {
6262
registerFilter(new CacheFilter.WorldFilter());
6363
registerFilter(new CacheFilter.RadialFilter());
64+
registerFilter(new CacheFilter.SelfFilter());
6465
plugin.getHookContainer().getFilterHooks().forEach(hook ->
6566
hook.ifHooked(filterHook -> filterHook.registerFilters(this))
6667
.complete());

0 commit comments

Comments
 (0)