Join& amp;离开活动。 (JAVA)

时间:2014-05-05 21:44:12

标签: java file events minecraft

经过几个小时无法找到解决问题的可行方案后,我们无法得出结论或解决这些滞后峰值的发生方式或原因。我想提前感谢,感谢您随时阅读并回复此消息。

http://paste.ubuntu.com/7400818/ - htp://aikar.co/timings.php?url = 7400818

您可以看到上面有不同时间进行的不同测试。来自Aikar的时间将提供与ubuntu浆料不同的视角,正在发生的问题来自ChromaHillsRPG。对PlayerJoinEvent和PlayerQuitEvent的维护。

请看下面这些事件会发生什么。

Player player = event.getPlayer();
Main.getInstance().setUpData(player);

Group group = Main.getInstance().getTitle(player);
if(group == null){
     return;
}
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
PlayerSkill pSkills = Main.getInstance().pSkills.get(player.getUniqueId().toString());
int mainLevel = pSkills.getLevelHandler().getLevel();
String gName = group.getPrefix();
String prefix = Main.getInstance().getConfig().getString("name-format-1");
String level = Main.getInstance().getConfig().getString("name-format-2").replace("%level%", String.valueOf(mainLevel));
prefix = prefix.replace("%Group-Pre%", gName);
prefix = prefix.replace("%GroupPre%", gName);
prefix = ChatColor.translateAlternateColorCodes('&', prefix);
if(prefix.length() > 16){
     Bukkit.getLogger().severe("HEYO! Too long there for the prefix...." + prefix.length());
     return;
}
level = ChatColor.translateAlternateColorCodes('&', level);
if(!player.hasPermission("rpg.noshow")){
     NametagAPI.setPrefix(player.getName(), prefix);
     NametagAPI.setSuffix(player.getName(), level);
}

再次提前感谢任何回复,如果需要,我可以提供更多信息。 我们的内部开发人员和我们团队中的任何人都无法确定每次玩家离开时CPU如何保持15-40%的飙升。我们认为这与访问文件的插件有关。

谢谢, 路加。

1 个答案:

答案 0 :(得分:2)

看起来是外部插件NameTagAPI。我可以肯定地说,因为它必须发送大量的播放器数据包,而且你在加入它的事实使得它更加清楚这就是问题。