diff options
| author | Sho Sakuma <me@m1sk9.dev> | 2026-02-23 18:46:56 +0900 |
|---|---|---|
| committer | Sho Sakuma <me@m1sk9.dev> | 2026-02-23 18:46:56 +0900 |
| commit | f4b57c95a1622cb009eec25e64da79b139e3dcf1 (patch) | |
| tree | c2ef4407725bb0bd35f63b92a2875d4a2d153525 /docs/src/admin-guide | |
| parent | 02574e0f606d0af3535d58b794fc5304de3ba37c (diff) | |
| download | LunaticChat-f4b57c95a1622cb009eec25e64da79b139e3dcf1.tar.gz LunaticChat-f4b57c95a1622cb009eec25e64da79b139e3dcf1.tar.bz2 LunaticChat-f4b57c95a1622cb009eec25e64da79b139e3dcf1.zip | |
docs: Update guide
Diffstat (limited to 'docs/src/admin-guide')
| -rw-r--r-- | docs/src/admin-guide/cache.md | 31 | ||||
| -rw-r--r-- | docs/src/admin-guide/channel-chat/introduction.md | 74 | ||||
| -rw-r--r-- | docs/src/admin-guide/channel-chat/logs.md | 119 | ||||
| -rw-r--r-- | docs/src/admin-guide/configuration.md | 318 | ||||
| -rw-r--r-- | docs/src/admin-guide/getting-started.md | 72 | ||||
| -rw-r--r-- | docs/src/admin-guide/management-data.md | 107 | ||||
| -rw-r--r-- | docs/src/admin-guide/permissions.md | 179 | ||||
| -rw-r--r-- | docs/src/admin-guide/velocity.md | 87 |
8 files changed, 987 insertions, 0 deletions
diff --git a/docs/src/admin-guide/cache.md b/docs/src/admin-guide/cache.md new file mode 100644 index 0000000..b1a6754 --- /dev/null +++ b/docs/src/admin-guide/cache.md @@ -0,0 +1,31 @@ +# キャッシュシステム + +LunaticChat では,かな・ローマ字変換時のフレーズを自動でメモリ・ディスクにキャッシュするシステムが搭載されています. + +かな・ローマ字変換に関する情報は [こちら](../player-guide/japanese-romanization.md) をご覧ください. + +## メモリキャッシュ + +LunaticChat は変換済みのフレーズをメモリ上にキャッシュし,再度同じフレーズが要求された際に高速に応答できるようにしています. + +このキャッシュは一時的であり,サーバー再起動時や設定した秒数毎にディスクキャッシュへ保存されます. + +## ディスクキャッシュ + +LunaticChat はメモリキャッシュの内容を定期的にディスクに保存します. これにより,サーバー再起動後もキャッシュ内容を保持できるようになっています. + +ディスクキャッシュとして使用されるファイルは [設定で変更できます](configuration.md#cachefilepath). + +## キャッシュの解放 + +メモリキャッシュは,ディスクにキャッシュしたのち自動的に JVM のガベージコレクションにより解放されます. + +ディスクキャッシュは,手動でファイルを削除することで解放できます. 再起動時に LunaticChat は再度キャッシュファイルを作成します. + +::: warning パージ機能について + +LunaticChat では,キャッシュのパージ 機能は実装されていません. + +これはプレイヤー側にホストのファイルシステムを操作させることがセキュリティ上好ましくないためです. + +::: diff --git a/docs/src/admin-guide/channel-chat/introduction.md b/docs/src/admin-guide/channel-chat/introduction.md new file mode 100644 index 0000000..559283c --- /dev/null +++ b/docs/src/admin-guide/channel-chat/introduction.md @@ -0,0 +1,74 @@ +# チャンネルチャット: 展開ガイド + +このガイドでは、チャンネルチャットの展開方法について説明します. + +## チャンネルチャットとは + +プレイヤー間でチャンネルを作成し,特定のプレイヤー間で,チャットを共有できる機能です. + +詳しい機能については [プレイヤー向けガイド版](../../player-guide/channel-chat/about.md) を参照してください. + +## チャンネルチャットの展開準備 + +チャンネルチャットを展開するには,LunaticChat の設定ファイル `config.yml` でチャンネルチャット機能を有効化する必要があります. + +1. サーバーを停止します. +2. `plugins/LunaticChat/config.yml` を開きます. +3. `features.channelChat.enabled` を `true` に設定します. +4. サーバーを再起動します. + +以上でチャンネルチャット機能が有効化され,プレイヤーがチャンネルチャットを使用できるようになります. + +## チャンネルチャットの設定 + +チャンネルチャットに関する設定項目は以下の通りです. + +- `features.channelChat.maxChannelsPerPlayer`: 1人のプレイヤーが作成できるチャンネルの最大数を指定します. +- `features.channelChat.maxMembersPerChannel`: 1つのチャンネルに参加できるメンバーの最大数を指定します. +- `features.channelChat.maxMembershipPerPlayer`: 1人のプレイヤーが参加できるチャンネルの最大数を指定します. + +デフォルトは `0` に設定されており,制限はありません. + +::: tip 設定のおすすめは? + +チャンネルチャット機能を活発に使用したい場合は,これらの値を高めに設定することをお勧めします. + +ただし,サーバーのパフォーマンスに影響を与える可能性があるため,サーバーのリソース状況に応じて適切に設定してください. + +おすすめの設定は次のとおりです. + +- `features.channelChat.maxChannelsPerPlayer`: `3` 〜 `5` +- `features.channelChat.maxMembersPerChannel`: `20` 〜 `50` +- `features.channelChat.maxMembershipPerPlayer`: `5` 〜 `10` + +::: + +## チャンネルチャットのログ + +::: warning CoreProtect などのプラグインとの互換性 + +LunaticChat では,チャンネルチャット機能に限り v0.7.0 以降 CoreProtect などのログ記録プラグインと互換性はありません. + +::: + +チャンネルチャットのログ機能はデフォルトで有効になっています. + +詳しくは [チャンネルチャット: ログ](logs.md) を参照してください. + +## チャンネルの管理 + +基本的に,[チャンネルの管理はプレイヤー自身が行います](../../player-guide/channel-chat/moderation.md). + +ただし,サーバー管理者として,以下の点に注意してください: + +- サーバー管理者はすべてのチャンネルに対してオーナー権限を持ちます.操作が必要な場合は,適切に対応してください. +- サーバーのパフォーマンスを維持するために,必要に応じてチャンネル数やメンバー数の制限を設定してください. +- 不適切なチャンネルやメンバー行動が発生した場合は,適切な措置を講じてください. + +また,それらのチャンネルの管理によるトラブルを回避したい場合は `/lc channel ban` などのモデレートコマンドの制限を検討してください. + +## チャンネルチャットを捕捉してしまうプラグイン + +基本的に CoreProtect などのログ記録プラグインは,LunaticChat のチャンネルチャットメッセージを捕捉しません. + +ただし,Paper API の `originalMessage()` を使用してメッセージを取得しているプラグインは,LunaticChat のチャンネルチャットメッセージを捕捉してしまう可能性があります. diff --git a/docs/src/admin-guide/channel-chat/logs.md b/docs/src/admin-guide/channel-chat/logs.md new file mode 100644 index 0000000..9b88bdd --- /dev/null +++ b/docs/src/admin-guide/channel-chat/logs.md @@ -0,0 +1,119 @@ +# チャンネルチャット: ログ <Badge type="tip" text="v0.7.0" /> + +チャンネルチャットのログは,チャット内で行われたすべてのメッセージとアクティビティの記録です. + +::: warning CoreProtect などのプラグインとの互換性 + +LunaticChat では,チャンネルチャット機能に限り v0.7.0 以降 CoreProtect などのログ記録プラグインと互換性はありません. + +::: + +## チャンネルチャットのログを確認する + +チャンネルチャットのログは `plugins/LunaticChat/logs/channelchat/` ディレクトリに保存されます. + +チャンネルチャットのログファイルは,以下のフォーマットで保存されます: + +``` +{"timestamp":"2026-01-31T08:54:18.504343071Z","playerId":"ceaea267-39dd-3bac-931c-761ada671ebe","playerName":"m1sk9","channelId":"test","message":"こんにちは"} +``` + +## ファイルサイズについて + +各行が1つの完全な JSON オブジェクトであり,各行で区切られているだけで,ファイル全体としては JSON 配列ではありません. + +```text +plugins/LunaticChat/logs/ +├── channel-messages-2026-01-17.json (5.2 MB) +├── channel-messages-2026-01-18.json (4.8 MB) +├── channel-messages-2026-01-19.json (6.1 MB) +├── channel-messages-2026-01-20.json (5.5 MB) +├── channel-messages-2026-01-21.json (7.2 MB) <- 週末、アクティブ +├── channel-messages-2026-01-22.json (6.9 MB) +├── channel-messages-2026-01-23.json (4.3 MB) +├── channel-messages-2026-01-24.json (5.0 MB) +├── channel-messages-2026-01-25.json (5.4 MB) +├── channel-messages-2026-01-26.json (4.9 MB) +├── channel-messages-2026-01-27.json (6.2 MB) +├── channel-messages-2026-01-28.json (7.5 MB) +├── channel-messages-2026-01-29.json (5.8 MB) +├── channel-messages-2026-01-30.json (6.0 MB) +└── channel-messages-2026-01-31.json (2.1 MB) <- 今日(進行中) +``` + +合計: 約 83 MB + +30日保持設定 の場合,1月17日のファイルは明日自動削除されます. + +### 1メッセージあたりのサイズ + +チャンネルチャットのログエントリは1行につき,約200バイトです. + +1時間に1000メッセージの計算として + +```text +1000 msg/h × 24h × 220 bytes = 5,280,000 bytes ≈ 5.3 MB/日 +``` + +デフォルト設定の30日間保持の場合は **159 MB** 程度になります. + +```text +5.3 MB × 30日 = 159 MB +``` + +## Grafana Loki での可視化 + +JSON 形式のため,Promtail を使用し,Grafana Loki にチャンネルチャットのログを取り込むとパースされ読みやすくなります. + +```text +2026-01-31 10:23:45.123 {job="lunatichat", player="Steve", channel="Global"} +Hello everyone! + +2026-01-31 10:24:12.456 {job="lunatichat", player="Alex", channel="Global"} +Hi Steve! + +2026-01-31 10:25:03.789 {job="lunatichat", player="Notch", channel="Development Team"} +Working on new features +``` + +::: tip フィルタリング例 + +Grafana Loki でログをクエリ化する例: + +```text +{job="lunatichat"} |= "new features" +{job="lunatichat", channel="Global"} +{job="lunatichat", player="Steve"} +``` + +::: + +## コマンドラインでの確認例 + +### 最新10件を見る + +```bash +tail -n 10 plugins/LunaticChat/logs/channel-messages-2026-01-31.json | jq +``` + +### 特定プレイヤーのメッセージを抽出 + +```bash +cat plugins/LunaticChat/logs/channel-messages-*.json | \ +jq 'select(.playerName=="Steve")' +``` + +### 特定チャンネルのメッセージ数をカウント + +```bash +cat plugins/LunaticChat/logs/channel-messages-*.json | \ +jq 'select(.channelId=="global")' | wc -l +``` + +### 日付別メッセージ数 + +```bash +for file in plugins/LunaticChat/logs/channel-messages-*.json; do +echo "$file: $(wc -l < $file) messages" +done +``` diff --git a/docs/src/admin-guide/configuration.md b/docs/src/admin-guide/configuration.md new file mode 100644 index 0000000..0d62646 --- /dev/null +++ b/docs/src/admin-guide/configuration.md @@ -0,0 +1,318 @@ +# 設定 + +```yaml +# ---------------------------------------------- +# -------------- LunaticChat --------------- +# ---------------------------------------------- +# +# Docs: https://lc.m1sk9.dev +# GitHub: https://github.com/m1sk9/LunaticChat +# +# This configuration file is for customizing LunaticChat's behavior. +# Please specify appropriate values to ensure LunaticChat functions correctly. +# +# For detailed configuration options, please refer to the documentation: +# Japanese: https://lc.m1sk9.dev/guide/admin/configuration +# English: https://lc.m1sk9.dev/en/guide/admin/configuration +# ---------------------------------------------- + +# If enabled, Activate LunaticChat's debug mode, which provides detailed logging for troubleshooting. +debug: false + +# Path to the YAML file storing player settings +userSettingsFilePath: "player-settings.yaml" + +# If enabled, LunaticChat will check for updates on startup. +checkForUpdates: true + +# Plugin Configuration Language. This setting applies only to player feedback and does not affect plugin logs or similar outputs. +language: "en" + +# ---------------------------------------------- +# ----------- Features Settings ------------ +# ---------------------------------------------- + +features: + quickReplies: + # If enabled, the quick reply feature via the /reply command will be activated. + enabled: true + japaneseConversion: + # If enabled, enables the conversion function from Roman letters to hiragana. + enabled: false + cache: + # Specifies the maximum number of entries to store in the Romanization conversion cache. + maxEntries: 500 + # Specify the interval (in seconds) for saving the Romanization conversion cache to disk. + saveIntervalSeconds: 300 + # Specify the file path where the cache for Romanization conversion is saved. + filePath: "conversion_cache.json" + api: + # Specify the timeout duration (in milliseconds) for API requests to the Romanization conversion service. + timeout: 3000 + # Specify the number of retry attempts for failed API requests to the Romanization conversion service. + retryAttempts: 2 + channelChat: + # If enabled, channel-based chat functionality will be activated. + enabled: false + # Maximum number of channels that can be created per server. Set to 0 for unlimited. + maxChannelsPerServer: 0 + # Maximum number of members allowed in a single channel. Set to 0 for unlimited. + maxMembersPerChannel: 0 + # Maximum number of channels a single player can join. Set to 0 for unlimited. + maxMembershipPerPlayer: 0 + # Channel message logging configuration + messageLogging: + # If enabled, all channel messages will be logged to NDJSON files for analysis and archival. + enabled: true + # Number of days to retain log files. Set to 0 to keep logs indefinitely. + retentionDays: 30 + # Maximum size of a single log file in megabytes. Files exceeding this size will stop accepting new entries. + maxFileSizeMB: 100 + velocityIntegration: + # If enabled, enables integration with Velocity proxy plugin. + # This allows Paper and Velocity instances to communicate and verify compatibility. + enabled: false + # If enabled, global chat messages will be shared across all Paper servers connected to the Velocity proxy. + # Players on different servers can communicate through the GLOBAL chat mode. + crossServerGlobalChat: false + # Server name to display in cross-server chat (e.g., "survival", "creative", "lobby"). + # This should match the server name defined in your Velocity configuration. + serverName: "Unknown" + # Size of the message deduplication cache to prevent duplicate messages from appearing. + # Keeps track of the most recent N message IDs to filter out duplicates. + messageDeduplicationCacheSize: 100 + +# ---------------------------------------------- +# --------- Message Format Settings -------- +# ---------------------------------------------- +# +# Customize the format of various chat messages here. +# You can use placeholders such as {sender}, {message}, etc. +# +# {sender} - The name of the message sender +# {recipient} - The name of the message recipient +# {message} - The content of the message +# {channel} - The name of the chat channel (only for channel chat) +# {server} - The name of the server (only for Velocity cross-server chat) +# ---------------------------------------------- + +messageFormat: + # Configure the format for direct messages sent via /tell or /msg + directMessageFormat: "§7[§e{sender} §7>> §e{recipient}§7] §f{message}" + # Configure the format for messages sent in channel chat + channelMessageFormat: "§7[§b#{channel}§7] §e{sender}: §f{message}" + # Configure the format for global chat messages in Velocity integration + crossServerGlobalChatFormat: "§7[§6{server}§7] §e{sender}: §f{message}" +``` + +## General Settings + +### `debug` + +- Type: `boolean` +- Default: `false` + +LunaticChat をデバッグモードで起動します. + +### `userSettingsFilePath` + +- Type: `string` +- Default: `player-settings.yaml` + +LunaticChat がプレイヤーの設定を保存する YAML ファイルのパスを指定します. + +### `checkForUpdates` + +- Type: `boolean` +- Default: `true` + +LunaticChat の起動時・権限を持ったプレイヤーがサーバに参加した際に,LunaticChat のアップデートを促すかどうか設定します. + +### `language` + +- Type: `string` +- Default: `en` + +LunaticChat のプレイヤー向けメッセージの言語を指定します. + +### Supported languages: + +- `en`: English +- `ja`: 日本語 + +## Features Settings + +### `features.quickReplies.enabled` + +- Type: `boolean` +- Default: `true` + +LunaticChat の [`/reply`](../player-guide/commands/reply.md) コマンドによるクイックリプライ機能を有効にします. + +無効にすると [`/reply`](../player-guide/commands/reply.md) コマンドは Paper に登録されず,使用できなくなります. + +### `features.japaneseConversion.enabled` + +- Type: `boolean` +- Default: `false` + +ローマ字からひらがなへの変換機能を有効にします. + +### `features.japaneseConversion` + +#### `cache.maxEntries` + +- Type: `integer` +- Default: `500` + +ローマ字変換のキャッシュに保存する最大エントリ数を指定します. + +この値を超えると,最も古いエントリから順に削除されます. + +値を高く設定すれば,変換のパフォーマンスが向上しますが,メモリ使用量・キャッシュファイルサイズも増加します. + +#### `cache.saveIntervalSeconds` + +- Type: `integer` +- Default: `300` + +ローマ字変換のキャッシュをディスクに保存する間隔(秒)を指定します. + +#### `cache.filePath` + +- Type: `string` +- Default: `conversion_cache.json` + +ローマ字変換のキャッシュを保存するファイルパスを指定します. + +ここで設定したパスは `plugins/LunaticChat/` ディレクトリを基準とした相対パスとして解釈されます. + +#### `api.timeout` + +- Type: `integer` +- Default: `3000` + +ローマ字変換 API へのリクエストのタイムアウト時間(ミリ秒)を指定します. + +#### `api.retryAttempts` + +- Type: `integer` +- Default: `2` + +ローマ字変換 API へのリクエストが失敗した場合の再試行回数を指定します. + +### `features.channelChat` + +#### `enabled` + +- Type: `boolean` +- Default: `false` + +チャンネルチャット機能を有効にします. + +#### `maxChannelsPerServer` + +- Type: `integer` +- Default: `0` + +サーバーあたりで作成可能なチャンネルの最大数を指定します. + +`0` に設定すると無制限になります. + +#### `maxMembersPerChannel` + +- Type: `integer` +- Default: `0` + +1 つのチャンネルに参加可能なメンバーの最大数を指定します. + +`0` に設定すると無制限になります. + +#### `maxMembershipPerPlayer` + +- Type: `integer` +- Default: `0` + +1 人のプレイヤーが参加可能なチャンネルの最大数を指定します. + +`0` に設定すると無制限になります. + +#### `messageLogging.enabled` + +- Type: `boolean` +- Default: `true` + +チャンネルチャットのメッセージを NDJSON 形式でログに記録するかどうかを指定します. + +#### `messageLogging.retentionDays` + +- Type: `integer` +- Default: `30` + +チャンネルチャットのログファイルを保存する日数を指定します. + +`0` に設定すると,ログファイルは削除されません. + +#### `messageLogging.maxFileSizeMB` + +- Type: `integer` +- Default: `100` + +チャンネルチャットのログファイルの最大サイズ(メガバイト)を指定します. + +`maxFileSizeMB` を超えたログファイルは新しいエントリを受け付けなくなります. + +### `features.velocityIntegration` + +#### `enabled` + +- Type: `boolean` +- Default: `false` + +Velocity プロキシプラグインとの連携を有効にします. + +#### `crossServerGlobalChat` + +- Type: `boolean` +- Default: `false` + +Velocity プロキシに接続されたすべての Paper サーバー間でチャットメッセージを共有するかどうかを指定します. + +#### `serverName` + +- Type: `string` +- Default: `Unknown` + +Velocity クロスサーバーチャットで表示されるサーバー名を指定します. + +例: `survival`, `creative`, `lobby` + +#### `messageDeduplicationCacheSize` + +- Type: `integer` +- Default: `100` + +メッセージの重複排除キャッシュのサイズを指定します. + +## Message Format Settings + +使用できるプレースホルダー: + +- `{sender}`: メッセージ送信者の名前 +- `{recipient}`: メッセージ受信者の名前 +- `{message}`: メッセージの内容 +- `{channel}`: チャットチャンネルの名前 (チャンネルチャットの場合のみ) + +### `messageFormat.directMessageFormat` + +- Type: `string` +- Default: `§7[§e{sender} §7>> §e{recipient}§7] §f{message}` + +ダイレクトメッセージ( [`/tell`](../player-guide/commands/tell.md) や [`/reply`](../player-guide/commands/reply.md) コマンド)で送信されるメッセージのフォーマットを指定します. + +### `messageFormat.channelMessageFormat` + +- Type: `string` +- Default: `§7[§b#{channel}§7] §e{sender}: §f{message}` + +チャンネルチャットで送信されるメッセージのフォーマットを指定します. diff --git a/docs/src/admin-guide/getting-started.md b/docs/src/admin-guide/getting-started.md new file mode 100644 index 0000000..9254f33 --- /dev/null +++ b/docs/src/admin-guide/getting-started.md @@ -0,0 +1,72 @@ +# はじめる + +## 事前準備 + +LunaticChat を使用するには,以下のソフトウェアが必要です: + +- Java 21 (LTS 以降) +- Paper 1.21 以降 + - または Folia 1.21 以降 + +最新版は [こちら](https://papermc.io/downloads/paper), それ以降のバージョンは [こちら](https://fill-ui.papermc.io/projects/paper/family/1.21) から入手できます. + +::: warning Spigot 系プラットフォームでの動作について + +LunaticChat は Paper プラグインです.Spigot / Bukkit / CraftBukkit では動作しません. + +::: + +## インストール + +LunaticChat をインストールします.LunaticChat は以下から入手できます: + +- [GitHub](https://github.com/m1sk9/LunaticChat/releases) +- [Modrinth](https://modrinth.com/project/lunaticchat) + +ダウンロードしたプラグインファイルをサーバーの `plugins` フォルダに配置し,サーバーを起動します. + +## 設定 + +LunaticChat を起動すると設定ファイル `config.yml` が作成されます. + +該当のファイルを開き,初期設定を変更してください.なお,全設定項目の詳細については,[設定ガイド](./configuration.md)を参照してください. + +### 推奨する初期設定 + +`config.yml` の以下の項目を確認・変更してください: + +- `checkForUpdates`: LunaticChat のアップデートチェックを有効にするかどうかを指定します.`true` に設定することを推奨します. +- `language`: LunaticChat のメッセージ言語を指定します.日本語環境の場合は `ja` に設定してください. + - なお,日本語環境が使用できないサーバー向けにプラグイン内のログは全て英語で出力されます. +- `features.quickReplies.enabled`: クイックリプライ機能を有効にするかどうかを指定します.`true` に設定することを推奨します. +- `features.japaneseConversion.enabled`: ローマ字からひらがなへの変換機能を有効にするかどうかを指定します.日本人向けにサーバーを開放する場合は `true` に設定することを推奨します. + +::: tip その他,設定項目について + +チャンネルチャットなどの各機能に関する設定項目も存在します. + +必要に応じて設定を変更してください. + +::: + +## パーミッション + +LunaticChat のパーミッションを LuckPerms などのパーミッション管理プラグインで設定します. + +基本的なパーミッションは Paper, Folia や Velocity のデフォルトパーミッションシステム ( `OP` / `non OP` ) でも使用できるように開発されていますが,より詳細な制御を行う場合は LuckPerms の使用を推奨します. + +- パーミッションノードの詳細については [パーミッションガイド](./permissions.md)を参照してください. +- コマンドの各機能に対応するパーミッションノードは,[コマンドリファレンス](../player-guide/index.md)を参照してください. + +## サーバーの再起動 + +設定が完了したら,サーバーを再起動して設定を反映させてください. + +以上で LunaticChat の基本的なセットアップは完了です. + +## 次は? + +- [キャッシュシステム](./cache.md): LunaticChat のキャッシュシステムについて説明します. +- [チャンネルチャット](./channel-chat/introduction.md): チャンネルチャット機能の概要を説明します. +- [コマンド一覧](../player-guide/index.md): LunaticChat のコマンド一覧を確認します. +- [パーミッション一覧](./permissions.md): LunaticChat のパーミッションノード一覧を確認します. diff --git a/docs/src/admin-guide/management-data.md b/docs/src/admin-guide/management-data.md new file mode 100644 index 0000000..5527ffa --- /dev/null +++ b/docs/src/admin-guide/management-data.md @@ -0,0 +1,107 @@ +# データ・ログ + +::: danger 編集厳禁 + +これらのデータファイルは LunaticChat の動作に不可欠です.直接編集すると,データの破損や予期せぬ動作を引き起こす可能性があります.データのバックアップを取る場合を除き,これらのファイルを直接編集しないでください. + +::: + +## データの保存場所 + +LunaticChat は、チャンネルデータや設定情報をローカルディスクに保存します. + +- `channels.json`: チャンネル情報を保存するファイルです. +- `chatmodes.json`: プレイヤーのチャットモード設定を保存するファイルです. +- `conversion_cache.json`: チャンネル変換のキャッシュを保存するファイルです. +- `player-settings.yaml`: プレイヤーごとの設定情報を保存するファイルです. + +::: tip 定期的なバックアップ + +LunaticChat のデータの安全性を確保するために,定期的にバックアップを作成することをお勧めします. + +::: + +### `channels.json` + +`channels.json` ファイルは、LunaticChat が管理するチャンネルの情報を保存します.このファイルには,チャンネル名、参加者リスト、チャットモードなどの情報が含まれます. + +```json +{ + "channels": { + "general-channel": { + "id": "general-channel", + "name": "一般チャンネル", + "ownerId": "a01e3843-e521-3998-958a-f459800e4d11", + "createdAt": 1769507213150, + "bannedPlayers": [ + "ceaea267-39dd-3bac-931c-761ada671ebe" + ] + } + }, + "members": { + "general-channel": [ + { + "channelId": "test2", + "playerId": "a01e3843-e521-3998-958a-f459800e4d11", + "role": "OWNER", + "joinedAt": 1769507213150 + } + ] + }, + "activeChannels": { + "a01e3843-e521-3998-958a-f459800e4d11": "test2" + } +} +``` + +### `chatmodes.json` + +`chatmodes.json` ファイルは、プレイヤーのチャットモード設定を保存します.このファイルには,プレイヤーごとのチャットモード情報が含まれます. + +```json +{ + "modes": { + "aed5efd4-551b-3965-bc28-ae21aa072a66": "CHANNEL", + "ceaea267-39dd-3bac-931c-761ada671ebe": "CHANNEL", + "a01e3843-e521-3998-958a-f459800e4d11": "CHANNEL", + "681f539b-8bb8-3f85-85e5-a2945f6c6539": "GLOBAL" + } +} +``` + +### `conversion_cache.json` + +`conversion_cache.json` ファイルは、チャンネル変換のキャッシュを保存します.このファイルには,プレイヤーごとのチャンネル変換情報が含まれます. + +キャッシュシステムに関する詳細は [こちら](./cache.md) をご覧ください. + + +```json +{"version":"1","entries":{"hi":"日"}} +``` + +### `player-settings.yaml` + +`player-settings.yaml` ファイルは、プレイヤーごとの設定情報を保存します.このファイルには,プレイヤーの個別設定が含まれます. + +```yaml +version: 1 +japaneseConversion: + "aed5efd4-551b-3965-bc28-ae21aa072a66": false + "ceaea267-39dd-3bac-931c-761ada671ebe": false +directMessageNotification: + "aed5efd4-551b-3965-bc28-ae21aa072a66": true + "ceaea267-39dd-3bac-931c-761ada671ebe": true +channelMessageNotification: + "ceaea267-39dd-3bac-931c-761ada671ebe": true +``` + +## キャッシュバージョン + +ディスクキャッシュに使用されるファイルには `version` フィールドが含まれており,LunaticChat のバージョンアップに伴うキャッシュフォーマットの変更に対応しています. + +バージョンが不一致の場合,LunaticChat はキャッシュファイルを **古い形式のキャッシュ** として認識し,内容を無視して新しい形式で再作成します. + +```json +{"version":"1","entries":{}} +``` diff --git a/docs/src/admin-guide/permissions.md b/docs/src/admin-guide/permissions.md new file mode 100644 index 0000000..a50d218 --- /dev/null +++ b/docs/src/admin-guide/permissions.md @@ -0,0 +1,179 @@ +# パーミッション + +LuckPerms を使用した設定方法に関する詳細は [LuckPerms Wiki](https://luckperms.net/wiki/Home) を参照してください. + +## `lunaticchat.*` + +### `lunaticchat.spy` + +- Default: `OP` + +各種プレイヤー間のやり取りを可視化します. + +この権限を持つプレイヤーは他プレイヤーの [`/tell`](../player-guide/commands/tell.md) / [`/reply`](../player-guide/commands/reply.md) でのメッセージ・全チャンネルチャットがブロードキャストされます. + +### `lunaticchat.noticeUpdate` + +- Default: `OP` + +LunaticChat のアップデート通知を受け取ります. + +[受け取るには `checkForUpdates` を有効にしておく](./configuration.md#checkforupdates) 必要があります. + +### `lunaticchat.channelbypass` + +- Default: `OP` + +各チャンネルのモデレート機能やプライベートチャンネルに対する制限を無視します. + +## `lunaticchat.command.*` + +### `lunaticchat.command.tell` + +- Default: `non OP` + +[`/tell`](../player-guide/commands/tell.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.reply` + +- Default: `non OP` + +[`/reply`](../player-guide/commands/reply.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc` + +- Default: `non OP` + +`/lc` コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.settings` + +- Default: `non OP` + +[`/lc settings`](../player-guide/commands/lc/settings.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.status` + +- Default: `non OP` + +[`/lc status`](../player-guide/commands/lc/status.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel` + +- Default: `non OP` + +[`/lc channel`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.create` + +- Default: `non OP` + +[`/lc channel create`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.list` + +- Default: `non OP` + +[`/lc channel list`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.join` + +- Default: `non OP` + +[`/lc channel join`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.leave` + +- Default: `non OP` + +[`/lc channel leave`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.switch` + +- Default: `non OP` + +[`/lc channel switch`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.status` + +- Default: `non OP` + +[`/lc channel status`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.info` + +- Default: `non OP` + +[`/lc channel info`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.delete` + +- Default: `non OP` + +[`/lc channel delete`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.invite` + +- Default: `non OP` + +[`/lc channel invite`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.kick` + +- Default: `non OP` + +[`/lc channel kick`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.ban` + +- Default: `non OP` + +[`/lc channel ban`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.unban` + +- Default: `non OP` + +[`/lc channel unban`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.mod` + +- Default: `non OP` + +[`/lc channel mod`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.channel.ownership` + +- Default: `non OP` + +[`/lc channel ownership`](../player-guide/commands/lc/channel.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.chatmode` + +- Default: `non OP` + +[`/lc chatmode`](../player-guide/commands/lc/chatmode.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lc.chatmode.toggle` + +- Default: `non OP` + +[`/lc chatmode toggle`](../player-guide/commands/lc/chatmode.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.lcv.status` + +- Default: `OP` + +[`/lcv status`](../player-guide/commands/lcv/status.md) コマンドの使用を切り替えます. + +### `lunaticchat.command.jp` <Badge type="danger" text="非推奨: v1.0.0 で削除予定" /> + +- Default: `non OP` + +`/jp` コマンドの使用を切り替えます. + +### `lunaticchat.command.notice` <Badge type="danger" text="非推奨: v1.0.0 で削除予定" /> + +- Default: `non OP` + +`/notice` コマンドの使用を切り替えます. diff --git a/docs/src/admin-guide/velocity.md b/docs/src/admin-guide/velocity.md new file mode 100644 index 0000000..862b529 --- /dev/null +++ b/docs/src/admin-guide/velocity.md @@ -0,0 +1,87 @@ +# Velocity 連携 (クロスサーバーチャット) <Badge type="tip" text="v0.8.0" /> + +Velocity を使用して,プロキシサーバーを繋いだ Paper サーバー間のクロスサーバーチャットを行う機能です. + +::: warning 試験的機能 + +この機能は現在試験的な機能として提供されています.今後のアップデートで仕様が変更される可能性があります. + +::: + +::: warning Folia との互換性 + +Velocity 連携機能は Folia とは互換性がありません. + +Folia を使用している場合は Velocity 連携機能を使用できません. + +::: + +## 連携機能を有効化する + +Velocity 連携を有効化するには以下の手順を行います: + +1. Velocity 側に Velocity 版 LunaticChat をインストールします. +2. 各 Paper サーバの `plugins/LunaticChat/config.yml` を開き, `velocity.enabled` を `true` に設定します. +3. Velocity, Paper を起動し,連携完了のメッセージが表示されることを確認します. + +## プラグインバージョンとプロトコルバージョン + +Velocity と Paper の LunaticChat が正しく連携するには,両方のプラグインバージョン・プロトコルバージョンが互換性のあるものである必要があります. + +- Velocity 側と Paper 側の LunaticChat のバージョンが同じであることを確認してください. + - ベータ版や開発版を使用している場合,互換性が保証されないことがあります. +- プロトコルバージョンが一致していることを確認してください. + +::: danger v0.7.0 未満の LunaticChat について + +v0.7.0 未満の LunaticChat は Velocity 版との後方互換性はありません. + +併用することもできないため,v0.7.0 未満の LunaticChat を使用している場合は,Velocity 連携機能を使用しないでください. + +::: + +## 連携状況の確認方法 + +Velocity 連携が正常に動作しているか確認するには,`/lcv status` コマンドを使用します. + +現在のプロトコルバージョンと接続状態が表示されます. + +::: warning バージョン不一致時の動作 + +バージョンやプロトコルバージョンが一致しない場合,Velocity 連携機能は無効化されますが,**プラグイン自体は動作を継続します**. + +`/lcv status` コマンドで接続状態とエラー内容を確認できます.再接続するには Velocity 側と Paper 側の LunaticChat のバージョン / プロトコルバージョンを一致させてください. + +::: + +::: tip Velocity との連携タイミングについて + +LunaticChat が Velocity と連携するタイミングは,起動後 **最初のプレイヤーがサーバーに接続したとき** に行われます. + +そのため,サーバー起動直後に `/lcv status` コマンドを実行しても,まだ Velocity との連携が確立されていない場合があります. + +::: + +## トラブルシューティング + +Velocity 連携に関する問題が発生した場合,以下の点を確認してください: + +- **`/lcv status` コマンドを実行して接続状態を確認してください**.バージョン不一致などのエラーがある場合は,エラーメッセージが表示されます. +- Velocity 側と Paper 側の LunaticChat のバージョン / プロトコルバージョンが同じであることを確認してください. +- LunaticChat の設定が正しいことを確認してください. +- Velocity サーバーと Paper サーバー間のネットワーク接続が正常であることを確認してください. +- LunaticChat のログを確認し,エラーメッセージや警告メッセージがないか確認してください. + +## クロスサーバーチャット + +Velocity 連携が有効化されている場合,プロキシサーバーを介して接続されている全てのサーバー間でチャットメッセージが共有されます. + +## Velocity 連携と互換性のある機能 + +Velocity 連携中に利用可能な主な機能は以下の通りです: + +| | 互換性の有無 | 挙動 | 備考 | +|------------|--------|-----------------------------------|-----------------------------------| +| ダイレクトメッセージ | × | `/tell`, `/reply` コマンドはサーバー内限定で動作 | ダイレクトメッセージは Velocity 連携に対応していません. | +| チャンネルチャット | × | チャンネルチャットはサーバー内限定で動作 | チャンネルチャットは Velocity 連携に対応していません. | +| かな・ローマ字変換 | ◯ | かな・ローマ字変換は全サーバーで動作 | | |
