Minecraft DiscordSRV | 教學 – 飯糰 Blog
Minecraft DiscordSRV | 教學

使用此插件前,請先完成架設機器人

前置

1. 一個 Minecraft 安裝插件的伺服器 (Spigot/Paper/Bukkit皆可)
2. 插件本體 (取得連結)
我知道,一坨英文不想看也看不懂對吧XD

這顆按鈕按下去就對了

下載完成後並開啟伺服器,讓他跑出插件資料夾 plugins/DiscordSRV

第一步,連結機器人

開啟 Discord Developers Portal 到需要使用的機器人 BOT 分頁

取得 Token: 按下 ResetYes, do it! 就會跳出一長串的 …

這串就是下面所需的 BotToken。

切換至 DiscordSRV/config.yml 找到 下方這個設定 並覆蓋 BOTTOKEN,這樣就算連結完成了。

BotToken: "BOTTOKEN"

第二步,將機器人加入伺服器

直接複製 Client ID 後可以使用 https://tools.haer0248.me/discordsrv-guild-invite 來快速加入機器人到伺服器

或 …

切換回 Discord Developer 頁面,並將分頁切換至 “OAuth” 並下拉,並在 “SCOPES” 選擇第二排中間的 “bot” 下方 “Bot Permissions” 直接勾選 “Administrator” 即可,也可以只選擇個別權限,這邊直接用管理員來進入。
上方完成後應該會長的像這樣

點選下面網址旁邊 Copy 並貼上瀏覽器後應該就會詢問你機器人要加入到哪個伺服器,當然你要有管理員權限才可以新增機器人,選擇後加入即可完成此步驟。

第三步,連結發言與控制台

開啟 plugins/DiscordSRV/config.yml 並找到

# 類型 : 用途
# global : 玩家發言、主要訊息
# awards : 進度/成就
# deaths : 死亡
# join : 加入
# leave : 離開
# dynmap : Dynmap 地圖
# watchdog : 看門狗
# status : 伺服器狀態
# 請一定要參照格式 
# 單個頻道 {"類型": "頻道 ID"}
# 多個頻道 {"類型": "頻道 ID", "類型 2": "頻道2 ID"}
Channels: {"global": "000000000000000000"}

在這些的上方有一些說明可閱讀,這邊只教學如何連結

取得頻道 ID:
開啟 Discord 設定,在 進階 中開啟 開發者模式

開啟完成後對頻道點右鍵,就可以看到複製ID (只支援文字頻道!)
將複製到的 ID 貼上到 global 與 DiscordConsoleChannelId 後面的一長串 000000 …

DiscordConsoleChannelId: "000000000000000000"

以上存檔,第三步完成,可以開啟伺服器了。

開啟伺服器,看看剛剛連結的發言文字頻道,看到這個就表示設定成功且正常囉~

FAQ

Q 開啟伺服器後機器人沒有上線。
A 請檢查位於標題列下方的【使用此插件前,請先完成架設機器人】之【BOT USER 設定說明】設定區塊。

Q 為甚麼我聊天的頻道會有 console 端的東西?
A 請檢查此文章【第三步】,兩個頻道不能設定相同。

Q 為甚麼我的聊天沒有同步?
A 請檢查 此文章【第三步】, Channels 必須為 “global”,如果你是用其他聊天插件 (TownyChat) 請查看該插件的技術文件,綁定 DiscordSRV 的時候是否為 global,否則預設就是 global。

Q 加入伺服器沒有出現加入或離開的訊息。
A 檢查該名玩家是否擁有 discordsrv.silentjoin (靜音加入) 及 discordsrv.silentquit (靜音離開) 權限點。

如果有任何問題,可以到我的 Discord 來告訴我打錯了,還是教錯了~
還真的不會,進來 Discord 我們會撥空教你一步一步弄好,祝開服順利

綁定帳號篇

我也想要有跟其他伺服器一樣使用指令綁定才可以發言!
不要緊張不要慌,先開啟你的 Discord 伺服器設定

再來開啟插件 config.yml 設定檔案,找到以下設定

MinecraftDiscordAccountLinkedRoleNameToAddUserTo: "這邊輸入玩家的身分組名稱"

注意:這樣只是綁定帳號,沒有「強制」綁定帳號,所有路人(未綁定玩家)都可以在「與 Minecraft 聊天的連結頻道聊天」
強制綁定帳號要再找到下方設定,變更為 true 即可。

DiscordChatChannelRequireLinkedAccount: false

綁定提示訊息可以變更 messages.yml 中的 …

# Discord
CodeGenerated: "&7您的驗證碼為 &e&l%code%&r&7。請發送一則私密給予 &6%botname%&7 來完成綁定 Discord 帳號。"
UnknownCode: "驗證碼無法識別,請重新使用 /discord link 來取得驗證碼。"
InvalidCode: "您確定這是您的驗證碼?驗證碼為四位數字。"
DiscordAccountLinked: "您的帳號已綁定成功 : **%name% (%uuid%)**"
DiscordAccountAlreadyLinked: "您的帳號已經綁定 : **%username% (%uuid%)**"
DiscordLinkedAccountRequired: "您嘗試發送訊息至遊戲中,但這個伺服器要求您將 Minecraft 帳號綁定至 Discord。 輸入 `/discord link` 以連結帳號。\n```%message%```"
DiscordLinkedAccountCheckFailed: "無法檢查您的帳號是否已經綁定,請稍後再試。"
# Minecraft
ClickToCopyCode: "點擊複製"
MinecraftAccountLinked: "&a您已經成功綁定 Discord 帳號 %username%!"
MinecraftAccountAlreadyLinked: "&7您的已經綁定 Discord 帳號,可以輸入 /discord unlink 來取消並重新綁定。"
LinkedCommandSuccess: "您的 Minecraft 帳號已經綁定至 %name% 。"
UnlinkCommandSuccess: "您的 Minecraft 帳號已經與 %name% 解除綁定。"
MinecraftNoLinkedAccount: "您的 Minecraft 帳號並未綁定至 Discord 帳號。"
LinkingError: "&c因為內部錯誤現在無法進行連結帳戶, 請聯繫您的伺服器管理人員。"
MinecraftNobodyFound: "&c未找到任何和 \"%target%\" 匹配的 Discord ID/名稱、Minecraft Username/UUID 。"

如果,想要讓玩家在登入伺服器前就綁定帳號,開啟 linking.yml 自己調整…

Require linked account to play:
  Enabled: false //這邊改為 true

記得要變更 config.yml 中的 DiscordInviteLink,不然會沒有邀請連結哦 …

為什麼有伺服器的玩家發言後面有機器人?我也要!!

沒問題,開啟你的 config.yml 並找到以下設定

Experiment_WebhookChatMessageDelivery: true
Experiment_WebhookChatMessageUsernameFormat: "%displayname%"
Experiment_WebhookChatMessageFormat: "%message%"
Experiment_WebhookChatMessageUsernameFromDiscord: true
Experiment_WebhookChatMessageAvatarFromDiscord: true

// 改變遊戲中粗體、刪除線、斜體

Experiment_MCDiscordReserializer_ToDiscord: true
Experiment_MCDiscordReserializer_ToMinecraft: true
Experiment_MCDiscordReserializer_InBroadcast: true

將 false 全部改為 true 就可以了,機器人要記得給予「管理 Webhooks」權限。

酷酷的顯示物品…

請搭配這兩個插件服用~
https://www.spigotmc.org/resources/75870
https://www.spigotmc.org/resources/83917

現在是一隻正在家裡工作的貓,興趣和專長大概就是打開 VSCode 亂寫東西。

感謝您的閱讀 /ᐠ .ᆺ. ᐟ\

若您對本篇文章有任何建議或回饋,歡迎點擊下方圖片加入我的 Discord 伺服器來討論!