WorldSystem/src/main/java/de/butzlabben/world/WorldCheckerRunnable.java

49 lines
2.0 KiB
Java

package de.butzlabben.world;
import de.butzlabben.world.config.MessageConfig;
import de.butzlabben.world.config.PluginConfig;
import de.butzlabben.world.wrapper.SystemWorld;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
public class WorldCheckerRunnable implements Runnable {
@Override
public void run() {
for (World world : Bukkit.getWorlds()) {
if (SystemWorld.getSystemWorld(world.getName()) == null || !SystemWorld.getSystemWorld(world.getName()).isLoaded())
continue;
int other = world.getEntities().size() - world.getPlayers().size();
if (other > PluginConfig.getEntitysPerWorld()) {
String worldname = world.getName();
for (Entity e : world.getEntities()) {
if (!(e instanceof Player)) {
e.remove();
}
}
String ownerofWorld = null;
for (OfflinePlayer p : Bukkit.getOfflinePlayers()) {
if (p.getUniqueId().toString()
.equals(worldname.substring(worldname.length() - 36)))
ownerofWorld = p.getName();
}
StringBuilder members = new StringBuilder();
for (Player p : world.getPlayers()) {
members.append(p.getName()).append(" ");
}
for (Player p : Bukkit.getOnlinePlayers()) {
if (!p.hasPermission("ws.lag"))
continue;
p.sendMessage(MessageConfig.getLagDetection().replaceAll("%world",
ownerofWorld + " ( ID: " + world.getName().substring(2, worldname.length() - 37) + " )"));
p.sendMessage(MessageConfig.getPlayerList().replaceAll("%players", members.toString()));
}
}
}
}
}