【Minecraft】Spigot環境にDiscordSRVとLunaChatを導入する


この記事は、こういう方に向けています

LunaChatやDiscordSRVを知っていて、導入したいがやり方がわからない。
Minecraftのチャットで、ローマ字打ちしても日本語で読めるようにしたい。
Minecraftのチャットと、Discordのチャットを同期したい。

前置き

関係ない話題ではあるのですが、この記事がnoteでのはじめての記事となります。文面がおかしかったりするかもしれませんが、よろしくおねがいします。

前提・諸注意

当記事は、Windows10,11、Linux Ubuntu24.02LTSを前提に作成されています。
Windowsの場合、予めエクスプローラーの"表示"から、"ファイル名拡張子"を表示するように設定してから保存してください。
1.7.10〜1.16の場合はJava8を、1.17の場合はJava16を、1.18〜1.20.4の場合はJava17を、1.20.5以降の場合はJava21を予め導入しておいてください。説明は省きますが、「Java8 インストール Ubuntu」とか「Java21 インストール Windows」とかで検索をかければ出てくると思います。Javaは64bit版を強く推奨していますが、パソコンやそのOSが32bitの場合に限り、1.16.5までは32bitで作成できます。
当たり前ですが、自己責任となります。

Minecraft(Spigot)サーバーの導入

ダウンロード

まずは、Spigotをダウンロードします。バージョンは、1.7以降ならばどれでも大丈夫かと思います。なぜ、1.7以降なのかというと、DiscordSRVも、LunaChatも、1.7以降にしか対応していないからです。
以下のサイトからダウンロードできます。
https://getbukkit.org/download/spigot
今回は、1.20.4で構築しようと思います。
導入したいバージョンの、"Download"をクリックすると、"Spigot-バージョン.jar"というところをクリックしてください。

場所

適当な場所に、専用フォルダーを作成し、そこに先ほどダウンロードしたファイルを移動させます。今回はわかりやすいようにデスクトップに"sp1.20.4"というフォルダーを作成し、そこにぶち込みました。
諸注意ですが、クラウド(OneDrive、GoogleDrive、Dropboxなど)に該当する場所で実行すると、時々データが壊れたり、容量不足でエラーをはいてくるので、それ以外の場所を推奨します(WindowsだったらデスクトップはOneDriveがあるので、"パブリックのドキュメント"内で行うとか)。Linuxだったらデスクトップで十分かと思います。というかLinuxはデスクトップ推奨です。Macについては詳しく知らないので、省略します。
今後の作業は、基本的にそのフォルダ内で行うことを前提として説明します。

EULAへの同意

Windowsだったらメモ帳(notepad)、Linux(Ubuntu)だったらテキストエディタを起動して、

eula=true

と入力し、先程のフォルダ内に"eula.txt"というファイル名で保存します。
これが「よくわからないよ」って方は、https://www.minecraft.net/ja-jp/eulaを熟読することを推奨します。なぜならば、それに同意するという意味だからです(同意しない場合は"false"ですが、こうしてしまうと使えないので、同意しておきましょう)。

とりあえずサーバーを起動させて、サーバーを止める

Minecraftのサーバーは、基本的に、1度起動しないと必要なファイルを作成してくれません。その手順を、ここに記します。
・Windowsの場合

→Windowsの場合

再びメモ帳を起動し、今度は

@echo off
java -Xmx4096M -Xms1024M -jar spigot-1.20.4.jar nogui
pause

と入力し、"start.bat"という名前で保存します。
Xmxは最大のメモリ割当、Xmsは最小のメモリ割当で、1024M=1GBです。
個人的にはXmxを4096以上の値にすることを推奨しますが、パソコンのスペックと相談してください。
spigot-1.20.4の1.20.4の部分は、ダウンロードしたファイルに合わせておいてください。
そして、作成したbatファイルをダブルクリックすることで、起動できます。
Done (22.796s)! For help, type "help"
(22.796はサーバー起動にかかった時間)と表示されたら、起動完了です。

→Linuxの場合

端末(ターミナル)を起動し、

cd /home/ユーザー名/デスクトップ/sp1.20.4

という感じで、cdのあとに、作成したフォルダの場所を入力します。
面倒くさい場合は、cdのあとに、作成したフォルダをターミナル上にドラックアンドドロップで入力できます。
そして、Enterを押します。
この端末(ターミナル)は閉じないでください。
これはどういう動作なのかと言うと、「このフォルダーで作業をするよ!」という意味です。あまり理解しなくてもいいかもしれません。
そして、引き続き端末上で

java -Xmx4G -jar spigot-1.20.4.jar -nogui

と入力します。Xmxは、最大のメモリ使用量です。今回は4GBに、しています。spigot-1.20.4の1.20.4の部分は、ダウンロードしたファイルに合わせてください。以下省略しますので、覚えておいてください。
そして、Enterを押すことで、起動できます。
Done (22.796s)! For help, type "help"
(22.796はサーバー起動にかかった時間)と表示されたら、起動完了です。

→サーバーを止める(共通)

Windowsの場合はコマンドプロンプトで、Linuxの場合は端末で

stop

と入力し、Enterを押してください。
(Windowsの場合は、「何かキーを押してください」と表示されると思うので、そのときは何かしらのキーを押してください。Enterがベターです)
※今後サーバーを終了させる際、この方法で終了させます。覚えておいてください。

DiscordSRVとLunaChatの導入

まずは、DiscordSRV(https://www.spigotmc.org/resources/discordsrv.18494/)とLunaChat(https://www.spigotmc.org/resources/lunachat.82293/)をダウンロードし、先ほど作成しいたフォルダー内に生成されたpluginsフォルダーにぶち込んでください。
そして、再び必要なファイルを生成するために、サーバーを起動してください。
=====サーバー起動=====
※今度サーバーを起動する際、この方法で起動します。覚えておいてください。
・Windowsの場合
先ほど作成したbatファイルを起動させてください。
・Linuxの場合
端末で、

java -Xmx4G -jar spigot-1.20.4.jar -nogui

と入力します。
エラーを吐く場合、cdでもう一度場所を指定してから先程のコマンドを入力してください。
================
サーバーが起動できたことを確認します。DiscordSRVのログにまぎれて、先程のような"Done"という表示があると思うので、確認できたら、もう一度サーバーを停止させてください。

LunaChatの設定

先ほどLunaChatをぶち込んだpluginsフォルダー内に、"LunaChat"というフォルダーが生成されていると思うので、そちらを開きます。
すると、"config.yml"というファイルが生成されていると思うので、そちらを開きます。できればメモ帳やテキストエディタで開くことを推奨します。
Ctrlを押しながらFキーを押し、"japanizeType:"と入力します。これは、"japanizeType:"という文字を探している状況です。
そして"japanizeType:"に続く文字列を"GoogleIME"にします。すると

japanizeType: GoogleIME

というふうになります。元からこの場合は特に触らなくていいのですが、GoogleIMEになっていなかった場合は、このように変更して、Ctrlを押しながらSキーを押して保存した後、メモ帳やテキストエディタを閉じてください。

DiscordSRVの設定

Discordを開発者モードにする

この操作は、後でチャンネルIDのコピーだったり、ややこしいことをするのに、有効にしないといけないことです。
Discordを起動し、左下の方にある歯車マーク(ユーザー設定)を押し、詳細設定から開発者モードが有効になっていることを確認してください。緑の状態で、有効です。

Discord用にBotを作成する

Discord Developer Portal( https://discord.com/developers/applications/ )にアクセスします。そして、Discordアカウントでログインしてください。
すると、画像のようなページに飛ばされると思うので、New Applicationをクリックします。

すると、画像のような画面に切り替わるので、NAMEのところには、お好みの名前を入力してください(確か英語しか入力できなかったと思います)。
今回は"A ZHIS MINECRAFT SERVER"としますが、真似しないでくださいね。あとは、下のチェックボックスは、「利用規約に同意してね〜」みたいな感じなので、熟読してからチェックボックスにチェックを入れ、Createを押しましょう。

この辺は自由にいじってあげてください。ただし、Discordサーバーに入れる前に変更しておかないと、なぜか適応されません。

あと、変更後は忘れずにSave Changesをクリックするようにしましょう。

Botタブに移動します。

この2つを探し、有効(青い状態)にします。Save Changesも忘れずに!

一度、pluginsフォルダーに戻って、DiscordSRVというフォルダーの中の、config.ymlというファイルを開きます。
そして、先程のサイトに戻り、Reset Tokenをクリックします。そして、"Yes, do it!"を押します。そして、人によっては2段階認証が待ち構えていると思うので、それを行ったあとに、画像の場所に"Copy"というボタンが表示されるので、クリックして、ついさっき開いたconfig.ymlに移動します。

すると、

BotToken: "BOTTOKEN"

とあると思うので、大文字のBOTTOKENの部分を、先ほどコピーしたものに変更してください。Ctrl(MacはCommand)を押しながらVで貼り付けられます。ダブルクオーテーション「""」は残しておいてください。
だいぶ上の方にあるのでわかりやすいかと思います。
そして、もう一度先程のサイトに戻り、OAuth2というタブに入ります。

少し下の方に行くと、画像のような項目があるので、botとAdministratorにチェックを入れ、右下のCopyをクリックします。

そして、コピーしたリンクを、ブラウザ上で貼り付けてください。
すると、画像のようになるので、Discordサーバーを選んで「はい」を押してください。

管理者にチェックを入れ、認証を押します。

人によっては二段階認証が求められるので、それを行うと、完了の旨を伝える画面が表示されるので、そこでブラウザを閉じてもらっても構いません。
次に、Minecraftの世界とチャットを連携させたいテキストチャンネル上で、右クリックをし、"チャンネルIDをコピー"をクリックします。

config.ymlに戻り、比較的上の方に

Channels: {"global": "000000000000000000"}

とあるので、000000000000000000の部分を先程コピーしたもの(チャンネルID)に置き換えます。先ほどと同じく、ダブルクオーテーションを残ておいてください。
そして、下の方に行くと、

DisabledPluginHooks: []

とあるので、[]の中に

'LunaChat'

と入力したあと、Ctrlを押しながらSで保存してください。
これでconfig.ymlは閉じても構いません。
余談ですが、さらにちょっとだけ下に行くと、

Experiment_WebhookChatMessageDelivery: false

という項目があるので、falseをtrueに変えてあげると、使いやすくなります。trueに変えたあと、保存をしてからconfig.ymlは閉じても構いません。

プラグイン動作確認

サーバーを起動し、双方からチャットを入力してみましょう!
サーバーアドレスは

localhost

で入れます!
うまく行くと、Discord側では、

マイクラ側では、

という感じで表示されます!

IPアドレスを隠したサーバーの公開

サーバーは、他の人と遊ぶことがメジャーだと思うので、こちらを紹介します。
今回は、playit( https://playit.gg/ )というサービスを利用します。
WindowsとMacの方は、ダウンロードし、インストーラーの指示に従ってインストールしてください。
Linuxの場合は、

curl -SsL https://playit-cloud.github.io/ppa/key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/playit.gpg >/dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/playit.gpg] https://playit-cloud.github.io/ppa/data ./" | sudo tee /etc/apt/sources.list.d/playit-cloud.list
sudo apt update
sudo apt install playit

を端末で行うことにより、インストールができます。
再び、playit( playit.gg )にアクセスし、ログインを押します。アカウントがない場合は新規作成してください。
すると、このような画面にたどり着くと思うので、Tunnelsタブをクリックし、add tunnelをクリックします。(このページは、サーバーを公開するたびに利用するので、ブックマークへの登録を推奨します)

そして、Regionは(free)のものに、Tunnel TypeはTCP+UDPにしてください(TCPだけでもいいですが、Simple Voice ChatやGeyserMCを導入する際は、必ずこうしてください)。

すると、何か出てくるので、"Yes, I will not host malware"をクリックします(この画面を簡単に言うと、「悪いことをしないなら使っていいけど、どうする?」って画面で、「はい、悪いことはしません」って言ってるようなものです)

すると、同じ内容の入力が求められますので、入力した後、Port Countはそのままで、Local Portを25565に設定してください。これは、マインクラフトのデフォルトで使用されるポートです。これは後で、Minecraft側でも、playit側でも変更できるので、Simple Voice Chatなどのプラグインを使うときに役立ちます。
そして、AddTunnelをクリックして、次に進みます。
すると、こういう画面になると思うので、enable tunnel(下記画像①)をクリックします。
初回起動の際は、最初からクリックされた状態になっています。
注意:サーバーを開けるときに毎回押すようにしてください。また、サーバーを終了するときは、必ずdisenable tunnelをクリックしてください。

隠してありますが、上記画像の②は、今回のサーバーアドレスです。これを入力することによって、サーバーに参加できます。ご友人の方には、これを教えてあげてください。勿論、本人もこちらから接続できます。
そして、Windowsも多分(←Linux以外検証していない)そうですが、コマンドプロンプトや端末を起動して、

playit

と入力します。
初回起動の場合は、③の"from-key-"のあとに来る文字の入力が求められると思うので、入力してあげてください。
すると、サーバーを公開できます。
公開を停止するときは、コマンドプロンプトや端末上でCtrlを押しながらCキーを押すことで、停止できます。

必要と思われるMinecraftのコマンド

※ゲーム内から行う場合は、"/"を最初に入力する必要がある。
op プレイヤー名
→プレイイヤーに管理者権限を与える。コマンドプロンプトや端末から行うことを推奨。権限の取り上げは、deopコマンドを使用する。
stop
→サーバーを停止するコマンド。
ban プレイヤー名
→プレイヤーをアクセス禁止にするコマンド。"ban-ip"というものもあるが、こちらはプレイヤーだけでなく、同じインターネット回線を使っている人全員がアクセス禁止となる。
pardon プレイヤー名
→BANを解除するコマンド。
whitelist add プレイヤー名
→プレイヤーをホワイトリストに入れるコマンド。リストから除外する場合は、whitelist remove プレイヤー名。
whitelist on
→ホワイトリストを有効にし、ホワイトリストに登録されたプレイヤーのみがアクセスできるようにするコマンド。無効化はwhitelist off。

終わりに

今回、noteを使ったはじめての投稿を作成しました。
いかがでしょうか。わかりにくい部分もあるかとは思いますが、温かい目で見ていただければ幸いです。
最後まで熟読いただき、ありがとうございます。
これからも、よろしくおねがいします。


この記事が気に入ったらサポートをしてみませんか?