基本上我想要做的就是讓玩家迴應一條只需要輸入數字的信息。從這一點,我可以將String解析爲一個int,並將其用於我的其餘代碼。另外,我正在嘗試使它在我的事件方法中發生。任何幫助是極大的讚賞!如何記錄玩家的迴應?
0
A
回答
0
你基本上想要做的就是把玩家存放在一個容器中,直到下一次他們說話,然後將它們移除。此,在僞代碼表示的,將如下所示的情況如下:
on your condition:
add player to collection
on player chat:
does the player exist in the collection?
yes: is input a valid number?
yes: proceed with execution, remove player from collection after
no: print error
no: ignore, let event pass
由於的Minecraft協議不允許輸入驗證,就會有這樣的情況,其中用戶可以提交非數字字符。 Integer.parseInt或其兄弟值valueOf會在這種情況下拋出異常。
爲防止內存泄漏,您應該在註銷時將其從集合中刪除。或者,您可以將它們存儲在弱參考容器中。對於這種情況來說,一個好的方法就是一個WeakSet,你可以通過Collections.newSetFromMap(new WeakHashMap())
來獲得。如果所有其他引用都被刪除,那麼弱引用會被垃圾回收,這樣可以降低內存泄漏的風險。
0
你應該看看bukkit會話API。這是爲了做到這一點。你可以在網上找到教程,但基本上要設置它,你這樣做。
構建與ConversationFactory
ConversationFactory HudConvo = new ConversationFactory(plugin) .withModality(true) .withEscapeSequence("exit") .withFirstPrompt(new HudConversationMain(plugin, player, 0)) .withLocalEcho(false); Conversation conversation = HudConvo.buildConversation((Conversable) player);
會話開始的會話
conversation.begin();
使所述第一提示作爲一類,要麼延伸輸入類型的提示的一個(即StringPrompt)或實現提示抽象類。
填寫方法getPromptText()和acceptInput()。 getPromptText()構造要顯示給播放器的消息,acceptInput()取得播放器輸入的內容並用新的提示對其作出反應。
我希望這對我有所幫助。如果您有問題,請隨時提問。
相關問題
- 1. 我該如何編寫GUI-玩家分數的「歷史記錄」?
- 2. 2D網格上的各種「玩家」,玩家應該如何參考網格?
- 3. 玩家傳送來回
- 4. 最好的方式來記錄玩家的方向
- 5. JWPlayer 5 - 如何在玩家
- 6. 我如何檢查玩家1或玩家2是否贏了?
- 7. Gamecenter Matchmaking - 如何區分玩家1和玩家2?
- 8. 如何玩/ /記錄聲音從javax.sound.sampled.Line中
- 9. jQuery jPlayer - 如何在玩一個新玩家前停止所有玩家?
- 10. 當任何玩家發帖時,向每個玩家返回個人信息
- 11. 玩家類中需要玩家對象
- 12. 尋找與其他玩家出場兩次玩過的玩家
- 13. 隨機數猜測遊戲 - 玩家記錄
- 14. 如何從MyPlayerActivity添加選定的玩家,並將這些玩家添加到MainActivity Map中作爲標記?
- 15. 如何創建一個循環回上一位玩家的第一個玩家的函數?
- 16. 如何返回玩家選擇的插槽
- 17. 如何隱藏玩家的輸入
- 18. 我如何追蹤玩家的勝利?
- 19. OO Javascript遊戲,如何添加玩家遊戲的玩家數組?
- 20. 玩家配置
- 21. PostgreSQL在玩家
- 22. 周圍玩家
- 23. 計算玩家
- 24. 在玩家
- 25. MPMovie玩家如何獲得玩過的時間量?
- 26. 如何在沒有玩家的情況下玩閃光燈?
- 27. 兩個玩家回合制遊戲android
- 28. 將玩家的UUID替換爲玩家的名字
- 29. 我如何將玩家放在地形上?玩家在地形下方下滑
- 30. 如何從玩家1轉到玩家2並保持代碼DRY
如果您需要幫助,請發佈一些代碼。 – Tyler