好的,我尝试在玩家登录时检查他们的库存,它显示的是显示名称
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());
}
}
}
}
这只是导致错误。
错误日志:
Caused by: java.lang.NullPointerException
at me.BlueJelly.MPSKitPvP.Listeners.PlayerListener.onPlayerJoin(PlayerListener.jav
a:31) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_09]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_09]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_09]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_09]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[
craftbukkit.jar:git-Bukkit-1.6.4-R2.0-9-g68d0e57-b2930jnks]
我知道这是一个 NullPointerException,但我不知道它是如何表达的。 希望你能明白我写的东西...
最佳答案
基于the documentation ,我相信而不是 p.getInventory().getItem(i).getType() != null
它应该是 p.getInventory().getItem(i)!= null
code> 就好像该插槽中没有 Item 堆栈一样,尝试获取其类型将抛出 npe
关于java - 获取玩家库存,然后广播元素显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20828845/