Discord のスラッシュコマンド /roll で、ダイス式を評価して結果を返す Bot です。
/rollコマンドでダイス式を計算- 四則演算と括弧に対応
d演算子でダイスロールに対応(例:2d6)- 指定サーバー(Guild)向けにコマンド同期
以下の演算子を利用できます。
- 加算:
+ - 減算:
- - 乗算:
*または× - 除算:
/または÷ - ダイス:
dまたはD(例:3d8) - 括弧:
()
優先順位は次の通りです。
- 括弧
*,×,/,÷,d,D+,-
注意:
- 数値は整数を想定しています。
- 不正な文字や不正な式はエラーメッセージで通知されます。
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .uv を使う場合:
uv venv
source .venv/bin/activate
uv syncプロジェクトルートに .env を作成し、以下を設定してください。
TOKEN=your_discord_bot_token
SERVER_ID=123456789012345678TOKEN: Discord Bot トークンSERVER_ID: コマンドを同期する Discord サーバー ID
source .venv/bin/activate
python iacta.pyuv を使う場合:
uv run python iacta.py起動後、標準出力に get on ready! が表示されれば接続完了です。
Discord で以下のように実行します。
/roll 式:2d6+3
レスポンス例:
ユーザー名::`2d6+3` > `((2 d 6) + 3)` > `10`
.
├── iacta.py # エントリーポイント
├── cogs/
│ └── roll.py # /roll コマンド実装
├── modules/
│ └── myast.py # 式のトークナイズ・構文解析・評価
└── pyproject.toml # 依存関係などの設定