diff options
| author | Sho Sakuma <me@m1sk9.dev> | 2026-06-12 15:47:12 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-12 15:47:12 +0900 |
| commit | c8adb0505b3fa5d44a6f2b0aa1a3dd97ded5aedd (patch) | |
| tree | 5a11035b136b216f2033d78a1e4d6b6138c18772 /website/src/ja/docs | |
| parent | 043e202b1cbedad69d5521a83e791c106b49b10f (diff) | |
| parent | 8326b6a7619fd9e4fb6a640d01c4bf0c6194dc81 (diff) | |
| download | LunaticChat-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.md | 73 | ||||
| -rw-r--r-- | website/src/ja/docs/features/admin.md | 74 | ||||
| -rw-r--r-- | website/src/ja/docs/features/channel-chat.md | 92 | ||||
| -rw-r--r-- | website/src/ja/docs/features/direct-message.md | 52 | ||||
| -rw-r--r-- | website/src/ja/docs/features/japanese-conversion.md | 62 | ||||
| -rw-r--r-- | website/src/ja/docs/features/message-logging.md | 94 | ||||
| -rw-r--r-- | website/src/ja/docs/features/velocity.md | 88 | ||||
| -rw-r--r-- | website/src/ja/docs/getting-started.md | 51 | ||||
| -rw-r--r-- | website/src/ja/docs/permissions.md | 50 | ||||
| -rw-r--r-- | website/src/ja/docs/reference/commands.md | 173 | ||||
| -rw-r--r-- | website/src/ja/docs/reference/compatibility.md | 65 | ||||
| -rw-r--r-- | website/src/ja/docs/reference/message-format.md | 86 | ||||
| -rw-r--r-- | website/src/ja/docs/reference/player-settings.md | 50 |
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 # 通知を無効化 +``` |
