- Баллы
- 123
- Имя в Minecraft
- konfyciu
Сделал плагин для своего сервера. После стали падать FPS у игроков и TPS у сервера. Я понимаю, что я еще тот говн*кодер, но как это исправить(и можно ли вообще это исправить)? Видел такие хелки на других серверах, там все норм.
Вот сам код:
А вот суть плагина

Вот сам код:
Java:
package me.konfyciu.EBS;
import java.util.logging.Logger;
import me.confuser.barapi.BarAPI;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class EnderBarStats extends JavaPlugin implements Listener {
Logger log = Logger.getLogger("minecraft");
@Override
public void onEnable() {
log.info("[EBS] ENABLE");
getServer().getPluginManager().registerEvents(this, this);
saveConfig();
}
@Override
public void onDisable() {
log.info("[EBS] DISABLE");
saveConfig();
}
@EventHandler
public void onJoin(PlayerJoinEvent event) {
if(!getConfig().contains(event.getPlayer().getName())) {
getConfig().set(event.getPlayer().getName()+".kill", -1);
getConfig().set(event.getPlayer().getName()+".dead", -1);
}
saveConfig();
BarAPI.setMessage(event.getPlayer(), ChatColor.GOLD+ "Kill: "+ChatColor.YELLOW+getConfig().getInt(event.getPlayer().getName()+".kill")+ChatColor.DARK_AQUA+" Dead: "+ChatColor.AQUA+getConfig().getInt(event.getPlayer().getName()+".dead"));
int kill = getConfig().getInt(event.getPlayer().getName()+".kill");
int dead = getConfig().getInt(event.getPlayer().getName()+".dead");
int sum = kill+dead;
int heal = (100/sum)*kill;
BarAPI.setHealth(event.getPlayer(), heal);
}
@EventHandler
public void onDeath(PlayerDeathEvent event) {
Player dead = event.getEntity().getPlayer();
Player killer = event.getEntity().getKiller();
//Killer!
if (killer instanceof Player) {
if(getConfig().getInt(killer.getName()+".kill") == -1) {
getConfig().set(killer.getName()+".kill", -3);
getConfig().set(killer.getName()+".dead", -3);
saveConfig();
}
int count_kill = getConfig().getInt(killer.getName()+".kill");
int count_end_kill = count_kill+1;
getConfig().set(killer.getName()+".kill", count_end_kill);
saveConfig();
int kill_killer = getConfig().getInt(killer.getName()+".kill");
int dead_killer = getConfig().getInt(killer.getName()+".dead");
int sum_killer = kill_killer+dead_killer;
int heal_killer = (100/sum_killer)*kill_killer;
BarAPI.removeBar(killer);
BarAPI.setMessage(killer, ChatColor.GOLD+ "Kill: " + ChatColor.YELLOW+ getConfig().getInt(killer.getName()+".kill") +ChatColor.DARK_AQUA+" Dead: " +ChatColor.AQUA+getConfig().getInt(killer.getName()+".dead"));
BarAPI.setHealth(killer, heal_killer);
}
//Death!!!
if(dead instanceof Player) {
if(getConfig().getInt(dead.getName()+".dead") == -1) {
getConfig().set(dead.getName()+".dead", 0);
getConfig().set(dead.getName()+".kill", 0);
saveConfig();
}
int count_dead = getConfig().getInt(dead.getName()+".dead");
int count_end_dead = count_dead+1;
getConfig().set(dead.getName()+".dead", count_end_dead);
saveConfig();
int kill_dead = getConfig().getInt(dead.getName()+".kill");
int dead_dead = getConfig().getInt(dead.getName()+".dead");
int sum_dead = kill_dead+dead_dead;
int heal_dead = (100/sum_dead)*kill_dead;
BarAPI.removeBar(dead);
BarAPI.setMessage(dead, ChatColor.GOLD+ "Kill: " + ChatColor.YELLOW+ getConfig().getInt(dead.getName()+".kill") +ChatColor.DARK_AQUA+" Dead: " +ChatColor.AQUA+getConfig().getInt(dead.getName()+".dead"));
BarAPI.setHealth(dead, heal_dead);
}
}
@EventHandler
public void onRespawn(PlayerRespawnEvent event) {
final Player player = event.getPlayer();
Bukkit.getScheduler().runTaskLater(this, new Runnable() {
public void run() {
BarAPI.removeBar(player);
BarAPI.setMessage(player, ChatColor.GOLD+ "Kill: "+ChatColor.YELLOW+getConfig().getInt(player.getName()+".kill")+ChatColor.DARK_AQUA+" Dead: "+ChatColor.AQUA+getConfig().getInt(player.getName()+".dead"));
int kill = getConfig().getInt(player.getName()+".kill");
int dead = getConfig().getInt(player.getName()+".dead");
int sum = kill+dead;
int heal = (100/sum)*kill;
BarAPI.setHealth(player, heal);
}
}, 40);
}
@EventHandler
public void onentityDeath(EntityDeathEvent event) {
Player player = event.getEntity().getKiller();
/*if(event.getEntity().getType() == EntityType.PLAYER) {
reloadConfig();
if(getConfig().getInt(event.getEntityType().getName()+".dead",-1) == -1) {
getConfig().set(event.getEntityType().getName()+".dead", 0);
saveConfig();
}
int count_pl_ent = getConfig().getInt(event.getEntityType().getName()+".dead");
int count_end_pl_ent = count_pl_ent+1;
getConfig().set(event.getEntityType().getName()+".dead", count_end_pl_ent);
saveConfig();
}
else {*/
if(player instanceof Player) {
if(getConfig().getInt(player.getName()+".kill") == -1) {
getConfig().set(player.getName()+".kill", 0);
getConfig().set(player.getName()+".dead", 0);
saveConfig();
}
int count_pl_ent_kill = getConfig().getInt(player.getName()+".kill");
int count_end_pl_ent_kill = count_pl_ent_kill+1;
getConfig().set(player.getName()+".kill", count_end_pl_ent_kill);
saveConfig();
int killer_ent_kill = getConfig().getInt(player.getName()+".kill");
int killer_ent_dead = getConfig().getInt(player.getName()+".dead");
int sum_killer = killer_ent_kill+killer_ent_dead;
int heal_killer = (100/sum_killer)*killer_ent_kill;
BarAPI.removeBar(player);
BarAPI.setMessage(player, ChatColor.GOLD+ "Kill: " + ChatColor.YELLOW+ getConfig().getInt(player.getName()+".kill") +ChatColor.DARK_AQUA+" Dead: " +ChatColor.AQUA+getConfig().getInt(player.getName()+".dead"));
BarAPI.setHealth(player, heal_killer);
//}
}
}
}
Последнее редактирование модератором:
