リソース

/

リリースノート

新機能

v2.5.2 リリースノート

固定メッセージとメッセージスクリーンショットの 2 機能を新設し、レベリングの画像を一新しました。あわせて BotShader AI から Bot の設定を直接変更できるようになり、カスタムコマンドのエラー処理 (errorHandler) が実際に動作するようになりました。機能の ON / OFF が再起動なしで反映される修正、Bot ページの表示高速化、権限・秘密情報に関するセキュリティ修正も含みます。

BotShade 開発チーム
BotShade 開発チーム

|

11 分で読めます

|

公開日: 2026年8月2日

BotShade を v2.5.2 に更新いたしました。本リリースの主な内容は、固定メッセージとメッセージスクリーンショットの 2 つの機能の新設と、レベリングの画像の一新です。また、BotShader AI から Bot の設定を変更できるようにし、カスタムコマンドのエラー処理を実装しました。あわせて、機能の ON / OFF が再起動しないと反映されなかった問題と、権限・秘密情報に関わるセキュリティ上の問題も修正しています。

お気づきの点があれば、サポート からお気軽にご報告ください。

本記事で扱う内容は次のとおりです。

ハイライト

  • 固定メッセージ を新設いたしました。ルールや募集要項などのメッセージを、チャンネルの常に一番下に置き続けられます。誰かの発言でメッセージが流れても、Bot が自動で貼り直します。
  • メッセージスクリーンショット を新設いたしました。選んだ範囲の会話を、Discord の画面そのままの見た目で 1 枚の画像にできます。名前とアイコンを伏せる「情報を隠す」にも対応しています。
  • レベリングの画像 を描画基盤から作り直しました。ランクカード・リーダーボード・レベルアップ通知の 3 種すべてがなめらかで見やすい仕上がりになり、表示名やタイトルの絵文字も正しく表示されるようになりました。
  • BotShader AI から Bot の設定を変更できるようになりました。「デイリーボーナスを 250 にして」とお伝えいただくと、AI が変更内容をカードで提示し、ご承認いただいてから反映いたします。
  • カスタムコマンドの エラーハンドラー が実際に動作するようになりました。あわせて、どのコマンドの何が失敗したのかをログで確認できるようになりました。
  • ダッシュボードで機能を有効にしても、Bot を再起動するまで反映されなかった問題を修正いたしました。
  • DM 経由での権限チェックのすり抜けなど、セキュリティ上の問題 を修正いたしました。カスタムコマンドで環境変数をご利用の方は セキュリティに関する修正 をご確認ください。

固定メッセージ — 大切なお知らせをチャンネルの一番下に置き続けます

ルールや募集の締め切り、参加方法のように、チャンネルに常に表示しておきたいメッセージも、会話が進むとすぐに上へ流れてしまいます。Discord のピン留めは上部の一覧に入るだけなので、画面を見ている方の目には入りません。

固定メッセージ は、指定したメッセージを常にチャンネルの最下部に置き続ける機能です。誰かが発言して固定メッセージが最下部でなくなると、Bot が自動的に貼り直します。

使い方

Discord 上で /sticky-message [チャンネル] を実行すると設定パネルが開きます。パネルでは次の操作ができます。

  • 本文の編集: 固定するメッセージの本文を編集します
  • Embed の編集: ウェルカムメッセージなどと共通のエディタを使えます
  • 停止 / 有効化: 設定を残したまま一時的に止められます
  • 固定の解除: 設定ごと削除します
  • このサーバーの一覧: 固定中のチャンネルを一覧で確認し、そのまま各設定へ移動できます

貼り直しの動作について

貼り直しは 10 秒に 1 回までに制限しています。

  • 静かなチャンネルでは、発言の直後にすぐ貼り直されます。
  • 会話が活発なチャンネルでは、10 秒ごとにまとめて貼り直されます。発言のたびに貼り直すとチャンネルが固定メッセージで埋まってしまうためです。
  • 会話が落ち着いた直後にも 1 回貼り直すため、貼り直し漏れは起きません。

なお、Discord にはメッセージを移動する仕組みがないため、「最下部に固定」は、前の固定メッセージを消して貼り直す形で実現しています。そのため、固定メッセージは一度消えてから貼られるように見えます。

ダッシュボードの「固定メッセージ」ページでは、機能全体の ON / OFF とコマンドの権限設定を行えます。固定する内容そのものはチャンネル単位のため、Discord のパネルからご設定ください。

メッセージスクリーンショット — 会話を 1 枚の画像に

盛り上がった会話や決定事項のやり取り、後で見返したい説明を共有するには、これまでリンクを貼るか、ご自身の端末でスクリーンショットを撮って加工する必要がありました。

メッセージスクリーンショット は、選んだ範囲の会話を、Discord の画面そのままの見た目で 1 枚の画像にする機能です。

範囲の選び方

Discord には「長押しして範囲選択」する操作がないため、コンテキストメニューを 2 回実行して範囲を選ぶ方式にしました。

  1. 範囲の始まりのメッセージを右クリック (スマートフォンでは長押し) し、「アプリ」から スクショ範囲を選択 を実行します。開始点を記録したことを知らせるメッセージが、ご自身にだけ表示されます。
  2. 範囲の終わりのメッセージで同じ操作を実行すると、その範囲の画像が生成されます。

開始点は 5 分で失効します。通知に付いているキャンセルボタンから、いつでも取り消せます。

生成後の操作

画像が生成されたあと、ボタンから 2 つの操作を行えます。

  • 情報を隠す: 表示名を「メンバー A」「メンバー B」…に、アイコンを無地の円に差し替えます。ロール色・ロールアイコン・サーバー名・チャンネル名・チャンネル ID も一緒に伏せます。同じ方には常に同じラベルと同じ色が割り当てられるため、誰と誰のやり取りなのかという関係は保たれます。本文は加工しません。
  • テーマの切り替え: ダーク / ライトを切り替えられます。

再現される要素

画像では、次の要素について Discord の見た目をそのまま再現します。ロール色の付いた表示名、ロールアイコン、Bot の「アプリ」バッジ、連続投稿のヘッダー省略、返信のプレビュー、太字・下線・打ち消し線・インラインコード・コードブロック、メンションとリンクの着色、絵文字 (サーバー独自の絵文字を含む)、添付画像のプレビュー、「(編集済み)」の表示です。

制限事項

  • 実行する方と Bot の双方が、対象チャンネルを閲覧できる必要があります。具体的には、チャンネルを見る権限とメッセージ履歴を読む権限が必要です。
  • スポイラーの添付ファイルは、中身を開かず、ファイル名だけを表示します。
  • 添付画像は 6 枚まで、1 枚あたり 5 MB までを画像に含めます。
  • 1 枚あたりのメッセージ数には上限があります。上限はダッシュボードから 1〜50 件の範囲で設定でき、既定は控えめな値です。上限を超えた分は「以降は省略」として畳まれます。

ダッシュボードの「メッセージスクリーンショット」ページでは、実行者のみに表示するかどうか、初期テーマ、1 枚あたりのメッセージ数上限と、コンテキストメニューの権限を設定できます。

レベリングの画像を一新しました

ランクカード・リーダーボード・レベルアップ通知の 3 種類を、描画の仕組みから作り直しました。

  • 輪郭がなめらかになりました: 円・進捗バー・角丸のふちのギザギザを解消し、解像度も 2 倍にしました。
  • 絵文字が表示されるようになりました: これまでは、表示名やタイトルに含まれる絵文字が何も表示されずに消えていました (既定のタイトルにある 🏆 も同様です)。今後はサーバー独自の絵文字を含め、正しく描画されます。
  • ランクカード: 背景の巨大な数字が名前や進捗バーと重なっていたため、この数字を、進捗のリングが付いたレベルのメダリオンに置き換えました。
  • リーダーボード: 各行を独立したカードにし、上位 3 名にはメダルとメダル色のふちを付けました。表彰台のデザインも作り直しています。
  • レベルアップ通知: グラデーションの見出し、お祝いの演出、レベルの推移表示を加えました。
  • 透かしが本文に重なる問題を解消しました。

生成の速度とファイルサイズも改善しました。ランクカードは生成時間が約 1/5、ファイルサイズが約 1/3 になっています。

BotShader AI が Bot の設定を変更できるようになりました

これまで BotShader AI は Bot の設定について「どこをどう変えればよいか」を案内するだけで、実際の変更はお客様ご自身が画面上で行う必要がありました。v2.5.2 からは、AI が設定の変更そのものを提案し、お客様が承認すればその場で反映できます。

流れ

  1. Bot の設定画面を開いた状態で AI パネルを開き、「デイリーボーナスを 250 にして」「レベルアップ通知を送るチャンネルを #general にして」のようにお伝えください。
  2. AI が変更内容をカードで提示します。項目ごとに「変更前 → 変更後」と、その理由が表示されます。
  3. 内容をご確認のうえ [適用する] を押すと、設定画面の入力欄に反映されます。この時点ではまだ保存されていません。 いつもどおり画面下部の保存バーから保存してください。
  4. 提案が気に入らない場合は [破棄] で取り消せます。

AI が勝手に保存することはありません。「AI の提案を適用する」と「保存する」の 2 段階で、内容を確認できます。

安全のための制限

  • 権限の設定は AI から変更できません。 コマンドの許可ロールや権限の上書きなど、権限に関わる項目はすべて対象外です。
  • 存在しない設定項目を作ってしまうことがないよう、変更できる項目はあらかじめ列挙した一覧に限定しています。対象外の項目が提案に含まれていた場合は、その項目だけが棄却され、理由が表示されます。
  • 機能を停止する方向の変更 (機能自体を OFF にするなど) が含まれる場合は、カードに警告を表示します。重要なモジュールの場合は赤く強調します。

あわせて改善した点

  • Bot のページを開いている間は、その Bot が常に AI の対象になります。これまでは 2 通目以降、毎回 Bot を指定し直す必要がありました。
  • AI が設定について話すとき、economy.dailyBonus のような内部のキー名ではなく、画面に表示されている項目名 (「デイリーボーナス額」) で伝えるようにしました。
  • 変更カードは、既定で 1 行に畳まれるようになりました。変更が数件あるだけで会話が画面外へ押し出される問題を解消しています。畳んだ状態でも警告と [適用する] / [破棄] は表示されます。閉じるボタンもいつでもご利用いただけます。
  • AI パネルの履歴から開いた会話を、パネル内でそのまま続けられるようになりました。これまでは会話を選ぶたびにパネルが閉じ、全画面へ移動していました。

カスタムコマンドのエラー処理が動作するようになりました

コマンドビルダーには以前からエラーハンドラー (errorHandler) のノードがありました。しかし Bot 側が対応しておらず、実際にエラーが起きても既定の文言「コマンドの実行中にエラーが発生しました。」が出るだけでした。v2.5.2 から、このノードが実際に動作します。

  • コマンドの実行中に発生したエラーを捕捉し、エラーハンドラーに繋いだ処理を実行します。
  • ハンドラーの中では、{Error.message} (エラーの内容)、{Error.detail} (詳細)、{Error.block} (発生した場所)、{Error.type} (エラーの種別) を使えます。「お客様向けには丁寧な案内を出しつつ、管理チャンネルには詳細を送る」といった構成を組めます。
  • {Error.type} は条件分岐の比較にも使えます。基準値に {Error.type} を指定すると、種別の候補が入力補助に表示されます。
  • 関数の中に置いたエラーハンドラーは、エラーをその関数の中で処理し、正常終了として扱います。関数側にハンドラーがない場合、エラーは呼び出し元のハンドラーへ伝わります。
  • エラーハンドラーには専用の実行時間 (既定 15 秒) を確保しているため、コマンド本体が時間を使い切っていてもハンドラーは動作します。
  • エラーハンドラーの表示を実行者のみに見せる設定が、正しく反映されるようになりました。

エラーが追えるようになりました

エラーハンドラーで捕捉されなかったエラーについても、ログから原因を追えるようになりました。

  • ログの詳細に「カスタムコマンド」カードを追加しました。カードには、エラーの種別、捕捉されなかった理由 (ハンドラー未設定 / ハンドラーの先が未接続 / ハンドラー自体が失敗)、発生したブロック、ノード ID が表示されます。
  • カードから、コマンドビルダーの該当ノードへ直接移動できます。
  • エラーの種別が判別できる場合は、Discord 側に表示される文言も、その種別に沿った内容になります (例: 「関数が削除されていないか確認してください」)。
  • ログに表示される秘密情報 (環境変数の値など) は自動的に伏せられます。

機能の ON / OFF が再起動なしで反映されます

ダッシュボードで機能を有効にしても、Bot を再起動するまでその機能のコマンドが Discord 上に一切出てこない問題を修正いたしました。

これまで Bot は起動時にしか機能を読み込んでいませんでした。そのため稼働中に設定を変えても、反映されるのは読み込み済みの機能に対するコマンド単位の ON / OFF だけでした。v2.5.2 では、設定を保存した時点で機能の読み込みと停止まで反映します。Bot の再起動は不要です。

ログ画面の改善

  • 正常に終了したコマンドが「実行に失敗しました」と表示される不具合を修正いたしました。カスタムコマンドの実行ログは開始 / 完了 / 失敗の 3 段階を記録しますが、状態に関わらず失敗の文言が出ていました。
  • ログの表示カテゴリを 29 種類に細分化しました。これまでは大半が「機能」にまとめられていました。フィルタにも「カテゴリ」を追加しています。
  • カテゴリのタグは共通の落ち着いた表示に統一し、色は状態 (成功 / 失敗など) を表すためだけに使うようにしました。
  • ログ表の列幅を整理し、見出しと行のずれを解消しました。

Bot ページの表示を高速化しました

  • Bot の情報をセッション中はキャッシュするようにしました。これまでは Bot のページを離れて戻るたびに 4 種類の情報を取得し直し、その間ページ全体が読み込み表示になっていました。今後は、短時間での行き来では取得が発生しません。未保存の編集がある場合は、入力内容を保護するため、裏側での再取得を行いません。
  • 読み込み中もナビゲーションバーを表示するようにしました。これまでは読み込み中に画面全体がスピナーだけになり、他のページへ移動する手段も消えていました。
  • サイドバーの開閉アニメーションを廃止しました。開閉のたびにページ全体が 0.3 秒ほど揺れて待たされていたため、開閉がすぐに反映されるようにしています。
  • 「近日登場」のモジュールをナビゲーションから非表示にしました。まだご利用いただけない 9 件 (Webhook / 招待追跡 / SNS 通知 / VALORANT ショップ / APEX 情報表示 / フォートナイト情報表示 / 検索 / 翻訳 / 天気) が一覧を埋めていて、実際に使える機能が探しにくくなっていたためです。提供開始時に改めて掲載します。

セキュリティに関する修正

内部の点検で見つかった問題を修正いたしました。いずれも修正済みで、追加のお手続きは不要ですが、カスタムコマンドで環境変数をご利用の方は、以下の 1 点目をご確認ください。

  • カスタムコマンドから環境変数が読み出せる問題を修正いたしました。 メッセージの文面を組み立てる処理に、利用者の入力を変数の参照として再解釈してしまう経路がございました。コマンドのオプションに変数の書き方をそのまま入力することで、そのコマンドが参照している環境変数の値が出力されうる状態でした。念のため、カスタムコマンドの環境変数に API キー等の秘密情報を保存されている場合は、キーの再発行をご検討ください。
  • DM で権限の設定がすり抜ける問題を修正いたしました。 コマンドの許可ロールや必要権限を設定していても、Bot に DM を送る場合には評価されておりませんでした。DM の実行者は「ロールもサーバー権限も持たない利用者」として、サーバー内と同じ規約で判定するようにいたしました。制限を設定していないコマンドはこれまでどおり DM でもご利用いただけます。
  • API リクエストのリダイレクト先を毎回検証 するようにいたしました。「API リクエスト」ノードの接続先の制限は最初の URL にしか適用されておらず、リダイレクトで内部ネットワークへ誘導されうる状態でした。あわせて、リダイレクト先が別のホストの場合は認証情報を送らないようにしています (リクエストヘッダに入れた API キーが転送先へ渡ってしまう問題の修正です)。
  • 中断中のコマンドの保存データから秘密情報を除去 するようにいたしました。入力待ちなどで一時保存されるデータに、環境変数の値や API 応答が平文で残りうる状態でした。
  • @everyone のメンションと、ログへの認証情報の出力を塞ぎました。
  • Bot が同時に 2 か所で起動しうる問題を修正いたしました。内部の排他制御で、他の実行環境が保持している状態を誤って解除しうる箇所がございました。

修正された不具合

カスタムコマンド / コマンドビルダー

  • コマンドと同名のコマンドグループがある状態で保存すると、そのグループが置き換わり、配下のコマンドが失われる 不具合を修正いたしました。重複の検査にグループが含まれていなかったことが原因です。
  • コマンドの移動・グループ名の変更・コマンド名の変更 を 1 回の処理にまとめました。従来は変更後に削除を行っており、途中で失敗するとコマンドの重複や消失が起きうる状態でした。
  • 存在しないコマンドを URL から開いたときに、空白の画面になっていたのを改善いたしました。取得に失敗した場合は「コマンドがない」場合と区別し、再試行の導線を表示いたします。

プロジェクト

  • Bot が残っているプロジェクトを削除できないようにいたしました。削除ボタンを無効化し、対象の Bot と対処方法を表示いたします。

Bot

  • リマインダーが配信されないことがある 不具合を修正いたしました。データベースとの接続が特定のタイミングで切れると、配信予定のリマインダーが取りこぼされ、繰り返しの予定もそこで途切れておりました。
  • /metrics に Bot ごとの指標を出力するようにし、内部の計測が正しい Bot に紐づかないことがあった問題を修正いたしました。API の応答時間も実測値で記録されます。

UI

  • 起動・停止などの確認モーダルが 画面の上に偏って表示される 不具合を修正いたしました。再発を防ぐためのテストも追加しております。
  • モジュールのカードが、上部の「機能の有効化」トグルより 8px 狭く表示されていたのを揃えました。
  • モジュールの見出しで、アイコンとタイトルが上下中央に揃っていなかったのを修正いたしました。
  • デンジャーゾーン (削除などの操作) の表示を、サイト全体のスタイルに合わせて整理いたしました。
  • メッセージスクリーンショットを「娯楽」から「メッセージ」カテゴリへ移動いたしました。

互換性について

これまでご利用いただいていた Bot やコマンドの定義は、v2.5.2 でもそのまま動作いたします。お客様側での移行作業は不要です。

新設の 固定メッセージ と メッセージスクリーンショット は、既存の Bot では OFF の状態で追加されます。ご利用の際はダッシュボードの各ページから有効化してください。

DM でのコマンド実行につきましては、セキュリティに関する修正 に記載のとおり、許可ロールや必要権限を設定しているコマンドは DM から実行できなくなります。これまで DM での実行を前提に運用されていた場合はご注意ください。制限を設定していないコマンドはこれまでどおりご利用いただけます。

サポート・コミュニティ

ご質問・不具合のご報告・機能のご要望は、以下のいずれかからお気軽にお寄せください。

今後とも BotShade をどうぞよろしくお願い申し上げます。