49 lines
2.0 KiB
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()));
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|