运行时有错报,错报如下:
[08:19:18] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ExpSword v0.1
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:87) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:553) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:466) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:585) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityLiving.d(EntityLiving.java:1107) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:743) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityMonster.damageEntity(EntityMonster.java:42) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityHuman.attack(EntityHuman.java:1002) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityPlayer.attack(EntityPlayer.java:1086) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1358) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:52) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:11) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [mc.jar:git-PaperSpigot-e489049-07c3001]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_202]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_202]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:772) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:711) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:614) [mc.jar:git-PaperSpigot-e489049-07c3001]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_202]
Caused by: java.lang.NullPointerException
at com.Main.damage(Main.java:70) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_202]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[mc.jar:git-PaperSpigot-e489049-07c3001]
... 24 more
错报发生原因:使用原版物品攻击生物发生错报
主要指令如下
@EventHandler
public void damage(EntityDamageByEntityEvent e) {
Entity p = e.getDamager();
if (p instanceof Player) {
ItemStack hand = ((Player) p).getItemInHand();
List<String> loreList = hand.getItemMeta().getLore();
for (String a:loreList){
if(((Player) p) != null && a.contains(lo)){
//运行
}
[08:19:18] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ExpSword v0.1
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:87) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:553) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:466) [mc.jar:git-PaperSpigot-e489049-07c3001]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:585) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityLiving.d(EntityLiving.java:1107) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:743) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityMonster.damageEntity(EntityMonster.java:42) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityHuman.attack(EntityHuman.java:1002) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.EntityPlayer.attack(EntityPlayer.java:1086) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1358) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:52) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:11) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [mc.jar:git-PaperSpigot-e489049-07c3001]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_202]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_202]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:772) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:711) [mc.jar:git-PaperSpigot-e489049-07c3001]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:614) [mc.jar:git-PaperSpigot-e489049-07c3001]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_202]
Caused by: java.lang.NullPointerException
at com.Main.damage(Main.java:70) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_202]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[mc.jar:git-PaperSpigot-e489049-07c3001]
... 24 more
错报发生原因:使用原版物品攻击生物发生错报
主要指令如下
@EventHandler
public void damage(EntityDamageByEntityEvent e) {
Entity p = e.getDamager();
if (p instanceof Player) {
ItemStack hand = ((Player) p).getItemInHand();
List<String> loreList = hand.getItemMeta().getLore();
for (String a:loreList){
if(((Player) p) != null && a.contains(lo)){
//运行
}
本帖最后由 1378495772 于 2020-5-21 09:15 编辑
你需要 hasLore 看看它有木有 lores
Caused by: java.lang.NullPointerException
你需要 hasLore 看看它有木有 lores
要判断手上有没有物品的。
也就是判断手上物品的种类是不是空气
复制代码
然后再取物品,再判断有没有lore
复制代码
也就是判断手上物品的种类是不是空气
- if(((Player)p).getItemInHand().getType().equals(Material.AIR))return;
然后再取物品,再判断有没有lore
- if(!item.getItemMeta().hasLore())return;
1378495772 发表于 2020-5-21 09:14
你需要 hasLore 看看它有木有 lores
已经成功了不过我使用的是判断玩家手持物品是否有lore
haslore我试了好久不出来,请教一下haslore在这里应该怎么用
看不懂!!!!!!!!!!!!
847696260 发表于 2020-5-21 09:53
已经成功了不过我使用的是判断玩家手持物品是否有lore
haslore我试了好久不出来,请教一下haslore在这里 ...
你是直接hasLore的吧
要先getItemMeta