Java 调试证明某些东西不是';t空,但问题仍然存在[地雷船]
我试图使我的插件监视器杀死和hp的一个球员,但我目前得到的健康和杀死与相同的错误问题。 我甚至尝试使用空选择来检查它是否为空,而不使用它,但这不起作用,因为我需要显示信息。 我基本上需要将玩家的hp和name设置为计分板,将杀戮设置为分数。(提前谢谢你)。 这将设置玩家在加入时杀死:Java 调试证明某些东西不是';t空,但问题仍然存在[地雷船],java,null,minecraft,Java,Null,Minecraft,我试图使我的插件监视器杀死和hp的一个球员,但我目前得到的健康和杀死与相同的错误问题。 我甚至尝试使用空选择来检查它是否为空,而不使用它,但这不起作用,因为我需要显示信息。 我基本上需要将玩家的hp和name设置为计分板,将杀戮设置为分数。(提前谢谢你)。 这将设置玩家在加入时杀死: @EventHandler public void onPlayerLogin(PlayerJoinEvent e) { String player = e.getPlayer().getName();
@EventHandler
public void onPlayerLogin(PlayerJoinEvent e) {
String player = e.getPlayer().getName();
if(!PlayerHandler.GPlayed.containsKey(player)){
PlayerHandler.GPlayed.put(player, 0);
}
if(!PlayerHandler.kills.containsKey(player)){
PlayerHandler.kills.put(player, 0);
}
if(!PlayerHandler.HRound.containsKey(player)){
PlayerHandler.HRound.put(player, 0);
}
}
这是我尝试创建的一个调试,但是在相关检查都正确的情况下仍然会出现相同的错误
@SuppressWarnings("deprecation")
public void run(String arena){
for(String key : Handler.playerMap.keySet()){
if (Handler.playerMap.get(key).contains(arena)){
Player pt = Bukkit.getPlayer("Nubzz");
String p = pt.getDisplayName();
Player nubzz = Bukkit.getPlayer("Nubzz");
nubzz.sendMessage(key);
nubzz.sendMessage(pt + "");
nubzz.sendMessage(p);
ScoreboardManager manager = Bukkit.getScoreboardManager();
Scoreboard board = manager.getNewScoreboard();
Objective objective = board.registerNewObjective("test", "dummy");
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
objective.setDisplayName(ChatColor.AQUA + "Wave: " );
Score score = objective.getScore(ChatColor.GREEN + "" + pt.getHealth() + ChatColor.WHITE + p + ChatColor.AQUA);
int kills = PlayerHandler.kills.get(p);
score.setScore(kills);
int pcheck = 0;
这显示调试正在工作,并显示播放机已终止(可能我正在检查错误的变量值):
错误发生在哪里?stacktrace是什么?你知道如果
kills.get(p)
isnull
你也会得到一个NPE吗?很抱歉回复得太晚了@credenson