哈囉大家好,這裡是最近一直遇到問題的小編過路君子
一波未平一波又起,一會兒服務出問題、一會兒虛擬機出問題、再一會兒網路出問題......
今天小編在使用 JDA 5.0 的時候,因為需要呼叫到 TextChannel 這一個類別。
想當然爾,就是找到相關的 javadoc 頁面之後並依照相關的指示 import net.dv8tion.jda.api.entities.channel.concrete.TextChannel。
但竟然吃到了以下的錯誤:
[ERROR] /home/user/discordBot/src/main/java/xxx.java:[12,53] package net.dv8tion.jda.api.entities.channel.concrete does not exist
其了怪了,小編緊接著檢查自己的 pom.xml 配置(部分):
<dependency> <groupId>net.dv8tion</groupId> <artifactId>JDA</artifactId> <version>5.0.0-alpha.20</version> </dependency>
確認是使用 JDA 5.0 而非 JDA 4.0。
那怎麼會報這樣的錯誤,小編實在是百思不得其解,javadoc 這個網站應該不會騙人才對。
後來發現是小編自己的 pom.xml 忘記寫 repository 來源了,補上並刪除原本在 m2 內的檔案之後就正常了。
<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories> <dependencies> <dependency> <groupId>net.dv8tion</groupId> <artifactId>JDA</artifactId> <version>5.0.0-alpha.20</version> </dependency> </dependencies>
記得要將原本 m2 內的檔案刪除!
在更新完成 pom.xml 之後,小編反而吃到另一種錯誤,以下:
[ERROR] /home/user/discordBot/src/main/java/xxx.java:[5,36] cannot find symbol
[ERROR] symbol: class TextChannel
[ERROR] location: package net.dv8tion.jda.api.entities
[ERROR] symbol: class TextChannel
[ERROR] location: package net.dv8tion.jda.api.entities
這剛好就是 JDA 4.0 和 JDA 5.0 的差別,不少的類別被重新歸類到不同的地方。
以 TextChannel 來說,就是從 net.dv8tion.jda.api.entities 下被改至了 net.dv8tion.jda.api.entities.channel.concrete下。
後記
雖然目前 JDA 5.0 仍然是 alpha 的階段,但小編還是決定挑戰看看,直接用 JDA 5.0 來更新自己的 discord 機器人。
這算是小編的 discord 機器人三年來的一次大更新,之前就很想更新了,只是一直犯懶,現在總算是抓到時間了呢~
一直有在關注小編的話,應該知道小編舊的 discord 機器人是用什麼語言寫的吧!