向玩家施放 class 的问题

Problems with casting a class to a player

当我 运行 遇到问题时,我正在开发一个 bungeecord 插件。 当我 运行 遇到问题时,我正在处理这个 API 。 要获取 PlayerParty 对象,我需要使用此方法

PartyManager.getInstance().getParty()

但是它需要一个 OnlinePAFPlayer,所以我尝试了这个:

OnlinePAFPlayer player = (OnlinePAFPlayer) sender;
PartyManager.getInstance().getParty(player)

但这没有用,我得到了这个例外:

java.lang.ClassCastException: net.md_5.bungee.UserConnection cannot be cast to de.simonsator.partyandfriends.api.pafplayers.OnlinePAFPlayer

关于如何解决这个问题有什么想法吗?

你的异常原因是class OnlinePAFPlayer 没有从UserConnection 扩展而来或者API 中给出了转换方法,这是你的类型sender-对象。

要获得 PAFPlayer,您可以使用 PAFPlayerManager.getInstance().getPlayer("Notch")。如果玩家在线,您可以将其投射到 OnlinePAFPlayer。或者,您可以将 ProxiedPlayer-objects 转换为 OnlinePAFPlayer's,类似于上面的方法。

我建议您先尝试将 sender-object 转换为 ProxiedPlayer,然后使用上述方法转换它:)