Java 获取玩家清单,然后广播物品displayname
好的,我试着在玩家登录时检查他们的清单,上面写着displaynameJava 获取玩家清单,然后广播物品displayname,java,module,minecraft,bukkit,Java,Module,Minecraft,Bukkit,好的,我试着在玩家登录时检查他们的清单,上面写着displayname public void onPlayerJoin(PlayerJoinEvent event) { Player p = event.getPlayer(); for (int i = 0; i < p.getInventory().getSize(); i++) { if (p.getInventory().getItem(i).getType() != null) {
public void onPlayerJoin(PlayerJoinEvent event) {
Player p = event.getPlayer();
for (int i = 0; i < p.getInventory().getSize(); i++) {
if (p.getInventory().getItem(i).getType() != null) {
if (!p.getInventory().getItem(i).getItemMeta().getDisplayName().equals("KITS")){
Bukkit.broadcastMessage(i.getItemMeta().getDisplayName());
}
}
}
}
我知道这是一个NullPointerException,但我不知道它怎么能这么说。
我希望您理解我写的…在您的代码中有许多可能出现NullPointerException的地方 例如:
p.getInventory().getItem(i).getType()
使用报告的行号(31)查找准确的行。
如果无法调试代码,请使用日志(或简单souts)查找空引用。代码中有许多可能出现NullPointerException的地方 例如:
p.getInventory().getItem(i).getType()
使用报告的行号(31)查找准确的行。
如果无法调试代码,请使用日志(或简单的souts)查找空引用。基于,我相信,而不是
p.getInventory().getItem(I).getType()!=null
它应该是p.getInventory().getItem(i)!=null
如果在该插槽中没有项目堆栈,尝试获取其类型将抛出一个npe基于,而不是p.getInventory().getItem(I).getType()!=null
它应该是p.getInventory().getItem(i)!=null
就好像该插槽中没有项目堆栈,试图获取其类型将抛出npe你说的“我不知道它怎么会这样说”是什么意思?其中一个引用必须为null-您需要找出是哪个引用。在执行这段代码时,你能使用调试器吗?但是我有一个i==null,如果我有,它不应该说什么,或者?嗯i
不能为null-它是一个int
。而且你写的代码也不包括这些。。。但是p
可以为null,或者p.getInventory()
可以为null。。。(等)你说“我不知道它怎么会这么说”是什么意思?其中一个引用必须为null-您需要找出是哪个引用。在执行这段代码时,你能使用调试器吗?但是我有一个i==null,如果我有,它不应该说什么,或者?嗯i
不能为null-它是一个int
。而且你写的代码也不包括这些。。。但是p
可以为null,或者p.getInventory()
可以为null。。。(etc)此外,我认为ItemStack可能有空ItemMeta另外,我认为ItemStack可能有空ItemMeta