#java #minecraft #bungeecord
#java #Minecraft #bungeecord
Вопрос:
Я работал над плагином bungeecord, когда столкнулся с проблемой. Я работал с этим API, когда столкнулся с проблемой. Чтобы получить объект PlayerParty, мне нужно использовать этот метод
PartyManager.getInstance().getParty()
Но он принимает OnlinePAFPlayer, поэтому я попробовал это:
OnlinePAFPlayer player = (OnlinePAFPlayer) sender;
PartyManager.getInstance().getParty(player)
Но это не сработало, и я получил это исключение:
java.lang.ClassCastException: net.md_5.bungee.Пользовательское соединение не может быть приведено к de.simonsator.partyandfriends.api.pafplayers.OnlinePAFPlayer
Есть идеи, как это исправить?
Комментарии:
1. Ну, повторяя то, что говорится в сообщении об ошибке, a
UserConnection
(который является типом вашейsender
переменной) не может быть приведен к anOnlinePAFPlayer
. Вы не можете просто изменить любой объект на любой другой объект, откуда компилятор может знать, как это сделать? Должен быть способ получить правильную инициализациюOnlinePAFPlayer
в этом API. Я предлагаю прочитать документацию по этому API.
Ответ №1:
Причина вашего исключения заключается в том, что класс OnlinePAFPlayer не распространяется на UserConnection
или что в API указан метод преобразования, который является типом вашего sender
-object .
Чтобы получить PAFPlayer
, вы можете использовать PAFPlayerManager.getInstance().getPlayer("Notch")
. Если игрок находится в Сети, вы можете привести его к OnlinePAFPlayer
. В качестве альтернативы вы можете преобразовать ProxiedPlayer
-objects в OnlinePAFPlayer
‘s , аналогично описанному выше методу.
Я бы посоветовал вам сначала попытаться преобразовать ваш sender
-object в ProxiedPlayer, а затем преобразовать его, используя метод, упомянутый выше 🙂