9
0
mirror of https://github.com/Auxilor/EcoMobs.git synced 2025-12-21 16:09:24 +00:00

Moved autospawn checks to by world

This commit is contained in:
Auxilor
2021-05-02 10:29:04 +01:00
parent 7fbc39d4d1
commit 730c259d19

View File

@@ -4,7 +4,16 @@ import com.willfp.eco.util.NumberUtils;
import com.willfp.ecobosses.EcoBossesPlugin; import com.willfp.ecobosses.EcoBossesPlugin;
import com.willfp.ecobosses.bosses.EcoBoss; import com.willfp.ecobosses.bosses.EcoBoss;
import com.willfp.ecobosses.bosses.EcoBosses; import com.willfp.ecobosses.bosses.EcoBosses;
import com.willfp.ecobosses.bosses.LivingEcoBoss;
import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
public class AutoSpawnTimer implements Runnable { public class AutoSpawnTimer implements Runnable {
private int tick = 0; private int tick = 0;
@@ -26,8 +35,21 @@ public class AutoSpawnTimer implements Runnable {
continue; continue;
} }
Set<World> worlds = new HashSet<>();
for (UUID uuid : boss.getLivingBosses().keySet()) {
worlds.add(Bukkit.getEntity(uuid).getWorld());
}
List<Location> locations = new ArrayList<>(boss.getAutoSpawnLocations());
locations.removeIf(location -> worlds.contains(location.getWorld()));
if (locations.isEmpty()) {
continue;
}
if (tick % boss.getAutoSpawnInterval() == 0) { if (tick % boss.getAutoSpawnInterval() == 0) {
Location location = boss.getAutoSpawnLocations().get(NumberUtils.randInt(0, boss.getAutoSpawnLocations().size() - 1)); Location location = locations.get(NumberUtils.randInt(0, locations.size() - 1));
boss.spawn(location); boss.spawn(location);
} }
} }