onCommand 空指针错误
onCommand nullpointer Error
这段代码在我执行命令时一直出错,我已经修复了一些变量错误,但仍然没有解决。
谁能帮帮我?它是一个空指针,但我没有看到任何给出空指针的东西。谢谢!
@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command cmd,
String label, String[]args){
if(cmd.getName().equalsIgnoreCase("shop")){
if(sender instanceof Player){
Player p=(Player)sender;
//all itemstack were made at the top given static
ItemMeta lore=hasMoney.getItemMeta();//the amount of money they have set to a lore
ArrayList<String> loreText=new ArrayList<String>();
lore.setDisplayName(ChatColor.GOLD+""+ChatColor.BOLD+"Gears");
loreText.add(ChatColor.GREEN+"You have:");
loreText.add(ChatColor.GOLD
+econ.format(econ.getBalance(p.getName()))
+ChatColor.GREEN+"Gears");
lore.setLore(loreText);
hasMoney.setItemMeta(lore);
switch(getConfig().getInt(p.getName() + ".helm", 0)){
case 0:
ItemMeta lorehelm=helm.getItemMeta();//current helmet they have
helm.setType(Material.LEATHER_HELMET);
ArrayList<String> loreTextHelm=new ArrayList<String>();
lorehelm.setDisplayName(ChatColor.GOLD+""
+ChatColor.BOLD+"Helmet");
loreTextHelm.add(ChatColor.GREEN+"You have:");
loreTextHelm.add(ChatColor.GOLD+"Basic Helmet");
lorehelm.setLore(loreTextHelm);
helm.setItemMeta(lorehelm);
ItemMeta lorehelmn=nextHelm.getItemMeta();//this is next helmet to purchase
nextHelm.setType(Material.GOLD_HELMET);
ArrayList<String> loreTextHelmn=new ArrayList<String>();
lorehelm.setDisplayName(ChatColor.GOLD+""+
ChatColor.BOLD+"Helmet");
loreTextHelmn.add(ChatColor.GREEN+"Lvl 1 Helmet");
loreTextHelmn.add(ChatColor.GOLD+"50 Gears");
lorehelmn.setLore(loreTextHelmn);
nextHelm.setItemMeta(lorehelmn);
case 1:
ItemMeta lorehelm1=helm.getItemMeta();
helm.setType(Material.GOLD_HELMET);
helm.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ArrayList<String> loreTextHelm1=new ArrayList<String>();
lorehelm1.setDisplayName(ChatColor.GOLD+""+ChatColor.BOLD+"Helmet");
loreTextHelm1.add(ChatColor.GOLD+"You have: ");
loreTextHelm1.add(ChatColor.GOLD+"Lvl 1 Helmet");
lorehelm1.setLore(loreTextHelm1);
helm.setItemMeta(lorehelm1);
}
myInventory.setItem(0, helm);
myInventory.setItem(9, nextHelm);
myInventory.setItem(23, hasMoney);
p.openInventory(myInventory);
return true;}else if(sender instanceof ConsoleCommandSender){sender.sendMessage("You can't do that from here!");return true;}
else{return false;}
}//ive ended the oncommand later down
这是错误:
org.bukkit.command.CommandException: Unhandled exception executing command 'shop' in plugin Gearbox_PvP v0.1
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils.run(SourceFile:13) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_71]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_71]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_71]
**Caused by: java.lang.NullPointerException
at me.CoderBlazer.Main.onCommand(Main.java:129) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
... 15 more**
这是物品堆
static ItemStack hasMoney = new ItemStack(Material.YELLOW_FLOWER, 1);
static ItemStack helm=new ItemStack(Material.LEATHER_HELMET, 1);
static ItemStack nextHelm=new ItemStack(Material.GOLD_HELMET, 1);
阅读后您可以找到错误所在的行,我追踪到它与保险库有关。后来我发现我没有像 essentials 这样的生态插件!无论如何,感谢您的帮助,现在如果我遇到问题,我知道如何解决问题。
这段代码在我执行命令时一直出错,我已经修复了一些变量错误,但仍然没有解决。
谁能帮帮我?它是一个空指针,但我没有看到任何给出空指针的东西。谢谢!
@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command cmd,
String label, String[]args){
if(cmd.getName().equalsIgnoreCase("shop")){
if(sender instanceof Player){
Player p=(Player)sender;
//all itemstack were made at the top given static
ItemMeta lore=hasMoney.getItemMeta();//the amount of money they have set to a lore
ArrayList<String> loreText=new ArrayList<String>();
lore.setDisplayName(ChatColor.GOLD+""+ChatColor.BOLD+"Gears");
loreText.add(ChatColor.GREEN+"You have:");
loreText.add(ChatColor.GOLD
+econ.format(econ.getBalance(p.getName()))
+ChatColor.GREEN+"Gears");
lore.setLore(loreText);
hasMoney.setItemMeta(lore);
switch(getConfig().getInt(p.getName() + ".helm", 0)){
case 0:
ItemMeta lorehelm=helm.getItemMeta();//current helmet they have
helm.setType(Material.LEATHER_HELMET);
ArrayList<String> loreTextHelm=new ArrayList<String>();
lorehelm.setDisplayName(ChatColor.GOLD+""
+ChatColor.BOLD+"Helmet");
loreTextHelm.add(ChatColor.GREEN+"You have:");
loreTextHelm.add(ChatColor.GOLD+"Basic Helmet");
lorehelm.setLore(loreTextHelm);
helm.setItemMeta(lorehelm);
ItemMeta lorehelmn=nextHelm.getItemMeta();//this is next helmet to purchase
nextHelm.setType(Material.GOLD_HELMET);
ArrayList<String> loreTextHelmn=new ArrayList<String>();
lorehelm.setDisplayName(ChatColor.GOLD+""+
ChatColor.BOLD+"Helmet");
loreTextHelmn.add(ChatColor.GREEN+"Lvl 1 Helmet");
loreTextHelmn.add(ChatColor.GOLD+"50 Gears");
lorehelmn.setLore(loreTextHelmn);
nextHelm.setItemMeta(lorehelmn);
case 1:
ItemMeta lorehelm1=helm.getItemMeta();
helm.setType(Material.GOLD_HELMET);
helm.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ArrayList<String> loreTextHelm1=new ArrayList<String>();
lorehelm1.setDisplayName(ChatColor.GOLD+""+ChatColor.BOLD+"Helmet");
loreTextHelm1.add(ChatColor.GOLD+"You have: ");
loreTextHelm1.add(ChatColor.GOLD+"Lvl 1 Helmet");
lorehelm1.setLore(loreTextHelm1);
helm.setItemMeta(lorehelm1);
}
myInventory.setItem(0, helm);
myInventory.setItem(9, nextHelm);
myInventory.setItem(23, hasMoney);
p.openInventory(myInventory);
return true;}else if(sender instanceof ConsoleCommandSender){sender.sendMessage("You can't do that from here!");return true;}
else{return false;}
}//ive ended the oncommand later down
这是错误:
org.bukkit.command.CommandException: Unhandled exception executing command 'shop' in plugin Gearbox_PvP v0.1
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils.run(SourceFile:13) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_71]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_71]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_71]
**Caused by: java.lang.NullPointerException
at me.CoderBlazer.Main.onCommand(Main.java:129) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.8.8.jar:git-Spigot-db6de12-039621d]
... 15 more**
这是物品堆
static ItemStack hasMoney = new ItemStack(Material.YELLOW_FLOWER, 1);
static ItemStack helm=new ItemStack(Material.LEATHER_HELMET, 1);
static ItemStack nextHelm=new ItemStack(Material.GOLD_HELMET, 1);
阅读后您可以找到错误所在的行,我追踪到它与保险库有关。后来我发现我没有像 essentials 这样的生态插件!无论如何,感谢您的帮助,现在如果我遇到问题,我知道如何解决问题。