Bot 機能(モジュール)

電卓

電卓機能は、Discord 上で数式を計算できる /calc コマンドを提供する機能です。コマンドで数式を入力して結果を受け取れるほか、メッセージの自動検出やリアクションでの起動にも対応しています。コマンドの有効状態や権限、自動検出の動作などをダッシュボードから設定できます。

できること

  • /calc コマンドで数式を計算し、結果を受け取れます。
  • メッセージの内容から数式を自動検出して計算する動作を、いくつかのモードから選べます。
  • メッセージに付いた特定の**リアクション(絵文字)**をきっかけに計算を起動できます。
  • /calc コマンドの有効/無効と権限を設定できます。

設定の手順

機能を有効化する

電卓機能の設定ページを開き、ページ上部にある「機能の有効化」のスイッチをオンにします。このスイッチがオフのままだと、以下で設定した内容は反映されません。

コマンドの有効状態と権限を設定する

「コマンド設定」のブロックで、/calc の有効/無効を切り替え、必要に応じて権限を設定します。

項目説明
「コマンドを有効化」このコマンド自体を利用可能にします。
「個別権限設定を有効化」オンにすると BotShade 独自の権限設定を使い、オフのときは通常の Discord 権限判定を使います。
「Discord権限より個別設定を優先」個別権限設定を、Discord 側の既存権限よりも優先して適用します(取り扱いに注意が必要な設定です)。

権限設定の詳しい考え方は コマンドの権限設定 を参照してください。

自動検出モードを選ぶ

「メッセージ自動検出」のブロックで、メッセージから数式を検出する方法を選びます。モードは次の 4 つです。

モード動作
none自動検出を行いません(無効)。
equals先頭が = のメッセージ(=1+2)を検出し、= に続く部分を計算します。
bare数式だけで構成されたメッセージを検出します。
affix設定した接頭辞・接尾辞で囲まれたメッセージを検出します。

affix モードを選んだときだけ、「接頭辞」「接尾辞」の入力欄が表示されます。

自動検出の細かい挙動を調整する

「制限」のブロックで、自動検出による計算の連続実行を抑える「クールダウン(秒)」(0 で無制限)と、自動検出で処理する数式の「最大入力文字数」を調整できます(既定値は既定値を参照)。

リアクション起動を設定する

特定の絵文字が付いたときに計算を起動したい場合は、「リアクション起動」を有効にします(既定はオフ)。起動に使う絵文字は既定で 🧮 です。計算結果は、リアクションが付いたメッセージのスレッドなどに返されます。

保存する

画面下部の保存バーから「保存」します。保存操作の詳細はモジュールの基本と共通操作をご覧ください。

コマンド一覧

電卓機能が Bot に追加するコマンドは次のとおりです。

/calc <expression>

expression(数式)を計算して結果を返します。たとえば 2*(3+4)sqrt(2)sin(pi/2) のような数式を入力できます。

  • 計算の評価は約 2 秒でタイムアウトします(暴走防止のための仕組みです)。
  • 出力が長い場合は、約 1900 文字で省略されます。

利用できる関数・定数

数式では、次の関数と定数を利用できます。

種類利用できるもの
基本abs, ceil, floor, round
三角関数sin, cos, tan, asin, acos, atan
べき・指数・対数sqrt, cbrt, exp, log, log10
双曲線関数sinh, cosh, tanh
定数pi, e

自動検出される入力・されない入力

自動検出(とくに bare モード)とリアクション起動は、実際に数式として解釈できる入力だけを対象にします。x^2A+B のように未知の文字を含む式、^_^ のような顔文字、COVID-195% のような入力は検出されません。

整数だけを -/ で空白なしにつないだ入力(2024/01/012024-129/112020-2024090-1234-5678)は、日付・分数・電話番号と機械的に区別できないため、一律に検出しません。これらを計算させたいときは、次のいずれかで明示してください。

  • 空白を入れる(10 / 42020 - 2024)
  • 小数やほかの演算子を混ぜる(1.5/22*3/4)
  • 先頭に = を付ける(equals モードの場合)
  • /calc コマンドを使う

リアクション起動では、数式の計算に成功したときだけ確認用のリアクションが付きます。

既定値

自動検出で検出されたメッセージは、/calc と同じ扱いで評価されます。主な既定値は次のとおりです。

項目既定
自動検出モードnone(無効)
affix の接頭辞calc
affix の接尾辞
リアクション起動オフ
起動絵文字🧮
自動検出のクールダウン5 秒
入力の最大長200 文字

うまくいかないとき

  • 自動検出が反応しない: 「機能の有効化」と自動検出モードを確認してください。affix モードでは、設定した接頭辞・接尾辞で囲まれていないメッセージは検出されません。日付や電話番号と見分けが付かない入力も検出されません(自動検出される入力・されない入力)。
  • 一部のメッセージだけ計算されない: クールダウン中に送られた数式と、入力の最大長を超えた数式は自動検出の対象になりません(既定値)。
  • 計算が止まる・結果が途中で切れる: 負荷の高い計算は評価がタイムアウトし、長い出力は途中で省略されます。

次のステップ / 関連ページ

最終更新:

目次