summaryrefslogtreecommitdiff
path: root/website/src/ja/docs
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-06-12 15:47:12 +0900
committerGitHub <noreply@github.com>2026-06-12 15:47:12 +0900
commitc8adb0505b3fa5d44a6f2b0aa1a3dd97ded5aedd (patch)
tree5a11035b136b216f2033d78a1e4d6b6138c18772 /website/src/ja/docs
parent043e202b1cbedad69d5521a83e791c106b49b10f (diff)
parent8326b6a7619fd9e4fb6a640d01c4bf0c6194dc81 (diff)
downloadLunaticChat-c8adb0505b3fa5d44a6f2b0aa1a3dd97ded5aedd.tar.gz
LunaticChat-c8adb0505b3fa5d44a6f2b0aa1a3dd97ded5aedd.tar.bz2
LunaticChat-c8adb0505b3fa5d44a6f2b0aa1a3dd97ded5aedd.zip
Merge pull request #224 from m1sk9/replace/lang
docs(website): make English the default locale
Diffstat (limited to 'website/src/ja/docs')
-rw-r--r--website/src/ja/docs/configuration.md73
-rw-r--r--website/src/ja/docs/features/admin.md74
-rw-r--r--website/src/ja/docs/features/channel-chat.md92
-rw-r--r--website/src/ja/docs/features/direct-message.md52
-rw-r--r--website/src/ja/docs/features/japanese-conversion.md62
-rw-r--r--website/src/ja/docs/features/message-logging.md94
-rw-r--r--website/src/ja/docs/features/velocity.md88
-rw-r--r--website/src/ja/docs/getting-started.md51
-rw-r--r--website/src/ja/docs/permissions.md50
-rw-r--r--website/src/ja/docs/reference/commands.md173
-rw-r--r--website/src/ja/docs/reference/compatibility.md65
-rw-r--r--website/src/ja/docs/reference/message-format.md86
-rw-r--r--website/src/ja/docs/reference/player-settings.md50
13 files changed, 1010 insertions, 0 deletions
diff --git a/website/src/ja/docs/configuration.md b/website/src/ja/docs/configuration.md
new file mode 100644
index 0000000..8e603de
--- /dev/null
+++ b/website/src/ja/docs/configuration.md
@@ -0,0 +1,73 @@
+---
+layout: doc
+---
+
+# 設定
+
+LunaticChat の設定は `plugins/LunaticChat/config.yml` で管理されます.サーバーの初回起動時にデフォルトの設定ファイルが生成されます.
+
+## グローバル設定
+
+| キー | 型 | デフォルト | 説明 |
+|------|------|------------|------|
+| `debug` | Boolean | `false` | デバッグログを有効にする |
+| `userSettingsFilePath` | String | `"player-settings.yaml"` | プレイヤー設定ファイルのパス |
+| `checkForUpdates` | Boolean | `true` | 起動時にアップデートを確認する |
+| `language` | String | `"en"` | プラグインの言語 (`en` / `ja`) |
+
+## 機能設定 (`features`)
+
+### クイックリプライ (`features.quickReplies`)
+
+| キー | 型 | デフォルト | 説明 |
+|------|------|------------|------|
+| `enabled` | Boolean | `true` | `/reply` コマンドを有効にする |
+
+### ローマ字変換 (`features.japaneseConversion`)
+
+| キー | 型 | デフォルト | 説明 |
+|------|------|------------|------|
+| `enabled` | Boolean | `false` | ローマ字→ひらがな変換を有効にする |
+| `cache.maxEntries` | Int | `500` | 変換キャッシュの最大エントリ数 |
+| `cache.saveIntervalSeconds` | Int | `300` | キャッシュのディスク保存間隔(秒) |
+| `cache.filePath` | String | `"conversion_cache.json"` | キャッシュファイルのパス |
+| `api.timeout` | Long | `3000` | API リクエストのタイムアウト(ミリ秒) |
+| `api.retryAttempts` | Int | `2` | API リクエスト失敗時のリトライ回数 |
+
+### チャンネルチャット (`features.channelChat`)
+
+| キー | 型 | デフォルト | 説明 |
+|------|------|------------|------|
+| `enabled` | Boolean | `false` | チャンネルチャット機能を有効にする |
+| `maxChannelsPerServer` | Int | `0` | サーバーあたりの最大チャンネル数(`0` = 無制限) |
+| `maxMembersPerChannel` | Int | `0` | チャンネルあたりの最大メンバー数(`0` = 無制限) |
+| `maxMembershipPerPlayer` | Int | `0` | プレイヤーあたりの最大参加チャンネル数(`0` = 無制限) |
+
+#### メッセージログ (`features.channelChat.messageLogging`)
+
+| キー | 型 | デフォルト | 説明 |
+|------|------|------------|------|
+| `enabled` | Boolean | `true` | チャンネルメッセージを NDJSON ファイルに記録する |
+| `retentionDays` | Int | `30` | ログファイルの保持日数(`0` = 無期限) |
+| `maxFileSizeMB` | Int | `100` | 単一ログファイルの最大サイズ(MB) |
+
+### Velocity 連携 (`features.velocityIntegration`)
+
+| キー | 型 | デフォルト | 説明 |
+|------|------|------------|------|
+| `enabled` | Boolean | `false` | Velocity プロキシとの連携を有効にする |
+| `crossServerGlobalChat` | Boolean | `false` | サーバー間グローバルチャットを有効にする |
+| `serverName` | String | `"Unknown"` | クロスサーバーチャットで表示されるサーバー名 |
+| `messageDeduplicationCacheSize` | Int | `100` | メッセージ重複排除キャッシュのサイズ |
+
+## メッセージフォーマット (`messageFormat`)
+
+| キー | デフォルト | 利用可能なプレースホルダー |
+|------|------------|--------------------------|
+| `directMessageFormat` | `§7[§e{sender} §7>> §e{recipient}§7] §f{message}` | `{sender}`, `{recipient}`, `{message}` |
+| `channelMessageFormat` | `§7[§b#{channel}§7] §e{sender}: §f{message}` | `{sender}`, `{message}`, `{channel}` |
+| `crossServerGlobalChatFormat` | `§7[§6{server}§7] §e{sender}: §f{message}` | `{sender}`, `{message}`, `{server}` |
+
+## デフォルト設定ファイル
+
+[GitHub で確認する](https://github.com/m1sk9/LunaticChat/blob/main/platform-paper/src/main/resources/config.yml)
diff --git a/website/src/ja/docs/features/admin.md b/website/src/ja/docs/features/admin.md
new file mode 100644
index 0000000..57d38c0
--- /dev/null
+++ b/website/src/ja/docs/features/admin.md
@@ -0,0 +1,74 @@
+---
+layout: doc
+---
+
+# 管理者向け機能
+
+サーバー管理者向けの機能をまとめて解説します.これらの機能は主に OP 権限を持つプレイヤーが利用できます.
+
+## プラグインステータス (`/lc status`)
+
+プラグインの動作状況を一覧で確認できます.
+
+```
+/lc status
+```
+
+表示される情報:
+
+- プラグインバージョン (Git コミットハッシュ付き)
+- ヘルスステータス (OK / Degraded)
+- 各機能の有効/無効状態
+- 設定値 (デバッグモード,アップデート確認,言語)
+- GitHub,Modrinth,ドキュメントへのリンク
+
+## スパイモード
+
+`lunaticchat.spy` パーミッション (デフォルト: op) を持つプレイヤーは,サーバー上で送受信されるすべてのダイレクトメッセージを閲覧できます.
+
+- スパイプレイヤーにはローマ字変換前の元のメッセージが表示されます
+- ホバーテキストでスパイメッセージであることが示されます
+- スパイプレイヤー自身は通常の送受信者リストには含まれません
+
+## チャンネルバイパス
+
+`lunaticchat.channelbypass` パーミッション (デフォルト: op) を持つプレイヤーは,チャンネルに関する以下の制限を無視できます.
+
+- キック・BAN の対象にならない
+- オーナーでなくてもチャンネルを削除できる
+
+## アップデート通知
+
+`checkForUpdates` が `true` (デフォルト) の場合,プラグインは起動時に新しいバージョンが利用可能か確認します.`lunaticchat.noticeupdate` パーミッション (デフォルト: op) を持つプレイヤーがサーバーに参加した際にアップデート通知が表示されます.
+
+```yaml
+# config.yml
+checkForUpdates: true
+```
+
+## デバッグモード
+
+`debug` を `true` にすると,プラグインの詳細なログが出力されます.問題の調査やバグ報告時に有用です.
+
+```yaml
+# config.yml
+debug: true
+```
+
+## 言語設定
+
+プレイヤーに表示されるメッセージの言語を切り替えられます.プラグインログやコンソール出力には影響せず,英語のみ出力となります.
+
+```yaml
+# config.yml
+language: "ja" # "en" または "ja"
+```
+
+## 管理者パーミッション一覧
+
+| パーミッション | デフォルト | 説明 |
+|---------------|-----------|------|
+| `lunaticchat.spy` | op | 全ダイレクトメッセージの閲覧 |
+| `lunaticchat.channelbypass` | op | チャンネル制限のバイパス |
+| `lunaticchat.noticeupdate` | op | アップデート通知の受信 |
+| `lunaticchat.command.lcv.status` | op | `/lcv status` コマンドの使用 |
diff --git a/website/src/ja/docs/features/channel-chat.md b/website/src/ja/docs/features/channel-chat.md
new file mode 100644
index 0000000..dce3c85
--- /dev/null
+++ b/website/src/ja/docs/features/channel-chat.md
@@ -0,0 +1,92 @@
+---
+layout: doc
+---
+
+# チャンネルチャット
+
+チャンネルを作成してグループごとに会話を分離できます.この機能を利用するには `config.yml` で `features.channelChat.enabled` を `true` に設定してください.
+
+## チャンネルの作成
+
+```
+/lc channel create <channelId> <name> [description] [isPrivate]
+```
+
+- `channelId`: チャンネルの一意な識別子 (英数字, `_`, `-` のみ, 3〜30文字)
+- `name`: チャンネルの表示名
+- `description`: チャンネルの説明 (省略可)
+- `isPrivate`: プライベートチャンネルにする場合は `true` (デフォルト: `false`)
+
+作成者は自動的にオーナーになります.
+
+## チャンネルへの参加・退出
+
+```
+/lc channel join <channelId> # チャンネルに参加
+/lc channel leave # アクティブチャンネルから退出
+/lc channel switch <channelId> # アクティブチャンネルを切り替え
+```
+
+プライベートチャンネルに参加するには,オーナーまたはモデレーターからの招待が必要です.
+
+## アクティブチャンネル
+
+プレイヤーは複数のチャンネルに参加できますが,一度にアクティブにできるチャンネルは1つです.チャットメッセージはアクティブチャンネルに送信されます.`/lc channel switch` でアクティブチャンネルを切り替えられます.
+
+```
+/lc channel status # 現在のアクティブチャンネルと参加チャンネル一覧を表示
+```
+
+## ロールと権限
+
+チャンネルには3つのロールがあります.
+
+| ロール | 権限 |
+|--------|------|
+| **OWNER** | チャンネルの削除,モデレーター管理,オーナー譲渡,メンバー管理 |
+| **MODERATOR** | メンバーの招待,キック,BAN/BAN解除 |
+| **MEMBER** | チャットへの参加,チャンネル情報の閲覧 |
+
+### モデレーター管理 (オーナーのみ)
+
+```
+/lc channel mod <playerName> # モデレーター権限の付与/剥奪
+/lc channel ownership <playerName> # オーナー権限の譲渡
+```
+
+### メンバー管理 (オーナー / モデレーター)
+
+```
+/lc channel invite <playerName> # プレイヤーを招待
+/lc channel kick <playerName> # プレイヤーをキック
+/lc channel ban <playerName> # プレイヤーを BAN
+/lc channel unban <playerName> # BAN を解除
+```
+
+## 制限設定
+
+`config.yml` でチャンネルの上限を設定できます (すべて `0` で無制限) .
+
+| 設定キー | 説明 |
+|----------|------|
+| `maxChannelsPerServer` | サーバーあたりの最大チャンネル数 |
+| `maxMembersPerChannel` | チャンネルあたりの最大メンバー数 |
+| `maxMembershipPerPlayer` | プレイヤーあたりの最大参加チャンネル数 |
+
+## メッセージログ
+
+チャンネルメッセージは NDJSON 形式でログファイルに記録できます.ファイルは日次でローテーションされ,`maxFileSizeMB` を超えるとサフィックス付きの新しいファイルが作成されます.
+
+```json
+{"timestamp":"2026-04-05T14:23:45.123Z","playerId":"550e8400-...","playerName":"Steve","channelId":"general","message":"Hello!"}
+```
+
+ログ設定の詳細は[設定ページ](/ja/docs/configuration)の `features.channelChat.messageLogging` を参照してください.
+
+## バイパス権限
+
+`lunaticchat.channelbypass` パーミッション (デフォルト: op) を持つプレイヤーは,キック・BAN の保護やチャンネルの強制削除が可能です.
+
+## メッセージフォーマット
+
+チャンネルメッセージの表示形式は `config.yml` の `messageFormat.channelMessageFormat` でカスタマイズできます.詳細は[メッセージフォーマット](/ja/docs/reference/message-format)を参照してください.
diff --git a/website/src/ja/docs/features/direct-message.md b/website/src/ja/docs/features/direct-message.md
new file mode 100644
index 0000000..ae943e6
--- /dev/null
+++ b/website/src/ja/docs/features/direct-message.md
@@ -0,0 +1,52 @@
+---
+layout: doc
+---
+
+# ダイレクトメッセージ
+
+プレイヤー間で 1対1 のプライベートメッセージを送受信できます.
+
+## 基本的な使い方
+
+### メッセージの送信
+
+```
+/tell <player> <message>
+```
+
+エイリアス: `/t`, `/msg`, `/m`, `/w`, `/whisper`
+
+指定したプレイヤーにダイレクトメッセージを送信します.受信したメッセージをクリックすると,送信者への返信コマンドが自動入力されます.
+
+### クイック返信
+
+```
+/reply <message>
+```
+
+エイリアス: `/r`
+
+最後にメッセージを送ってきたプレイヤーに返信します.該当するプレイヤーがいない場合は,最後にメッセージを送った相手に送信されます.
+
+クイック返信を利用するには `config.yml` で `features.quickReplies.enabled` が `true` (デフォルト) である必要があります.
+
+## 通知設定
+
+プレイヤーはダイレクトメッセージ受信時のサウンド通知を個別に制御できます.
+
+```
+/lc settings notice on # 通知を有効化
+/lc settings notice off # 通知を無効化
+```
+
+## ローマ字変換との連携
+
+[ローマ字変換](/ja/docs/features/japanese-conversion)が有効な場合,ダイレクトメッセージの内容も自動的に日本語に変換されます.変換はプレイヤーの `japanese` 設定に従います.
+
+## スパイ機能
+
+`lunaticchat.spy` パーミッション (デフォルト: op) を持つプレイヤーは,サーバー上のすべてのダイレクトメッセージを閲覧できます.スパイプレイヤーには変換前のメッセージが表示されます.
+
+## メッセージフォーマット
+
+ダイレクトメッセージの表示形式は `config.yml` の `messageFormat.directMessageFormat` でカスタマイズできます.詳細は[メッセージフォーマット](/ja/docs/reference/message-format)を参照してください.
diff --git a/website/src/ja/docs/features/japanese-conversion.md b/website/src/ja/docs/features/japanese-conversion.md
new file mode 100644
index 0000000..e5e751b
--- /dev/null
+++ b/website/src/ja/docs/features/japanese-conversion.md
@@ -0,0 +1,62 @@
+---
+layout: doc
+---
+
+# ローマ字変換
+
+ローマ字で入力したチャットメッセージを自動的に日本語に変換します.この機能を利用するには `config.yml` で `features.japaneseConversion.enabled` を `true` に設定してください.
+
+## 変換の仕組み
+
+変換は2段階で行われます.
+
+1. **ローマ字 → ひらがな**: プラグイン内蔵の Trie ベースの変換エンジンでローマ字をひらがなに変換します
+2. **ひらがな → 漢字/カナ**: Google IME API を使用してひらがなを自然な日本語に変換します
+
+### 変換例
+
+```
+入力: konnichiha sekai
+変換1: こんにちは せかい
+変換2: こんにちは 世界
+```
+
+## 変換対象
+
+- 通常チャット
+- ダイレクトメッセージ (`/tell`, `/reply`)
+- チャンネルチャット
+
+入力が有効なローマ字でない場合 (英単語などが含まれる場合),変換は行われずそのまま送信されます.
+
+## プレイヤー設定
+
+プレイヤーは個別に変換のオン/オフを切り替えられます.
+
+```
+/lc settings japanese on # 変換を有効化
+/lc settings japanese off # 変換を無効化
+```
+
+## キャッシュ
+
+変換結果は単語単位でキャッシュされ,同じ単語の再変換時には API を呼び出さずにキャッシュから取得します.キャッシュは JSON ファイルとしてディスクに定期保存されます.
+
+| 設定キー | デフォルト | 説明 |
+|----------|-----------|------|
+| `cache.maxEntries` | `500` | キャッシュの最大エントリ数 |
+| `cache.saveIntervalSeconds` | `300` | ディスク保存の間隔 (秒) |
+| `cache.filePath` | `"conversion_cache.json"` | キャッシュファイルのパス |
+
+キャッシュが上限に達すると,古いエントリの10%が自動的に削除されます.
+
+## API 設定
+
+Google IME API への接続に関する設定です.
+
+| 設定キー | デフォルト | 説明 |
+|----------|-----------|------|
+| `api.timeout` | `3000` | リクエストタイムアウト (ミリ秒) |
+| `api.retryAttempts` | `2` | 失敗時のリトライ回数 |
+
+API がタイムアウトまたは失敗した場合,ひらがなのまま送信されます.
diff --git a/website/src/ja/docs/features/message-logging.md b/website/src/ja/docs/features/message-logging.md
new file mode 100644
index 0000000..944b9e9
--- /dev/null
+++ b/website/src/ja/docs/features/message-logging.md
@@ -0,0 +1,94 @@
+---
+layout: doc
+---
+
+# メッセージログ
+
+チャンネルチャットのメッセージを NDJSON (Newline Delimited JSON) 形式でファイルに記録します.この機能はチャンネルチャットが有効な場合に利用でき,デフォルトで有効です.
+
+## 設定
+
+```yaml
+# config.yml
+features:
+ channelChat:
+ enabled: true
+ messageLogging:
+ enabled: true
+ retentionDays: 30
+ maxFileSizeMB: 100
+```
+
+| 設定キー | デフォルト | 説明 |
+|----------|-----------|------|
+| `enabled` | `true` | メッセージログを有効にする |
+| `retentionDays` | `30` | ログファイルの保持日数 (`0` で無期限保持) |
+| `maxFileSizeMB` | `100` | 単一ログファイルの最大サイズ (MB) |
+
+## ログファイルの形式
+
+ログファイルは `plugins/LunaticChat/logs/` ディレクトリに保存されます.各行が1つの JSON オブジェクトです.
+
+### ファイル名
+
+```
+channel-messages-YYYY-MM-dd.json
+```
+
+ファイルサイズが `maxFileSizeMB` を超えた場合,サフィックス付きの新しいファイルが作成されます.
+
+```
+channel-messages-2026-04-05.json # 基本ファイル
+channel-messages-2026-04-05-1.json # サイズ超過時
+channel-messages-2026-04-05-2.json # さらに超過時
+```
+
+### エントリ形式
+
+各行は以下の JSON 構造を持ちます.
+
+```json
+{
+ "timestamp": "2026-04-05T14:23:45.123Z",
+ "playerId": "550e8400-e29b-41d4-a716-446655440000",
+ "playerName": "Steve",
+ "channelId": "general",
+ "message": "Hello everyone!"
+}
+```
+
+| フィールド | 型 | 説明 |
+|-----------|------|------|
+| `timestamp` | String | ISO 8601 形式のタイムスタンプ (UTC) |
+| `playerId` | String | プレイヤーの UUID |
+| `playerName` | String | プレイヤーの表示名 |
+| `channelId` | String | メッセージが送信されたチャンネルの ID |
+| `message` | String | メッセージの内容 |
+
+## ファイルローテーション
+
+- **日次ローテーション**: 日付が変わると新しいファイルが作成されます
+- **サイズローテーション**: `maxFileSizeMB` を超えるとサフィックス付きファイルに切り替わります
+- **自動クリーンアップ**: `retentionDays` で指定した日数を超えたログファイルは自動的に削除されます (`0` の場合は削除されません)
+
+## ログの活用例
+
+NDJSON 形式のため,`jq` などのツールで簡単にフィルタリング・集計が可能です.
+
+### 特定チャンネルのメッセージを抽出
+
+```bash
+jq 'select(.channelId == "general")' channel-messages-2026-04-05.json
+```
+
+### 特定プレイヤーのメッセージを抽出
+
+```bash
+jq 'select(.playerName == "Steve")' channel-messages-2026-04-05.json
+```
+
+### メッセージ数をチャンネルごとに集計
+
+```bash
+jq -s 'group_by(.channelId) | map({channel: .[0].channelId, count: length})' channel-messages-2026-04-05.json
+```
diff --git a/website/src/ja/docs/features/velocity.md b/website/src/ja/docs/features/velocity.md
new file mode 100644
index 0000000..1b451ad
--- /dev/null
+++ b/website/src/ja/docs/features/velocity.md
@@ -0,0 +1,88 @@
+---
+layout: doc
+---
+
+# Velocity 連携
+
+Velocity プロキシを経由して複数の Paper / Folia サーバー間でグローバルチャットをリレーします.
+
+::: tip 互換性について
+Paper プラグインと Velocity プラグインは独立にバージョン管理されています.**両方の最新版を使えば常に動作します.** 古いバージョンを混在させたい場合は,[Paper / Velocity 互換性](/ja/docs/reference/compatibility) を参照してください.
+:::
+
+## セットアップ
+
+### 1. Velocity プラグインの導入
+
+`LunaticChat-<version>-velocity.jar` を Velocity の `plugins/` ディレクトリに配置し,プロキシを再起動します.
+
+### 2. Paper 側の設定
+
+各 Paper サーバーの `config.yml` で以下を設定します.
+
+```yaml
+features:
+ velocityIntegration:
+ enabled: true
+ crossServerGlobalChat: true
+ serverName: "survival" # Velocity 設定のサーバー名に合わせる
+```
+
+### 3. 接続の確認
+
+```
+/lcv status
+```
+
+接続状態,プロトコルバージョン,Velocity プラグインのバージョンなどを確認できます (パーミッション: `lunaticchat.command.lcv.status`, デフォルト: op) .
+
+## クロスサーバーグローバルチャット
+
+`crossServerGlobalChat` を `true` にすると,プレイヤーのチャットメッセージが Velocity を経由して他のすべての Paper サーバーに中継されます.
+
+### メッセージの流れ
+
+1. プレイヤーがチャットメッセージを送信
+2. Paper サーバーがメッセージを Velocity に送信
+3. Velocity が送信元以外の全サーバーにメッセージを中継
+4. 各サーバーのプレイヤーにメッセージが表示される
+
+### メッセージ重複排除
+
+各メッセージに一意な ID が付与され,キャッシュにより同じメッセージが重複して表示されることを防ぎます.キャッシュサイズは `messageDeduplicationCacheSize` (デフォルト: `100`) で設定できます.
+
+## 接続状態
+
+`/lcv status` で確認できる状態と,それぞれの意味は以下の通りです.
+
+| 状態 | 説明 |
+|------|------|
+| `DISCONNECTED` | 未接続 |
+| `HANDSHAKING` | ハンドシェイク中 |
+| `CONNECTED` | 接続済み |
+| `FAILED` | 接続失敗 |
+
+ハンドシェイクのタイムアウトは 5 秒です.タイムアウトした場合,状態は `FAILED` になります.
+
+### `FAILED` になったときの確認ポイント
+
+- Velocity プラグインが正しく導入され,プロキシが起動しているか
+- Paper の `serverName` が Velocity 設定のサーバー名と一致しているか
+- Paper / Velocity プラグインの**プロトコルバージョン**が互換であるか — [互換性マトリクス](/ja/docs/reference/compatibility#互換性マトリクス) で確認できます
+
+## 設定一覧
+
+| 設定キー | デフォルト | 説明 |
+|----------|-----------|------|
+| `enabled` | `false` | Velocity 連携を有効にする |
+| `crossServerGlobalChat` | `false` | クロスサーバーグローバルチャットを有効にする |
+| `serverName` | `"Unknown"` | クロスサーバーチャットで表示されるサーバー名 |
+| `messageDeduplicationCacheSize` | `100` | メッセージ重複排除キャッシュのサイズ |
+
+## メッセージフォーマット
+
+クロスサーバーチャットの表示形式は `config.yml` の `messageFormat.crossServerGlobalChatFormat` でカスタマイズできます.詳細は[メッセージフォーマット](/ja/docs/reference/message-format)を参照してください.
+
+## 関連ドキュメント
+
+- [Paper / Velocity 互換性](/ja/docs/reference/compatibility) — プロトコルバージョンとローリングアップデートの詳細
diff --git a/website/src/ja/docs/getting-started.md b/website/src/ja/docs/getting-started.md
new file mode 100644
index 0000000..7525b14
--- /dev/null
+++ b/website/src/ja/docs/getting-started.md
@@ -0,0 +1,51 @@
+---
+layout: doc
+---
+
+# はじめる
+
+LunaticChat を導入するための手順を説明します.
+
+::: warning Spigot / BungeeCord は非対応です
+LunaticChat は Paper / Folia サーバーのみをサポートしています.Spigot / BungeeCord では動作せず,今後も対応予定はありません.Spigot 環境では [LunaChat の Fork](https://github.com/f1w3/LunaChat) の使用を推奨します.
+:::
+
+## 動作要件
+
+| 項目 | 要件 |
+|------|------|
+| Minecraft | 26.1 以降 |
+| Java | 25 以降 |
+| サーバー | Paper, Folia, または Velocity |
+
+## ダウンロード
+
+以下のいずれかからプラグイン JAR をダウンロードできます.
+
+- [GitHub Releases](https://github.com/m1sk9/LunaticChat/releases)
+- [Modrinth](https://modrinth.com/project/lunaticchat)
+
+Paper / Folia サーバーには `LunaticChat-<version>.jar` を,Velocity プロキシには `LunaticChat-<version>-velocity.jar` を使用してください.
+
+## インストール
+
+### Paper / Folia
+
+1. ダウンロードした `LunaticChat-<version>.jar` をサーバーの `plugins/` ディレクトリに配置します
+2. サーバーを起動 (または再起動) します
+3. `plugins/LunaticChat/config.yml` が自動生成されます
+4. 必要に応じて[設定](/ja/docs/configuration)を変更し,サーバーを再起動します
+
+### Velocity
+
+1. ダウンロードした `LunaticChat-<version>-velocity.jar` を Velocity の `plugins/` ディレクトリに配置します
+2. Velocity プロキシを起動 (または再起動) します
+3. Paper 側の `config.yml` で `features.velocityIntegration.enabled` を `true` に設定します
+4. 詳細は [Velocity 連携](/ja/docs/features/velocity)を参照してください
+
+## 次のステップ
+
+- [設定](/ja/docs/configuration) - `config.yml` の全設定項目を確認する
+- [ダイレクトメッセージ](/ja/docs/features/direct-message) - DM 機能の使い方
+- [チャンネルチャット](/ja/docs/features/channel-chat) - チャンネル機能の使い方
+- [コマンド一覧](/ja/docs/reference/commands) - 全コマンドのリファレンス
diff --git a/website/src/ja/docs/permissions.md b/website/src/ja/docs/permissions.md
new file mode 100644
index 0000000..3fb20f5
--- /dev/null
+++ b/website/src/ja/docs/permissions.md
@@ -0,0 +1,50 @@
+---
+layout: doc
+---
+
+# パーミッション
+
+LunaticChat のすべてのパーミッションノードの一覧です.
+
+## コマンドパーミッション
+
+すべてのコマンドパーミッションはデフォルトで全プレイヤーに付与されています.
+
+| パーミッション | 説明 |
+|---------------|------|
+| `lunaticchat.command.lc` | `/lc` コマンドの使用 |
+| `lunaticchat.command.tell` | `/tell` コマンドの使用 |
+| `lunaticchat.command.reply` | `/reply` コマンドの使用 |
+| `lunaticchat.command.lc.settings` | `/lc settings` の使用 |
+| `lunaticchat.command.lc.status` | `/lc status` の使用 |
+
+### チャンネル関連
+
+| パーミッション | 説明 |
+|---------------|------|
+| `lunaticchat.command.lc.channel` | `/lc channel` の使用 |
+| `lunaticchat.command.lc.channel.create` | チャンネルの作成 |
+| `lunaticchat.command.lc.channel.list` | チャンネル一覧の表示 |
+| `lunaticchat.command.lc.channel.join` | チャンネルへの参加 |
+| `lunaticchat.command.lc.channel.leave` | チャンネルからの退出 |
+| `lunaticchat.command.lc.channel.switch` | アクティブチャンネルの切り替え |
+| `lunaticchat.command.lc.channel.status` | チャンネル参加状況の確認 |
+| `lunaticchat.command.lc.channel.info` | チャンネル情報の表示 |
+| `lunaticchat.command.lc.channel.delete` | チャンネルの削除 |
+| `lunaticchat.command.lc.channel.invite` | チャンネルへの招待 |
+| `lunaticchat.command.lc.channel.kick` | チャンネルからのキック |
+| `lunaticchat.command.lc.channel.ban` | チャンネルからの BAN |
+| `lunaticchat.command.lc.channel.unban` | チャンネル BAN の解除 |
+| `lunaticchat.command.lc.channel.mod` | モデレーター権限の付与・剥奪 |
+| `lunaticchat.command.lc.channel.ownership` | チャンネルオーナーの譲渡 |
+
+## 管理者パーミッション
+
+以下のパーミッションはデフォルトで OP のみに付与されています.
+
+| パーミッション | デフォルト | 説明 |
+|---------------|-----------|------|
+| `lunaticchat.spy` | op | サーバー上の全ダイレクトメッセージを閲覧 |
+| `lunaticchat.noticeupdate` | op | アップデート通知の受信 |
+| `lunaticchat.channelbypass` | op | チャンネル制限のバイパス(キック・BAN 保護,強制削除) |
+| `lunaticchat.command.lcv.status` | op | `/lcv status` コマンドの使用 |
diff --git a/website/src/ja/docs/reference/commands.md b/website/src/ja/docs/reference/commands.md
new file mode 100644
index 0000000..6987f92
--- /dev/null
+++ b/website/src/ja/docs/reference/commands.md
@@ -0,0 +1,173 @@
+---
+layout: doc
+---
+
+# コマンド一覧
+
+LunaticChat で使用できるすべてのコマンドのリファレンスです.
+
+## ダイレクトメッセージ
+
+### `/tell <player> <message>`
+
+プレイヤーにダイレクトメッセージを送信します.
+
+- **エイリアス**: `t`, `msg`, `m`, `w`, `whisper`
+- **パーミッション**: `lunaticchat.command.tell`
+
+### `/reply <message>`
+
+最後にメッセージを送ってきたプレイヤーに返信します.
+
+- **エイリアス**: `r`
+- **パーミッション**: `lunaticchat.command.reply`
+- **前提条件**: クイックリプライ機能が有効であること
+
+## メインコマンド (`/lc`)
+
+**エイリアス**: `lunaticchat`
+
+### `/lc status`
+
+プラグインのバージョン,ヘルス,有効な機能,設定値を表示します.
+
+- **エイリアス**: `st`
+- **パーミッション**: `lunaticchat.command.lc.status`
+
+### `/lc settings [key] [on|off]`
+
+プレイヤー個人の設定を確認・変更します.引数なしで設定一覧を表示します.
+
+- **エイリアス**: `set`
+- **パーミッション**: `lunaticchat.command.lc.settings`
+- **設定キー**: `japanese`, `notice`, `chNotice`(詳細は[プレイヤー設定](/ja/docs/reference/player-settings)を参照)
+
+## チャンネルコマンド (`/lc channel`)
+
+**エイリアス**: `ch`
+
+チャンネルチャット機能が有効な場合にのみ使用できます.
+
+### 作成・探索
+
+#### `/lc channel create <channelId> <name> [description] [isPrivate]`
+
+新しいチャンネルを作成します.作成者がオーナーになります.
+
+- **エイリアス**: `new`
+- **パーミッション**: `lunaticchat.command.lc.channel.create`
+- `channelId`: 英数字,アンダースコア,ハイフンのみ使用可能
+- `isPrivate`: `true` / `false`(デフォルト: `false`)
+
+#### `/lc channel list [page]`
+
+公開チャンネルの一覧を表示します(1ページ10件).
+
+- **エイリアス**: `ls`
+- **パーミッション**: `lunaticchat.command.lc.channel.list`
+
+#### `/lc channel info [channelId]`
+
+チャンネルの詳細情報を表示します.引数なしでアクティブチャンネルの情報を表示します.
+
+- **エイリアス**: `i`
+- **パーミッション**: `lunaticchat.command.lc.channel.info`
+
+### 参加・退出
+
+#### `/lc channel join <channelId>`
+
+チャンネルに参加します.プライベートチャンネルには招待が必要です.
+
+- **エイリアス**: `j`
+- **パーミッション**: `lunaticchat.command.lc.channel.join`
+
+#### `/lc channel leave`
+
+アクティブチャンネルから退出します.
+
+- **エイリアス**: `l`
+- **パーミッション**: `lunaticchat.command.lc.channel.leave`
+
+#### `/lc channel switch <channelId>`
+
+参加済みの別チャンネルをアクティブに切り替えます.
+
+- **エイリアス**: `sw`
+- **パーミッション**: `lunaticchat.command.lc.channel.switch`
+
+#### `/lc channel status`
+
+自分のチャンネル参加状況(アクティブチャンネルと参加チャンネル一覧)を表示します.
+
+- **エイリアス**: `st`
+- **パーミッション**: `lunaticchat.command.lc.channel.status`
+
+### モデレーション(オーナー / モデレーター)
+
+#### `/lc channel invite <playerName>`
+
+プレイヤーをアクティブチャンネルに招待します.プライベートチャンネルの制限をバイパスします.
+
+- **エイリアス**: `inv`
+- **パーミッション**: `lunaticchat.command.lc.channel.invite`
+- **必要ロール**: OWNER または MODERATOR
+
+#### `/lc channel kick <playerName>`
+
+プレイヤーをアクティブチャンネルからキックします.
+
+- **エイリアス**: `k`
+- **パーミッション**: `lunaticchat.command.lc.channel.kick`
+- **必要ロール**: OWNER または MODERATOR
+
+#### `/lc channel ban <playerName>`
+
+プレイヤーをアクティブチャンネルから BAN します.BAN されたプレイヤーは再参加できません.
+
+- **パーミッション**: `lunaticchat.command.lc.channel.ban`
+- **必要ロール**: OWNER または MODERATOR
+
+#### `/lc channel unban <playerName>`
+
+プレイヤーのチャンネル BAN を解除します.
+
+- **パーミッション**: `lunaticchat.command.lc.channel.unban`
+- **必要ロール**: OWNER または MODERATOR
+
+### 管理(オーナーのみ)
+
+#### `/lc channel delete <channelId>`
+
+チャンネルを削除します.
+
+- **エイリアス**: `del`
+- **パーミッション**: `lunaticchat.command.lc.channel.delete`
+- **必要ロール**: OWNER(`lunaticchat.channelbypass` 権限で制限をバイパス可能)
+
+#### `/lc channel mod <playerName>`
+
+チャンネルメンバーのモデレーター権限を付与・剥奪します.
+
+- **パーミッション**: `lunaticchat.command.lc.channel.mod`
+- **必要ロール**: OWNER
+
+#### `/lc channel ownership <playerName>`
+
+チャンネルのオーナー権限を別のメンバーに譲渡します.
+
+- **エイリアス**: `own`
+- **パーミッション**: `lunaticchat.command.lc.channel.ownership`
+- **必要ロール**: OWNER
+
+## Velocity コマンド (`/lcv`)
+
+**エイリアス**: `lunaticvelocity`
+
+### `/lcv status`
+
+Velocity プロキシとの接続状態,プロトコルバージョン,オンラインプレイヤー数を表示します.
+
+- **エイリアス**: `st`
+- **パーミッション**: `lunaticchat.command.lcv.status`
+- **デフォルト**: op のみ
diff --git a/website/src/ja/docs/reference/compatibility.md b/website/src/ja/docs/reference/compatibility.md
new file mode 100644
index 0000000..587261e
--- /dev/null
+++ b/website/src/ja/docs/reference/compatibility.md
@@ -0,0 +1,65 @@
+---
+layout: doc
+---
+
+# Paper / Velocity 互換性
+
+LunaticChat の Paper プラグインと Velocity プラグインは独立にバージョン管理されています.それぞれの組み合わせが動作するかどうかは,両プラグインに埋め込まれた**プロトコルバージョン**で判定されます.
+
+::: warning プラグインバージョン ≠ プロトコルバージョン
+**プラグインバージョン** (例: Paper v1.2.0) と **プロトコルバージョン** (例: 1.0.0) は別物です.プラグイン側のリリースを重ねてもプロトコルが変わらなければ互換性は維持されます.互換性を決めるのはプロトコルバージョンのみです.
+:::
+
+## 結論から
+
+- **両プラグインの最新版同士は常に互換性があります.** 迷ったら両方を最新にしてください.
+- 古いバージョンを混在させたい場合は,下のマトリクスで組み合わせを確認してください.
+- 接続状態は Minecraft サーバーで `/lcv status` を実行すると確認できます.
+
+## 互換性マトリクス
+
+各セルは「その Paper × Velocity の組み合わせが接続できるか」を示します.データは GitHub Releases から自動取得されます.
+
+<CompatibilityMatrix />
+
+## プロトコルバージョンとは
+
+Paper / Velocity 間の通信は LunaticChat 独自のプラグインメッセージプロトコルで行われています.プロトコルにはセマンティックバージョニング (`MAJOR.MINOR.PATCH`) が振られており,接続時のハンドシェイクで Velocity 側がバージョンを照合します.
+
+::: tip 互換性チェックは Velocity 側のみ
+互換性判定をしているのは Velocity 側のみです.Paper 側はハンドシェイクを送るだけで,バージョンチェックはしません.つまり「Velocity が Paper のプロトコルを受け入れられるか」がそのまま接続可否になります.
+:::
+
+判定ルールは以下です(Velocity 視点):
+
+- **MAJOR** が一致すること
+- Paper の **MINOR** が,Velocity の `MIN_SUPPORTED_MINOR` 以上かつ Velocity の `MINOR` 以下であること
+- **PATCH** は判定に影響しない
+
+`MIN_SUPPORTED_MINOR` は「Velocity がどこまで古い Paper の MINOR を受け入れるか」を示す値で,ローリングアップデート中の猶予期間を作るために使われます.
+
+### バージョンバンプの基準
+
+| レベル | 変更例 | 互換性 | デプロイ順序 |
+|--------|--------|--------|-------------|
+| **PATCH** (1.0.0 → 1.0.1) | optional フィールド追加,新 sub-channel 追加 | 完全互換 (`ignoreUnknownKeys=true` で安全) | 順不同,いつでも |
+| **MINOR** (1.0.x → 1.1.0) | required フィールド追加,既存 sub-channel のセマンティクス変更 | `MIN_SUPPORTED_MINOR` の範囲内で後方互換 | **Velocity を先に更新** → 各 Paper を順次更新 |
+| **MAJOR** (1.x.x → 2.0.0) | ワイヤフォーマット変更,sub-channel 削除/リネーム | 非互換 | **全サーバー同時デプロイ** |
+
+### ローリングアップデートの考え方
+
+1. **プロトコル変更なし**:Paper / Velocity を独立にデプロイ可能.プラグインのバグ修正やリファクタはここに入ります.
+2. **PATCH 変更**:どちら側からでも自由にデプロイ可能.
+3. **MINOR 変更**:Velocity を先行更新し,`MIN_SUPPORTED_MINOR` で旧 Paper を許容.全 Paper 更新後に `MIN_SUPPORTED_MINOR` を引き上げ.
+4. **MAJOR 変更**:メンテナンスウィンドウで一括更新.
+
+## ハンドシェイクの挙動
+
+接続時は以下の流れで互換性が確認されます:
+
+1. Paper サーバー起動時に Velocity に対してハンドシェイクを送信
+2. Velocity が Paper のプロトコルバージョンを自身のものと照合
+3. 不一致の場合は Velocity が接続を拒否し,Paper 側の状態が `FAILED` になる
+4. ハンドシェイクのタイムアウトは 5 秒
+
+接続状態は `/lcv status` で確認できます.詳細は [Velocity 連携](/ja/docs/features/velocity#接続状態) を参照してください.
diff --git a/website/src/ja/docs/reference/message-format.md b/website/src/ja/docs/reference/message-format.md
new file mode 100644
index 0000000..7ae42e9
--- /dev/null
+++ b/website/src/ja/docs/reference/message-format.md
@@ -0,0 +1,86 @@
+---
+layout: doc
+---
+
+# メッセージフォーマット
+
+`config.yml` の `messageFormat` セクションで,チャットメッセージの表示形式をカスタマイズできます.
+
+## プレースホルダー
+
+| プレースホルダー | 説明 | 使用可能なフォーマット |
+|----------------|------|----------------------|
+| `{sender}` | メッセージの送信者名 | すべて |
+| `{recipient}` | メッセージの受信者名 | `directMessageFormat` |
+| `{message}` | メッセージの内容 | すべて |
+| `{channel}` | チャンネル名 | `channelMessageFormat` |
+| `{server}` | サーバー名 | `crossServerGlobalChatFormat` |
+
+## フォーマット一覧
+
+### `directMessageFormat`
+
+`/tell` や `/reply` で送信されるダイレクトメッセージの表示形式です.
+
+**デフォルト:**
+```
+§7[§e{sender} §7>> §e{recipient}§7] §f{message}
+```
+
+**表示例:** <span style="color: gray">[</span><span style="color: gold">Steve</span> <span style="color: gray">>></span> <span style="color: gold">Alex</span><span style="color: gray">]</span> <span style="color: white">こんにちは!</span>
+
+### `channelMessageFormat`
+
+チャンネルチャットで送信されるメッセージの表示形式です.
+
+**デフォルト:**
+```
+§7[§b#{channel}§7] §e{sender}: §f{message}
+```
+
+**表示例:** <span style="color: gray">[</span><span style="color: aqua">#general</span><span style="color: gray">]</span> <span style="color: gold">Steve:</span> <span style="color: white">こんにちは!</span>
+
+### `crossServerGlobalChatFormat`
+
+Velocity 連携時のクロスサーバーグローバルチャットの表示形式です.
+
+**デフォルト:**
+```
+§7[§6{server}§7] §e{sender}: §f{message}
+```
+
+**表示例:** <span style="color: gray">[</span><span style="color: gold">survival</span><span style="color: gray">]</span> <span style="color: gold">Steve:</span> <span style="color: white">こんにちは!</span>
+
+## カラーコード
+
+Minecraft のセクション記号(`§`)を使ったカラーコードが使用できます.
+
+| コード | 色 |
+|--------|------|
+| `§0` | 黒 |
+| `§1` | 濃い青 |
+| `§2` | 濃い緑 |
+| `§3` | 濃い水色 |
+| `§4` | 濃い赤 |
+| `§5` | 濃い紫 |
+| `§6` | 金色 |
+| `§7` | 灰色 |
+| `§8` | 濃い灰色 |
+| `§9` | 青 |
+| `§a` | 緑 |
+| `§b` | 水色 |
+| `§c` | 赤 |
+| `§d` | ピンク |
+| `§e` | 黄色 |
+| `§f` | 白 |
+
+### 装飾コード
+
+| コード | 効果 |
+|--------|------|
+| `§l` | **太字** |
+| `§o` | *斜体* |
+| `§n` | <u>下線</u> |
+| `§m` | ~~取り消し線~~ |
+| `§k` | 難読化(文字がランダムに変化) |
+| `§r` | リセット |
diff --git a/website/src/ja/docs/reference/player-settings.md b/website/src/ja/docs/reference/player-settings.md
new file mode 100644
index 0000000..bbd294d
--- /dev/null
+++ b/website/src/ja/docs/reference/player-settings.md
@@ -0,0 +1,50 @@
+---
+layout: doc
+---
+
+# プレイヤー設定
+
+プレイヤーは `/lc settings` コマンドで個人設定を変更できます.設定はサーバーの `player-settings.yaml`(設定ファイルの `userSettingsFilePath` で変更可能)に UUID ごとに保存されます.
+
+## コマンド
+
+```
+/lc settings # 設定一覧を表示
+/lc settings <key> # 現在の値を確認
+/lc settings <key> on|off # 値を変更
+```
+
+## 設定キー
+
+| キー | 説明 | デフォルト |
+|------|------|-----------|
+| `japanese` | ローマ字→日本語変換を有効にする | `true` |
+| `notice` | ダイレクトメッセージの通知を有効にする | `true` |
+| `chNotice` | チャンネルメッセージの通知を有効にする | `true` |
+
+### `japanese`
+
+ローマ字で入力したチャットメッセージを自動的に日本語(ひらがな)に変換します.この設定はサーバー側で `features.japaneseConversion.enabled` が `true` の場合にのみ機能します.
+
+```
+/lc settings japanese on # 変換を有効化
+/lc settings japanese off # 変換を無効化
+```
+
+### `notice`
+
+ダイレクトメッセージ(`/tell` / `/reply`)を受信した際の通知を制御します.
+
+```
+/lc settings notice on # 通知を有効化
+/lc settings notice off # 通知を無効化
+```
+
+### `chNotice`
+
+チャンネルチャットのメッセージを受信した際の通知を制御します.この設定はサーバー側で `features.channelChat.enabled` が `true` の場合にのみ機能します.
+
+```
+/lc settings chNotice on # 通知を有効化
+/lc settings chNotice off # 通知を無効化
+```