LoginSignup
2
3

More than 1 year has passed since last update.

ConoHa Minecraft ServerのチャットをDiscordへ

Last updated at Posted at 2020-12-17

この記事は、ConoHa Advent Calendar 2020 18日目の記事です。

はじめに

ConoHaではマインクラフトのマルチサーバーテンプレートがあり、マルチサーバーを自動構築できます。
MinecraftのチャットログをDiscordと連携できたら便利だなと思ってこの記事を書きました。

サーバーの追加など

@waxsd100 さんの ConoHa Advent Calendar 2020 4日目ConoHa Minecraft Manager を使いこなしてみた に書かれていたのでそちらをご覧ください。

spigotを導入する

sshでログインしてspigotへダウンロードします。
今回はバージョン1.16.4のものを入れています。

================================================
Welcome Minecraft Manager application!

URL                     : http://118.27.14.205:60000/
ManagerDir              : /opt/minecraft-manager/
MinecraftDir            : /opt/minecraft_server/

To delete this message: rm -f /etc/motd
================================================

cd /opt/minecraft_server/
wget https://cdn.getbukkit.org/spigot/spigot-1.16.4.jar

minecraft-server.serviceのあるディレクトリに移動してファイルを書き換えます。

cd /etc/systemd/system
vi minecraft-server.service

13行目にある(長いので先頭を省略しています。

-jar /opt/minecraft_server/minecraft_server.1.16.4.jar nogui'

-jar /opt/minecraft_server/spigot-1.14.jar nogui'

へ変更し保存し再起動します。
再起動して/opt/minecraft_server/pluginsフォルダができていれば成功です。

DiscordSRVを入れる

DiscordSRVという便利な物を見つけたのでそちらを使います。
pluginフォルダーに移動してダウンロードします。

cd /opt/minecraft_server/plugins/
wget https://github.com/DiscordSRV/DiscordSRV/releases/download/v1.20.0/DiscordSRV-Build-1.20.0.jar

マインクラフトサーバをリロードします。私はOP権限を与えてるユーザーでチャットで\reloadをしています。(Minecraftを起動しているscreenにいくより個人的に楽なので)
リロードして、DiscordSRVフォルダーができていれば成功です。
DiscordSRVの設定については他に書かれている方がいるのでこちらを参考に設定してください。
【DiscordSRV】DiscordとMinecraftでチャットができるプラグイン!| Spigot

Botが送るメッセージをカスタマイズする

DiscordSRVのmessages.ymlを書き換えることにより、メッセージ内容を変更できます。
私はDiscord通知メッセージをこのように変えてみました。

MinecraftPlayerJoinMessage:
  Enabled: true
  Webhook:
    Enable: false
    AvatarUrl: "%botavatarurl%"
    Name: "%botname%"
  Content: ""
  Embed:
    Enabled: true
    Color: "#00ff00"
    Author:
      ImageUrl: "%botavatarurl%"
      Name: "%botname%からのお知らせ"
      Url: ""
    ThumbnailUrl: "%embedavatarurl%"
    Title:
      Text: "%username%さんがサーバーに参加したよ!"
      Url: ""
    Description: ""
    Fields: []
    ImageUrl: ""
    Footer:
      Text: "%date%"
      IconUrl: ""
    Timestamp: false
#
# PlayerFirstJoinで使用可能なプレースホルダー:
# %message%:        ゲーム内で見られるメッセージに参加
#
MinecraftPlayerFirstJoinMessage:
  Enabled: true
  Webhook:
    Enable: false
    AvatarUrl: "%botavatarurl%"
    Name: "%botname%"
  Content: ""
  Embed:
    Enabled: true
    Color: "#ffd700"
    Author:
      ImageUrl: "%botavatarurl%"
      Name: "%botname% からのお知らせ"
      Url: ""
    ThumbnailUrl: "%embedavatarurl%"
    Title:
      Text: "%username%さんがサーバーに初参加!!よろしくね!"
      Url: ""
    Description: ""
    Fields: []
    ImageUrl: ""
    Footer:
      Text: ""
      IconUrl: ""
    Timestamp: false
#
# PlayerLeaveで使用可能なプレースホルダー:
# %message%:        ゲーム内のメッセージを残す
#
MinecraftPlayerLeaveMessage:
  Enabled: true
  Webhook:
    Enable: false
    AvatarUrl: "%botavatarurl%"
    Name: "%botname%"
  Content: ""
  Embed:
    Enabled: true
    Color: "#ff0000"
    Author:
      ImageUrl: "%botavatarurl%"
      Name: "%botname%からのお知らせ"
      Url: ""
    ThumbnailUrl: "%embedavatarurl%"
    Title:
      Text: "%username%さんがサーバーから退出したよ!!おつかれ!"
      Url: ""
    Description: ""
    Fields: []
    ImageUrl: ""
    Footer:
      Text: "%date%"
      IconUrl: ""
    Timestamp: false
#
# PlayerDeathで使用可能なプレースホルダー:
# %deathmessage%: 死亡メッセージ
# %world%:        プレイヤーが死亡したワールドの名前
#
MinecraftPlayerDeathMessage:
  Enabled: true
  Webhook:
    Enable: false
    AvatarUrl: "%botavatarurl%"
    Name: "%botname%"
  Content: ""
  Embed:
    Enabled: true
    Color: "#000000"
    Author:
      ImageUrl: "%botavatarurl%"
      Name: "%botname%からのお知らせ"
      Url: ""
    ThumbnailUrl: "%embedavatarurl%"
    Title:
      Text: "%deathmessage%"
      Url: ""
    Description: ""
    Fields: []
    ImageUrl: ""
    Footer:
      Text: "%date%"
      IconUrl: ""
    Timestamp: false
#
# PlayerAchievementメッセージで使用可能なプレースホルダー:
# %achievement%: メッセージ内容
# %world%:       実績を得たときにいたワールドの名前
#
MinecraftPlayerAchievementMessage:
  Enabled: true
  Webhook:
    Enable: false
    AvatarUrl: "%botavatarurl%"
    Name: "%botname%"
  Content: ""
  Embed:
    Enabled: true
    Color: "#ffd700"
    Author:
      ImageUrl: "%botavatarurl%"
      Name: "%botname%からのお知らせ"
      Url: ""
    ThumbnailUrl: "%embedavatarurl%"
    Title:
      Text: "%displayname% は進捗 %achievement% を達成したよ!"
      Url: ""
    Description: ""
    Fields: []
    ImageUrl: ""
    Footer:
      Text: "%date%"
      IconUrl: ""
    Timestamp: false

上のようにすると、このように送られてきます。
image.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3