電卓
電卓機能は、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^2 や A+B のように未知の文字を含む式、^_^ のような顔文字、COVID-19、5% のような入力は検出されません。
整数だけを - や / で空白なしにつないだ入力(2024/01/01、2024-12、9/11、2020-2024、090-1234-5678)は、日付・分数・電話番号と機械的に区別できないため、一律に検出しません。これらを計算させたいときは、次のいずれかで明示してください。
- 空白を入れる(
10 / 4、2020 - 2024) - 小数やほかの演算子を混ぜる(
1.5/2、2*3/4) - 先頭に
=を付ける(equalsモードの場合) /calcコマンドを使う
リアクション起動では、数式の計算に成功したときだけ確認用のリアクションが付きます。
既定値
自動検出で検出されたメッセージは、/calc と同じ扱いで評価されます。主な既定値は次のとおりです。
| 項目 | 既定 |
|---|---|
| 自動検出モード | none(無効) |
affix の接頭辞 | calc |
affix の接尾辞 | 空 |
| リアクション起動 | オフ |
| 起動絵文字 | 🧮 |
| 自動検出のクールダウン | 5 秒 |
| 入力の最大長 | 200 文字 |
うまくいかないとき
- 自動検出が反応しない: 「機能の有効化」と自動検出モードを確認してください。
affixモードでは、設定した接頭辞・接尾辞で囲まれていないメッセージは検出されません。日付や電話番号と見分けが付かない入力も検出されません(自動検出される入力・されない入力)。 - 一部のメッセージだけ計算されない: クールダウン中に送られた数式と、入力の最大長を超えた数式は自動検出の対象になりません(既定値)。
- 計算が止まる・結果が途中で切れる: 負荷の高い計算は評価がタイムアウトし、長い出力は途中で省略されます。
次のステップ / 関連ページ
- コマンドの権限設定 — コマンドごとの権限の考え方
- Bot の作成と設定の基本 — 機能の有効化と保存の流れ
最終更新: