summaryrefslogtreecommitdiff
path: root/website/src/ja/docs/features
diff options
context:
space:
mode:
Diffstat (limited to 'website/src/ja/docs/features')
-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
6 files changed, 462 insertions, 0 deletions
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) — プロトコルバージョンとローリングアップデートの詳細