我正在尝试用 java 8 制作一个 minecraft 插件,如果你被玩家杀死,你会掉落你的战利品,但如果你被暴徒杀死,你会保留它
I am trying to make a minecraft plugin with java 8 where if you get killed by an player, you drop your loot but if you get killed by a mob you keep it
enter image description here
有代码,但问题是第 14 行不起作用,我似乎找不到其他人这样做
首先,我假设您正在制作 spigot 插件。
而不是playerDead.getKiller()
,而是使用playerDead.getKiller().getType()
。
为避免此类简单问题,请了解类型在 java 中的工作原理,并阅读 java 文档。
这很可能是类型的问题:如果您熟悉 Java,您应该知道 MCEntity
(在 Tabnine 中找到的用法示例)是无法与类型 EntityType
.
相媲美
因此,您将不得不使用一种方法来获取 MCEntity
的 Type
(我在此上下文中指的 Type
是 MC 类型,例如, PLAYER
, 不是 Java-type).
此方法存在于 MCEntity
上,是 MCEntity.getType()
,它将 return 给你杀手的 MC-Type
。所以你需要代码:
public void onPlayerDead(PlayerDeathEvent event) {
Player playerDead = event.getEntity();
// Now check for the Type of the Killer with the getType()-method
if (playerDead.getKiller().getType() == EntityType.PLAYER) {
event.setKeepInventory(false);
}
}
如果您还有其他问题,请随时提出,但这个问题很难回答,因为您只提供了一张代码图片。请看一下如何 format code with markdown.
此外,编辑器中的行有一条红线。这表明您的代码中存在错误。提出这个问题,如果您能在将鼠标悬停在红线上时向我们提供显示的确切错误消息,那就太好了。这在调试(尤其是其他人的)代码时很有帮助!
enter image description here
有代码,但问题是第 14 行不起作用,我似乎找不到其他人这样做
首先,我假设您正在制作 spigot 插件。
而不是playerDead.getKiller()
,而是使用playerDead.getKiller().getType()
。
为避免此类简单问题,请了解类型在 java 中的工作原理,并阅读 java 文档。
这很可能是类型的问题:如果您熟悉 Java,您应该知道 MCEntity
(在 Tabnine 中找到的用法示例)是无法与类型 EntityType
.
因此,您将不得不使用一种方法来获取 MCEntity
的 Type
(我在此上下文中指的 Type
是 MC 类型,例如, PLAYER
, 不是 Java-type).
此方法存在于 MCEntity
上,是 MCEntity.getType()
,它将 return 给你杀手的 MC-Type
。所以你需要代码:
public void onPlayerDead(PlayerDeathEvent event) {
Player playerDead = event.getEntity();
// Now check for the Type of the Killer with the getType()-method
if (playerDead.getKiller().getType() == EntityType.PLAYER) {
event.setKeepInventory(false);
}
}
如果您还有其他问题,请随时提出,但这个问题很难回答,因为您只提供了一张代码图片。请看一下如何 format code with markdown.
此外,编辑器中的行有一条红线。这表明您的代码中存在错误。提出这个问题,如果您能在将鼠标悬停在红线上时向我们提供显示的确切错误消息,那就太好了。这在调试(尤其是其他人的)代码时很有帮助!