Skip to content

Commit 9e48994

Browse files
committed
Add convenience methods for getting players in regions
GitOrigin-RevId: 50522c2337708a68ec87254d3d4b380b4279e979
1 parent 130c164 commit 9e48994

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

src/us/mcparks/showscript/Main.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,9 @@ private void setupCloud() {
143143

144144
}
145145

146-
146+
public RegionListener getRegionListener() {
147+
return regionListener;
148+
}
147149

148150

149151
public void addActiveShow(ShowScheduler show) {

src/us/mcparks/showscript/event/region/RegionListener.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313
import org.bukkit.event.player.*;
1414
import org.bukkit.event.vehicle.VehicleExitEvent;
1515
import org.bukkit.event.vehicle.VehicleMoveEvent;
16-
import java.util.HashMap;
17-
import java.util.HashSet;
18-
import java.util.Map;
19-
import java.util.Set;
16+
17+
import java.util.*;
18+
import java.util.stream.Collectors;
2019

2120
public class RegionListener implements Listener {
2221
public static Map<Player, Set<ProtectedRegion>> regionMap;
@@ -32,6 +31,17 @@ public RegionListener(WorldGuardPlugin wgp) {
3231
Bukkit.getPluginManager().registerEvents(this, Main.getPlugin(Main.class));
3332
}
3433

34+
public Collection<Player> getPlayersInRegion(String regionId) {
35+
return regionMap.entrySet().stream()
36+
.filter(entry -> entry.getValue().stream().anyMatch(region -> region.getId().equals(regionId)))
37+
.map(Map.Entry::getKey)
38+
.collect(Collectors.toList());
39+
}
40+
41+
public Collection<String> getRegionsForPlayer(Player player) {
42+
return regionMap.get(player).stream().map(ProtectedRegion::getId).collect(Collectors.toList());
43+
}
44+
3545
@EventHandler
3646
public void onMove(PlayerMoveEvent e) {
3747
updateRegions(e.getPlayer(), MovementType.MOVE, e.getTo());

src/us/mcparks/showscript/showscript/groovy/dsl/ShowActionDsl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ public void show(@DelegatesTo(value = LinkedHashMap.class) Closure<?> closure) {
4040
closure.setResolveStrategy(Closure.DELEGATE_FIRST);
4141
closure.setDelegate(map);
4242
closure.call();
43-
System.out.println(map);
4443
ensureMapHasKeys(map, Lists.newArrayList("name"));
4544
actions.add(new GroovyShowAction(ShowActionType.SHOW, map));
4645
}

src/us/mcparks/showscript/showscript/groovy/dsl/TimecodeDsl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,18 @@ public double tan(double angle) {
183183
return Math.tan(Math.toRadians(angle));
184184
}
185185

186+
public Collection<Player> playersInRegion(String regionName) {
187+
return Main.getPlugin(Main.class).getRegionListener().getPlayersInRegion(regionName);
188+
}
189+
190+
public Collection<String> playerRegions(Player player) {
191+
return Main.getPlugin(Main.class).getRegionListener().getRegionsForPlayer(player);
192+
}
193+
194+
public Collection<String> playerRegions(String playerName) {
195+
return Main.getPlugin(Main.class).getRegionListener().getRegionsForPlayer(player(playerName));
196+
}
197+
186198
public Collection<ShowScheduler> runningShows() {
187199
return Main.getPlugin(Main.class).getActiveShows();
188200
}

0 commit comments

Comments
 (0)