- En iyi cevaplar
- 0
Github hiç de öyle demiyor ama,1 saniye içinde 1000 defa ışınlanmak için her oyuncu maksimum hareketleri yaptığında saniyede 5 defa ışınlanıyorsa sunucunda 200 kişi olması lazım 1000 defa ışınlanma gerçekleşmesi için. 200 kişiyi kaldırabilen bir sunucuya sahipsen 1 saniye içerisinde oyuncunun olduğu yere 1000 defa ışınlanması bir sıkıntı yapmaz. AuthMe'nin çalışma mantığı da oyuncuyu herhangi bir hareketinde olduğu yere ışınlamaktır bu arada.
Kod:
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerMove(PlayerMoveEvent event) {
if (event.getPlayer() == null) {
return;
}
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return;
}
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
if (!Settings.isForcedRegistrationEnabled) {
if (!plugin.database.isAuthAvailable(name))
return;
}
if (!Settings.isMovementAllowed) {
if (!event.getFrom().getBlock().equals(event.getTo().getBlock()))
event.setTo(event.getFrom());
return;
}
if (Settings.getMovementRadius == 0) {
return;
}
int radius = Settings.getMovementRadius;
Location spawn = plugin.getSpawnLocation(player);
if (spawn != null && spawn.getWorld() != null) {
if (!event.getPlayer().getWorld().equals(spawn.getWorld())) {
event.getPlayer().teleport(spawn);
return;
}
if ((spawn.distance(player.getLocation()) > radius)) {
event.getPlayer().teleport(spawn);
return;
}
}
}