From 8326b6a7619fd9e4fb6a640d01c4bf0c6194dc81 Mon Sep 17 00:00:00 2001 From: Sho Sakuma Date: Fri, 12 Jun 2026 15:42:51 +0900 Subject: docs(website): make English the default locale Swap the website default locale from Japanese to English. English now lives at the site root (/), and Japanese moves under /ja/. Update locale config, nav/sidebar links, internal doc links, and asset relative paths accordingly. Co-Authored-By: Claude --- website/.vitepress/config.mts | 6 +- website/.vitepress/config/en.ts | 32 ++-- website/.vitepress/config/ja.ts | 32 ++-- website/src/docs/configuration.md | 96 ++++++------ website/src/docs/features/admin.md | 66 ++++---- website/src/docs/features/channel-chat.md | 90 +++++------ website/src/docs/features/direct-message.md | 40 ++--- website/src/docs/features/japanese-conversion.md | 68 ++++---- website/src/docs/features/message-logging.md | 66 ++++---- website/src/docs/features/velocity.md | 90 +++++------ website/src/docs/getting-started.md | 54 +++---- website/src/docs/permissions.md | 92 +++++------ website/src/docs/reference/commands.md | 160 +++++++++---------- website/src/docs/reference/compatibility.md | 74 ++++----- website/src/docs/reference/message-format.md | 108 ++++++------- website/src/docs/reference/player-settings.md | 42 ++--- website/src/download.md | 4 +- website/src/en/docs/configuration.md | 73 --------- website/src/en/docs/features/admin.md | 74 --------- website/src/en/docs/features/channel-chat.md | 92 ----------- website/src/en/docs/features/direct-message.md | 52 ------- .../src/en/docs/features/japanese-conversion.md | 62 -------- website/src/en/docs/features/message-logging.md | 94 ----------- website/src/en/docs/features/velocity.md | 88 ----------- website/src/en/docs/getting-started.md | 51 ------ website/src/en/docs/permissions.md | 50 ------ website/src/en/docs/reference/commands.md | 173 --------------------- website/src/en/docs/reference/compatibility.md | 65 -------- website/src/en/docs/reference/message-format.md | 86 ---------- website/src/en/docs/reference/player-settings.md | 50 ------ website/src/en/download.md | 8 - website/src/en/index.md | 164 ------------------- website/src/index.md | 110 ++++++------- website/src/ja/docs/configuration.md | 73 +++++++++ website/src/ja/docs/features/admin.md | 74 +++++++++ website/src/ja/docs/features/channel-chat.md | 92 +++++++++++ website/src/ja/docs/features/direct-message.md | 52 +++++++ .../src/ja/docs/features/japanese-conversion.md | 62 ++++++++ website/src/ja/docs/features/message-logging.md | 94 +++++++++++ website/src/ja/docs/features/velocity.md | 88 +++++++++++ website/src/ja/docs/getting-started.md | 51 ++++++ website/src/ja/docs/permissions.md | 50 ++++++ website/src/ja/docs/reference/commands.md | 173 +++++++++++++++++++++ website/src/ja/docs/reference/compatibility.md | 65 ++++++++ website/src/ja/docs/reference/message-format.md | 86 ++++++++++ website/src/ja/docs/reference/player-settings.md | 50 ++++++ website/src/ja/download.md | 8 + website/src/ja/index.md | 164 +++++++++++++++++++ 48 files changed, 1797 insertions(+), 1797 deletions(-) delete mode 100644 website/src/en/docs/configuration.md delete mode 100644 website/src/en/docs/features/admin.md delete mode 100644 website/src/en/docs/features/channel-chat.md delete mode 100644 website/src/en/docs/features/direct-message.md delete mode 100644 website/src/en/docs/features/japanese-conversion.md delete mode 100644 website/src/en/docs/features/message-logging.md delete mode 100644 website/src/en/docs/features/velocity.md delete mode 100644 website/src/en/docs/getting-started.md delete mode 100644 website/src/en/docs/permissions.md delete mode 100644 website/src/en/docs/reference/commands.md delete mode 100644 website/src/en/docs/reference/compatibility.md delete mode 100644 website/src/en/docs/reference/message-format.md delete mode 100644 website/src/en/docs/reference/player-settings.md delete mode 100644 website/src/en/download.md delete mode 100644 website/src/en/index.md create mode 100644 website/src/ja/docs/configuration.md create mode 100644 website/src/ja/docs/features/admin.md create mode 100644 website/src/ja/docs/features/channel-chat.md create mode 100644 website/src/ja/docs/features/direct-message.md create mode 100644 website/src/ja/docs/features/japanese-conversion.md create mode 100644 website/src/ja/docs/features/message-logging.md create mode 100644 website/src/ja/docs/features/velocity.md create mode 100644 website/src/ja/docs/getting-started.md create mode 100644 website/src/ja/docs/permissions.md create mode 100644 website/src/ja/docs/reference/commands.md create mode 100644 website/src/ja/docs/reference/compatibility.md create mode 100644 website/src/ja/docs/reference/message-format.md create mode 100644 website/src/ja/docs/reference/player-settings.md create mode 100644 website/src/ja/download.md create mode 100644 website/src/ja/index.md diff --git a/website/.vitepress/config.mts b/website/.vitepress/config.mts index a3fcb56..5237228 100644 --- a/website/.vitepress/config.mts +++ b/website/.vitepress/config.mts @@ -14,10 +14,9 @@ export default defineConfig({ description: 'Next-generation channel chat plugin for Paper/Velocity', head: [['link', { href: '/favicon.ico', rel: 'icon' }]], locales: { - en: { + root: { label: 'English', lang: 'en-US', - link: '/en/', themeConfig: { ...en, footer: { @@ -26,9 +25,10 @@ export default defineConfig({ }, }, }, - root: { + ja: { label: '日本語', lang: 'ja-JP', + link: '/ja/', themeConfig: { ...ja, footer: { diff --git a/website/.vitepress/config/en.ts b/website/.vitepress/config/en.ts index 6bc755b..f9929fd 100644 --- a/website/.vitepress/config/en.ts +++ b/website/.vitepress/config/en.ts @@ -6,48 +6,48 @@ export const en: DefaultTheme.Config = { text: 'Edit this page on GitHub', }, nav: [ - { link: '/en/download', text: 'Download' }, - { link: '/en/docs/getting-started', text: 'Documentation' }, + { link: '/download', text: 'Download' }, + { link: '/docs/getting-started', text: 'Documentation' }, ], sidebar: { - '/en/docs/': [ + '/docs/': [ { - link: '/en/docs/getting-started', + link: '/docs/getting-started', text: 'Getting Started', }, { - link: '/en/docs/configuration', + link: '/docs/configuration', text: 'Configuration', }, { - link: '/en/docs/permissions', + link: '/docs/permissions', text: 'Permissions', }, { text: 'Feature Guides', items: [ { - link: '/en/docs/features/direct-message', + link: '/docs/features/direct-message', text: 'Direct Messages', }, { - link: '/en/docs/features/channel-chat', + link: '/docs/features/channel-chat', text: 'Channel Chat', }, { - link: '/en/docs/features/japanese-conversion', + link: '/docs/features/japanese-conversion', text: 'Romaji Conversion', }, { - link: '/en/docs/features/velocity', + link: '/docs/features/velocity', text: 'Velocity Integration', }, { - link: '/en/docs/features/message-logging', + link: '/docs/features/message-logging', text: 'Message Logging', }, { - link: '/en/docs/features/admin', + link: '/docs/features/admin', text: 'Admin Features', }, ], @@ -56,19 +56,19 @@ export const en: DefaultTheme.Config = { text: 'Reference', items: [ { - link: '/en/docs/reference/commands', + link: '/docs/reference/commands', text: 'Commands', }, { - link: '/en/docs/reference/message-format', + link: '/docs/reference/message-format', text: 'Message Format', }, { - link: '/en/docs/reference/player-settings', + link: '/docs/reference/player-settings', text: 'Player Settings', }, { - link: '/en/docs/reference/compatibility', + link: '/docs/reference/compatibility', text: 'Paper / Velocity Compatibility', }, ], diff --git a/website/.vitepress/config/ja.ts b/website/.vitepress/config/ja.ts index 2335509..12fd9a1 100644 --- a/website/.vitepress/config/ja.ts +++ b/website/.vitepress/config/ja.ts @@ -6,48 +6,48 @@ export const ja: DefaultTheme.Config = { text: 'GitHub で編集', }, nav: [ - { link: '/download', text: 'ダウンロード' }, - { link: '/docs/getting-started', text: 'ドキュメント' }, + { link: '/ja/download', text: 'ダウンロード' }, + { link: '/ja/docs/getting-started', text: 'ドキュメント' }, ], sidebar: { - '/docs/': [ + '/ja/docs/': [ { - link: '/docs/getting-started', + link: '/ja/docs/getting-started', text: 'はじめる', }, { - link: '/docs/configuration', + link: '/ja/docs/configuration', text: '設定', }, { - link: '/docs/permissions', + link: '/ja/docs/permissions', text: 'パーミッション', }, { text: '機能ガイド', items: [ { - link: '/docs/features/direct-message', + link: '/ja/docs/features/direct-message', text: 'ダイレクトメッセージ', }, { - link: '/docs/features/channel-chat', + link: '/ja/docs/features/channel-chat', text: 'チャンネルチャット', }, { - link: '/docs/features/japanese-conversion', + link: '/ja/docs/features/japanese-conversion', text: 'ローマ字変換', }, { - link: '/docs/features/velocity', + link: '/ja/docs/features/velocity', text: 'Velocity 連携', }, { - link: '/docs/features/message-logging', + link: '/ja/docs/features/message-logging', text: 'メッセージログ', }, { - link: '/docs/features/admin', + link: '/ja/docs/features/admin', text: '管理者向け機能', }, ], @@ -56,19 +56,19 @@ export const ja: DefaultTheme.Config = { text: 'リファレンス', items: [ { - link: '/docs/reference/commands', + link: '/ja/docs/reference/commands', text: 'コマンド一覧', }, { - link: '/docs/reference/message-format', + link: '/ja/docs/reference/message-format', text: 'メッセージフォーマット', }, { - link: '/docs/reference/player-settings', + link: '/ja/docs/reference/player-settings', text: 'プレイヤー設定', }, { - link: '/docs/reference/compatibility', + link: '/ja/docs/reference/compatibility', text: 'Paper / Velocity 互換性', }, ], diff --git a/website/src/docs/configuration.md b/website/src/docs/configuration.md index 8e603de..e7891b3 100644 --- a/website/src/docs/configuration.md +++ b/website/src/docs/configuration.md @@ -2,72 +2,72 @@ layout: doc --- -# 設定 +# Configuration -LunaticChat の設定は `plugins/LunaticChat/config.yml` で管理されます.サーバーの初回起動時にデフォルトの設定ファイルが生成されます. +LunaticChat's configuration is managed in `plugins/LunaticChat/config.yml`. A default configuration file is generated on the server's first startup. -## グローバル設定 +## Global Settings -| キー | 型 | デフォルト | 説明 | -|------|------|------------|------| -| `debug` | Boolean | `false` | デバッグログを有効にする | -| `userSettingsFilePath` | String | `"player-settings.yaml"` | プレイヤー設定ファイルのパス | -| `checkForUpdates` | Boolean | `true` | 起動時にアップデートを確認する | -| `language` | String | `"en"` | プラグインの言語 (`en` / `ja`) | +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `debug` | Boolean | `false` | Enable debug logging | +| `userSettingsFilePath` | String | `"player-settings.yaml"` | Path to the player settings file | +| `checkForUpdates` | Boolean | `true` | Check for updates on startup | +| `language` | String | `"en"` | Plugin language (`en` / `ja`) | -## 機能設定 (`features`) +## Feature Settings (`features`) -### クイックリプライ (`features.quickReplies`) +### Quick Replies (`features.quickReplies`) -| キー | 型 | デフォルト | 説明 | -|------|------|------------|------| -| `enabled` | Boolean | `true` | `/reply` コマンドを有効にする | +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | Boolean | `true` | Enable the `/reply` command | -### ローマ字変換 (`features.japaneseConversion`) +### Japanese Conversion (`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 リクエスト失敗時のリトライ回数 | +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | Boolean | `false` | Enable romaji-to-hiragana conversion | +| `cache.maxEntries` | Int | `500` | Maximum number of conversion cache entries | +| `cache.saveIntervalSeconds` | Int | `300` | Interval (in seconds) for saving cache to disk | +| `cache.filePath` | String | `"conversion_cache.json"` | Path to the cache file | +| `api.timeout` | Long | `3000` | API request timeout (in milliseconds) | +| `api.retryAttempts` | Int | `2` | Number of retries on API request failure | -### チャンネルチャット (`features.channelChat`) +### Channel Chat (`features.channelChat`) -| キー | 型 | デフォルト | 説明 | -|------|------|------------|------| -| `enabled` | Boolean | `false` | チャンネルチャット機能を有効にする | -| `maxChannelsPerServer` | Int | `0` | サーバーあたりの最大チャンネル数(`0` = 無制限) | -| `maxMembersPerChannel` | Int | `0` | チャンネルあたりの最大メンバー数(`0` = 無制限) | -| `maxMembershipPerPlayer` | Int | `0` | プレイヤーあたりの最大参加チャンネル数(`0` = 無制限) | +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | Boolean | `false` | Enable the channel chat feature | +| `maxChannelsPerServer` | Int | `0` | Maximum channels per server (`0` = unlimited) | +| `maxMembersPerChannel` | Int | `0` | Maximum members per channel (`0` = unlimited) | +| `maxMembershipPerPlayer` | Int | `0` | Maximum channel memberships per player (`0` = unlimited) | -#### メッセージログ (`features.channelChat.messageLogging`) +#### Message Logging (`features.channelChat.messageLogging`) -| キー | 型 | デフォルト | 説明 | -|------|------|------------|------| -| `enabled` | Boolean | `true` | チャンネルメッセージを NDJSON ファイルに記録する | -| `retentionDays` | Int | `30` | ログファイルの保持日数(`0` = 無期限) | -| `maxFileSizeMB` | Int | `100` | 単一ログファイルの最大サイズ(MB) | +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | Boolean | `true` | Log channel messages to an NDJSON file | +| `retentionDays` | Int | `30` | Log file retention period in days (`0` = indefinite) | +| `maxFileSizeMB` | Int | `100` | Maximum size of a single log file (MB) | -### Velocity 連携 (`features.velocityIntegration`) +### Velocity Integration (`features.velocityIntegration`) -| キー | 型 | デフォルト | 説明 | -|------|------|------------|------| -| `enabled` | Boolean | `false` | Velocity プロキシとの連携を有効にする | -| `crossServerGlobalChat` | Boolean | `false` | サーバー間グローバルチャットを有効にする | -| `serverName` | String | `"Unknown"` | クロスサーバーチャットで表示されるサーバー名 | -| `messageDeduplicationCacheSize` | Int | `100` | メッセージ重複排除キャッシュのサイズ | +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | Boolean | `false` | Enable integration with the Velocity proxy | +| `crossServerGlobalChat` | Boolean | `false` | Enable cross-server global chat | +| `serverName` | String | `"Unknown"` | Server name displayed in cross-server chat | +| `messageDeduplicationCacheSize` | Int | `100` | Size of the message deduplication cache | -## メッセージフォーマット (`messageFormat`) +## Message Format (`messageFormat`) -| キー | デフォルト | 利用可能なプレースホルダー | -|------|------------|--------------------------| +| Key | Default | Available Placeholders | +|-----|---------|----------------------| | `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}` | -## デフォルト設定ファイル +## Default Configuration File -[GitHub で確認する](https://github.com/m1sk9/LunaticChat/blob/main/platform-paper/src/main/resources/config.yml) +[View on GitHub](https://github.com/m1sk9/LunaticChat/blob/main/platform-paper/src/main/resources/config.yml) diff --git a/website/src/docs/features/admin.md b/website/src/docs/features/admin.md index 57d38c0..c3a3d2f 100644 --- a/website/src/docs/features/admin.md +++ b/website/src/docs/features/admin.md @@ -2,73 +2,73 @@ layout: doc --- -# 管理者向け機能 +# Admin Features -サーバー管理者向けの機能をまとめて解説します.これらの機能は主に OP 権限を持つプレイヤーが利用できます. +This page covers features intended for server administrators. These features are primarily available to players with OP permissions. -## プラグインステータス (`/lc status`) +## Plugin Status (`/lc status`) -プラグインの動作状況を一覧で確認できます. +View an overview of the plugin's operational status. ``` /lc status ``` -表示される情報: +Displayed information: -- プラグインバージョン (Git コミットハッシュ付き) -- ヘルスステータス (OK / Degraded) -- 各機能の有効/無効状態 -- 設定値 (デバッグモード,アップデート確認,言語) -- GitHub,Modrinth,ドキュメントへのリンク +- Plugin version (with Git commit hash) +- Health status (OK / Degraded) +- Enabled/disabled state of each feature +- Configuration values (debug mode, update checking, language) +- Links to GitHub, Modrinth, and documentation -## スパイモード +## Spy Mode -`lunaticchat.spy` パーミッション (デフォルト: op) を持つプレイヤーは,サーバー上で送受信されるすべてのダイレクトメッセージを閲覧できます. +Players with the `lunaticchat.spy` permission (default: op) can view all direct messages sent and received on the server. -- スパイプレイヤーにはローマ字変換前の元のメッセージが表示されます -- ホバーテキストでスパイメッセージであることが示されます -- スパイプレイヤー自身は通常の送受信者リストには含まれません +- Spy players see the original message before romaji conversion +- Hover text indicates the message is a spy message +- Spy players themselves are not included in the normal sender/recipient list -## チャンネルバイパス +## Channel Bypass -`lunaticchat.channelbypass` パーミッション (デフォルト: op) を持つプレイヤーは,チャンネルに関する以下の制限を無視できます. +Players with the `lunaticchat.channelbypass` permission (default: op) can bypass the following channel restrictions. -- キック・BAN の対象にならない -- オーナーでなくてもチャンネルを削除できる +- Cannot be kicked or banned +- Can delete channels even without being the owner -## アップデート通知 +## Update Notifications -`checkForUpdates` が `true` (デフォルト) の場合,プラグインは起動時に新しいバージョンが利用可能か確認します.`lunaticchat.noticeupdate` パーミッション (デフォルト: op) を持つプレイヤーがサーバーに参加した際にアップデート通知が表示されます. +When `checkForUpdates` is `true` (default), the plugin checks for new versions at startup. Players with the `lunaticchat.noticeupdate` permission (default: op) receive an update notification when they join the server. ```yaml # config.yml checkForUpdates: true ``` -## デバッグモード +## Debug Mode -`debug` を `true` にすると,プラグインの詳細なログが出力されます.問題の調査やバグ報告時に有用です. +Setting `debug` to `true` enables verbose plugin logging. This is useful for troubleshooting issues or submitting bug reports. ```yaml # config.yml debug: true ``` -## 言語設定 +## Language Setting -プレイヤーに表示されるメッセージの言語を切り替えられます.プラグインログやコンソール出力には影響せず,英語のみ出力となります. +You can change the language of messages displayed to players. Plugin logs and console output are not affected and remain in English only. ```yaml # config.yml -language: "ja" # "en" または "ja" +language: "ja" # "en" or "ja" ``` -## 管理者パーミッション一覧 +## Admin Permissions Reference -| パーミッション | デフォルト | 説明 | -|---------------|-----------|------| -| `lunaticchat.spy` | op | 全ダイレクトメッセージの閲覧 | -| `lunaticchat.channelbypass` | op | チャンネル制限のバイパス | -| `lunaticchat.noticeupdate` | op | アップデート通知の受信 | -| `lunaticchat.command.lcv.status` | op | `/lcv status` コマンドの使用 | +| Permission | Default | Description | +|-----------|---------|-------------| +| `lunaticchat.spy` | op | View all direct messages | +| `lunaticchat.channelbypass` | op | Bypass channel restrictions | +| `lunaticchat.noticeupdate` | op | Receive update notifications | +| `lunaticchat.command.lcv.status` | op | Use the `/lcv status` command | diff --git a/website/src/docs/features/channel-chat.md b/website/src/docs/features/channel-chat.md index b0caa43..c06ea39 100644 --- a/website/src/docs/features/channel-chat.md +++ b/website/src/docs/features/channel-chat.md @@ -2,91 +2,91 @@ layout: doc --- -# チャンネルチャット +# Channel Chat -チャンネルを作成してグループごとに会話を分離できます.この機能を利用するには `config.yml` で `features.channelChat.enabled` を `true` に設定してください. +Create channels to separate conversations by group. To use this feature, set `features.channelChat.enabled` to `true` in `config.yml`. -## チャンネルの作成 +## Creating a Channel ``` /lc channel create [description] [isPrivate] ``` -- `channelId`: チャンネルの一意な識別子 (英数字, `_`, `-` のみ, 3〜30文字) -- `name`: チャンネルの表示名 -- `description`: チャンネルの説明 (省略可) -- `isPrivate`: プライベートチャンネルにする場合は `true` (デフォルト: `false`) +- `channelId`: A unique identifier for the channel (alphanumeric, `_`, `-` only, 3-30 characters) +- `name`: The display name of the channel +- `description`: A description of the channel (optional) +- `isPrivate`: Set to `true` to make the channel private (default: `false`) -作成者は自動的にオーナーになります. +The creator automatically becomes the owner. -## チャンネルへの参加・退出 +## Joining and Leaving Channels ``` -/lc channel join # チャンネルに参加 -/lc channel leave # アクティブチャンネルから退出 -/lc channel switch # アクティブチャンネルを切り替え +/lc channel join # Join a channel +/lc channel leave # Leave the active channel +/lc channel switch # Switch the active channel ``` -プライベートチャンネルに参加するには,オーナーまたはモデレーターからの招待が必要です. +Joining a private channel requires an invitation from the owner or a moderator. -## アクティブチャンネル +## Active Channel -プレイヤーは複数のチャンネルに参加できますが,一度にアクティブにできるチャンネルは1つです.チャットメッセージはアクティブチャンネルに送信されます.`/lc channel switch` でアクティブチャンネルを切り替えられます. +Players can join multiple channels, but only one channel can be active at a time. Chat messages are sent to the active channel. Use `/lc channel switch` to change the active channel. ``` -/lc channel status # 現在のアクティブチャンネルと参加チャンネル一覧を表示 +/lc channel status # Display the current active channel and list of joined channels ``` -## ロールと権限 +## Roles and Permissions -チャンネルには3つのロールがあります. +Channels have three roles. -| ロール | 権限 | -|--------|------| -| **OWNER** | チャンネルの削除,モデレーター管理,オーナー譲渡,メンバー管理 | -| **MODERATOR** | メンバーの招待,キック,BAN/BAN解除 | -| **MEMBER** | チャットへの参加,チャンネル情報の閲覧 | +| Role | Permissions | +|------|-------------| +| **OWNER** | Delete the channel, manage moderators, transfer ownership, manage members | +| **MODERATOR** | Invite, kick, ban/unban members | +| **MEMBER** | Participate in chat, view channel information | -### モデレーター管理 (オーナーのみ) +### Moderator Management (Owner Only) ``` -/lc channel mod # モデレーター権限の付与/剥奪 -/lc channel ownership # オーナー権限の譲渡 +/lc channel mod # Grant/revoke moderator permissions +/lc channel ownership # Transfer ownership ``` -### メンバー管理 (オーナー / モデレーター) +### Member Management (Owner / Moderator) ``` -/lc channel invite # プレイヤーを招待 -/lc channel kick # プレイヤーをキック -/lc channel ban # プレイヤーを BAN -/lc channel unban # BAN を解除 +/lc channel invite # Invite a player +/lc channel kick # Kick a player +/lc channel ban # Ban a player +/lc channel unban # Unban a player ``` -## 制限設定 +## Limit Settings -`config.yml` でチャンネルの上限を設定できます (すべて `0` で無制限) . +You can set channel limits in `config.yml` (set to `0` for unlimited). -| 設定キー | 説明 | -|----------|------| -| `maxChannelsPerServer` | サーバーあたりの最大チャンネル数 | -| `maxMembersPerChannel` | チャンネルあたりの最大メンバー数 | -| `maxMembershipPerPlayer` | プレイヤーあたりの最大参加チャンネル数 | +| Setting Key | Description | +|-------------|-------------| +| `maxChannelsPerServer` | Maximum number of channels per server | +| `maxMembersPerChannel` | Maximum number of members per channel | +| `maxMembershipPerPlayer` | Maximum number of channels a player can join | -## メッセージログ +## Message Logging -チャンネルメッセージは NDJSON 形式でログファイルに記録できます.ファイルは日次でローテーションされ,`maxFileSizeMB` を超えるとサフィックス付きの新しいファイルが作成されます. +Channel messages can be logged in NDJSON format. Files are rotated daily, and a new file with a suffix is created when `maxFileSizeMB` is exceeded. ```json {"timestamp":"2026-04-05T14:23:45.123Z","playerId":"550e8400-...","playerName":"Steve","channelId":"general","message":"Hello!"} ``` -ログ設定の詳細は[設定ページ](/docs/configuration)の `features.channelChat.messageLogging` を参照してください. +See the `features.channelChat.messageLogging` section on the [Configuration page](/docs/configuration) for logging settings. -## バイパス権限 +## Bypass Permission -`lunaticchat.channelbypass` パーミッション (デフォルト: op) を持つプレイヤーは,キック・BAN の保護やチャンネルの強制削除が可能です. +Players with the `lunaticchat.channelbypass` permission (default: op) are protected from kicks and bans, and can force-delete channels. -## メッセージフォーマット +## Message Format -チャンネルメッセージの表示形式は `config.yml` の `messageFormat.channelMessageFormat` でカスタマイズできます.詳細は[メッセージフォーマット](/docs/reference/message-format)を参照してください. +The display format for channel messages can be customized via `messageFormat.channelMessageFormat` in `config.yml`. See [Message Format](/docs/reference/message-format) for details. diff --git a/website/src/docs/features/direct-message.md b/website/src/docs/features/direct-message.md index 7b12aff..6aa9f42 100644 --- a/website/src/docs/features/direct-message.md +++ b/website/src/docs/features/direct-message.md @@ -2,51 +2,51 @@ layout: doc --- -# ダイレクトメッセージ +# Direct Message -プレイヤー間で 1対1 のプライベートメッセージを送受信できます. +Send and receive private 1-on-1 messages between players. -## 基本的な使い方 +## Basic Usage -### メッセージの送信 +### Sending a Message ``` /tell ``` -エイリアス: `/t`, `/msg`, `/m`, `/w`, `/whisper` +Aliases: `/t`, `/msg`, `/m`, `/w`, `/whisper` -指定したプレイヤーにダイレクトメッセージを送信します.受信したメッセージをクリックすると,送信者への返信コマンドが自動入力されます. +Sends a direct message to the specified player. Clicking on a received message will auto-fill the reply command to the sender. -### クイック返信 +### Quick Reply ``` /reply ``` -エイリアス: `/r` +Alias: `/r` -最後にメッセージを送ってきたプレイヤーに返信します.該当するプレイヤーがいない場合は,最後にメッセージを送った相手に送信されます. +Replies to the last player who sent you a message. If there is no such player, the message is sent to the last player you messaged. -クイック返信を利用するには `config.yml` で `features.quickReplies.enabled` が `true` (デフォルト) である必要があります. +To use quick reply, `features.quickReplies.enabled` must be `true` (default) in `config.yml`. -## 通知設定 +## Notification Settings -プレイヤーはダイレクトメッセージ受信時のサウンド通知を個別に制御できます. +Players can individually control the sound notification when receiving direct messages. ``` -/lc settings notice on # 通知を有効化 -/lc settings notice off # 通知を無効化 +/lc settings notice on # Enable notifications +/lc settings notice off # Disable notifications ``` -## ローマ字変換との連携 +## Integration with Japanese Conversion -[ローマ字変換](/docs/features/japanese-conversion)が有効な場合,ダイレクトメッセージの内容も自動的に日本語に変換されます.変換はプレイヤーの `japanese` 設定に従います. +When [Japanese Conversion](/docs/features/japanese-conversion) is enabled, direct message content is also automatically converted to Japanese. Conversion follows each player's `japanese` setting. -## スパイ機能 +## Spy Feature -`lunaticchat.spy` パーミッション (デフォルト: op) を持つプレイヤーは,サーバー上のすべてのダイレクトメッセージを閲覧できます.スパイプレイヤーには変換前のメッセージが表示されます. +Players with the `lunaticchat.spy` permission (default: op) can view all direct messages on the server. Spy players see the original message before conversion. -## メッセージフォーマット +## Message Format -ダイレクトメッセージの表示形式は `config.yml` の `messageFormat.directMessageFormat` でカスタマイズできます.詳細は[メッセージフォーマット](/docs/reference/message-format)を参照してください. +The display format for direct messages can be customized via `messageFormat.directMessageFormat` in `config.yml`. See [Message Format](/docs/reference/message-format) for details. diff --git a/website/src/docs/features/japanese-conversion.md b/website/src/docs/features/japanese-conversion.md index e5e751b..3bcd52b 100644 --- a/website/src/docs/features/japanese-conversion.md +++ b/website/src/docs/features/japanese-conversion.md @@ -2,61 +2,61 @@ layout: doc --- -# ローマ字変換 +# Japanese Conversion -ローマ字で入力したチャットメッセージを自動的に日本語に変換します.この機能を利用するには `config.yml` で `features.japaneseConversion.enabled` を `true` に設定してください. +Automatically converts chat messages typed in romaji into Japanese. To use this feature, set `features.japaneseConversion.enabled` to `true` in `config.yml`. -## 変換の仕組み +## How Conversion Works -変換は2段階で行われます. +Conversion is performed in two stages. -1. **ローマ字 → ひらがな**: プラグイン内蔵の Trie ベースの変換エンジンでローマ字をひらがなに変換します -2. **ひらがな → 漢字/カナ**: Google IME API を使用してひらがなを自然な日本語に変換します +1. **Romaji to Hiragana**: The plugin's built-in Trie-based conversion engine converts romaji to hiragana +2. **Hiragana to Kanji/Katakana**: The Google IME API converts hiragana into natural Japanese -### 変換例 +### Conversion Example ``` -入力: konnichiha sekai -変換1: こんにちは せかい -変換2: こんにちは 世界 +Input: konnichiha sekai +Stage 1: こんにちは せかい +Stage 2: こんにちは 世界 ``` -## 変換対象 +## Conversion Targets -- 通常チャット -- ダイレクトメッセージ (`/tell`, `/reply`) -- チャンネルチャット +- Normal chat +- Direct messages (`/tell`, `/reply`) +- Channel chat -入力が有効なローマ字でない場合 (英単語などが含まれる場合),変換は行われずそのまま送信されます. +If the input is not valid romaji (e.g., contains English words), no conversion is performed and the message is sent as-is. -## プレイヤー設定 +## Player Settings -プレイヤーは個別に変換のオン/オフを切り替えられます. +Players can individually toggle conversion on or off. ``` -/lc settings japanese on # 変換を有効化 -/lc settings japanese off # 変換を無効化 +/lc settings japanese on # Enable conversion +/lc settings japanese off # Disable conversion ``` -## キャッシュ +## Cache -変換結果は単語単位でキャッシュされ,同じ単語の再変換時には API を呼び出さずにキャッシュから取得します.キャッシュは JSON ファイルとしてディスクに定期保存されます. +Conversion results are cached per word. When the same word is converted again, the result is retrieved from cache instead of calling the API. The cache is periodically saved to disk as a JSON file. -| 設定キー | デフォルト | 説明 | -|----------|-----------|------| -| `cache.maxEntries` | `500` | キャッシュの最大エントリ数 | -| `cache.saveIntervalSeconds` | `300` | ディスク保存の間隔 (秒) | -| `cache.filePath` | `"conversion_cache.json"` | キャッシュファイルのパス | +| Setting Key | Default | Description | +|-------------|---------|-------------| +| `cache.maxEntries` | `500` | Maximum number of cache entries | +| `cache.saveIntervalSeconds` | `300` | Interval for saving to disk (seconds) | +| `cache.filePath` | `"conversion_cache.json"` | Path to the cache file | -キャッシュが上限に達すると,古いエントリの10%が自動的に削除されます. +When the cache reaches its limit, the oldest 10% of entries are automatically removed. -## API 設定 +## API Settings -Google IME API への接続に関する設定です. +Settings related to the connection to the Google IME API. -| 設定キー | デフォルト | 説明 | -|----------|-----------|------| -| `api.timeout` | `3000` | リクエストタイムアウト (ミリ秒) | -| `api.retryAttempts` | `2` | 失敗時のリトライ回数 | +| Setting Key | Default | Description | +|-------------|---------|-------------| +| `api.timeout` | `3000` | Request timeout (milliseconds) | +| `api.retryAttempts` | `2` | Number of retry attempts on failure | -API がタイムアウトまたは失敗した場合,ひらがなのまま送信されます. +If the API times out or fails, the message is sent in hiragana as-is. diff --git a/website/src/docs/features/message-logging.md b/website/src/docs/features/message-logging.md index 944b9e9..5e929bc 100644 --- a/website/src/docs/features/message-logging.md +++ b/website/src/docs/features/message-logging.md @@ -2,11 +2,11 @@ layout: doc --- -# メッセージログ +# Message Logging -チャンネルチャットのメッセージを NDJSON (Newline Delimited JSON) 形式でファイルに記録します.この機能はチャンネルチャットが有効な場合に利用でき,デフォルトで有効です. +Records channel chat messages in NDJSON (Newline Delimited JSON) format to files. This feature is available when channel chat is enabled and is turned on by default. -## 設定 +## Configuration ```yaml # config.yml @@ -19,33 +19,33 @@ features: maxFileSizeMB: 100 ``` -| 設定キー | デフォルト | 説明 | -|----------|-----------|------| -| `enabled` | `true` | メッセージログを有効にする | -| `retentionDays` | `30` | ログファイルの保持日数 (`0` で無期限保持) | -| `maxFileSizeMB` | `100` | 単一ログファイルの最大サイズ (MB) | +| Setting Key | Default | Description | +|-------------|---------|-------------| +| `enabled` | `true` | Enable message logging | +| `retentionDays` | `30` | Number of days to retain log files (`0` for unlimited retention) | +| `maxFileSizeMB` | `100` | Maximum size of a single log file (MB) | -## ログファイルの形式 +## Log File Format -ログファイルは `plugins/LunaticChat/logs/` ディレクトリに保存されます.各行が1つの JSON オブジェクトです. +Log files are saved in the `plugins/LunaticChat/logs/` directory. Each line is a single JSON object. -### ファイル名 +### File Naming ``` channel-messages-YYYY-MM-dd.json ``` -ファイルサイズが `maxFileSizeMB` を超えた場合,サフィックス付きの新しいファイルが作成されます. +When the file size exceeds `maxFileSizeMB`, a new file with a suffix is created. ``` -channel-messages-2026-04-05.json # 基本ファイル -channel-messages-2026-04-05-1.json # サイズ超過時 -channel-messages-2026-04-05-2.json # さらに超過時 +channel-messages-2026-04-05.json # Base file +channel-messages-2026-04-05-1.json # On size overflow +channel-messages-2026-04-05-2.json # On further overflow ``` -### エントリ形式 +### Entry Format -各行は以下の JSON 構造を持ちます. +Each line has the following JSON structure. ```json { @@ -57,37 +57,37 @@ channel-messages-2026-04-05-2.json # さらに超過時 } ``` -| フィールド | 型 | 説明 | -|-----------|------|------| -| `timestamp` | String | ISO 8601 形式のタイムスタンプ (UTC) | -| `playerId` | String | プレイヤーの UUID | -| `playerName` | String | プレイヤーの表示名 | -| `channelId` | String | メッセージが送信されたチャンネルの ID | -| `message` | String | メッセージの内容 | +| Field | Type | Description | +|-------|------|-------------| +| `timestamp` | String | ISO 8601 timestamp (UTC) | +| `playerId` | String | Player UUID | +| `playerName` | String | Player display name | +| `channelId` | String | ID of the channel the message was sent to | +| `message` | String | Message content | -## ファイルローテーション +## File Rotation -- **日次ローテーション**: 日付が変わると新しいファイルが作成されます -- **サイズローテーション**: `maxFileSizeMB` を超えるとサフィックス付きファイルに切り替わります -- **自動クリーンアップ**: `retentionDays` で指定した日数を超えたログファイルは自動的に削除されます (`0` の場合は削除されません) +- **Daily rotation**: A new file is created when the date changes +- **Size rotation**: Switches to a suffixed file when `maxFileSizeMB` is exceeded +- **Automatic cleanup**: Log files older than the number of days specified by `retentionDays` are automatically deleted (no deletion when set to `0`) -## ログの活用例 +## Usage Examples -NDJSON 形式のため,`jq` などのツールで簡単にフィルタリング・集計が可能です. +Since the format is NDJSON, you can easily filter and aggregate logs using tools like `jq`. -### 特定チャンネルのメッセージを抽出 +### Extract Messages from a Specific Channel ```bash jq 'select(.channelId == "general")' channel-messages-2026-04-05.json ``` -### 特定プレイヤーのメッセージを抽出 +### Extract Messages from a Specific Player ```bash jq 'select(.playerName == "Steve")' channel-messages-2026-04-05.json ``` -### メッセージ数をチャンネルごとに集計 +### Count Messages by Channel ```bash jq -s 'group_by(.channelId) | map({channel: .[0].channelId, count: length})' channel-messages-2026-04-05.json diff --git a/website/src/docs/features/velocity.md b/website/src/docs/features/velocity.md index 3fa919e..f43fd65 100644 --- a/website/src/docs/features/velocity.md +++ b/website/src/docs/features/velocity.md @@ -2,87 +2,87 @@ layout: doc --- -# Velocity 連携 +# Velocity Integration -Velocity プロキシを経由して複数の Paper / Folia サーバー間でグローバルチャットをリレーします. +Relays global chat across multiple Paper / Folia servers via a Velocity proxy. -::: tip 互換性について -Paper プラグインと Velocity プラグインは独立にバージョン管理されています.**両方の最新版を使えば常に動作します.** 古いバージョンを混在させたい場合は,[Paper / Velocity 互換性](/docs/reference/compatibility) を参照してください. +::: tip About compatibility +The Paper and Velocity plugins are versioned independently. **Using the latest of both always works.** If you need to mix older versions, see [Paper / Velocity Compatibility](/docs/reference/compatibility). ::: -## セットアップ +## Setup -### 1. Velocity プラグインの導入 +### 1. Install the Velocity Plugin -`LunaticChat--velocity.jar` を Velocity の `plugins/` ディレクトリに配置し,プロキシを再起動します. +Place `LunaticChat--velocity.jar` in the Velocity `plugins/` directory and restart the proxy. -### 2. Paper 側の設定 +### 2. Paper-Side Configuration -各 Paper サーバーの `config.yml` で以下を設定します. +Set the following in each Paper server's `config.yml`. ```yaml features: velocityIntegration: enabled: true crossServerGlobalChat: true - serverName: "survival" # Velocity 設定のサーバー名に合わせる + serverName: "survival" # Must match the server name in the Velocity configuration ``` -### 3. 接続の確認 +### 3. Verify the Connection ``` /lcv status ``` -接続状態,プロトコルバージョン,Velocity プラグインのバージョンなどを確認できます (パーミッション: `lunaticchat.command.lcv.status`, デフォルト: op) . +You can check the connection status, protocol version, Velocity plugin version, and more (permission: `lunaticchat.command.lcv.status`, default: op). -## クロスサーバーグローバルチャット +## Cross-Server Global Chat -`crossServerGlobalChat` を `true` にすると,プレイヤーのチャットメッセージが Velocity を経由して他のすべての Paper サーバーに中継されます. +When `crossServerGlobalChat` is set to `true`, player chat messages are relayed via Velocity to all other Paper servers. -### メッセージの流れ +### Message Flow -1. プレイヤーがチャットメッセージを送信 -2. Paper サーバーがメッセージを Velocity に送信 -3. Velocity が送信元以外の全サーバーにメッセージを中継 -4. 各サーバーのプレイヤーにメッセージが表示される +1. A player sends a chat message +2. The Paper server sends the message to Velocity +3. Velocity relays the message to all servers except the sender's +4. The message is displayed to players on each server -### メッセージ重複排除 +### Message Deduplication -各メッセージに一意な ID が付与され,キャッシュにより同じメッセージが重複して表示されることを防ぎます.キャッシュサイズは `messageDeduplicationCacheSize` (デフォルト: `100`) で設定できます. +Each message is assigned a unique ID, and a cache prevents the same message from being displayed more than once. The cache size can be configured with `messageDeduplicationCacheSize` (default: `100`). -## 接続状態 +## Connection States -`/lcv status` で確認できる状態と,それぞれの意味は以下の通りです. +The states reported by `/lcv status` and their meanings: -| 状態 | 説明 | -|------|------| -| `DISCONNECTED` | 未接続 | -| `HANDSHAKING` | ハンドシェイク中 | -| `CONNECTED` | 接続済み | -| `FAILED` | 接続失敗 | +| State | Description | +|-------|-------------| +| `DISCONNECTED` | Not connected | +| `HANDSHAKING` | Handshake in progress | +| `CONNECTED` | Connected | +| `FAILED` | Connection failed | -ハンドシェイクのタイムアウトは 5 秒です.タイムアウトした場合,状態は `FAILED` になります. +The handshake timeout is 5 seconds. If the handshake times out, the state becomes `FAILED`. -### `FAILED` になったときの確認ポイント +### Troubleshooting `FAILED` -- Velocity プラグインが正しく導入され,プロキシが起動しているか -- Paper の `serverName` が Velocity 設定のサーバー名と一致しているか -- Paper / Velocity プラグインの**プロトコルバージョン**が互換であるか — [互換性マトリクス](/docs/reference/compatibility#互換性マトリクス) で確認できます +- Confirm the Velocity plugin is installed and the proxy is running +- Confirm the Paper `serverName` matches the server name configured in Velocity +- Confirm the **protocol versions** of the Paper and Velocity plugins are compatible — see the [compatibility matrix](/docs/reference/compatibility#compatibility-matrix) -## 設定一覧 +## Configuration Reference -| 設定キー | デフォルト | 説明 | -|----------|-----------|------| -| `enabled` | `false` | Velocity 連携を有効にする | -| `crossServerGlobalChat` | `false` | クロスサーバーグローバルチャットを有効にする | -| `serverName` | `"Unknown"` | クロスサーバーチャットで表示されるサーバー名 | -| `messageDeduplicationCacheSize` | `100` | メッセージ重複排除キャッシュのサイズ | +| Setting Key | Default | Description | +|-------------|---------|-------------| +| `enabled` | `false` | Enable Velocity integration | +| `crossServerGlobalChat` | `false` | Enable cross-server global chat | +| `serverName` | `"Unknown"` | Server name displayed in cross-server chat | +| `messageDeduplicationCacheSize` | `100` | Size of the message deduplication cache | -## メッセージフォーマット +## Message Format -クロスサーバーチャットの表示形式は `config.yml` の `messageFormat.crossServerGlobalChatFormat` でカスタマイズできます.詳細は[メッセージフォーマット](/docs/reference/message-format)を参照してください. +The display format for cross-server chat can be customized via `messageFormat.crossServerGlobalChatFormat` in `config.yml`. See [Message Format](/docs/reference/message-format) for details. -## 関連ドキュメント +## Related Documents -- [Paper / Velocity 互換性](/docs/reference/compatibility) — プロトコルバージョンとローリングアップデートの詳細 +- [Paper / Velocity Compatibility](/docs/reference/compatibility) — protocol version and rolling update details diff --git a/website/src/docs/getting-started.md b/website/src/docs/getting-started.md index afcb4d7..12eb377 100644 --- a/website/src/docs/getting-started.md +++ b/website/src/docs/getting-started.md @@ -2,50 +2,50 @@ layout: doc --- -# はじめる +# Getting Started -LunaticChat を導入するための手順を説明します. +This guide explains how to set up LunaticChat. -::: warning Spigot / BungeeCord は非対応です -LunaticChat は Paper / Folia サーバーのみをサポートしています.Spigot / BungeeCord では動作せず,今後も対応予定はありません.Spigot 環境では [LunaChat の Fork](https://github.com/f1w3/LunaChat) の使用を推奨します. +::: warning Spigot / BungeeCord is not supported +LunaticChat only supports Paper / Folia servers. It does not work on Spigot or BungeeCord, and there are no plans to support them in the future. For Spigot environments, we recommend using a [fork of LunaChat](https://github.com/f1w3/LunaChat). ::: -## 動作要件 +## Requirements -| 項目 | 要件 | -|------|------| -| Minecraft | 26.1 以降 | -| Java | 25 以降 | -| サーバー | Paper, Folia, または Velocity | +| Item | Requirement | +|------|-------------| +| Minecraft | 26.1 or later | +| Java | 25 or later | +| Server | Paper, Folia, or Velocity | -## ダウンロード +## Download -以下のいずれかからプラグイン JAR をダウンロードできます. +You can download the plugin JAR from either of the following: - [GitHub Releases](https://github.com/m1sk9/LunaticChat/releases) - [Modrinth](https://modrinth.com/project/lunaticchat) -Paper / Folia サーバーには `LunaticChat-.jar` を,Velocity プロキシには `LunaticChat--velocity.jar` を使用してください. +Use `LunaticChat-.jar` for Paper / Folia servers and `LunaticChat--velocity.jar` for Velocity proxies. -## インストール +## Installation ### Paper / Folia -1. ダウンロードした `LunaticChat-.jar` をサーバーの `plugins/` ディレクトリに配置します -2. サーバーを起動 (または再起動) します -3. `plugins/LunaticChat/config.yml` が自動生成されます -4. 必要に応じて[設定](/docs/configuration)を変更し,サーバーを再起動します +1. Place the downloaded `LunaticChat-.jar` into the server's `plugins/` directory +2. Start (or restart) the server +3. `plugins/LunaticChat/config.yml` will be generated automatically +4. Modify the [configuration](/docs/configuration) as needed and restart the server ### Velocity -1. ダウンロードした `LunaticChat--velocity.jar` を Velocity の `plugins/` ディレクトリに配置します -2. Velocity プロキシを起動 (または再起動) します -3. Paper 側の `config.yml` で `features.velocityIntegration.enabled` を `true` に設定します -4. 詳細は [Velocity 連携](/docs/features/velocity)を参照してください +1. Place the downloaded `LunaticChat--velocity.jar` into the Velocity `plugins/` directory +2. Start (or restart) the Velocity proxy +3. Set `features.velocityIntegration.enabled` to `true` in the Paper-side `config.yml` +4. See [Velocity Integration](/docs/features/velocity) for details -## 次のステップ +## Next Steps -- [設定](/docs/configuration) - `config.yml` の全設定項目を確認する -- [ダイレクトメッセージ](/docs/features/direct-message) - DM 機能の使い方 -- [チャンネルチャット](/docs/features/channel-chat) - チャンネル機能の使い方 -- [コマンド一覧](/docs/reference/commands) - 全コマンドのリファレンス +- [Configuration](/docs/configuration) - Review all settings in `config.yml` +- [Direct Message](/docs/features/direct-message) - How to use the DM feature +- [Channel Chat](/docs/features/channel-chat) - How to use the channel feature +- [Command Reference](/docs/reference/commands) - Reference for all commands diff --git a/website/src/docs/permissions.md b/website/src/docs/permissions.md index 3fb20f5..d059bba 100644 --- a/website/src/docs/permissions.md +++ b/website/src/docs/permissions.md @@ -2,49 +2,49 @@ 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` コマンドの使用 | +# Permissions + +A list of all permission nodes in LunaticChat. + +## Command Permissions + +All command permissions are granted to all players by default. + +| Permission | Description | +|------------|-------------| +| `lunaticchat.command.lc` | Use the `/lc` command | +| `lunaticchat.command.tell` | Use the `/tell` command | +| `lunaticchat.command.reply` | Use the `/reply` command | +| `lunaticchat.command.lc.settings` | Use `/lc settings` | +| `lunaticchat.command.lc.status` | Use `/lc status` | + +### Channel-Related + +| Permission | Description | +|------------|-------------| +| `lunaticchat.command.lc.channel` | Use `/lc channel` | +| `lunaticchat.command.lc.channel.create` | Create a channel | +| `lunaticchat.command.lc.channel.list` | View the channel list | +| `lunaticchat.command.lc.channel.join` | Join a channel | +| `lunaticchat.command.lc.channel.leave` | Leave a channel | +| `lunaticchat.command.lc.channel.switch` | Switch the active channel | +| `lunaticchat.command.lc.channel.status` | View channel membership status | +| `lunaticchat.command.lc.channel.info` | View channel information | +| `lunaticchat.command.lc.channel.delete` | Delete a channel | +| `lunaticchat.command.lc.channel.invite` | Invite to a channel | +| `lunaticchat.command.lc.channel.kick` | Kick from a channel | +| `lunaticchat.command.lc.channel.ban` | Ban from a channel | +| `lunaticchat.command.lc.channel.unban` | Unban from a channel | +| `lunaticchat.command.lc.channel.mod` | Grant or revoke moderator privileges | +| `lunaticchat.command.lc.channel.ownership` | Transfer channel ownership | + +## Admin Permissions + +The following permissions are granted to OPs only by default. + +| Permission | Default | Description | +|------------|---------|-------------| +| `lunaticchat.spy` | op | View all direct messages on the server | +| `lunaticchat.noticeupdate` | op | Receive update notifications | +| `lunaticchat.channelbypass` | op | Bypass channel restrictions (kick/ban protection, force deletion) | +| `lunaticchat.command.lcv.status` | op | Use the `/lcv status` command | diff --git a/website/src/docs/reference/commands.md b/website/src/docs/reference/commands.md index fd1dcdd..0f76838 100644 --- a/website/src/docs/reference/commands.md +++ b/website/src/docs/reference/commands.md @@ -2,172 +2,172 @@ layout: doc --- -# コマンド一覧 +# Command Reference -LunaticChat で使用できるすべてのコマンドのリファレンスです. +A reference for all commands available in LunaticChat. -## ダイレクトメッセージ +## Direct Messages ### `/tell ` -プレイヤーにダイレクトメッセージを送信します. +Sends a direct message to a player. -- **エイリアス**: `t`, `msg`, `m`, `w`, `whisper` -- **パーミッション**: `lunaticchat.command.tell` +- **Aliases**: `t`, `msg`, `m`, `w`, `whisper` +- **Permission**: `lunaticchat.command.tell` ### `/reply ` -最後にメッセージを送ってきたプレイヤーに返信します. +Replies to the last player who sent you a message. -- **エイリアス**: `r` -- **パーミッション**: `lunaticchat.command.reply` -- **前提条件**: クイックリプライ機能が有効であること +- **Aliases**: `r` +- **Permission**: `lunaticchat.command.reply` +- **Prerequisite**: Quick reply feature must be enabled -## メインコマンド (`/lc`) +## Main Command (`/lc`) -**エイリアス**: `lunaticchat` +**Aliases**: `lunaticchat` ### `/lc status` -プラグインのバージョン,ヘルス,有効な機能,設定値を表示します. +Displays the plugin version, health, enabled features, and configuration values. -- **エイリアス**: `st` -- **パーミッション**: `lunaticchat.command.lc.status` +- **Aliases**: `st` +- **Permission**: `lunaticchat.command.lc.status` ### `/lc settings [key] [on|off]` -プレイヤー個人の設定を確認・変更します.引数なしで設定一覧を表示します. +Views or changes your personal settings. Without arguments, displays the settings list. -- **エイリアス**: `set` -- **パーミッション**: `lunaticchat.command.lc.settings` -- **設定キー**: `japanese`, `notice`, `chNotice`(詳細は[プレイヤー設定](/docs/reference/player-settings)を参照) +- **Aliases**: `set` +- **Permission**: `lunaticchat.command.lc.settings` +- **Setting keys**: `japanese`, `notice`, `chNotice` (see [Player Settings](/docs/reference/player-settings) for details) -## チャンネルコマンド (`/lc channel`) +## Channel Commands (`/lc channel`) -**エイリアス**: `ch` +**Aliases**: `ch` -チャンネルチャット機能が有効な場合にのみ使用できます. +Only available when the channel chat feature is enabled. -### 作成・探索 +### Create & Browse #### `/lc channel create [description] [isPrivate]` -新しいチャンネルを作成します.作成者がオーナーになります. +Creates a new channel. The creator becomes the owner. -- **エイリアス**: `new` -- **パーミッション**: `lunaticchat.command.lc.channel.create` -- `channelId`: 英数字,アンダースコア,ハイフンのみ使用可能 -- `isPrivate`: `true` / `false`(デフォルト: `false`) +- **Aliases**: `new` +- **Permission**: `lunaticchat.command.lc.channel.create` +- `channelId`: Only alphanumeric characters, underscores, and hyphens are allowed +- `isPrivate`: `true` / `false` (default: `false`) #### `/lc channel list [page]` -公開チャンネルの一覧を表示します(1ページ10件). +Displays a list of public channels (10 per page). -- **エイリアス**: `ls` -- **パーミッション**: `lunaticchat.command.lc.channel.list` +- **Aliases**: `ls` +- **Permission**: `lunaticchat.command.lc.channel.list` #### `/lc channel info [channelId]` -チャンネルの詳細情報を表示します.引数なしでアクティブチャンネルの情報を表示します. +Displays detailed information about a channel. Without arguments, shows information about the active channel. -- **エイリアス**: `i` -- **パーミッション**: `lunaticchat.command.lc.channel.info` +- **Aliases**: `i` +- **Permission**: `lunaticchat.command.lc.channel.info` -### 参加・退出 +### Join & Leave #### `/lc channel join ` -チャンネルに参加します.プライベートチャンネルには招待が必要です. +Joins a channel. An invitation is required for private channels. -- **エイリアス**: `j` -- **パーミッション**: `lunaticchat.command.lc.channel.join` +- **Aliases**: `j` +- **Permission**: `lunaticchat.command.lc.channel.join` #### `/lc channel leave` -アクティブチャンネルから退出します. +Leaves the active channel. -- **エイリアス**: `l` -- **パーミッション**: `lunaticchat.command.lc.channel.leave` +- **Aliases**: `l` +- **Permission**: `lunaticchat.command.lc.channel.leave` #### `/lc channel switch ` -参加済みの別チャンネルをアクティブに切り替えます. +Switches the active channel to another channel you have already joined. -- **エイリアス**: `sw` -- **パーミッション**: `lunaticchat.command.lc.channel.switch` +- **Aliases**: `sw` +- **Permission**: `lunaticchat.command.lc.channel.switch` #### `/lc channel status` -自分のチャンネル参加状況(アクティブチャンネルと参加チャンネル一覧)を表示します. +Displays your channel membership status (active channel and list of joined channels). -- **エイリアス**: `st` -- **パーミッション**: `lunaticchat.command.lc.channel.status` +- **Aliases**: `st` +- **Permission**: `lunaticchat.command.lc.channel.status` -### モデレーション(オーナー / モデレーター) +### Moderation (Owner / Moderator) #### `/lc channel invite ` -プレイヤーをアクティブチャンネルに招待します.プライベートチャンネルの制限をバイパスします. +Invites a player to the active channel. Bypasses private channel restrictions. -- **エイリアス**: `inv` -- **パーミッション**: `lunaticchat.command.lc.channel.invite` -- **必要ロール**: OWNER または MODERATOR +- **Aliases**: `inv` +- **Permission**: `lunaticchat.command.lc.channel.invite` +- **Required role**: OWNER or MODERATOR #### `/lc channel kick ` -プレイヤーをアクティブチャンネルからキックします. +Kicks a player from the active channel. -- **エイリアス**: `k` -- **パーミッション**: `lunaticchat.command.lc.channel.kick` -- **必要ロール**: OWNER または MODERATOR +- **Aliases**: `k` +- **Permission**: `lunaticchat.command.lc.channel.kick` +- **Required role**: OWNER or MODERATOR #### `/lc channel ban ` -プレイヤーをアクティブチャンネルから BAN します.BAN されたプレイヤーは再参加できません. +Bans a player from the active channel. Banned players cannot rejoin. -- **パーミッション**: `lunaticchat.command.lc.channel.ban` -- **必要ロール**: OWNER または MODERATOR +- **Permission**: `lunaticchat.command.lc.channel.ban` +- **Required role**: OWNER or MODERATOR #### `/lc channel unban ` -プレイヤーのチャンネル BAN を解除します. +Unbans a player from the channel. -- **パーミッション**: `lunaticchat.command.lc.channel.unban` -- **必要ロール**: OWNER または MODERATOR +- **Permission**: `lunaticchat.command.lc.channel.unban` +- **Required role**: OWNER or MODERATOR -### 管理(オーナーのみ) +### Administration (Owner Only) #### `/lc channel delete ` -チャンネルを削除します. +Deletes a channel. -- **エイリアス**: `del` -- **パーミッション**: `lunaticchat.command.lc.channel.delete` -- **必要ロール**: OWNER(`lunaticchat.channelbypass` 権限で制限をバイパス可能) +- **Aliases**: `del` +- **Permission**: `lunaticchat.command.lc.channel.delete` +- **Required role**: OWNER (can be bypassed with `lunaticchat.channelbypass` permission) #### `/lc channel mod ` -チャンネルメンバーのモデレーター権限を付与・剥奪します. +Grants or revokes moderator privileges for a channel member. -- **パーミッション**: `lunaticchat.command.lc.channel.mod` -- **必要ロール**: OWNER +- **Permission**: `lunaticchat.command.lc.channel.mod` +- **Required role**: OWNER #### `/lc channel ownership ` -チャンネルのオーナー権限を別のメンバーに譲渡します. +Transfers channel ownership to another member. -- **エイリアス**: `own` -- **パーミッション**: `lunaticchat.command.lc.channel.ownership` -- **必要ロール**: OWNER +- **Aliases**: `own` +- **Permission**: `lunaticchat.command.lc.channel.ownership` +- **Required role**: OWNER -## Velocity コマンド (`/lcv`) +## Velocity Commands (`/lcv`) -**エイリアス**: `lunaticvelocity` +**Aliases**: `lunaticvelocity` ### `/lcv status` -Velocity プロキシとの接続状態,プロトコルバージョン,オンラインプレイヤー数を表示します. +Displays the connection status with the Velocity proxy, protocol version, and online player count. -- **エイリアス**: `st` -- **パーミッション**: `lunaticchat.command.lcv.status` -- **デフォルト**: op のみ +- **Aliases**: `st` +- **Permission**: `lunaticchat.command.lcv.status` +- **Default**: op only diff --git a/website/src/docs/reference/compatibility.md b/website/src/docs/reference/compatibility.md index 25ca957..e0e341c 100644 --- a/website/src/docs/reference/compatibility.md +++ b/website/src/docs/reference/compatibility.md @@ -2,64 +2,64 @@ layout: doc --- -# Paper / Velocity 互換性 +# Paper / Velocity Compatibility -LunaticChat の Paper プラグインと Velocity プラグインは独立にバージョン管理されています.それぞれの組み合わせが動作するかどうかは,両プラグインに埋め込まれた**プロトコルバージョン**で判定されます. +The Paper and Velocity plugins of LunaticChat are versioned independently. Whether a given combination works is determined by the **protocol version** embedded in each plugin. -::: warning プラグインバージョン ≠ プロトコルバージョン -**プラグインバージョン** (例: Paper v1.2.0) と **プロトコルバージョン** (例: 1.0.0) は別物です.プラグイン側のリリースを重ねてもプロトコルが変わらなければ互換性は維持されます.互換性を決めるのはプロトコルバージョンのみです. +::: warning Plugin version ≠ protocol version +The **plugin version** (e.g., Paper v1.2.0) and the **protocol version** (e.g., 1.0.0) are different things. New plugin releases do not necessarily change the protocol — and only the protocol version determines compatibility. ::: -## 結論から +## TL;DR -- **両プラグインの最新版同士は常に互換性があります.** 迷ったら両方を最新にしてください. -- 古いバージョンを混在させたい場合は,下のマトリクスで組み合わせを確認してください. -- 接続状態は Minecraft サーバーで `/lcv status` を実行すると確認できます. +- **The latest Paper and the latest Velocity are always compatible.** When in doubt, use the latest of both. +- If you need to mix older versions, check the matrix below. +- You can verify the live connection state by running `/lcv status` on the Minecraft server. -## 互換性マトリクス +## Compatibility Matrix -各セルは「その Paper × Velocity の組み合わせが接続できるか」を示します.データは GitHub Releases から自動取得されます. +Each cell indicates whether the corresponding Paper × Velocity combination can connect. Data is fetched from GitHub Releases automatically. -## プロトコルバージョンとは +## What Is a Protocol Version? -Paper / Velocity 間の通信は LunaticChat 独自のプラグインメッセージプロトコルで行われています.プロトコルにはセマンティックバージョニング (`MAJOR.MINOR.PATCH`) が振られており,接続時のハンドシェイクで Velocity 側がバージョンを照合します. +Paper and Velocity communicate via a LunaticChat-specific plugin messaging protocol. The protocol carries a semantic version (`MAJOR.MINOR.PATCH`), and at connection time Velocity validates the protocol version sent by Paper. -::: tip 互換性チェックは Velocity 側のみ -互換性判定をしているのは Velocity 側のみです.Paper 側はハンドシェイクを送るだけで,バージョンチェックはしません.つまり「Velocity が Paper のプロトコルを受け入れられるか」がそのまま接続可否になります. +::: tip Velocity is the only side that checks +Only Velocity performs the compatibility check. Paper just sends a handshake — it does not validate Velocity's version. So the question reduces to: "Does Velocity accept Paper's protocol version?" ::: -判定ルールは以下です(Velocity 視点): +The rules (from Velocity's perspective) are: -- **MAJOR** が一致すること -- Paper の **MINOR** が,Velocity の `MIN_SUPPORTED_MINOR` 以上かつ Velocity の `MINOR` 以下であること -- **PATCH** は判定に影響しない +- **MAJOR** must match exactly +- Paper's **MINOR** must be at least Velocity's `MIN_SUPPORTED_MINOR` and at most Velocity's `MINOR` +- **PATCH** does not affect compatibility -`MIN_SUPPORTED_MINOR` は「Velocity がどこまで古い Paper の MINOR を受け入れるか」を示す値で,ローリングアップデート中の猶予期間を作るために使われます. +`MIN_SUPPORTED_MINOR` controls how far back Velocity accepts older Paper peers, providing a grace window during rolling updates. -### バージョンバンプの基準 +### Version Bump Rules -| レベル | 変更例 | 互換性 | デプロイ順序 | -|--------|--------|--------|-------------| -| **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 削除/リネーム | 非互換 | **全サーバー同時デプロイ** | +| Level | Example Change | Compatibility | Deployment Order | +|-------|---------------|---------------|------------------| +| **PATCH** (1.0.0 → 1.0.1) | Adding optional fields, new sub-channels | Fully compatible (safe with `ignoreUnknownKeys=true`) | Any order, anytime | +| **MINOR** (1.0.x → 1.1.0) | Adding required fields, changing existing sub-channel semantics | Backward compatible within `MIN_SUPPORTED_MINOR` range | **Update Velocity first** → then update each Paper server | +| **MAJOR** (1.x.x → 2.0.0) | Wire format changes, removing/renaming sub-channels | Incompatible | **Simultaneous deployment of all servers** | -### ローリングアップデートの考え方 +### Rolling Update Strategy -1. **プロトコル変更なし**:Paper / Velocity を独立にデプロイ可能.プラグインのバグ修正やリファクタはここに入ります. -2. **PATCH 変更**:どちら側からでも自由にデプロイ可能. -3. **MINOR 変更**:Velocity を先行更新し,`MIN_SUPPORTED_MINOR` で旧 Paper を許容.全 Paper 更新後に `MIN_SUPPORTED_MINOR` を引き上げ. -4. **MAJOR 変更**:メンテナンスウィンドウで一括更新. +1. **No protocol change**: Paper and Velocity can be deployed independently. Plugin bug fixes and refactors fall here. +2. **PATCH change**: Deploy from either side freely. +3. **MINOR change**: Update Velocity first and use `MIN_SUPPORTED_MINOR` as a grace window for older Paper servers. After all Paper servers are updated, bump `MIN_SUPPORTED_MINOR`. +4. **MAJOR change**: Update all servers simultaneously during a maintenance window. -## ハンドシェイクの挙動 +## Handshake Behavior -接続時は以下の流れで互換性が確認されます: +Compatibility is checked at connection time: -1. Paper サーバー起動時に Velocity に対してハンドシェイクを送信 -2. Velocity が Paper のプロトコルバージョンを自身のものと照合 -3. 不一致の場合は Velocity が接続を拒否し,Paper 側の状態が `FAILED` になる -4. ハンドシェイクのタイムアウトは 5 秒 +1. The Paper server sends a handshake to Velocity at startup +2. Velocity validates Paper's protocol version against its own +3. On mismatch, Velocity rejects the connection and Paper's state becomes `FAILED` +4. The handshake timeout is 5 seconds -接続状態は `/lcv status` で確認できます.詳細は [Velocity 連携](/docs/features/velocity#接続状態) を参照してください. +Live connection state is available via `/lcv status`. See [Velocity Integration](/docs/features/velocity#connection-states) for details. diff --git a/website/src/docs/reference/message-format.md b/website/src/docs/reference/message-format.md index 7ae42e9..2669adb 100644 --- a/website/src/docs/reference/message-format.md +++ b/website/src/docs/reference/message-format.md @@ -2,85 +2,85 @@ layout: doc --- -# メッセージフォーマット +# Message Format -`config.yml` の `messageFormat` セクションで,チャットメッセージの表示形式をカスタマイズできます. +You can customize the display format of chat messages in the `messageFormat` section of `config.yml`. -## プレースホルダー +## Placeholders -| プレースホルダー | 説明 | 使用可能なフォーマット | -|----------------|------|----------------------| -| `{sender}` | メッセージの送信者名 | すべて | -| `{recipient}` | メッセージの受信者名 | `directMessageFormat` | -| `{message}` | メッセージの内容 | すべて | -| `{channel}` | チャンネル名 | `channelMessageFormat` | -| `{server}` | サーバー名 | `crossServerGlobalChatFormat` | +| Placeholder | Description | Available formats | +|-------------|-------------|-------------------| +| `{sender}` | Name of the message sender | All | +| `{recipient}` | Name of the message recipient | `directMessageFormat` | +| `{message}` | Message content | All | +| `{channel}` | Channel name | `channelMessageFormat` | +| `{server}` | Server name | `crossServerGlobalChatFormat` | -## フォーマット一覧 +## Format List ### `directMessageFormat` -`/tell` や `/reply` で送信されるダイレクトメッセージの表示形式です. +The display format for direct messages sent via `/tell` or `/reply`. -**デフォルト:** +**Default:** ``` §7[§e{sender} §7>> §e{recipient}§7] §f{message} ``` -**表示例:** [Steve >> Alex] こんにちは! +**Example:** [Steve >> Alex] Hello! ### `channelMessageFormat` -チャンネルチャットで送信されるメッセージの表示形式です. +The display format for messages sent in channel chat. -**デフォルト:** +**Default:** ``` §7[§b#{channel}§7] §e{sender}: §f{message} ``` -**表示例:** [#general] Steve: こんにちは! +**Example:** [#general] Steve: Hello! ### `crossServerGlobalChatFormat` -Velocity 連携時のクロスサーバーグローバルチャットの表示形式です. +The display format for cross-server global chat when using Velocity integration. -**デフォルト:** +**Default:** ``` §7[§6{server}§7] §e{sender}: §f{message} ``` -**表示例:** [survival] Steve: こんにちは! - -## カラーコード - -Minecraft のセクション記号(`§`)を使ったカラーコードが使用できます. - -| コード | 色 | -|--------|------| -| `§0` | 黒 | -| `§1` | 濃い青 | -| `§2` | 濃い緑 | -| `§3` | 濃い水色 | -| `§4` | 濃い赤 | -| `§5` | 濃い紫 | -| `§6` | 金色 | -| `§7` | 灰色 | -| `§8` | 濃い灰色 | -| `§9` | 青 | -| `§a` | 緑 | -| `§b` | 水色 | -| `§c` | 赤 | -| `§d` | ピンク | -| `§e` | 黄色 | -| `§f` | 白 | - -### 装飾コード - -| コード | 効果 | -|--------|------| -| `§l` | **太字** | -| `§o` | *斜体* | -| `§n` | 下線 | -| `§m` | ~~取り消し線~~ | -| `§k` | 難読化(文字がランダムに変化) | -| `§r` | リセット | +**Example:** [survival] Steve: Hello! + +## Color Codes + +You can use color codes with the Minecraft section sign (`§`). + +| Code | Color | +|------|-------| +| `§0` | Black | +| `§1` | Dark blue | +| `§2` | Dark green | +| `§3` | Dark aqua | +| `§4` | Dark red | +| `§5` | Dark purple | +| `§6` | Gold | +| `§7` | Gray | +| `§8` | Dark gray | +| `§9` | Blue | +| `§a` | Green | +| `§b` | Aqua | +| `§c` | Red | +| `§d` | Pink | +| `§e` | Yellow | +| `§f` | White | + +### Formatting Codes + +| Code | Effect | +|------|--------| +| `§l` | **Bold** | +| `§o` | *Italic* | +| `§n` | Underline | +| `§m` | ~~Strikethrough~~ | +| `§k` | Obfuscated (characters change randomly) | +| `§r` | Reset | diff --git a/website/src/docs/reference/player-settings.md b/website/src/docs/reference/player-settings.md index bbd294d..6db48ac 100644 --- a/website/src/docs/reference/player-settings.md +++ b/website/src/docs/reference/player-settings.md @@ -2,49 +2,49 @@ layout: doc --- -# プレイヤー設定 +# Player Settings -プレイヤーは `/lc settings` コマンドで個人設定を変更できます.設定はサーバーの `player-settings.yaml`(設定ファイルの `userSettingsFilePath` で変更可能)に UUID ごとに保存されます. +Players can change their personal settings using the `/lc settings` command. Settings are saved per UUID in the server's `player-settings.yaml` (the file path can be changed via `userSettingsFilePath` in the configuration file). -## コマンド +## Command ``` -/lc settings # 設定一覧を表示 -/lc settings # 現在の値を確認 -/lc settings on|off # 値を変更 +/lc settings # Display settings list +/lc settings # Check current value +/lc settings on|off # Change value ``` -## 設定キー +## Setting Keys -| キー | 説明 | デフォルト | -|------|------|-----------| -| `japanese` | ローマ字→日本語変換を有効にする | `true` | -| `notice` | ダイレクトメッセージの通知を有効にする | `true` | -| `chNotice` | チャンネルメッセージの通知を有効にする | `true` | +| Key | Description | Default | +|-----|-------------|---------| +| `japanese` | Enable romaji-to-Japanese conversion | `true` | +| `notice` | Enable direct message notifications | `true` | +| `chNotice` | Enable channel message notifications | `true` | ### `japanese` -ローマ字で入力したチャットメッセージを自動的に日本語(ひらがな)に変換します.この設定はサーバー側で `features.japaneseConversion.enabled` が `true` の場合にのみ機能します. +Automatically converts chat messages typed in romaji to Japanese (hiragana). This setting only works when `features.japaneseConversion.enabled` is set to `true` on the server side. ``` -/lc settings japanese on # 変換を有効化 -/lc settings japanese off # 変換を無効化 +/lc settings japanese on # Enable conversion +/lc settings japanese off # Disable conversion ``` ### `notice` -ダイレクトメッセージ(`/tell` / `/reply`)を受信した際の通知を制御します. +Controls notifications when receiving direct messages (`/tell` / `/reply`). ``` -/lc settings notice on # 通知を有効化 -/lc settings notice off # 通知を無効化 +/lc settings notice on # Enable notifications +/lc settings notice off # Disable notifications ``` ### `chNotice` -チャンネルチャットのメッセージを受信した際の通知を制御します.この設定はサーバー側で `features.channelChat.enabled` が `true` の場合にのみ機能します. +Controls notifications when receiving channel chat messages. This setting only works when `features.channelChat.enabled` is set to `true` on the server side. ``` -/lc settings chNotice on # 通知を有効化 -/lc settings chNotice off # 通知を無効化 +/lc settings chNotice on # Enable notifications +/lc settings chNotice off # Disable notifications ``` diff --git a/website/src/download.md b/website/src/download.md index 47f4ff5..16916b5 100644 --- a/website/src/download.md +++ b/website/src/download.md @@ -1,8 +1,8 @@ --- layout: page -title: ダウンロード +title: Download --- - + diff --git a/website/src/en/docs/configuration.md b/website/src/en/docs/configuration.md deleted file mode 100644 index e7891b3..0000000 --- a/website/src/en/docs/configuration.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -layout: doc ---- - -# Configuration - -LunaticChat's configuration is managed in `plugins/LunaticChat/config.yml`. A default configuration file is generated on the server's first startup. - -## Global Settings - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| `debug` | Boolean | `false` | Enable debug logging | -| `userSettingsFilePath` | String | `"player-settings.yaml"` | Path to the player settings file | -| `checkForUpdates` | Boolean | `true` | Check for updates on startup | -| `language` | String | `"en"` | Plugin language (`en` / `ja`) | - -## Feature Settings (`features`) - -### Quick Replies (`features.quickReplies`) - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| `enabled` | Boolean | `true` | Enable the `/reply` command | - -### Japanese Conversion (`features.japaneseConversion`) - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| `enabled` | Boolean | `false` | Enable romaji-to-hiragana conversion | -| `cache.maxEntries` | Int | `500` | Maximum number of conversion cache entries | -| `cache.saveIntervalSeconds` | Int | `300` | Interval (in seconds) for saving cache to disk | -| `cache.filePath` | String | `"conversion_cache.json"` | Path to the cache file | -| `api.timeout` | Long | `3000` | API request timeout (in milliseconds) | -| `api.retryAttempts` | Int | `2` | Number of retries on API request failure | - -### Channel Chat (`features.channelChat`) - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| `enabled` | Boolean | `false` | Enable the channel chat feature | -| `maxChannelsPerServer` | Int | `0` | Maximum channels per server (`0` = unlimited) | -| `maxMembersPerChannel` | Int | `0` | Maximum members per channel (`0` = unlimited) | -| `maxMembershipPerPlayer` | Int | `0` | Maximum channel memberships per player (`0` = unlimited) | - -#### Message Logging (`features.channelChat.messageLogging`) - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| `enabled` | Boolean | `true` | Log channel messages to an NDJSON file | -| `retentionDays` | Int | `30` | Log file retention period in days (`0` = indefinite) | -| `maxFileSizeMB` | Int | `100` | Maximum size of a single log file (MB) | - -### Velocity Integration (`features.velocityIntegration`) - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| `enabled` | Boolean | `false` | Enable integration with the Velocity proxy | -| `crossServerGlobalChat` | Boolean | `false` | Enable cross-server global chat | -| `serverName` | String | `"Unknown"` | Server name displayed in cross-server chat | -| `messageDeduplicationCacheSize` | Int | `100` | Size of the message deduplication cache | - -## Message Format (`messageFormat`) - -| Key | Default | Available Placeholders | -|-----|---------|----------------------| -| `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}` | - -## Default Configuration File - -[View on GitHub](https://github.com/m1sk9/LunaticChat/blob/main/platform-paper/src/main/resources/config.yml) diff --git a/website/src/en/docs/features/admin.md b/website/src/en/docs/features/admin.md deleted file mode 100644 index c3a3d2f..0000000 --- a/website/src/en/docs/features/admin.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -layout: doc ---- - -# Admin Features - -This page covers features intended for server administrators. These features are primarily available to players with OP permissions. - -## Plugin Status (`/lc status`) - -View an overview of the plugin's operational status. - -``` -/lc status -``` - -Displayed information: - -- Plugin version (with Git commit hash) -- Health status (OK / Degraded) -- Enabled/disabled state of each feature -- Configuration values (debug mode, update checking, language) -- Links to GitHub, Modrinth, and documentation - -## Spy Mode - -Players with the `lunaticchat.spy` permission (default: op) can view all direct messages sent and received on the server. - -- Spy players see the original message before romaji conversion -- Hover text indicates the message is a spy message -- Spy players themselves are not included in the normal sender/recipient list - -## Channel Bypass - -Players with the `lunaticchat.channelbypass` permission (default: op) can bypass the following channel restrictions. - -- Cannot be kicked or banned -- Can delete channels even without being the owner - -## Update Notifications - -When `checkForUpdates` is `true` (default), the plugin checks for new versions at startup. Players with the `lunaticchat.noticeupdate` permission (default: op) receive an update notification when they join the server. - -```yaml -# config.yml -checkForUpdates: true -``` - -## Debug Mode - -Setting `debug` to `true` enables verbose plugin logging. This is useful for troubleshooting issues or submitting bug reports. - -```yaml -# config.yml -debug: true -``` - -## Language Setting - -You can change the language of messages displayed to players. Plugin logs and console output are not affected and remain in English only. - -```yaml -# config.yml -language: "ja" # "en" or "ja" -``` - -## Admin Permissions Reference - -| Permission | Default | Description | -|-----------|---------|-------------| -| `lunaticchat.spy` | op | View all direct messages | -| `lunaticchat.channelbypass` | op | Bypass channel restrictions | -| `lunaticchat.noticeupdate` | op | Receive update notifications | -| `lunaticchat.command.lcv.status` | op | Use the `/lcv status` command | diff --git a/website/src/en/docs/features/channel-chat.md b/website/src/en/docs/features/channel-chat.md deleted file mode 100644 index 68d216e..0000000 --- a/website/src/en/docs/features/channel-chat.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -layout: doc ---- - -# Channel Chat - -Create channels to separate conversations by group. To use this feature, set `features.channelChat.enabled` to `true` in `config.yml`. - -## Creating a Channel - -``` -/lc channel create [description] [isPrivate] -``` - -- `channelId`: A unique identifier for the channel (alphanumeric, `_`, `-` only, 3-30 characters) -- `name`: The display name of the channel -- `description`: A description of the channel (optional) -- `isPrivate`: Set to `true` to make the channel private (default: `false`) - -The creator automatically becomes the owner. - -## Joining and Leaving Channels - -``` -/lc channel join # Join a channel -/lc channel leave # Leave the active channel -/lc channel switch # Switch the active channel -``` - -Joining a private channel requires an invitation from the owner or a moderator. - -## Active Channel - -Players can join multiple channels, but only one channel can be active at a time. Chat messages are sent to the active channel. Use `/lc channel switch` to change the active channel. - -``` -/lc channel status # Display the current active channel and list of joined channels -``` - -## Roles and Permissions - -Channels have three roles. - -| Role | Permissions | -|------|-------------| -| **OWNER** | Delete the channel, manage moderators, transfer ownership, manage members | -| **MODERATOR** | Invite, kick, ban/unban members | -| **MEMBER** | Participate in chat, view channel information | - -### Moderator Management (Owner Only) - -``` -/lc channel mod # Grant/revoke moderator permissions -/lc channel ownership # Transfer ownership -``` - -### Member Management (Owner / Moderator) - -``` -/lc channel invite # Invite a player -/lc channel kick # Kick a player -/lc channel ban # Ban a player -/lc channel unban # Unban a player -``` - -## Limit Settings - -You can set channel limits in `config.yml` (set to `0` for unlimited). - -| Setting Key | Description | -|-------------|-------------| -| `maxChannelsPerServer` | Maximum number of channels per server | -| `maxMembersPerChannel` | Maximum number of members per channel | -| `maxMembershipPerPlayer` | Maximum number of channels a player can join | - -## Message Logging - -Channel messages can be logged in NDJSON format. Files are rotated daily, and a new file with a suffix is created when `maxFileSizeMB` is exceeded. - -```json -{"timestamp":"2026-04-05T14:23:45.123Z","playerId":"550e8400-...","playerName":"Steve","channelId":"general","message":"Hello!"} -``` - -See the `features.channelChat.messageLogging` section on the [Configuration page](/en/docs/configuration) for logging settings. - -## Bypass Permission - -Players with the `lunaticchat.channelbypass` permission (default: op) are protected from kicks and bans, and can force-delete channels. - -## Message Format - -The display format for channel messages can be customized via `messageFormat.channelMessageFormat` in `config.yml`. See [Message Format](/en/docs/reference/message-format) for details. diff --git a/website/src/en/docs/features/direct-message.md b/website/src/en/docs/features/direct-message.md deleted file mode 100644 index 7a88ecd..0000000 --- a/website/src/en/docs/features/direct-message.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: doc ---- - -# Direct Message - -Send and receive private 1-on-1 messages between players. - -## Basic Usage - -### Sending a Message - -``` -/tell -``` - -Aliases: `/t`, `/msg`, `/m`, `/w`, `/whisper` - -Sends a direct message to the specified player. Clicking on a received message will auto-fill the reply command to the sender. - -### Quick Reply - -``` -/reply -``` - -Alias: `/r` - -Replies to the last player who sent you a message. If there is no such player, the message is sent to the last player you messaged. - -To use quick reply, `features.quickReplies.enabled` must be `true` (default) in `config.yml`. - -## Notification Settings - -Players can individually control the sound notification when receiving direct messages. - -``` -/lc settings notice on # Enable notifications -/lc settings notice off # Disable notifications -``` - -## Integration with Japanese Conversion - -When [Japanese Conversion](/en/docs/features/japanese-conversion) is enabled, direct message content is also automatically converted to Japanese. Conversion follows each player's `japanese` setting. - -## Spy Feature - -Players with the `lunaticchat.spy` permission (default: op) can view all direct messages on the server. Spy players see the original message before conversion. - -## Message Format - -The display format for direct messages can be customized via `messageFormat.directMessageFormat` in `config.yml`. See [Message Format](/en/docs/reference/message-format) for details. diff --git a/website/src/en/docs/features/japanese-conversion.md b/website/src/en/docs/features/japanese-conversion.md deleted file mode 100644 index 3bcd52b..0000000 --- a/website/src/en/docs/features/japanese-conversion.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: doc ---- - -# Japanese Conversion - -Automatically converts chat messages typed in romaji into Japanese. To use this feature, set `features.japaneseConversion.enabled` to `true` in `config.yml`. - -## How Conversion Works - -Conversion is performed in two stages. - -1. **Romaji to Hiragana**: The plugin's built-in Trie-based conversion engine converts romaji to hiragana -2. **Hiragana to Kanji/Katakana**: The Google IME API converts hiragana into natural Japanese - -### Conversion Example - -``` -Input: konnichiha sekai -Stage 1: こんにちは せかい -Stage 2: こんにちは 世界 -``` - -## Conversion Targets - -- Normal chat -- Direct messages (`/tell`, `/reply`) -- Channel chat - -If the input is not valid romaji (e.g., contains English words), no conversion is performed and the message is sent as-is. - -## Player Settings - -Players can individually toggle conversion on or off. - -``` -/lc settings japanese on # Enable conversion -/lc settings japanese off # Disable conversion -``` - -## Cache - -Conversion results are cached per word. When the same word is converted again, the result is retrieved from cache instead of calling the API. The cache is periodically saved to disk as a JSON file. - -| Setting Key | Default | Description | -|-------------|---------|-------------| -| `cache.maxEntries` | `500` | Maximum number of cache entries | -| `cache.saveIntervalSeconds` | `300` | Interval for saving to disk (seconds) | -| `cache.filePath` | `"conversion_cache.json"` | Path to the cache file | - -When the cache reaches its limit, the oldest 10% of entries are automatically removed. - -## API Settings - -Settings related to the connection to the Google IME API. - -| Setting Key | Default | Description | -|-------------|---------|-------------| -| `api.timeout` | `3000` | Request timeout (milliseconds) | -| `api.retryAttempts` | `2` | Number of retry attempts on failure | - -If the API times out or fails, the message is sent in hiragana as-is. diff --git a/website/src/en/docs/features/message-logging.md b/website/src/en/docs/features/message-logging.md deleted file mode 100644 index 5e929bc..0000000 --- a/website/src/en/docs/features/message-logging.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -layout: doc ---- - -# Message Logging - -Records channel chat messages in NDJSON (Newline Delimited JSON) format to files. This feature is available when channel chat is enabled and is turned on by default. - -## Configuration - -```yaml -# config.yml -features: - channelChat: - enabled: true - messageLogging: - enabled: true - retentionDays: 30 - maxFileSizeMB: 100 -``` - -| Setting Key | Default | Description | -|-------------|---------|-------------| -| `enabled` | `true` | Enable message logging | -| `retentionDays` | `30` | Number of days to retain log files (`0` for unlimited retention) | -| `maxFileSizeMB` | `100` | Maximum size of a single log file (MB) | - -## Log File Format - -Log files are saved in the `plugins/LunaticChat/logs/` directory. Each line is a single JSON object. - -### File Naming - -``` -channel-messages-YYYY-MM-dd.json -``` - -When the file size exceeds `maxFileSizeMB`, a new file with a suffix is created. - -``` -channel-messages-2026-04-05.json # Base file -channel-messages-2026-04-05-1.json # On size overflow -channel-messages-2026-04-05-2.json # On further overflow -``` - -### Entry Format - -Each line has the following JSON structure. - -```json -{ - "timestamp": "2026-04-05T14:23:45.123Z", - "playerId": "550e8400-e29b-41d4-a716-446655440000", - "playerName": "Steve", - "channelId": "general", - "message": "Hello everyone!" -} -``` - -| Field | Type | Description | -|-------|------|-------------| -| `timestamp` | String | ISO 8601 timestamp (UTC) | -| `playerId` | String | Player UUID | -| `playerName` | String | Player display name | -| `channelId` | String | ID of the channel the message was sent to | -| `message` | String | Message content | - -## File Rotation - -- **Daily rotation**: A new file is created when the date changes -- **Size rotation**: Switches to a suffixed file when `maxFileSizeMB` is exceeded -- **Automatic cleanup**: Log files older than the number of days specified by `retentionDays` are automatically deleted (no deletion when set to `0`) - -## Usage Examples - -Since the format is NDJSON, you can easily filter and aggregate logs using tools like `jq`. - -### Extract Messages from a Specific Channel - -```bash -jq 'select(.channelId == "general")' channel-messages-2026-04-05.json -``` - -### Extract Messages from a Specific Player - -```bash -jq 'select(.playerName == "Steve")' channel-messages-2026-04-05.json -``` - -### Count Messages by Channel - -```bash -jq -s 'group_by(.channelId) | map({channel: .[0].channelId, count: length})' channel-messages-2026-04-05.json -``` diff --git a/website/src/en/docs/features/velocity.md b/website/src/en/docs/features/velocity.md deleted file mode 100644 index 5715014..0000000 --- a/website/src/en/docs/features/velocity.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: doc ---- - -# Velocity Integration - -Relays global chat across multiple Paper / Folia servers via a Velocity proxy. - -::: tip About compatibility -The Paper and Velocity plugins are versioned independently. **Using the latest of both always works.** If you need to mix older versions, see [Paper / Velocity Compatibility](/en/docs/reference/compatibility). -::: - -## Setup - -### 1. Install the Velocity Plugin - -Place `LunaticChat--velocity.jar` in the Velocity `plugins/` directory and restart the proxy. - -### 2. Paper-Side Configuration - -Set the following in each Paper server's `config.yml`. - -```yaml -features: - velocityIntegration: - enabled: true - crossServerGlobalChat: true - serverName: "survival" # Must match the server name in the Velocity configuration -``` - -### 3. Verify the Connection - -``` -/lcv status -``` - -You can check the connection status, protocol version, Velocity plugin version, and more (permission: `lunaticchat.command.lcv.status`, default: op). - -## Cross-Server Global Chat - -When `crossServerGlobalChat` is set to `true`, player chat messages are relayed via Velocity to all other Paper servers. - -### Message Flow - -1. A player sends a chat message -2. The Paper server sends the message to Velocity -3. Velocity relays the message to all servers except the sender's -4. The message is displayed to players on each server - -### Message Deduplication - -Each message is assigned a unique ID, and a cache prevents the same message from being displayed more than once. The cache size can be configured with `messageDeduplicationCacheSize` (default: `100`). - -## Connection States - -The states reported by `/lcv status` and their meanings: - -| State | Description | -|-------|-------------| -| `DISCONNECTED` | Not connected | -| `HANDSHAKING` | Handshake in progress | -| `CONNECTED` | Connected | -| `FAILED` | Connection failed | - -The handshake timeout is 5 seconds. If the handshake times out, the state becomes `FAILED`. - -### Troubleshooting `FAILED` - -- Confirm the Velocity plugin is installed and the proxy is running -- Confirm the Paper `serverName` matches the server name configured in Velocity -- Confirm the **protocol versions** of the Paper and Velocity plugins are compatible — see the [compatibility matrix](/en/docs/reference/compatibility#compatibility-matrix) - -## Configuration Reference - -| Setting Key | Default | Description | -|-------------|---------|-------------| -| `enabled` | `false` | Enable Velocity integration | -| `crossServerGlobalChat` | `false` | Enable cross-server global chat | -| `serverName` | `"Unknown"` | Server name displayed in cross-server chat | -| `messageDeduplicationCacheSize` | `100` | Size of the message deduplication cache | - -## Message Format - -The display format for cross-server chat can be customized via `messageFormat.crossServerGlobalChatFormat` in `config.yml`. See [Message Format](/en/docs/reference/message-format) for details. - -## Related Documents - -- [Paper / Velocity Compatibility](/en/docs/reference/compatibility) — protocol version and rolling update details diff --git a/website/src/en/docs/getting-started.md b/website/src/en/docs/getting-started.md deleted file mode 100644 index 396cd16..0000000 --- a/website/src/en/docs/getting-started.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: doc ---- - -# Getting Started - -This guide explains how to set up LunaticChat. - -::: warning Spigot / BungeeCord is not supported -LunaticChat only supports Paper / Folia servers. It does not work on Spigot or BungeeCord, and there are no plans to support them in the future. For Spigot environments, we recommend using a [fork of LunaChat](https://github.com/f1w3/LunaChat). -::: - -## Requirements - -| Item | Requirement | -|------|-------------| -| Minecraft | 26.1 or later | -| Java | 25 or later | -| Server | Paper, Folia, or Velocity | - -## Download - -You can download the plugin JAR from either of the following: - -- [GitHub Releases](https://github.com/m1sk9/LunaticChat/releases) -- [Modrinth](https://modrinth.com/project/lunaticchat) - -Use `LunaticChat-.jar` for Paper / Folia servers and `LunaticChat--velocity.jar` for Velocity proxies. - -## Installation - -### Paper / Folia - -1. Place the downloaded `LunaticChat-.jar` into the server's `plugins/` directory -2. Start (or restart) the server -3. `plugins/LunaticChat/config.yml` will be generated automatically -4. Modify the [configuration](/en/docs/configuration) as needed and restart the server - -### Velocity - -1. Place the downloaded `LunaticChat--velocity.jar` into the Velocity `plugins/` directory -2. Start (or restart) the Velocity proxy -3. Set `features.velocityIntegration.enabled` to `true` in the Paper-side `config.yml` -4. See [Velocity Integration](/en/docs/features/velocity) for details - -## Next Steps - -- [Configuration](/en/docs/configuration) - Review all settings in `config.yml` -- [Direct Message](/en/docs/features/direct-message) - How to use the DM feature -- [Channel Chat](/en/docs/features/channel-chat) - How to use the channel feature -- [Command Reference](/en/docs/reference/commands) - Reference for all commands diff --git a/website/src/en/docs/permissions.md b/website/src/en/docs/permissions.md deleted file mode 100644 index d059bba..0000000 --- a/website/src/en/docs/permissions.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: doc ---- - -# Permissions - -A list of all permission nodes in LunaticChat. - -## Command Permissions - -All command permissions are granted to all players by default. - -| Permission | Description | -|------------|-------------| -| `lunaticchat.command.lc` | Use the `/lc` command | -| `lunaticchat.command.tell` | Use the `/tell` command | -| `lunaticchat.command.reply` | Use the `/reply` command | -| `lunaticchat.command.lc.settings` | Use `/lc settings` | -| `lunaticchat.command.lc.status` | Use `/lc status` | - -### Channel-Related - -| Permission | Description | -|------------|-------------| -| `lunaticchat.command.lc.channel` | Use `/lc channel` | -| `lunaticchat.command.lc.channel.create` | Create a channel | -| `lunaticchat.command.lc.channel.list` | View the channel list | -| `lunaticchat.command.lc.channel.join` | Join a channel | -| `lunaticchat.command.lc.channel.leave` | Leave a channel | -| `lunaticchat.command.lc.channel.switch` | Switch the active channel | -| `lunaticchat.command.lc.channel.status` | View channel membership status | -| `lunaticchat.command.lc.channel.info` | View channel information | -| `lunaticchat.command.lc.channel.delete` | Delete a channel | -| `lunaticchat.command.lc.channel.invite` | Invite to a channel | -| `lunaticchat.command.lc.channel.kick` | Kick from a channel | -| `lunaticchat.command.lc.channel.ban` | Ban from a channel | -| `lunaticchat.command.lc.channel.unban` | Unban from a channel | -| `lunaticchat.command.lc.channel.mod` | Grant or revoke moderator privileges | -| `lunaticchat.command.lc.channel.ownership` | Transfer channel ownership | - -## Admin Permissions - -The following permissions are granted to OPs only by default. - -| Permission | Default | Description | -|------------|---------|-------------| -| `lunaticchat.spy` | op | View all direct messages on the server | -| `lunaticchat.noticeupdate` | op | Receive update notifications | -| `lunaticchat.channelbypass` | op | Bypass channel restrictions (kick/ban protection, force deletion) | -| `lunaticchat.command.lcv.status` | op | Use the `/lcv status` command | diff --git a/website/src/en/docs/reference/commands.md b/website/src/en/docs/reference/commands.md deleted file mode 100644 index 330a880..0000000 --- a/website/src/en/docs/reference/commands.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -layout: doc ---- - -# Command Reference - -A reference for all commands available in LunaticChat. - -## Direct Messages - -### `/tell ` - -Sends a direct message to a player. - -- **Aliases**: `t`, `msg`, `m`, `w`, `whisper` -- **Permission**: `lunaticchat.command.tell` - -### `/reply ` - -Replies to the last player who sent you a message. - -- **Aliases**: `r` -- **Permission**: `lunaticchat.command.reply` -- **Prerequisite**: Quick reply feature must be enabled - -## Main Command (`/lc`) - -**Aliases**: `lunaticchat` - -### `/lc status` - -Displays the plugin version, health, enabled features, and configuration values. - -- **Aliases**: `st` -- **Permission**: `lunaticchat.command.lc.status` - -### `/lc settings [key] [on|off]` - -Views or changes your personal settings. Without arguments, displays the settings list. - -- **Aliases**: `set` -- **Permission**: `lunaticchat.command.lc.settings` -- **Setting keys**: `japanese`, `notice`, `chNotice` (see [Player Settings](/en/docs/reference/player-settings) for details) - -## Channel Commands (`/lc channel`) - -**Aliases**: `ch` - -Only available when the channel chat feature is enabled. - -### Create & Browse - -#### `/lc channel create [description] [isPrivate]` - -Creates a new channel. The creator becomes the owner. - -- **Aliases**: `new` -- **Permission**: `lunaticchat.command.lc.channel.create` -- `channelId`: Only alphanumeric characters, underscores, and hyphens are allowed -- `isPrivate`: `true` / `false` (default: `false`) - -#### `/lc channel list [page]` - -Displays a list of public channels (10 per page). - -- **Aliases**: `ls` -- **Permission**: `lunaticchat.command.lc.channel.list` - -#### `/lc channel info [channelId]` - -Displays detailed information about a channel. Without arguments, shows information about the active channel. - -- **Aliases**: `i` -- **Permission**: `lunaticchat.command.lc.channel.info` - -### Join & Leave - -#### `/lc channel join ` - -Joins a channel. An invitation is required for private channels. - -- **Aliases**: `j` -- **Permission**: `lunaticchat.command.lc.channel.join` - -#### `/lc channel leave` - -Leaves the active channel. - -- **Aliases**: `l` -- **Permission**: `lunaticchat.command.lc.channel.leave` - -#### `/lc channel switch ` - -Switches the active channel to another channel you have already joined. - -- **Aliases**: `sw` -- **Permission**: `lunaticchat.command.lc.channel.switch` - -#### `/lc channel status` - -Displays your channel membership status (active channel and list of joined channels). - -- **Aliases**: `st` -- **Permission**: `lunaticchat.command.lc.channel.status` - -### Moderation (Owner / Moderator) - -#### `/lc channel invite ` - -Invites a player to the active channel. Bypasses private channel restrictions. - -- **Aliases**: `inv` -- **Permission**: `lunaticchat.command.lc.channel.invite` -- **Required role**: OWNER or MODERATOR - -#### `/lc channel kick ` - -Kicks a player from the active channel. - -- **Aliases**: `k` -- **Permission**: `lunaticchat.command.lc.channel.kick` -- **Required role**: OWNER or MODERATOR - -#### `/lc channel ban ` - -Bans a player from the active channel. Banned players cannot rejoin. - -- **Permission**: `lunaticchat.command.lc.channel.ban` -- **Required role**: OWNER or MODERATOR - -#### `/lc channel unban ` - -Unbans a player from the channel. - -- **Permission**: `lunaticchat.command.lc.channel.unban` -- **Required role**: OWNER or MODERATOR - -### Administration (Owner Only) - -#### `/lc channel delete ` - -Deletes a channel. - -- **Aliases**: `del` -- **Permission**: `lunaticchat.command.lc.channel.delete` -- **Required role**: OWNER (can be bypassed with `lunaticchat.channelbypass` permission) - -#### `/lc channel mod ` - -Grants or revokes moderator privileges for a channel member. - -- **Permission**: `lunaticchat.command.lc.channel.mod` -- **Required role**: OWNER - -#### `/lc channel ownership ` - -Transfers channel ownership to another member. - -- **Aliases**: `own` -- **Permission**: `lunaticchat.command.lc.channel.ownership` -- **Required role**: OWNER - -## Velocity Commands (`/lcv`) - -**Aliases**: `lunaticvelocity` - -### `/lcv status` - -Displays the connection status with the Velocity proxy, protocol version, and online player count. - -- **Aliases**: `st` -- **Permission**: `lunaticchat.command.lcv.status` -- **Default**: op only diff --git a/website/src/en/docs/reference/compatibility.md b/website/src/en/docs/reference/compatibility.md deleted file mode 100644 index ac7002d..0000000 --- a/website/src/en/docs/reference/compatibility.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: doc ---- - -# Paper / Velocity Compatibility - -The Paper and Velocity plugins of LunaticChat are versioned independently. Whether a given combination works is determined by the **protocol version** embedded in each plugin. - -::: warning Plugin version ≠ protocol version -The **plugin version** (e.g., Paper v1.2.0) and the **protocol version** (e.g., 1.0.0) are different things. New plugin releases do not necessarily change the protocol — and only the protocol version determines compatibility. -::: - -## TL;DR - -- **The latest Paper and the latest Velocity are always compatible.** When in doubt, use the latest of both. -- If you need to mix older versions, check the matrix below. -- You can verify the live connection state by running `/lcv status` on the Minecraft server. - -## Compatibility Matrix - -Each cell indicates whether the corresponding Paper × Velocity combination can connect. Data is fetched from GitHub Releases automatically. - - - -## What Is a Protocol Version? - -Paper and Velocity communicate via a LunaticChat-specific plugin messaging protocol. The protocol carries a semantic version (`MAJOR.MINOR.PATCH`), and at connection time Velocity validates the protocol version sent by Paper. - -::: tip Velocity is the only side that checks -Only Velocity performs the compatibility check. Paper just sends a handshake — it does not validate Velocity's version. So the question reduces to: "Does Velocity accept Paper's protocol version?" -::: - -The rules (from Velocity's perspective) are: - -- **MAJOR** must match exactly -- Paper's **MINOR** must be at least Velocity's `MIN_SUPPORTED_MINOR` and at most Velocity's `MINOR` -- **PATCH** does not affect compatibility - -`MIN_SUPPORTED_MINOR` controls how far back Velocity accepts older Paper peers, providing a grace window during rolling updates. - -### Version Bump Rules - -| Level | Example Change | Compatibility | Deployment Order | -|-------|---------------|---------------|------------------| -| **PATCH** (1.0.0 → 1.0.1) | Adding optional fields, new sub-channels | Fully compatible (safe with `ignoreUnknownKeys=true`) | Any order, anytime | -| **MINOR** (1.0.x → 1.1.0) | Adding required fields, changing existing sub-channel semantics | Backward compatible within `MIN_SUPPORTED_MINOR` range | **Update Velocity first** → then update each Paper server | -| **MAJOR** (1.x.x → 2.0.0) | Wire format changes, removing/renaming sub-channels | Incompatible | **Simultaneous deployment of all servers** | - -### Rolling Update Strategy - -1. **No protocol change**: Paper and Velocity can be deployed independently. Plugin bug fixes and refactors fall here. -2. **PATCH change**: Deploy from either side freely. -3. **MINOR change**: Update Velocity first and use `MIN_SUPPORTED_MINOR` as a grace window for older Paper servers. After all Paper servers are updated, bump `MIN_SUPPORTED_MINOR`. -4. **MAJOR change**: Update all servers simultaneously during a maintenance window. - -## Handshake Behavior - -Compatibility is checked at connection time: - -1. The Paper server sends a handshake to Velocity at startup -2. Velocity validates Paper's protocol version against its own -3. On mismatch, Velocity rejects the connection and Paper's state becomes `FAILED` -4. The handshake timeout is 5 seconds - -Live connection state is available via `/lcv status`. See [Velocity Integration](/en/docs/features/velocity#connection-states) for details. diff --git a/website/src/en/docs/reference/message-format.md b/website/src/en/docs/reference/message-format.md deleted file mode 100644 index 2669adb..0000000 --- a/website/src/en/docs/reference/message-format.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -layout: doc ---- - -# Message Format - -You can customize the display format of chat messages in the `messageFormat` section of `config.yml`. - -## Placeholders - -| Placeholder | Description | Available formats | -|-------------|-------------|-------------------| -| `{sender}` | Name of the message sender | All | -| `{recipient}` | Name of the message recipient | `directMessageFormat` | -| `{message}` | Message content | All | -| `{channel}` | Channel name | `channelMessageFormat` | -| `{server}` | Server name | `crossServerGlobalChatFormat` | - -## Format List - -### `directMessageFormat` - -The display format for direct messages sent via `/tell` or `/reply`. - -**Default:** -``` -§7[§e{sender} §7>> §e{recipient}§7] §f{message} -``` - -**Example:** [Steve >> Alex] Hello! - -### `channelMessageFormat` - -The display format for messages sent in channel chat. - -**Default:** -``` -§7[§b#{channel}§7] §e{sender}: §f{message} -``` - -**Example:** [#general] Steve: Hello! - -### `crossServerGlobalChatFormat` - -The display format for cross-server global chat when using Velocity integration. - -**Default:** -``` -§7[§6{server}§7] §e{sender}: §f{message} -``` - -**Example:** [survival] Steve: Hello! - -## Color Codes - -You can use color codes with the Minecraft section sign (`§`). - -| Code | Color | -|------|-------| -| `§0` | Black | -| `§1` | Dark blue | -| `§2` | Dark green | -| `§3` | Dark aqua | -| `§4` | Dark red | -| `§5` | Dark purple | -| `§6` | Gold | -| `§7` | Gray | -| `§8` | Dark gray | -| `§9` | Blue | -| `§a` | Green | -| `§b` | Aqua | -| `§c` | Red | -| `§d` | Pink | -| `§e` | Yellow | -| `§f` | White | - -### Formatting Codes - -| Code | Effect | -|------|--------| -| `§l` | **Bold** | -| `§o` | *Italic* | -| `§n` | Underline | -| `§m` | ~~Strikethrough~~ | -| `§k` | Obfuscated (characters change randomly) | -| `§r` | Reset | diff --git a/website/src/en/docs/reference/player-settings.md b/website/src/en/docs/reference/player-settings.md deleted file mode 100644 index 6db48ac..0000000 --- a/website/src/en/docs/reference/player-settings.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: doc ---- - -# Player Settings - -Players can change their personal settings using the `/lc settings` command. Settings are saved per UUID in the server's `player-settings.yaml` (the file path can be changed via `userSettingsFilePath` in the configuration file). - -## Command - -``` -/lc settings # Display settings list -/lc settings # Check current value -/lc settings on|off # Change value -``` - -## Setting Keys - -| Key | Description | Default | -|-----|-------------|---------| -| `japanese` | Enable romaji-to-Japanese conversion | `true` | -| `notice` | Enable direct message notifications | `true` | -| `chNotice` | Enable channel message notifications | `true` | - -### `japanese` - -Automatically converts chat messages typed in romaji to Japanese (hiragana). This setting only works when `features.japaneseConversion.enabled` is set to `true` on the server side. - -``` -/lc settings japanese on # Enable conversion -/lc settings japanese off # Disable conversion -``` - -### `notice` - -Controls notifications when receiving direct messages (`/tell` / `/reply`). - -``` -/lc settings notice on # Enable notifications -/lc settings notice off # Disable notifications -``` - -### `chNotice` - -Controls notifications when receiving channel chat messages. This setting only works when `features.channelChat.enabled` is set to `true` on the server side. - -``` -/lc settings chNotice on # Enable notifications -/lc settings chNotice off # Disable notifications -``` diff --git a/website/src/en/download.md b/website/src/en/download.md deleted file mode 100644 index 16916b5..0000000 --- a/website/src/en/download.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: page -title: Download ---- - - - - diff --git a/website/src/en/index.md b/website/src/en/index.md deleted file mode 100644 index 766478d..0000000 --- a/website/src/en/index.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -# https://vitepress.dev/reference/default-theme-home-page -layout: home - -hero: - name: 'LunaticChat' - tagline: A next-generation chat plugin for Paper, Folia and Velocity. - actions: - - theme: brand - text: Download - link: /en/download - - theme: brand - text: Documentation - link: /en/docs/getting-started - - theme: alt - text: GitHub - link: https://github.com/m1sk9/LunaticChat - -features: - - title: Channel Chat - details: Create and manage channels for group conversations between specific players. Includes private channels and moderation features. - icon: ☎️ - - title: Direct Messages - details: Send 1-on-1 chats with /tell or /msg commands. Quickly reply to the last sender with /reply. - icon: ✉️ - - title: Romaji Conversion - details: Automatically convert romaji input into Japanese. Fast performance powered by caching. - icon: 🌍 - - title: Velocity Cross-Server Chat - details: Relay global chat across multiple servers via a Velocity proxy. Join conversations from any server. - icon: 🔗 - - title: Flexible Configuration - details: Toggle features on/off with a YAML-based config file. Customize to fit your server's needs. - icon: ⚙️ - - title: Latest Version Support - details: Minimal external plugin dependencies, always supporting the latest Minecraft versions. - icon: ⛏️ ---- - -
- - -
-
-

Organize Conversations with Channel Chat

-

- Create channels within your server to separate conversations by topic or group. - Communicate with only the members you need, without flooding the global chat. -

-
    -
  • Create password-protected private channels
  • -
  • Per-channel moderation (kick, mute, ban)
  • -
  • Customizable join/leave notifications
  • -
-
-
- LunaticChat Channel Chat feature -
-
- -
- - -
-
-

Direct Messages & Quick Reply

-

- Easily send private 1-on-1 chats between players. - Use the /reply command to instantly respond to the last sender. -

-
    -
  • Send direct messages with /tell / /msg
  • -
  • Instantly reply to the last sender with /reply
  • -
  • Messages are visible only to the sender and recipient
  • -
-
-
- LunaticChat Direct Message feature -
-
- -
- - -
-
-

Automatic Romaji to Japanese Conversion

-

- Even in environments without Japanese input support, simply type in romaji and it will be automatically converted to Japanese. - Powered by the Google IME API for natural conversion results. -

-
    -
  • Real-time romaji-to-Japanese conversion while chatting
  • -
  • Fast performance with conversion result caching
  • -
  • Per-player toggle to enable/disable conversion
  • -
-
-
- LunaticChat Romaji Conversion feature -
-
- -
- - -
-
-

Cross-Server Chat with Velocity

-

- Integrate with a Velocity proxy to relay global chat across multiple Paper/Folia servers. - Players can join the same chat space regardless of which server they're on. -

-
    -
  • Relay regular chat to all servers in real time
  • -
  • Fast communication via a custom plugin messaging protocol
  • -
  • Backward compatibility guaranteed through protocol versioning
  • -
-
-
- LunaticChat Cross-Server Chat feature -
-
- -
- - -
-

Paper / Velocity Compatibility

-

Latest versions are always compatible. Mix older versions? Check the matrix below.

-
- -
-
- -
- - - diff --git a/website/src/index.md b/website/src/index.md index c1d867d..2731131 100644 --- a/website/src/index.md +++ b/website/src/index.md @@ -7,126 +7,126 @@ hero: tagline: A next-generation chat plugin for Paper, Folia and Velocity. actions: - theme: brand - text: ダウンロード + text: Download link: /download - theme: brand - text: ドキュメント + text: Documentation link: /docs/getting-started - theme: alt text: GitHub link: https://github.com/m1sk9/LunaticChat features: - - title: チャンネルチャット - details: チャンネルを作成・管理し,特定のプレイヤー間でグループチャットが可能.プライベートチャンネルやモデレーション機能も搭載 + - title: Channel Chat + details: Create and manage channels for group conversations between specific players. Includes private channels and moderation features. icon: ☎️ - - title: ダイレクトメッセージ - details: /tell や /msg コマンドで 1対1 のチャットが可能./reply で直前の相手に素早く返信 + - title: Direct Messages + details: Send 1-on-1 chats with /tell or /msg commands. Quickly reply to the last sender with /reply. icon: ✉️ - - title: ローマ字変換 - details: ローマ字で入力したメッセージを自動的に日本語に変換.キャッシュにより高速に動作 + - title: Romaji Conversion + details: Automatically convert romaji input into Japanese. Fast performance powered by caching. icon: 🌍 - - title: Velocity サーバー間連携 - details: Velocity プロキシを経由して複数サーバー間でグローバルチャットをリレー.どのサーバーにいても会話に参加可能 + - title: Velocity Cross-Server Chat + details: Relay global chat across multiple servers via a Velocity proxy. Join conversations from any server. icon: 🔗 - - title: 柔軟な設定 - details: YAML ベースの設定ファイルで機能の有効/無効を切り替え.サーバーの用途に合わせてカスタマイズ可能 + - title: Flexible Configuration + details: Toggle features on/off with a YAML-based config file. Customize to fit your server's needs. icon: ⚙️ - - title: 最新バージョン対応 - details: 外部プラグインへの依存を最小限に抑え,常に最新の Minecraft バージョンに対応 + - title: Latest Version Support + details: Minimal external plugin dependencies, always supporting the latest Minecraft versions. icon: ⛏️ ---
- +
-

チャンネルチャットで会話を整理

+

Organize Conversations with Channel Chat

- サーバー内にチャンネルを作成して,トピックやグループごとに会話を分離できます. - 全体チャットに流れることなく,必要なメンバーだけでコミュニケーションが可能です. + Create channels within your server to separate conversations by topic or group. + Communicate with only the members you need, without flooding the global chat.

    -
  • パスワード付きのプライベートチャンネルを作成
  • -
  • チャンネルごとのモデレーション機能(キック・ミュート・BAN)
  • -
  • チャンネル参加・退出の通知をカスタマイズ
  • +
  • Create password-protected private channels
  • +
  • Per-channel moderation (kick, mute, ban)
  • +
  • Customizable join/leave notifications
- LunaticChat のチャンネルチャット機能 + LunaticChat Channel Chat feature

- +
-

ダイレクトメッセージ & クイック返信

+

Direct Messages & Quick Reply

- プレイヤー間で手軽に 1対1 のプライベートチャットができます. - /reply コマンドで直前の相手にすぐ返信でき,テンポの良いやり取りを実現します. + Easily send private 1-on-1 chats between players. + Use the /reply command to instantly respond to the last sender.

    -
  • /tell / /msg でダイレクトメッセージを送信
  • -
  • /reply で直前の送信者に即座に返信
  • -
  • メッセージは送信者と受信者だけに表示
  • +
  • Send direct messages with /tell / /msg
  • +
  • Instantly reply to the last sender with /reply
  • +
  • Messages are visible only to the sender and recipient
- LunaticChat のダイレクトメッセージ機能 + LunaticChat Direct Message feature

- +
-

ローマ字入力を自動で日本語に

+

Automatic Romaji to Japanese Conversion

- 日本語入力に対応していない環境でも,ローマ字で入力するだけで自動的に日本語に変換されます. - Google IME API を活用し,自然な変換結果を提供します. + Even in environments without Japanese input support, simply type in romaji and it will be automatically converted to Japanese. + Powered by the Google IME API for natural conversion results.

    -
  • チャット入力時にリアルタイムでローマ字→日本語変換
  • -
  • 変換結果のキャッシュで高速動作を実現
  • -
  • プレイヤーごとに変換機能のオン/オフを切り替え可能
  • +
  • Real-time romaji-to-Japanese conversion while chatting
  • +
  • Fast performance with conversion result caching
  • +
  • Per-player toggle to enable/disable conversion
- LunaticChat のローマ字変換機能 + LunaticChat Romaji Conversion feature

- +
-

Velocity でサーバー間連携

+

Cross-Server Chat with Velocity

- Velocity プロキシと連携して,複数の Paper/Folia サーバー間でグローバルチャットをリレーします. - プレイヤーはどのサーバーにいても,同じチャット空間で会話に参加できます. + Integrate with a Velocity proxy to relay global chat across multiple Paper/Folia servers. + Players can join the same chat space regardless of which server they're on.

    -
  • 通常チャットを全サーバーにリアルタイムでリレー
  • -
  • 独自のプラグインメッセージングプロトコルで高速な通信
  • -
  • プロトコルバージョニングによる後方互換性の保証
  • +
  • Relay regular chat to all servers in real time
  • +
  • Fast communication via a custom plugin messaging protocol
  • +
  • Backward compatibility guaranteed through protocol versioning
- LunaticChat のクロスチャット機能 + LunaticChat Cross-Server Chat feature

- +
-

Paper / Velocity 互換性

-

最新版同士は常に互換.古いバージョンを混在させる場合は下のマトリクスで確認できます

+

Paper / Velocity Compatibility

+

Latest versions are always compatible. Mix older versions? Check the matrix below.

@@ -134,31 +134,31 @@ features:
- + 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 [description] [isPrivate] +``` + +- `channelId`: チャンネルの一意な識別子 (英数字, `_`, `-` のみ, 3〜30文字) +- `name`: チャンネルの表示名 +- `description`: チャンネルの説明 (省略可) +- `isPrivate`: プライベートチャンネルにする場合は `true` (デフォルト: `false`) + +作成者は自動的にオーナーになります. + +## チャンネルへの参加・退出 + +``` +/lc channel join # チャンネルに参加 +/lc channel leave # アクティブチャンネルから退出 +/lc channel switch # アクティブチャンネルを切り替え +``` + +プライベートチャンネルに参加するには,オーナーまたはモデレーターからの招待が必要です. + +## アクティブチャンネル + +プレイヤーは複数のチャンネルに参加できますが,一度にアクティブにできるチャンネルは1つです.チャットメッセージはアクティブチャンネルに送信されます.`/lc channel switch` でアクティブチャンネルを切り替えられます. + +``` +/lc channel status # 現在のアクティブチャンネルと参加チャンネル一覧を表示 +``` + +## ロールと権限 + +チャンネルには3つのロールがあります. + +| ロール | 権限 | +|--------|------| +| **OWNER** | チャンネルの削除,モデレーター管理,オーナー譲渡,メンバー管理 | +| **MODERATOR** | メンバーの招待,キック,BAN/BAN解除 | +| **MEMBER** | チャットへの参加,チャンネル情報の閲覧 | + +### モデレーター管理 (オーナーのみ) + +``` +/lc channel mod # モデレーター権限の付与/剥奪 +/lc channel ownership # オーナー権限の譲渡 +``` + +### メンバー管理 (オーナー / モデレーター) + +``` +/lc channel invite # プレイヤーを招待 +/lc channel kick # プレイヤーをキック +/lc channel ban # プレイヤーを BAN +/lc channel unban # 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 +``` + +エイリアス: `/t`, `/msg`, `/m`, `/w`, `/whisper` + +指定したプレイヤーにダイレクトメッセージを送信します.受信したメッセージをクリックすると,送信者への返信コマンドが自動入力されます. + +### クイック返信 + +``` +/reply +``` + +エイリアス: `/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--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-.jar` を,Velocity プロキシには `LunaticChat--velocity.jar` を使用してください. + +## インストール + +### Paper / Folia + +1. ダウンロードした `LunaticChat-.jar` をサーバーの `plugins/` ディレクトリに配置します +2. サーバーを起動 (または再起動) します +3. `plugins/LunaticChat/config.yml` が自動生成されます +4. 必要に応じて[設定](/ja/docs/configuration)を変更し,サーバーを再起動します + +### Velocity + +1. ダウンロードした `LunaticChat--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 ` + +プレイヤーにダイレクトメッセージを送信します. + +- **エイリアス**: `t`, `msg`, `m`, `w`, `whisper` +- **パーミッション**: `lunaticchat.command.tell` + +### `/reply ` + +最後にメッセージを送ってきたプレイヤーに返信します. + +- **エイリアス**: `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 [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 ` + +チャンネルに参加します.プライベートチャンネルには招待が必要です. + +- **エイリアス**: `j` +- **パーミッション**: `lunaticchat.command.lc.channel.join` + +#### `/lc channel leave` + +アクティブチャンネルから退出します. + +- **エイリアス**: `l` +- **パーミッション**: `lunaticchat.command.lc.channel.leave` + +#### `/lc channel switch ` + +参加済みの別チャンネルをアクティブに切り替えます. + +- **エイリアス**: `sw` +- **パーミッション**: `lunaticchat.command.lc.channel.switch` + +#### `/lc channel status` + +自分のチャンネル参加状況(アクティブチャンネルと参加チャンネル一覧)を表示します. + +- **エイリアス**: `st` +- **パーミッション**: `lunaticchat.command.lc.channel.status` + +### モデレーション(オーナー / モデレーター) + +#### `/lc channel invite ` + +プレイヤーをアクティブチャンネルに招待します.プライベートチャンネルの制限をバイパスします. + +- **エイリアス**: `inv` +- **パーミッション**: `lunaticchat.command.lc.channel.invite` +- **必要ロール**: OWNER または MODERATOR + +#### `/lc channel kick ` + +プレイヤーをアクティブチャンネルからキックします. + +- **エイリアス**: `k` +- **パーミッション**: `lunaticchat.command.lc.channel.kick` +- **必要ロール**: OWNER または MODERATOR + +#### `/lc channel ban ` + +プレイヤーをアクティブチャンネルから BAN します.BAN されたプレイヤーは再参加できません. + +- **パーミッション**: `lunaticchat.command.lc.channel.ban` +- **必要ロール**: OWNER または MODERATOR + +#### `/lc channel unban ` + +プレイヤーのチャンネル BAN を解除します. + +- **パーミッション**: `lunaticchat.command.lc.channel.unban` +- **必要ロール**: OWNER または MODERATOR + +### 管理(オーナーのみ) + +#### `/lc channel delete ` + +チャンネルを削除します. + +- **エイリアス**: `del` +- **パーミッション**: `lunaticchat.command.lc.channel.delete` +- **必要ロール**: OWNER(`lunaticchat.channelbypass` 権限で制限をバイパス可能) + +#### `/lc channel mod ` + +チャンネルメンバーのモデレーター権限を付与・剥奪します. + +- **パーミッション**: `lunaticchat.command.lc.channel.mod` +- **必要ロール**: OWNER + +#### `/lc channel ownership ` + +チャンネルのオーナー権限を別のメンバーに譲渡します. + +- **エイリアス**: `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 から自動取得されます. + + + +## プロトコルバージョンとは + +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} +``` + +**表示例:** [Steve >> Alex] こんにちは! + +### `channelMessageFormat` + +チャンネルチャットで送信されるメッセージの表示形式です. + +**デフォルト:** +``` +§7[§b#{channel}§7] §e{sender}: §f{message} +``` + +**表示例:** [#general] Steve: こんにちは! + +### `crossServerGlobalChatFormat` + +Velocity 連携時のクロスサーバーグローバルチャットの表示形式です. + +**デフォルト:** +``` +§7[§6{server}§7] §e{sender}: §f{message} +``` + +**表示例:** [survival] Steve: こんにちは! + +## カラーコード + +Minecraft のセクション記号(`§`)を使ったカラーコードが使用できます. + +| コード | 色 | +|--------|------| +| `§0` | 黒 | +| `§1` | 濃い青 | +| `§2` | 濃い緑 | +| `§3` | 濃い水色 | +| `§4` | 濃い赤 | +| `§5` | 濃い紫 | +| `§6` | 金色 | +| `§7` | 灰色 | +| `§8` | 濃い灰色 | +| `§9` | 青 | +| `§a` | 緑 | +| `§b` | 水色 | +| `§c` | 赤 | +| `§d` | ピンク | +| `§e` | 黄色 | +| `§f` | 白 | + +### 装飾コード + +| コード | 効果 | +|--------|------| +| `§l` | **太字** | +| `§o` | *斜体* | +| `§n` | 下線 | +| `§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 # 現在の値を確認 +/lc settings 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 # 通知を無効化 +``` diff --git a/website/src/ja/download.md b/website/src/ja/download.md new file mode 100644 index 0000000..47f4ff5 --- /dev/null +++ b/website/src/ja/download.md @@ -0,0 +1,8 @@ +--- +layout: page +title: ダウンロード +--- + + + + diff --git a/website/src/ja/index.md b/website/src/ja/index.md new file mode 100644 index 0000000..e007349 --- /dev/null +++ b/website/src/ja/index.md @@ -0,0 +1,164 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: 'LunaticChat' + tagline: A next-generation chat plugin for Paper, Folia and Velocity. + actions: + - theme: brand + text: ダウンロード + link: /ja/download + - theme: brand + text: ドキュメント + link: /ja/docs/getting-started + - theme: alt + text: GitHub + link: https://github.com/m1sk9/LunaticChat + +features: + - title: チャンネルチャット + details: チャンネルを作成・管理し,特定のプレイヤー間でグループチャットが可能.プライベートチャンネルやモデレーション機能も搭載 + icon: ☎️ + - title: ダイレクトメッセージ + details: /tell や /msg コマンドで 1対1 のチャットが可能./reply で直前の相手に素早く返信 + icon: ✉️ + - title: ローマ字変換 + details: ローマ字で入力したメッセージを自動的に日本語に変換.キャッシュにより高速に動作 + icon: 🌍 + - title: Velocity サーバー間連携 + details: Velocity プロキシを経由して複数サーバー間でグローバルチャットをリレー.どのサーバーにいても会話に参加可能 + icon: 🔗 + - title: 柔軟な設定 + details: YAML ベースの設定ファイルで機能の有効/無効を切り替え.サーバーの用途に合わせてカスタマイズ可能 + icon: ⚙️ + - title: 最新バージョン対応 + details: 外部プラグインへの依存を最小限に抑え,常に最新の Minecraft バージョンに対応 + icon: ⛏️ +--- + +
+ + +
+
+

チャンネルチャットで会話を整理

+

+ サーバー内にチャンネルを作成して,トピックやグループごとに会話を分離できます. + 全体チャットに流れることなく,必要なメンバーだけでコミュニケーションが可能です. +

+
    +
  • パスワード付きのプライベートチャンネルを作成
  • +
  • チャンネルごとのモデレーション機能(キック・ミュート・BAN)
  • +
  • チャンネル参加・退出の通知をカスタマイズ
  • +
+
+
+ LunaticChat のチャンネルチャット機能 +
+
+ +
+ + +
+
+

ダイレクトメッセージ & クイック返信

+

+ プレイヤー間で手軽に 1対1 のプライベートチャットができます. + /reply コマンドで直前の相手にすぐ返信でき,テンポの良いやり取りを実現します. +

+
    +
  • /tell / /msg でダイレクトメッセージを送信
  • +
  • /reply で直前の送信者に即座に返信
  • +
  • メッセージは送信者と受信者だけに表示
  • +
+
+
+ LunaticChat のダイレクトメッセージ機能 +
+
+ +
+ + +
+
+

ローマ字入力を自動で日本語に

+

+ 日本語入力に対応していない環境でも,ローマ字で入力するだけで自動的に日本語に変換されます. + Google IME API を活用し,自然な変換結果を提供します. +

+
    +
  • チャット入力時にリアルタイムでローマ字→日本語変換
  • +
  • 変換結果のキャッシュで高速動作を実現
  • +
  • プレイヤーごとに変換機能のオン/オフを切り替え可能
  • +
+
+
+ LunaticChat のローマ字変換機能 +
+
+ +
+ + +
+
+

Velocity でサーバー間連携

+

+ Velocity プロキシと連携して,複数の Paper/Folia サーバー間でグローバルチャットをリレーします. + プレイヤーはどのサーバーにいても,同じチャット空間で会話に参加できます. +

+
    +
  • 通常チャットを全サーバーにリアルタイムでリレー
  • +
  • 独自のプラグインメッセージングプロトコルで高速な通信
  • +
  • プロトコルバージョニングによる後方互換性の保証
  • +
+
+
+ LunaticChat のクロスチャット機能 +
+
+ +
+ + +
+

Paper / Velocity 互換性

+

最新版同士は常に互換.古いバージョンを混在させる場合は下のマトリクスで確認できます

+
+ +
+
+ +
+ + + -- cgit v1.2.1