言語
Anvil · Discord読了目安 7 分

Discord での Anvil

ボットはひとつ、招待もひとつ、登録するアプリケーションはありません。これは何を投稿し、どこに投稿し、あなたのサーバーで何を変えられるのか——そして止まった日にどこを見るか、の話です。

ボットひとつ 共有、作るものなし約5分 招待から最初の投稿まで任意 行き先を指すまで各フィードはオフ
この日本語訳はまだネイティブによる確認を受けていません。おかしな文があれば、英語版のページ が原文です —— そして知らせていただくことが、それを直す唯一の方法です。
ステップ 1

ボットはひとつ、すでに用意済み

#

作成する Discord アプリケーションも、生成するトークンも、貼り付けるシークレットもありません。Anvil はすべてのクランが共有するボットをひとつ動かしているので、つなぐというのは招待するだけのことです。

自分のボットを持ち込むこともできます——Use your own bot instead (advanced) の下にトークンを貼れば、そちらが使われます。メンバー一覧でボットにクランの名前とアイコンを持たせたい場合にだけ意味があります。このガイドの内容はどちらでも同じように動きます。

チャンネルを見る、メッセージを送信、埋め込みリンク、ファイルを添付基本です。これがないと、サーバーにいて黙っているだけになります。
ウェブフックの管理Set it up for me と Post here が代わりに Webhook を作れるようにするためです。そうでなければ、あなたが Discord から URL を手でコピーすることになります。また、削除すべき古い Webhook を Anvil が見つけるためにも使います。
ロールの管理ロール同期をオンにする場合だけ。そうすると対応付けたロールを配れます——そして自分より上のロールには決して触れません。これは Discord の規則で、こちらの都合ではありません。
ニックネームの管理ニックネーム同期をオンにする場合だけ。メンバーのサーバーニックネームを RSN に設定できるようにします。
チャンネルの管理ドラフト中のチームごとの非公開チャンネル、そして新しいカテゴリーやフォーラムとして投稿する攻略に使います。なくても他の機能は動きます。
スレッドの管理、スレッドでメッセージを送信フォーラムに投稿する攻略のため:投稿内に書き込み、あとで投稿を削除するのに必要です。これがないと、Discord はボット自身のフォーラム投稿でさえ削除させません。
ニックネームの変更Connection → Bot appearance in your server でボットにクランの名前を付ける場合のみ。変わるのはあなたのサーバー内でのボットの名前だけです。
すべてを一度にまとめて要求します
Discord にはあとから権限を求める手段がないので、招待リンクは一式をまとめて要求し、あなたが有効にしない機能はその権限を一度も使いません。招待リンクを開き直すのは、誰かが外した権限を直す方法でもあります。
ステップ 2

つなぐ

#

順番に二つ。ボットがあなたのサーバーにいること、そして Anvil がどのサーバーがあなたのものかを知っていること。

ボットを招待するAdmin → Discord → Connect your Discord server(または Add Anvil to Discord)。Discord がどのサーバーに Anvil を追加するか尋ね、ここへ戻してくれるので、うっかり別のサーバーに追加することはありません。あとから使う Invite / re-invite the bot は More settings → Connection にあります。
サーバー ID を設定するボタンでうまくいかない場合のみ:Can’t use the button? Enter the server ID を開き、Discord でサーバーアイコンを右クリック → サーバーIDをコピー(Discord 自身の設定の「詳細設定」で開発者モードをオンにする必要があります)、それを Your Discord server’s ID に貼って Save を押します。この項目こそが、接続をあなた固有のものにします。

そのあとパネルは、あなたの意図ではなく事実を伝えます:ボットが本当にそのサーバーのメンバーなのか、そしてどの権限が足りないのか。そこに緑の行が出ていることは、保存されたフォームより価値があります。

サーバー ID が結びつきのすべてです
Anvil ではサーバーはちょうどひとつのクランに属し、誰も紐付けていないサーバーからのスラッシュコマンドは推測されず拒否されます。設定するまで、ボットは招待されたまま何もしません。
ステップ 3

Webhook の設定

#

Anvil は Webhook を通じて投稿します。チャンネルごとにひとつで、そのすべてが任意です。フィードをチャンネルに向けるまで、どこにも何も投稿されません——できたてのクランが静かなのは、事故ではなく設計です。

Anvil のボットがサーバーにいれば、Admin → Discord 上部の Set it up for me がチャンネルを作り、すべてのフィードをそこへ向けます。手作業でやるなら More settings → What goes where を開き、まず Clan & events の Catch-all channel、次に In-game (plugin) の In-game catch-all を設定します:ドロップダウンからチャンネルを選べば保存されます。ボットなしなら Discord でそのチャンネルの チャンネルの編集 → 連携サービス → ウェブフック を開いて作成し、URL をコピーして、ドロップダウンで Paste a webhook… を選び、貼って Save を押します。Webhook URL はチャンネルへ投稿できるため、パスワード同様に扱ってください。漏れたら Discord で削除し、作り直します。Test と、投稿量が多いときに 2 本の Webhook を交互に使う Add another は Post without a bot にあります。

キャッチオール チャンネルメインのチャンネルです。Clan & events タブにあります。イベントの開始と終了、参加受付の開始、順位表、週間結果など、専用のチャンネルがないサイトの投稿がすべて届きます。これだけ設定すれば、クランとして動作します。
ゲーム内のキャッチオールIn-game (plugin) タブにあります。専用のチャンネルがないゲーム内の投稿がここに届きます。次に設定してください。
マイルストーンなどIn-game (plugin) タブにあります。スレイヤー、クルー、スピードラン、討伐数、BA ギャンブル、カスタムのチャットメッセージは、プレイヤーがオンにするとここに投稿されます。Filters ボタンでは、クランがメンバーに初期設定で与える内容を決められます。プレイヤー自身のテンプレートや非公開の種類は Settings, page by page にあります。
分割フィードイベントの投稿、共同運営するボード、Skill & boss of the week、クランのカレンダーのイベントは、キャッチオールから分けられます。レアドロップ、ペット、コレクションログ、レベル、戦闘実績、クエスト、日記、死亡、PvP キルは、ゲーム内のキャッチオールから分けられます。ロスターの変更、参加承認、クランの金庫の台帳は Staff only に置かれます。空の分割フィードは、そのキャッチオールを使います。金庫は例外で、空の場合はお金が一切投稿されません。Leagues など他のモードには、専用の Game modes タブがあります。
まず死亡を分けてください
たいていのボードで死亡は最も量の多いフィードであり、他のすべてを埋めてしまうものです。ひとつだけ分けるなら、これを分けてください。
ステップ 4

Leagues、Deadman などのモード

#

Leagues、Deadman、hardcore などのモードは、独自のワールドと独自のキャラクターで動きます。その投稿には必ずラベルが付き、ボードや大会には一切カウントされません。専用のタブがあります: Admin → Discord → What goes where → Game modes。メンバーが初めてそのモードをプレイすると、そこに表示されます。

各モードにはスイッチと To チャンネルがあります。Send game-mode posts to their own channels をオンにすると、それらのチャンネルが使われます。オフのままだと、すべてのモードは通常のチャンネルに投稿され、ラベルは付きます。モードの行にある Posts ボタンで、そのモードが送るすべての種類(通常のものとモード独自のイベント)が表示され、それぞれに個別のスイッチがあります。

そのリストの下の Custom thresholds で、モードをメインゲームより少ない投稿に設定できます。Post drops rarer than 1 in…(2以上)と Post drops worth at least (gp)(1,000以上)で独自の下限を設定します(空欄ならメインゲームと同じ)。その後 Save drop thresholds を押してください。常に投稿されるアイテムは引き続き投稿されますが、価値だけで判断されるドロップは投稿されません。Use its own level milestones は、両方のルールに当てはまる場合にのみレベルアップを投稿します。

厳しくはなっても、緩くはならない
モードのフィルターは投稿を減らすことしかできません。メインゲームの設定はプラグインがすでに適用しているので、モードのフィルターで投稿を復活させることはできません。
ステップ 5

他のプラグインやボットからの古い Webhook

#

ボットがサーバーにいれば、Discord ページには Anvil のものではない Webhook がすべて並びます。Coming from other plugins? には Use the same channels があり、これを使うと Set it up for me が古いフィードと同じ場所に投稿するので、メンバーにとっては何も変わりません。

メンバーが Anvil に移ったら Remove old webhooks from other plugins を開き、消すものにチェックを入れて Remove … webhooks を押し、続けて Yes, remove them を押します。これで Discord から完全に削除されます——元には戻せません。

この一覧には、他のプラグインのものに限らず、Anvil のものではない Webhook がすべて入ります。別のボットのフィードなど、残したいものがある? Keep を押せば一覧から外れます。Show kept と Put back で戻せます。Keep はここで隠すだけです——Discord では何も変わりません。

「ウェブフックの管理」権限が必要
ボットはサーバーの Webhook を読んで見つけます。ボットのロールに ウェブフックの管理 権限がないと、ページには見えないと表示されます。
ステップ 6

ロールとニックネーム

#

二つの同期は Admin → Discord → Roles & nicknames で有効にするまでオフで、どちらも名簿をもとに動きます。Enable Discord role sync をオンにし、Auto-match in-game rank → Discord role by name はオンのままにして、必要なら共通の Member roles と Guest roles を選び、保存してから Sync roles & nicknames now を押します。各人には Discord アカウントの連携も必要です。解決できなかった人は同期レポートに名前が出ます。

ロール同期ゲーム内のランクを Discord のロールに対応付けると、Anvil が両者を揃え続けます。メンバー、ゲスト、キャプテン、進行中のイベント向けの単独ロールもあるので、手作業でリストを保守せずに正しい相手をメンションできます。
ニックネーム同期メンバーのサーバーニックネームを RSN に設定します。既定では空のニックネームを埋めるだけですが、本人が付けたニックネームを上書きするよう指示することもできます——これは後ではなく先に考えておく設定です。
ボットのロールは管理対象より上にある必要があります
Discord はどのボットにも、自分と同格か上のロールに触れることを許しません。しかもあなたの側からは黙って拒否されます——同期がただ何もしないのです。サーバー設定 → ロール で Anvil のロールを上へドラッグすれば動き出します。再招待は要りません。
ステップ 7

スラッシュコマンド

#

ボットはあなたのサーバーで /bingo(ボード、順位、ルール、自分のカード)に加え、/sotw、/stats、/coffer といったクランコマンドにも応答します。どれもサイトの最新の状態を読むので、自分の位置を確かめるのに Discord を離れる必要はありません。すべてのコマンドとそのオプションは専用のページにまとめてあります。

ボットが参加してから一分ほどで現れます。まったく現れない場合、その招待はボットは許可したのにコマンドは許可しなかったということです——これは別々の権限で、古い招待リンクは片方しか求めていませんでした。Discord ページの Connection にある Invite / re-invite the bot をもう一度実行してください。ボットが追い出されることも、何かがリセットされることもありません。

相手それぞれの言語で答えます
既定では、ボットはそのメンバーが Discord に設定している言語で答え、英語にフォールバックします。ボットの言語 で単一の言語を選べば全員に対して上書きできます——Discord にはアラビア語のクライアント言語がなく検出できないため、これがアラビア語にする唯一の方法でもあります。
ステップ 8

何を、いつ投稿するか

#

出どころは二つで、何かがおかしく見えるときはどちらなのかを知っておくと役立ちます。

サイト はイベントを投稿します:ボードの公開、参加登録、開始、順位、結果。これらは Anvil 自身から出るので、誰かがプラグインを持っているかどうかに関係なく動きます。

プラグイン はゲーム内で起きたことを投稿します:ドロップ、ペット、死亡、レベル、コレクションログの枠、コンバットアチーブメント。これらはプラグインを動かしているメンバーにしか存在しないので、ドロップのチャンネルが静かなのはたいてい Webhook の故障ではなくプラグインが静かなだけです。

二重に投稿されることはありません
マスを埋めたドロップは一件の投稿です。プラグインから一件、ボードからもう一件、ではありません。
ステップ 9

ドロップのしきい値

#

Anvil は 1m gp または 1 in 1,000 から始まります。どちらか一方を満たすとドロップが投稿されます。誰もこれより低い数値は設定できず、0 にすると無効になります。

クランの初期設定は Admin → Discord → What goes where → Drops で設定します: Default minimum drop value (gp)、Default: post drops rarer than 1 in…、Require both。Require both をオンにすると、ドロップは価値 and 希少性を満たす必要があります。

各キャラクターは、所属するクランの初期設定に従い、クランがない場合は Anvil の初期設定に従います。プレイヤーは Settings で自分の数値を選べます。Using clan default か Custom が表示され、Reset で元に戻ります。

Hard floor: never post drops more common than 1 in… は厳格な制限です。メンバーはクランのチャンネルでこれより緩くできません。ただし、個人の webhook では可能です。

プレイヤー側の詳細
プレイヤー自身の数値、テンプレート、webhook は Settings, page by page にあります。
ステップ 10

混雑するチャンネル用の追加 webhook

#

1つの webhook が送れる速度には限りがあります。大きなイベントでは、同じチャンネルに webhook を追加してください。Busy channel? Let the bot add … more webhooks(Manage Webhooks 権限が必要)を押すか、チャンネルの入力欄に複数の webhook リンクを貼り付けます。Anvil は、50人以上のプレイヤーがいる場合、1分あたりの投稿が多い場合、または Discord が最近 “slow down” と言った場合に、追加を提案します。10個までで十分です。

Anvil は webhook を順番に使います。ある webhook に Discord が “slow down” と言ったら、その webhook は少し休み、次の webhook が投稿します。削除されたり動かなくなったりした webhook は、10分間スキップされます。1つでも動く webhook がある限り、投稿は続きます。

すべて同じチャンネルを指している必要があります。違う場合は Anvil が警告します。1つを確認するには Test、取り除くには Stop posting here を使います。

同じチャンネル、同じ投稿
webhook を増やしても、同じ投稿が二重になることはありません。作業を分担するだけです。同じ考え方が、上の Drop thresholds と、管理者側の Running the event にもあります。
ステップ 11

Discord に投稿する

#

管理者は、管理メニューの Clan の下にある Post to Discord からボットとして投稿できます。Channel を選び、Message を書いて Send message を押します。ルールブックのような長い文章は、自動で複数のメッセージに分けられます。

Send as an embed は既定でオンで、任意の Title と Accent colour を追加できます。プレーンテキストにするならオフにします。Ping ではメンションするロール(または @everyone)を選べ、Anvil は送信前に確認します。

送った投稿はすべて Sent from here に並びます。Edit は再度メンションせずに Discord 上の投稿を書き換え、Delete は削除します。

管理者のみ・ボットが必要
Anvil のボットとして投稿するので、先にサーバーを接続してください。モデレーターには表示されません。Clan settings → Features の Post to Discord スイッチで切り替えられ、オフにするとメニューから消えます。
ステップ 12

静かになったとき

#

順番に。それぞれが次の可能性を消していくからです:

ボットは本当にサーバーにいますか?Discord ページの Connection がそのまま答えます。「トークンは有効」と「あなたのサーバーにいる」は別の事実で、前者は後者を意味しません——共有ボットではトークンは常に有効です。
サーバー ID は合っていますか?間違っているが実在する ID は、正しいものとまったく同じに見えます。投稿がよそへ行っていると気づくまでは。
Webhook はまだありますか?Discord のチャンネルを削除するとその Webhook も消え、Anvil には死んだ URL が残ります。What goes where でチャンネルを選び直してください。
ボットのロールは十分に上ですか?ロール同期とニックネーム同期にだけ関係します——上記参照。黙って失敗するのはこれです。
参加した人を迎えることはできません
Discord は参加を gateway 接続でしか通知せず、共有ボットはすべてのサーバーに対してその接続を保持しません。ですから「ようこそ」の投稿はありません——代わりに参加登録リンクを #ロール や #はじめに のチャンネルに置いてください。どのみち人が見に行くのはそこです。

ここにあるものはすべて Admin → Discord にあります:上部にクイックセットアップ、その下に More settings——Connection、What goes where、Event posts、Roles & nicknames、Team channels、Commands、Post without a bot。

行き詰まった、または何かおかしい? Anvilサポートの Discord で質問する