# 管理機能の概要

> 管理ページのメニューと、チャットルーム内で使う管理コマンドを、開発者の視点で簡単にまとめます。

チャットルームの設定は[管理ページ](/manage)で、人の管理はチャットルームの中で行います。このページには、開発中に知っておくべき場所とコマンドだけをまとめました。

## 管理ページ {#manage-page}

メニューは基本・設定・運営・セキュリティの順にまとめられています。**有料**は、有料チャットルームでのみ保存・利用できる機能です(無料チャットルームでも画面は表示されます)。

| グループ | メニュー | できること |
| --- | --- | --- |
| 基本 | チャットルーム情報 | 会員連携のトークンの確認、管理者パスワード・入室パスワードの設定 |
| 基本 | 料金・決済 | 有料期間の確認と決済 |
| 基本 | 設置コード | 設置コード、会員連携コード、サイズ、フレームワーク・CMS別のコード → [5分で設置](/ja/doc/1.2) |
| 基本 | 統計 | 接続者数・メッセージ数の推移(有料) |
| 設定 | 詳細設定 | 重複接続、連投の検知、文字数、自動スローモードなどの細かいルール |
| 設定 | スキン | スキンの選択、色・文字サイズ・見た目、非表示にする要素 |
| 設定 | 絵文字 | チャットルーム専用の絵文字(有料) |
| 設定 | プラグイン | プラグインのオン・オフ、プラグインごとの設定とXPショップの商品 |
| 設定 | 会員連携 | 会員連携・時刻連携のオン、入室の成功・失敗の記録の確認 → [会員連携](/ja/doc/2.1) |
| 設定 | API | サーバーAPIキーの発行・編集・値を再発行・無効化、キーごとの使用量、呼び出し履歴、試す → [サーバーREST API](/ja/doc/3.6) |
| 設定 | 権限設定 | セッション・ID・IPでモデレーター・管理者の権限を付与、有効期限の指定 |
| 設定 | 機能の条件 | 入室・チャット・ウィスパーなどの機能を権限・レベル・経験値で制限 |
| 運営 | 訪問者 | 入室したことのある人の一覧と、人ごとの記録 |
| 運営 | チャットログ | 過去の会話 |
| 運営 | 経験値 | 経験値のルール、ランキング、ショップの利用券の回収と購入記録 |
| 運営 | お知らせ | 入室時のお知らせ、固定お知らせ、自動お知らせ |
| 運営 | 外部通知 | 通報・ブロック・入室などの出来事をalrimアプリ・Webhook・メールで受け取る、送信記録と日次レポート。無料ルームはalrimで通報・管理者呼び出し・異議申し立ての通知のみ（その他は有料） |
| 運営 | 投票 | チャットルームの投票(有料) |
| セキュリティ | チャットフィルター | 単語フィルター(禁止ワードを隠す)、AIフィルター(有料)、監視ワード(有料) |
| セキュリティ | 通報・処分 | 通報一覧と自動処理ルール、AI判事(有料)の判定記録、ミュート・BANの一覧と解除、処分記録 |
| 危険 | チャットルームの削除 | チャットルームとすべての設定を削除します。元に戻せません |

自動お知らせは、時間間隔、チャット数、または先に満たした条件で送信できます。時間指定に最小チャット数を設定すると、会話の少ない回は送信しません。どちらかの条件で送信すると、そのお知らせのチャット数は0から数え直します。

IPによる権限付与にはIPv4・IPv6アドレスを使えます。BAN・ミュートにはIPv4のワイルドカード（`192.0.2.*`）とIPv6の範囲（`2001:db8::/64`）も使えます。

**詳細設定→IPv6のBAN範囲**で、このチャットルームのIPによるBAN・ミュート判定の範囲を選べます。初期値はサブネットの一致（`/64`）で、アドレスの完全一致（`/128`）・`/56`・`/48`も選べます。数字が小さいほど範囲が広くなります。記録にはアドレス全体を保存し、設定を保存すると既存の制裁にも新しい範囲を適用します。範囲を直接指定した項目は、その範囲を維持します。同じサブネットの他の人も対象になる場合があります。ID・セッションによる制裁とIPv4には影響しません。

トークンとAPIキーはサーバーでだけ使います。ページのHTMLやスクリプトには入れないでください([セキュリティチェックリスト](/ja/doc/2.6))。


## チャットルーム内で管理する {#in-room}

管理者・モデレーターは、ニックネームをクリックすると出るメニューから、ミュート、BAN、IPの確認、メッセージの削除ができます。モデレーターへの登録は管理者だけができます。会員連携を使っていないチャットルームでは、チャット画面に `/login 管理者パスワード` と入力すると管理者になります。会員連携のチャットルームでは `/login` を使えないため、会員連携データの権限(`auth`)か**権限設定**で管理者を決めます。

| コマンド | 権限 | できること |
| --- | --- | --- |
| `/login パスワード` | 誰でも | 管理者パスワードで管理者になる(会員連携のチャットルームを除く) |
| `/logout` | 管理者 | 管理者権限を解除 |
| `/adminpage` | 管理者 | 管理ページを開く |
| `/op ニックネーム`, `/deop ニックネーム` | 管理者 | モデレーターの登録・解除 |
| `/mute ニックネーム 分` | モデレーター以上 | ミュート |
| `/unmute ニックネーム` | モデレーター以上 | ミュート解除 |
| `/ban ニックネーム 理由` | モデレーター以上 | IP BAN |
| `/info ニックネーム`, `/ip ニックネーム` | モデレーター以上 | ユーザー情報、IPの確認。自分と同じかそれより低い権限の人だけ確認できます。`/info 自分のニックネーム` は誰でも使えます |
| `/notice 内容` | モデレーター以上 | お知らせメッセージを送信 |
| `/freeze`, `/unfreeze` | モデレーター以上 | チャットルームの凍結・凍結解除(凍結中はモデレーター以上だけが発言できます) |
| `/slow 秒` | モデレーター以上 | スローモードの間隔を設定(0〜3600秒、`0` でオフ) |
| `/clearlog` | モデレーター以上 | 全員の画面から会話を消去(一般ユーザーは自分の画面のみ) |

ミュートは自分より低い権限の人にだけ、BANは会員・ゲストにだけ行えます。チャット画面に `/?` と入力すると、いまの権限で使えるコマンドがすべて表示されます。

## 誰でも使えるコマンド {#commands}

| コマンド | できること |
| --- | --- |
| `/w ニックネーム 内容` | ウィスパー(`/ㅈ`) |
| `/r 内容` | 最後のウィスパー相手に返信(`/ㄱ`) |
| `/nick ニックネーム` | ニックネーム変更(会員連携のチャットルームを除く) |
| `/call ニックネーム` | 呼び出し |
| `/ignore ニックネーム`, `/unignore ニックネーム` | 無視と無視の解除 |
| `/report ニックネーム 理由` | 通報 |
| `/invite ニックネーム` | 個人チャンネルに招待 |
| `/slow` | スローモードの状態を確認 |

チャットルームの設定や**機能の条件**によって、一部のコマンドが使えない場合があります。

## スクリプトからコマンドを送る {#from-script}

同じコマンドは、ページスクリプトから `room.action.command(コマンド, ...引数)` で送れます。権限のチェックはサーバーが行うため、権限がなければエラーイベントが届きます。`slow` は結果がエラーイベントではなく `control` イベント(`type: 'roomOptionsResult'`)で届き、権限がなければ結果JSONの `status` が `forbidden` になります。

`/w`、`/r`、`/nick` は、スキンが変換してくれるチャット画面用の別名です。スクリプトでは `command('whisper', ニックネーム, 内容)`、`command('changeInfo', { nick: ニックネーム })` を使います。

```js
U.chat('my-room').on('after.join#notice-demo', function (room) {
	if (room.my.auth >= 2) room.action.command('notice', 'メンテナンスは午後6時に始まります。');
});
```

引数と戻り値は[U.chat() と room オブジェクト](/ja/doc/3.2)をご覧ください。
