言語: English | 日本語
Minecraft Java Edition(Bedrock Edition/統合版非対応)のゲーム内チャットとDiscordのチャットを同期するシステムです。どちらか片方でメッセージを送信するともう片方にもリアルタイムで同じメッセージが送信されます。MinecraftのプレイヤーとDiscordのユーザーとのチャットをよりシームレスなものにします。
-
ゲーム内で発生した出来事をDiscordにも送信します。
- サーバー起動
- プレイヤー参加
- ゲーム内のチャット
- 進捗達成
- プレイヤー死亡
- プレイヤー退出
- サーバー閉鎖
-
Discordのチャットをゲーム内にも送信します。
- 送信者名はそのサーバーでの表示名になります。
- ユーザーのロールカラーを反映します(ゲームバージョン1.16以降)
- Discordの文字装飾を解釈してゲーム内でも文字装飾を行います。
- ネタバレタグ(
||ネタバレ||
)はゲーム内では難読化テキストになります。テキストにマウスカーソルを当てることでネタバレの内容を見ることができます。 - URL(
http(s)://~
)はゲーム内ではクリックすることでそのURLを開くことができます。
- ネタバレタグ(
- メッセージに添付ファイルがある場合はその添付ファイルも表示します。ファイル名をクリックするとその添付ファイルを見ることができます。
-
スラッシュコマンド(Discordのコマンド)に対応しています。
- 「/list」で現在サーバーに接続しているプレイヤーの一覧を取得します(ゲームの「/list」コマンドと同義です)。
-
追加のmodやプラグインのインストールが一切必要なく、バニラやmodサーバーに対してそのまま使用することができます。
-
ゲームが対応している言語であれば、簡単にシステムに適用させることができます。
- 初期状態では英語と日本語のデータが用意されています。
- 詳細はこちらをご覧下さい。
この情報は2023年6月現在の情報です。将来に仕様変更されている可能性があります。
ボットを作成するにはDiscordのアカウントが必要です。もしアカウントを所有していな場合はアカウントを作成して下さい。既にアカウントを所有している場合はそのアカウントで問題ありません。
- Discord開発者ポータルアクセスします。
- 右上の「New Application」をクリックします。
- サイドバーの「Bot」をクリックします。
- 「Add Bot」をクリックしてボットを作成します。確認メッセージが表示されるので続行します。緑色の枠で「A wild bot has appeared!」というメッセージが表示されればボットが作成されたことになります。
- 「Build-A-Bot」セクションでボットの名前やアイコンを設定します。
- トークンから「copy」をクリックしてトークンをメモ帳などに控えておきます。
- トークンは機密情報です。絶対に第三者に漏洩しないように管理して下さい。
- 万が一トークンの漏洩が疑われた場合は、速やかにトークンの再発行を行って下さい。
- 「Privileged Gateway Intents」から「MESSAGE CONTENT INTENT」をオンにします。
- 変更内容を保存します。
- サイドバーの「OAuth2」→「URL Generator」をクリックします。
- 「SCOPES」の欄の「bot」にチェックを入れ、ページ最下部のURLにアクセスします。
- ボットを追加したいサーバーを選択して、認証をします。
- サーバーにボットが追加されます。
- ゲームサーバーの設定ファイル(
server.properties
)を開きます。 - Rconの関する項目を以下のように設定します。
項目 | 値 | 備考 |
---|---|---|
enable-rcon | true | |
rcon.port | 25575 | デフォルトの値が不都合の場合は別の値を設定して下さい。 |
rcon.password | <任意の文字列> | 第三者に推測されにくいパスワードにして下さい。 |
- Node.jsv20.2.0をインストールします。
これ以降のパッケージのインストール方法は2種類あります。
- 以下のようにディレクトリを作成します。
Server/
├ MinecraftDiscordChatSync/ ← このフォルダを作る
├ server.jar ← サーバー実行ファイル
├ server.properties
└ ...
- ターミナルを開きます。
- 2.で作成したディレクトリをカレントディレクトリにします。
npm install @gakuto1112/minecraft-discord-chat-sync
と入力してパッケージをインストールします。
- このレポジトリをダウンロード又はクローンして下さい。
- レポジトリのトップページの右上にある緑色の「<> Code」ボタン → 「Download ZIP」からダウンロード出来ます。
- ダウンロード/クローンしたパッケージを下の例を参考に配置して下さい。
Server/
├ MinecraftDiscordChatSync/ ← このフォルダを作る
│ ├ .github/
│ │ └ ...
│ ├ src/
│ │ ├ MinecraftDiscordChatSync.ts
│ │ └ ...
│ ├ .gitignore
| ├ package-lock.json
| ├ package-lock.json
| └ tsconfig.json
├ server.jar ← サーバー実行ファイル
├ server.properties
└ ...
- ターミナルを開きます。
- カレントディレクトリを
.../MinecraftDiscordChatSync/
にします。 npm install
と入力し、依存モジュールをインストールします。npm run build
と入力し、コンパイル済みソースコードを生成します。
- ターミナルを開きます。
- カレントディレクトリを
.../MinecraftDiscordChatSync/
にします。 npx minecraft-discord-chat-sync
(3-Aを用いた場合)又はnpm start
(3-Bを用いた場合)と入力し、システムを起動します。- 初回起動時はシステム設定ファイル(
config.json
)が生成され、そのまま終了します。 - こちらを参考にシステムの設定を完了して下さい。
- 再び3.を実行してシステムを起動します。設定に問題がなければ、ボットにログインします。
Succeeded to login as "<bot_name>#0000".
と表示されれば正常にログイン出来ています。- 設定に問題があればその旨が指摘されます。修正の上、システムを再起動して下さい。
システム起動時にオプションを指定出来ます。
ts-node MinecraftDiscordChatSync.ts <オプション1> <オプション2> ...
オプション | 説明 |
---|---|
-c | ログに色を付けて見やすくします。ログをファイルに出力する場合の使用は推奨されません。 |
-d | デバッグログを出力し、より詳細なログを出力します。 |
-r | システム起動時にRconに接続します。サーバー起動後にシステム起動する場合に指定して下さい。 |
システム初回起動時にシステム設定ファイル(config.json
)が生成されます。生成後は以下を参考にシステム設定を行って下さい。
項目 | 説明 | 初期値 | 有効な設定値 |
---|---|---|---|
pathToLog | ゲームサーバーのログファイルまでの相対パス | ../../logs/latest.log | string(「.log」で終了すること) |
logCharCode | ログファイルの文字コード。Windowsの日本語環境の場合は「shift-jis」に設定するとよい。 | utf-8 | string(サポートされている文字コード) |
logInterval | ログの差分を確認する時間間隔(ミリ秒単位)。値を小さくするとログの変更への反応が機敏になるが、システムへの負荷が増大する。 | 100 | number |
locale | システムの使用言語 | en_us | string(ゲームの言語コードと同じ) |
token | ボットのトークン | string | |
listenChannels | システムがDiscordからのメッセージを検出するチャンネルのIDの一覧 | [] | string[] |
sendChannels | システムがDiscordにメッセージを送信するチャンネルのIDの一覧 | [] | string[] |
rConPort | Rconのポート番号 | 25575 | number(0 - 65535) |
rConPassword | Rconのパスワード | string | |
plugins.discord_message.use_legacy_format | Discordのメッセージをゲームに送信する時に、古いコマンドフォーマットを使用するかどうか。ゲームバージョンが1.16以上の場合はfalse 、1.15.x以前の場合はtrue にして下さい。 |
false | boolean |
- Discordの設定から「詳細設定」→「開発者モード」をオンにします。
- サーバーのチャンネル一覧からチャンネルを右クリックして「チャンネルIDをコピー」をクリックします。
./locales
にシステムで使用する言語データが保存されています。初期状態では英語と日本語のみが用意されていますが、ゲームが対応している言語であればそこからデータを抽出して言語データを作成することが出来ます。
- ターミナルを開きます。
- カレントディレクトリを
.../MinecraftDiscordChatSync/
にします。 npx generate-locale
(3-Aを用いた場合)又はnpm run generate_locale
(3-Bを用いた場合)と入力し、ツールを起動します。- 指示に従って必要な情報を入力すると言語データが生成されます。
.../MinecraftDiscordChatSync/locales/<言語コード>/<言語コード>.tsv
はシステムが直接使用する言語データです。これを開いて各項目を翻訳して下さい。
[注意]
- 言語データを作成するにはゲームをインストールして一度起動する必要があります。
- 言語データ生成ツールはバニラ用です。modの翻訳を追加したい場合は手動で追加する必要があります。