Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minefs.MineStrike.Map;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.Location;
- import org.bukkit.scheduler.BukkitRunnable;
- import net.minefs.MineStrike.Main;
- import net.minefs.MineStrike.Handler.GameBomb;
- import net.minefs.MineStrike.Handler.GameState;
- import net.minefs.MineStrike.Handler.GameTeam.Role;
- import net.minefs.MineStrike.Modes.DefuseGame;
- import net.minefs.MineStrike.Modes.Game;
- import net.minefs.MineStrike.Modes.ZombieEscape;
- import net.minefs.MineStrike.Utils.GameUtils;
- public class MapScanner extends BukkitRunnable {
- private Main main;
- public MapScanner(Main main) {
- this.main = main;
- runTaskTimerAsynchronously(main, 20, 20);
- }
- @Override
- public void run() {
- List<Game> games = new ArrayList<Game>(main.getManager().getGames());
- games.forEach(game -> {
- if (game.getState() != GameState.IN_GAME || game.getGameMap() == null)
- return;
- if (!(game instanceof ZombieEscape)) {
- // Lọc ra những người chơi team A nằm trong tầm nhìn của ít nhất một người trong team B, thêm vào list phần tử
- game.getTeamA().getPlayers().stream().filter(
- p -> !game.getSpectatorsClone().contains(p) && GameUtils.isSeenByTeam(p, game, game.getTeamB()))
- .forEach(p -> game.getGameMap().getItems().add(new MapItem(MapIcons.ENEMY, p.getLocation(),
- System.currentTimeMillis() + 1000, game.getTeamB().getRole())));
- // Tương tự
- game.getTeamB().getPlayers().stream().filter(
- p -> !game.getSpectatorsClone().contains(p) && GameUtils.isSeenByTeam(p, game, game.getTeamA()))
- .forEach(p -> game.getGameMap().getItems().add(new MapItem(MapIcons.ENEMY, p.getLocation(),
- System.currentTimeMillis() + 1000, game.getTeamA().getRole())));
- }
- if (game instanceof DefuseGame) {
- GameBomb b = ((DefuseGame) game).getBomb();
- if (b == null)
- return;
- Location l = b.getLocation();
- if (l == null)
- return;
- //Nếu C4 nằm trong tầm nhìn của COUNTERTERRORIST thì thêm vào list
- if (GameUtils.isSeenByTeam(l, game, main.getManager().getTeam(game, Role.COUNTERTERRORIST)))
- game.getGameMap().getItems()
- .add(new MapItem(MapIcons.C4, l, System.currentTimeMillis() + 1000, Role.COUNTERTERRORIST));
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment