加入时的延迟峰值离开的事件.(Java)



经过几个小时无法找到一个可行的解决方案来解决我们的问题,我们还没有能够得出结论或修复这些延迟高峰是如何或为什么发生的。我只是想提前感谢您花时间阅读和回复这条消息。

http://paste.ubuntu.com/7400818/- http://aikar.co/timing.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%左右。我们认为这与插件访问文件有关。

谢谢,卢克。

从它似乎是外部插件NameTagAPI。我可以肯定地说,这是因为它必须发送大量的玩家数据包,而您将其称为onJoin的事实使问题更加清楚。

最新更新