Skip to content

ReaQwQ/tempVoice

Repository files navigation

🎙️ TempVoice Bot

Discord の一時ボイスチャンネル管理ボット。ユーザーが参加すると自動的に専用のボイスチャンネルとテキストチャンネルを作成します。

License: MIT Node.js Discord.js

🚀 クイックスタート: setup.bat を実行するだけで自動セットアップ完了!

📑 目次

✨ 主な機能

🔊 自動チャンネル作成

  • ボイスチャンネル: ジェネレーターに参加すると自動作成([User]'s ボイスチャット
  • テキストチャンネル: 同時に「聞き専」チャンネルも作成([User]'s 聞き専
  • 自動削除: 全員退出時に両チャンネルを自動削除

🎛️ 高機能コントロールパネル

基本操作

  • 🔧 名前変更 - チャンネル名を自由に変更
  • 👥 人数制限 - 0〜99人まで設定(0 = 無制限)
  • 🔒 ロック - 新規参加を制限
  • 🔓 解除 - ロックを解除して誰でも参加可能に
  • 👻 非表示 - チャンネルを他のユーザーから隠す
  • 👁️ 表示 - チャンネルを表示

詳細設定

  • 🎙️ 音質 - 8〜384kbps のビットレート設定
  • 🔊 地域 - ボイスサーバー地域選択(日本、US、ヨーロッパなど)
  • 📝 ステータス - チャンネルステータス設定
  • 🐌 低速モード - テキストチャンネルの投稿制限(秒単位)
  • 🔞 NSFW - 年齢制限モード

ユーザー管理

  • 🚫 ブロック - 特定ユーザーをチャンネルからブロック
  • 許可 - ブロックを解除
  • 👑 譲渡 - オーナー権限を他のユーザーに譲渡
  • ⏏️ 全員キック - 自分以外の全員を退出させる

その他

  • 💾 保存 - 現在の設定をデフォルトとして保存(次回作成時に適用)
  • 📋 情報 - チャンネル情報を表示
  • 🗑️ 削除 - チャンネルを手動削除

📋 必要要件

🚀 手動セットアップ

ステップ 1: Discord Bot の作成

まず、Discord Developer Portal で Bot を作成します。

1-1. Application を作成

  1. Discord Developer Portal にアクセス
  2. 右上の「New Application」ボタン をクリック
  3. アプリケーション名を入力(例: TempVoice
  4. 利用規約に同意して 「Create」 をクリック

1-2. Bot Token を取得

  1. 左サイドバーから 「Bot」 を選択
  2. 「Add Bot」「Yes, do it!」 をクリック
  3. 「TOKEN」セクション「Copy」 ボタンをクリックしてトークンをコピー
    • ⚠️ 重要: このトークンは他人に見せないでください!
    • 💡 後で .env ファイルに貼り付けます

1-3. Application ID を取得

  1. 左サイドバーから 「General Information」 を選択
  2. 「APPLICATION ID」 の下にある長い数字をコピー
    • 💡 これも後で .env ファイルに貼り付けます

1-4. 必須 Intents を有効化

  1. 左サイドバーから 「Bot」 を選択
  2. 下にスクロールして 「Privileged Gateway Intents」 セクションを探す
  3. 以下の 3つすべてON(緑色) にする:
    • PRESENCE INTENT
    • SERVER MEMBERS INTENT
    • MESSAGE CONTENT INTENT
  4. 「Save Changes」 をクリック

1-5. Bot 権限を設定して招待

  1. 左サイドバーから 「OAuth2」「URL Generator」 を選択
  2. 「SCOPES」 セクションで以下をチェック:
    • bot
    • applications.commands
  3. 「BOT PERMISSIONS」 セクションで以下をチェック:
    • Manage Channels (チャンネル管理)
    • Send Messages (メッセージ送信)
    • Embed Links (埋め込みリンク)
    • Read Message History (メッセージ履歴閲覧)
    • Use External Emojis (外部絵文字使用)
    • Add Reactions (リアクション追加)
    • Connect (接続)
    • Speak (発言)
    • Move Members (メンバー移動)
  4. 一番下の 「GENERATED URL」 をコピー
  5. そのURLをブラウザに貼り付けてアクセス
  6. Bot を招待したいサーバーを選択して 「認証」 をクリック

ステップ 2: セットアップ実行

  1. このプロジェクトをダウンロード(または git clone
  2. setup.bat をダブルクリック
  3. 指示に従って .env ファイルを編集:
    • DISCORD_TOKEN: 先ほどコピーした Bot Token を貼り付け
    • APPLICATION_ID: 先ほどコピーした Application ID を貼り付け
  4. ファイルを保存して閉じる
  5. 自動的にセットアップが完了します!

ステップ 3: Bot を起動

npm run dev

セットアップ完了! Discord サーバーで /setup コマンドを実行して Bot を使い始められます。


🔧 Discord Bot の詳細設定

Bot Token の取得方法(詳細)

Bot Token とは?

  • Bot がDiscordにログインするためのパスワードのようなもの
  • 絶対に他人と共有しないでください!

取得手順:

  1. Discord Developer Portal にアクセス
  2. 作成した Application をクリック
  3. 左メニューの 「Bot」 をクリック
  4. 「TOKEN」 セクションを探す
  5. 「Copy」 または 「Reset Token」「Copy」 をクリック
  6. コピーしたトークンを .env ファイルの DISCORD_TOKEN= の後に貼り付け

Application ID の取得方法(詳細)

Application ID とは?

  • Bot アプリケーションを識別するための固有ID
  • スラッシュコマンドの登録に必要

取得手順:

  1. Discord Developer Portal にアクセス
  2. 作成した Application をクリック
  3. 左メニューの 「General Information」 をクリック
  4. 「APPLICATION ID」 という項目を探す
  5. その下にある長い数字(例: 1234567890123456789)をコピー
  6. .env ファイルの APPLICATION_ID= の後に貼り付け

例:

APPLICATION_ID=1234567890123456789

Intents 設定の重要性

Intents とは?

  • Bot がアクセスできる情報の種類を制御する設定
  • プライバシー保護のため、必要な権限のみ有効化する

必須の Intents:

Intent 名 説明 必要な理由
PRESENCE INTENT ユーザーのオンライン状態を取得 ボイスチャンネルの状態監視
SERVER MEMBERS INTENT サーバーメンバー情報を取得 チャンネル作成時のユーザー情報取得
MESSAGE CONTENT INTENT メッセージ内容を読み取り パネル操作の処理

有効化手順:

  1. Discord Developer Portal → Application → 「Bot」
  2. 下にスクロールして 「Privileged Gateway Intents」 を探す
  3. 上記3つを すべてON(緑色のトグル) にする
  4. 「Save Changes」 を忘れずにクリック!

⚠️ 注意: これらの Intent を有効化しないと Bot が正常に動作しません。


🛠️ 手動セットアップ

自動セットアップ(setup.bat)が使えない場合は、以下の手順で手動セットアップできます。

1. 依存関係のインストール

npm install

2. 環境変数ファイルの作成

.env.sample をコピーして .env を作成:

copy .env.sample .env

.env ファイルを編集:

DISCORD_TOKEN=あなたのBotトークン
APPLICATION_ID=あなたのApplicationID
DATABASE_URL="postgresql://tempvoice:tempvoice_password@localhost:5432/tempvoice?schema=public"

3. PostgreSQL の起動

docker-compose up -d postgres

4. データベースの初期化

npm run db:push

5. Bot の起動

# 開発モード
npm run dev

# 本番モード
npm start

📖 使い方

初期設定(サーバー管理者向け)

  1. Discord サーバーで /setup コマンドを実行

  2. 必要な情報を入力:

    • category: ボイスチャンネルを作成するカテゴリ
    • panel-channel: 操作パネルを送信するテキストチャンネル
    • generator-name: (任意)ジェネレーターチャンネルの名前
    • viewable-role: (任意)チャンネルを表示するロール
  3. セットアップ完了!ジェネレーターチャンネルとパネルが作成されます

ユーザー操作

  1. チャンネル作成: ジェネレーターチャンネルに参加
  2. 設定変更: パネルチャンネルのボタンをクリック
  3. 自動削除: 全員が退出すると自動削除

🐛 トラブルシューティング

Bot がオンラインにならない

原因:

  • Bot Token が間違っている
  • Intents が有効化されていない

解決方法:

  1. .env ファイルの DISCORD_TOKEN が正しいか確認
  2. Discord Developer Portal で Intents が すべてON になっているか確認
  3. Bot を再起動

コマンドが反応しない

原因:

  • Application ID が間違っている
  • Bot に必要な権限がない

解決方法:

  1. .env ファイルの APPLICATION_ID が正しいか確認
  2. Bot を招待し直す(上記の招待URLを使用)
  3. Bot に「管理者」権限を付与(テスト用)

データベース接続エラー

原因:

  • Docker が起動していない
  • PostgreSQL コンテナが起動していない

解決方法:

# Docker Desktop が起動しているか確認

# PostgreSQL を起動
docker-compose up -d postgres

# ログを確認
docker-compose logs postgres

チャンネルが作成されない

原因:

  • Bot にチャンネル管理権限がない
  • /setup が実行されていない

解決方法:

  1. Bot に「チャンネル管理」権限があるか確認
  2. /setup コマンドを実行
  3. カテゴリが削除されていないか確認

npm install でエラーが出る

原因:

  • Node.js のバージョンが古い

解決方法:

  1. Node.js 18 以上をインストール: https://nodejs.org/
  2. 再度 npm install を実行

📊 利用可能なコマンド

コマンド 説明
npm run dev 開発モード(ホットリロード)
npm start 本番モード
npm run db:push データベースマイグレーション
npm run db:studio Prisma Studio 起動(GUI)
npm run db:generate Prisma Client 生成

🤝 コントリビューション

プルリクエストは大歓迎です!大きな変更の場合は、まず Issue を作成してください。

📄 ライセンス

MIT License

👨‍💻 作者

Powered by @r1_xly


🔗 関連リンク


⚠️ 注意: このボットは Discord のレート制限に準拠しています。大規模サーバーでの使用時は適切な権限設定を行ってください。

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors