DiscordIntegrationを使って色々やってみた | Minecraft

DiscordIntegrationというForgeサーバーとDiscordサーバーでやり取りができるMod
このModのconfigをいじったりして色々してみるという記事です。

DiscordIntegrationの入れ方や初期設定方法などはこの記事には書いていないので、こちらの記事を参考にしてください。↓

riminosu13.hatenablog.com

使用するバージョンは1.12.2
他のバージョンのものとconfigの中身は一緒っぽいですが、若干違うところがあるかもしれません。

追加されたコマンドを使ってみる

/discord以降にDiscordIntegrationで追加されたコマンドがあるらしいので、tabキーで補完して確認してみました。

f:id:riminosu13:20201004193624p:plain
/discord config
/discord link
/discord online
/discord tps
/discord unlink
/discord unstuck
/discord uptime
があるみたいです。

/discord config

f:id:riminosu13:20201004193829p:plain
/discord config <load/reload/save>
このコマンドでDiscordIntegrationのコンフィグのロード、リロード、セーブが行えるみたいです。

"allowLinking"trueの状態(デフォルト)で、
"allowDMCommands"trueにし、ボットに直接「!link」というメッセージを送ります。

f:id:riminosu13:20201004202018p:plain
4桁の数字が送られてくるので、五分以内に/discord link 4桁の数字でリンクできます。
/discord unlinkでリンクを解除できます。

リンクとはMinecraftのアカウントと、Discordのアカウントを紐づけることです。

/discord online

f:id:riminosu13:20201004202718p:plain
現在、Minecraftのサーバーにいるプレイヤーを表示します。

/discord tps

f:id:riminosu13:20201004203146p:plain
ディメンションごとのTPS、全体のTPSを表示します。

/discord upstuck <ユーザー名>

f:id:riminosu13:20201004203702p:plain
指定したプレイヤーをワールドのスポーン地点にテレポートします。

/discord uptime

f:id:riminosu13:20201004203828p:plain
Minecraftサーバーが起動してからどのくらいの時間が経ったのかを表示します。

Discordからコマンド使用

Discordからコマンドを実行するにはconfigに使用するコマンドの記述が必要です。

f:id:riminosu13:20201004210310p:plain
"commands":内に

{
"name": "コマンド名",
"command": "実行コマンド",
"enabled": true
}

の形で追加します。複数追加する場合は、「,」を間に挟んでください。
「{ARGS}」はコマンドの後ろの文字列です。

「!」のあとに、コマンド名を打ちます。
「!」"commandPrefix": "!","!"を変更すれば変えられます。

!gamemodeca

f:id:riminosu13:20201004210056p:plain
f:id:riminosu13:20201004210036p:plain

!killa

f:id:riminosu13:20201004205956p:plain

!gamemode survival riminosu13
f:id:riminosu13:20201004210228p:plain
f:id:riminosu13:20201004210207p:plain

f:id:riminosu13:20201004211654p:plain
"commands": 内に

{
"name": "!",
"command": "{ARGS}",
"enabled": true
}

を追加すれば、「!! コマンド」でどんなコマンドでも実行できるようになります。

!! tp riminosu13 123 100 -123

f:id:riminosu13:20201004211619p:plain
f:id:riminosu13:20201004211427p:plain

”name”などと同じところに"permissions"を追加し以下のように記述すると、権限も設定可能です。

"permissions": [
  "role:123456789012345678",(role:DiscordのロールID)
  "role:管理者",(role:Discordのロール名)
  "user:123456789012345678",(user:DiscordのユーザーID)
  "123456789012345678"(DiscordのユーザーID)
  "user:ユーザー1#1234"(user:Discord名#タグ)
  "ユーザー1#1234"(Discord名#タグ)
]

チャットのみにしてみる

サーバーが起動したときのメッセージやプレイヤーが参加したときのメッセージなどをすべてオフにして、チャットのみを表示する設定にしてみます。

f:id:riminosu13:20201004212356p:plain
これらを書き換えます。

"ignoreFakePlayerChat": true,
"relaySayCommand": true,
"relayMeCommand": true,
"canMentionEveryone": false,
"canMentionHere": false,
"messageIgnoreRegex": ,
"relayServerStart": true,
"relayServerStop": true,
"relayServerCrash": true,
"chatPrefix": "",
"canMentionUsers": true,
"canMentionRoles": true,
"discordChannel": [チャンネルID],
"relayAchievements": true,
"relayChat": true,
"relayCommands": true,
"relayPlayerJoin": true,
"relayPlayerLeave": true,
"relayPlayerDeath": true,

"ignoreFakePlayerChat": true,
"relaySayCommand": false,
"relayMeCommand": false,
"canMentionEveryone": false,
"canMentionHere": false,
"messageIgnoreRegex":
,
"relayServerStart": false,
"relayServerStop": false,
"relayServerCrash": false,
"chatPrefix": "",
"canMentionUsers": true,
"canMentionRoles": true,
"discordChannel": [チャンネルID],
"relayAchievements": false,
"relayChat": true,
"relayCommands": false,
"relayPlayerJoin": false,
"relayPlayerLeave": false,
"relayPlayerDeath": false,

"relaySayCommands" - コマンドのメッセージ
"relayMeCommands" - コマンドのメッセージ
"relayServerStart" - サーバー起動時のメッセージ
"relayServerStop" - サーバー停止時のメッセージ
"relayServerCrash" - サーバーのクラッシュを検出したときのメッセージ
"relayAchievements" - プレイヤーが実績、進捗を達成したときのメッセージ
"relayChat" - チャットのメッセージ
"relayCommands" - コマンドのメッセージ
"relayPlayerJoin" - プレイヤーが参加した時のメッセージ
"relayPlayerLeave" - プレイヤーが退出した時のメッセージ
"relayPlayerDeath" - プレイヤーが死亡した時のメッセージ

自分で必要なものだけtrueにすればチャットだけにする以外にも色々できます。

複数のチャットチャンネルの追加

f:id:riminosu13:20201004215407p:plain

f:id:riminosu13:20201004214854p:plain
"channels"に新しいテキストチャンネルを追加します。

,
"テキストチャンネルID": {
}

f:id:riminosu13:20201004220545p:plain

"discordChannel"にテキストチャンネルのIDを入力します。

"discordChannel": [
  テキストチャンネルID,
  新しいテキストチャンネルID
],

テキストチャンネルID間には、「,」を入れてください。

f:id:riminosu13:20201004220409p:plain

ディメンションごとに分ける

f:id:riminosu13:20201004224513p:plain

下の方にある"dimensions"”-1”(ネザー)"0"(オーバーワールド)"1"(エンド)を追加し、その中にチャットのみにしてみるの時と同じような設定を記述すると、ディメンションごとに設定できます。

チャットチャンネル1ではオーバーワールドのチャット。
チャットチャンネル2ではネザーのチャット。
このように設定してみたいと思います。

f:id:riminosu13:20201004225248p:plain

"dimensions": {
  "-1": {
    "discordChannel": [
      チャットチャンネル2のID
    ]
  },
  "0": {
    "discordChannel": [
      チャットチャンネル1のID
    ]
  },

  "1": {
  }
}

"-1"(ネザー)"discordChannel": [チャットチャンネル2のID]を追加します。
"0"(オーバーワールド)"discordChannel": [チャットチャンネル1のID]を追加します。

チャットチャンネル1
f:id:riminosu13:20201004230106p:plain
f:id:riminosu13:20201004230030p:plain

チャットチャンネル2
f:id:riminosu13:20201004230322p:plain
f:id:riminosu13:20201004230450p:plain

このようにディメンションごとチャットチャンネルを分けることができます。

メッセージの変更、日本語化

f:id:riminosu13:20201004230828p:plain

config"message"の中にある
"chatMessage"- チャット
"command" - コマンド
"playerJoin" - プレイヤー参加
"playerLeave" - プレイヤー退出
"playerDeath" - プレイヤー死亡
"achievement" - 実績、進捗達成
"serverStart" - サーバー起動
"serverStop" - サーバー停止
"serverCrash" - サーバークラッシュ
これらの値を変更することによってメッセージを変更することができます。

試しに"serverStart"の値を変更してみます。

f:id:riminosu13:20201004232704p:plain

"serverStart": "Server started!",

"serverStart": "サーバーが起動しました!",

 

f:id:riminosu13:20201004233320p:plain
日本語文字化けするようです。

f:id:riminosu13:20201004233715p:plain

"serverStart": "Server started!",

"serverStart": "\u30b5\u30fc\u30d0\u30fc\u304c\u8d77\u52d5\u3057\u307e\u3057\u305f!",

f:id:riminosu13:20201004233647p:plain
日本語Unicodeに変換すれば問題ないようです。

f:id:riminosu13:20201004233923p:plain

「unicode 変換」で出てくるWebサービスを利用して変換してください。