From f4b57c95a1622cb009eec25e64da79b139e3dcf1 Mon Sep 17 00:00:00 2001 From: Sho Sakuma Date: Mon, 23 Feb 2026 18:46:56 +0900 Subject: docs: Update guide --- docs/.vitepress/config/en.ts | 136 ++++----- docs/.vitepress/config/ja.ts | 140 ++++----- docs/src/admin-guide/cache.md | 31 ++ docs/src/admin-guide/channel-chat/introduction.md | 74 +++++ docs/src/admin-guide/channel-chat/logs.md | 119 ++++++++ docs/src/admin-guide/configuration.md | 318 ++++++++++++++++++++ docs/src/admin-guide/getting-started.md | 72 +++++ docs/src/admin-guide/management-data.md | 107 +++++++ docs/src/admin-guide/permissions.md | 179 +++++++++++ docs/src/admin-guide/velocity.md | 87 ++++++ docs/src/en/admin-guide/cache.md | 41 +++ .../en/admin-guide/channel-chat/introduction.md | 74 +++++ docs/src/en/admin-guide/channel-chat/logs.md | 119 ++++++++ docs/src/en/admin-guide/configuration.md | 326 +++++++++++++++++++++ docs/src/en/admin-guide/getting-started.md | 42 +++ docs/src/en/admin-guide/management-data.md | 107 +++++++ docs/src/en/admin-guide/permissions.md | 179 +++++++++++ docs/src/en/admin-guide/velocity.md | 78 +++++ docs/src/en/guide/about.md | 60 ---- docs/src/en/guide/admin/cache.md | 41 --- .../en/guide/admin/channel-chat/introduction.md | 74 ----- docs/src/en/guide/admin/channel-chat/logs.md | 119 -------- docs/src/en/guide/admin/configuration.md | 326 --------------------- docs/src/en/guide/admin/management-data.md | 107 ------- docs/src/en/guide/admin/velocity.md | 78 ----- docs/src/en/guide/getting-started.md | 42 --- docs/src/en/guide/player/channel-chat.md | 13 - docs/src/en/guide/player/channel-chat/about.md | 112 ------- docs/src/en/guide/player/channel-chat/chatmode.md | 30 -- .../src/en/guide/player/channel-chat/moderation.md | 95 ------ .../guide/player/channel-chat/private-channel.md | 25 -- docs/src/en/guide/player/direct-message.md | 65 ---- docs/src/en/guide/player/japanese-romanization.md | 101 ------- docs/src/en/index.md | 15 +- docs/src/en/player-guide/about.md | 60 ++++ docs/src/en/player-guide/channel-chat/about.md | 112 +++++++ docs/src/en/player-guide/channel-chat/chatmode.md | 30 ++ .../src/en/player-guide/channel-chat/moderation.md | 95 ++++++ .../player-guide/channel-chat/private-channel.md | 25 ++ docs/src/en/player-guide/commands/jp.md | 17 ++ docs/src/en/player-guide/commands/lc/channel.md | 77 +++++ docs/src/en/player-guide/commands/lc/chatmode.md | 17 ++ docs/src/en/player-guide/commands/lc/settings.md | 19 ++ docs/src/en/player-guide/commands/lc/status.md | 9 + docs/src/en/player-guide/commands/lcv/status.md | 9 + docs/src/en/player-guide/commands/notice.md | 17 ++ docs/src/en/player-guide/commands/reply.md | 17 ++ docs/src/en/player-guide/commands/tell.md | 11 + docs/src/en/player-guide/direct-message.md | 65 ++++ docs/src/en/player-guide/getting-started.md | 77 +++++ docs/src/en/player-guide/index.md | 23 ++ docs/src/en/player-guide/japanese-romanization.md | 101 +++++++ docs/src/en/reference/commands/jp.md | 17 -- docs/src/en/reference/commands/lc/channel.md | 77 ----- docs/src/en/reference/commands/lc/chatmode.md | 17 -- docs/src/en/reference/commands/lc/settings.md | 19 -- docs/src/en/reference/commands/lc/status.md | 9 - docs/src/en/reference/commands/lcv/status.md | 9 - docs/src/en/reference/commands/notice.md | 17 -- docs/src/en/reference/commands/reply.md | 17 -- docs/src/en/reference/commands/tell.md | 11 - docs/src/en/reference/index.md | 23 -- docs/src/en/reference/permissions.md | 179 ----------- docs/src/guide/about.md | 61 ---- docs/src/guide/admin/cache.md | 31 -- docs/src/guide/admin/channel-chat/introduction.md | 74 ----- docs/src/guide/admin/channel-chat/logs.md | 119 -------- docs/src/guide/admin/configuration.md | 318 -------------------- docs/src/guide/admin/management-data.md | 107 ------- docs/src/guide/admin/velocity.md | 87 ------ docs/src/guide/getting-started.md | 72 ----- docs/src/guide/player/channel-chat/about.md | 108 ------- docs/src/guide/player/channel-chat/chatmode.md | 30 -- docs/src/guide/player/channel-chat/moderation.md | 95 ------ .../guide/player/channel-chat/private-channel.md | 25 -- docs/src/guide/player/direct-message.md | 65 ---- docs/src/guide/player/japanese-romanization.md | 101 ------- docs/src/index.md | 13 +- docs/src/player-guide/about.md | 61 ++++ docs/src/player-guide/channel-chat/about.md | 108 +++++++ docs/src/player-guide/channel-chat/chatmode.md | 30 ++ docs/src/player-guide/channel-chat/moderation.md | 95 ++++++ .../player-guide/channel-chat/private-channel.md | 25 ++ docs/src/player-guide/commands/lc/channel.md | 141 +++++++++ docs/src/player-guide/commands/lc/chatmode.md | 17 ++ docs/src/player-guide/commands/lc/settings.md | 19 ++ docs/src/player-guide/commands/lc/status.md | 9 + docs/src/player-guide/commands/lcv/status.md | 9 + docs/src/player-guide/commands/reply.md | 17 ++ docs/src/player-guide/commands/tell.md | 11 + docs/src/player-guide/direct-message.md | 65 ++++ docs/src/player-guide/getting-started.md | 77 +++++ docs/src/player-guide/index.md | 24 ++ docs/src/player-guide/japanese-romanization.md | 101 +++++++ docs/src/reference/commands/lc/channel.md | 141 --------- docs/src/reference/commands/lc/chatmode.md | 17 -- docs/src/reference/commands/lc/settings.md | 19 -- docs/src/reference/commands/lc/status.md | 9 - docs/src/reference/commands/lcv/status.md | 9 - docs/src/reference/commands/reply.md | 17 -- docs/src/reference/commands/tell.md | 11 - docs/src/reference/index.md | 24 -- docs/src/reference/permissions.md | 179 ----------- 103 files changed, 3682 insertions(+), 3567 deletions(-) create mode 100644 docs/src/admin-guide/cache.md create mode 100644 docs/src/admin-guide/channel-chat/introduction.md create mode 100644 docs/src/admin-guide/channel-chat/logs.md create mode 100644 docs/src/admin-guide/configuration.md create mode 100644 docs/src/admin-guide/getting-started.md create mode 100644 docs/src/admin-guide/management-data.md create mode 100644 docs/src/admin-guide/permissions.md create mode 100644 docs/src/admin-guide/velocity.md create mode 100644 docs/src/en/admin-guide/cache.md create mode 100644 docs/src/en/admin-guide/channel-chat/introduction.md create mode 100644 docs/src/en/admin-guide/channel-chat/logs.md create mode 100644 docs/src/en/admin-guide/configuration.md create mode 100644 docs/src/en/admin-guide/getting-started.md create mode 100644 docs/src/en/admin-guide/management-data.md create mode 100644 docs/src/en/admin-guide/permissions.md create mode 100644 docs/src/en/admin-guide/velocity.md delete mode 100644 docs/src/en/guide/about.md delete mode 100644 docs/src/en/guide/admin/cache.md delete mode 100644 docs/src/en/guide/admin/channel-chat/introduction.md delete mode 100644 docs/src/en/guide/admin/channel-chat/logs.md delete mode 100644 docs/src/en/guide/admin/configuration.md delete mode 100644 docs/src/en/guide/admin/management-data.md delete mode 100644 docs/src/en/guide/admin/velocity.md delete mode 100644 docs/src/en/guide/getting-started.md delete mode 100644 docs/src/en/guide/player/channel-chat.md delete mode 100644 docs/src/en/guide/player/channel-chat/about.md delete mode 100644 docs/src/en/guide/player/channel-chat/chatmode.md delete mode 100644 docs/src/en/guide/player/channel-chat/moderation.md delete mode 100644 docs/src/en/guide/player/channel-chat/private-channel.md delete mode 100644 docs/src/en/guide/player/direct-message.md delete mode 100644 docs/src/en/guide/player/japanese-romanization.md create mode 100644 docs/src/en/player-guide/about.md create mode 100644 docs/src/en/player-guide/channel-chat/about.md create mode 100644 docs/src/en/player-guide/channel-chat/chatmode.md create mode 100644 docs/src/en/player-guide/channel-chat/moderation.md create mode 100644 docs/src/en/player-guide/channel-chat/private-channel.md create mode 100644 docs/src/en/player-guide/commands/jp.md create mode 100644 docs/src/en/player-guide/commands/lc/channel.md create mode 100644 docs/src/en/player-guide/commands/lc/chatmode.md create mode 100644 docs/src/en/player-guide/commands/lc/settings.md create mode 100644 docs/src/en/player-guide/commands/lc/status.md create mode 100644 docs/src/en/player-guide/commands/lcv/status.md create mode 100644 docs/src/en/player-guide/commands/notice.md create mode 100644 docs/src/en/player-guide/commands/reply.md create mode 100644 docs/src/en/player-guide/commands/tell.md create mode 100644 docs/src/en/player-guide/direct-message.md create mode 100644 docs/src/en/player-guide/getting-started.md create mode 100644 docs/src/en/player-guide/index.md create mode 100644 docs/src/en/player-guide/japanese-romanization.md delete mode 100644 docs/src/en/reference/commands/jp.md delete mode 100644 docs/src/en/reference/commands/lc/channel.md delete mode 100644 docs/src/en/reference/commands/lc/chatmode.md delete mode 100644 docs/src/en/reference/commands/lc/settings.md delete mode 100644 docs/src/en/reference/commands/lc/status.md delete mode 100644 docs/src/en/reference/commands/lcv/status.md delete mode 100644 docs/src/en/reference/commands/notice.md delete mode 100644 docs/src/en/reference/commands/reply.md delete mode 100644 docs/src/en/reference/commands/tell.md delete mode 100644 docs/src/en/reference/index.md delete mode 100644 docs/src/en/reference/permissions.md delete mode 100644 docs/src/guide/about.md delete mode 100644 docs/src/guide/admin/cache.md delete mode 100644 docs/src/guide/admin/channel-chat/introduction.md delete mode 100644 docs/src/guide/admin/channel-chat/logs.md delete mode 100644 docs/src/guide/admin/configuration.md delete mode 100644 docs/src/guide/admin/management-data.md delete mode 100644 docs/src/guide/admin/velocity.md delete mode 100644 docs/src/guide/getting-started.md delete mode 100644 docs/src/guide/player/channel-chat/about.md delete mode 100644 docs/src/guide/player/channel-chat/chatmode.md delete mode 100644 docs/src/guide/player/channel-chat/moderation.md delete mode 100644 docs/src/guide/player/channel-chat/private-channel.md delete mode 100644 docs/src/guide/player/direct-message.md delete mode 100644 docs/src/guide/player/japanese-romanization.md create mode 100644 docs/src/player-guide/about.md create mode 100644 docs/src/player-guide/channel-chat/about.md create mode 100644 docs/src/player-guide/channel-chat/chatmode.md create mode 100644 docs/src/player-guide/channel-chat/moderation.md create mode 100644 docs/src/player-guide/channel-chat/private-channel.md create mode 100644 docs/src/player-guide/commands/lc/channel.md create mode 100644 docs/src/player-guide/commands/lc/chatmode.md create mode 100644 docs/src/player-guide/commands/lc/settings.md create mode 100644 docs/src/player-guide/commands/lc/status.md create mode 100644 docs/src/player-guide/commands/lcv/status.md create mode 100644 docs/src/player-guide/commands/reply.md create mode 100644 docs/src/player-guide/commands/tell.md create mode 100644 docs/src/player-guide/direct-message.md create mode 100644 docs/src/player-guide/getting-started.md create mode 100644 docs/src/player-guide/index.md create mode 100644 docs/src/player-guide/japanese-romanization.md delete mode 100644 docs/src/reference/commands/lc/channel.md delete mode 100644 docs/src/reference/commands/lc/chatmode.md delete mode 100644 docs/src/reference/commands/lc/settings.md delete mode 100644 docs/src/reference/commands/lc/status.md delete mode 100644 docs/src/reference/commands/lcv/status.md delete mode 100644 docs/src/reference/commands/reply.md delete mode 100644 docs/src/reference/commands/tell.md delete mode 100644 docs/src/reference/index.md delete mode 100644 docs/src/reference/permissions.md (limited to 'docs') diff --git a/docs/.vitepress/config/en.ts b/docs/.vitepress/config/en.ts index 1669fbb..7554933 100644 --- a/docs/.vitepress/config/en.ts +++ b/docs/.vitepress/config/en.ts @@ -2,127 +2,82 @@ import type { DefaultTheme } from 'vitepress'; export const en: DefaultTheme.Config = { nav: [ - { text: 'Guide', link: '/en/guide/getting-started' }, - { text: 'Reference', link: '/en/reference' }, + { text: 'Player Guide', link: '/en/player-guide/getting-started' }, + { text: 'Admin Guide', link: '/en/admin-guide/getting-started' }, ], sidebar: { - '/en/guide/': [ + '/en/player-guide/': [ { text: 'Getting Started', - link: '/en/guide/getting-started', + link: '/en/player-guide/getting-started', }, { text: 'About LunaticChat', - link: '/en/guide/about', + link: '/en/player-guide/about', }, { - text: 'For Server Administrators', + text: 'Channel Chat', + link: '/en/player-guide/channel-chat/about', items: [ { - text: 'Channel Chat', - items: [ - { - text: 'Deployment Guide', - link: '/en/guide/admin/channel-chat/introduction', - }, - { - text: 'Logs', - link: '/en/guide/admin/channel-chat/logs', - }, - ], + text: 'Chat Mode', + link: '/en/player-guide/channel-chat/chatmode', }, { - text: 'Cache System', - link: '/en/guide/admin/cache', + text: 'Private Channel', + link: '/en/player-guide/channel-chat/private-channel', }, { - text: 'Configuration', - link: '/en/guide/admin/configuration', - }, - { - text: 'Velocity Integration', - link: '/en/guide/admin/velocity', - }, - { - text: 'Data Management', - link: '/en/guide/admin/management-data', + text: 'Moderation', + link: '/en/player-guide/channel-chat/moderation', }, ], }, { - text: 'For Players', - items: [ - { - text: 'Channel Chat', - link: '/en/guide/player/channel-chat/about', - items: [ - { - text: 'Chat Mode', - link: '/en/guide/player/channel-chat/chatmode', - }, - { - text: 'Private Channel', - link: '/en/guide/player/channel-chat/private-channel', - }, - { - text: 'Moderation', - link: '/en/guide/player/channel-chat/moderation', - }, - ], - }, - { - text: 'Direct Messages', - link: '/en/guide/player/direct-message', - }, - { - text: 'Romanization Conversion', - link: '/en/guide/player/japanese-romanization', - }, - ], + text: 'Direct Messages', + link: '/en/player-guide/direct-message', }, - ], - '/en/reference/': [ { - text: 'Permissions', - link: '/en/reference/permissions', + text: 'Romanization Conversion', + link: '/en/player-guide/japanese-romanization', }, { text: 'Commands', items: [ { text: '/tell', - link: '/en/reference/commands/tell', + link: '/en/player-guide/commands/tell', }, { text: '/reply', - link: '/en/reference/commands/reply', + link: '/en/player-guide/commands/reply', }, { text: '/jp', - link: '/en/reference/commands/jp', + link: '/en/player-guide/commands/jp', }, { text: '/notice', - link: '/en/reference/commands/notice', + link: '/en/player-guide/commands/notice', }, { text: '/lc', items: [ { text: '/lc settings', - link: '/en/reference/commands/lc/settings', + link: '/en/player-guide/commands/lc/settings', }, { text: '/lc status', - link: '/en/reference/commands/lc/status', + link: '/en/player-guide/commands/lc/status', }, { text: '/lc channel', - link: '/en/reference/commands/lc/channel', + link: '/en/player-guide/commands/lc/channel', }, { text: '/lc chatmode', - link: '/en/reference/commands/lc/chatmode', + link: '/en/player-guide/commands/lc/chatmode', }, ], }, @@ -131,13 +86,52 @@ export const en: DefaultTheme.Config = { items: [ { text: '/lcv status', - link: '/en/reference/commands/lcv/status', + link: '/en/player-guide/commands/lcv/status', }, ], }, ], }, ], + '/en/admin-guide/': [ + { + text: 'Getting Started', + link: '/en/admin-guide/getting-started', + }, + { + text: 'Configuration', + link: '/en/admin-guide/configuration', + }, + { + text: 'Permissions', + link: '/en/admin-guide/permissions', + }, + { + text: 'Channel Chat', + items: [ + { + text: 'Deployment Guide', + link: '/en/admin-guide/channel-chat/introduction', + }, + { + text: 'Logs', + link: '/en/admin-guide/channel-chat/logs', + }, + ], + }, + { + text: 'Velocity Integration', + link: '/en/admin-guide/velocity', + }, + { + text: 'Cache System', + link: '/en/admin-guide/cache', + }, + { + text: 'Data Management', + link: '/en/admin-guide/management-data', + }, + ], }, editLink: { pattern: 'https://github.com/m1sk9/LunaticChat/edit/main/docs/src/:path', diff --git a/docs/.vitepress/config/ja.ts b/docs/.vitepress/config/ja.ts index 0e3e467..39e0518 100644 --- a/docs/.vitepress/config/ja.ts +++ b/docs/.vitepress/config/ja.ts @@ -2,127 +2,74 @@ import type { DefaultTheme } from 'vitepress'; export const ja: DefaultTheme.Config = { nav: [ - { text: 'ガイド', link: '/guide/getting-started' }, - { text: 'リファレンス', link: '/reference' }, + { text: 'プレイヤーガイド', link: '/player-guide/getting-started' }, + { text: '管理者ガイド', link: '/admin-guide/getting-started' }, ], sidebar: { - '/guide/': [ + '/player-guide/': [ { text: 'はじめる', - link: '/guide/getting-started', + link: '/player-guide/getting-started', }, { text: 'LunaticChat について', - link: '/guide/about', + link: '/player-guide/about', }, { - text: 'サーバー管理者向け', + text: 'チャンネルチャット', + link: '/player-guide/channel-chat/about', items: [ { - text: 'チャンネルチャット', - items: [ - { - text: '展開ガイド', - link: '/guide/admin/channel-chat/introduction', - }, - { - text: 'ログ', - link: '/guide/admin/channel-chat/logs', - }, - ], - }, - { - text: 'キャッシュシステム', - link: '/guide/admin/cache', - }, - { - text: '設定', - link: '/guide/admin/configuration', + text: 'チャットモード', + link: '/player-guide/channel-chat/chatmode', }, { - text: 'Velocity 連携', - link: '/guide/admin/velocity', + text: 'プライベートチャンネル', + link: '/player-guide/channel-chat/private-channel', }, { - text: 'データの管理', - link: '/guide/admin/management-data', + text: 'モデレーション', + link: '/player-guide/channel-chat/moderation', }, ], }, { - text: 'プレイヤー向け', - items: [ - { - text: 'チャンネルチャット', - link: '/guide/player/channel-chat/about', - items: [ - { - text: 'チャットモード', - link: '/guide/player/channel-chat/chatmode', - }, - { - text: 'プライベートチャンネル', - link: '/guide/player/channel-chat/private-channel', - }, - { - text: 'モデレーション', - link: '/guide/player/channel-chat/moderation', - }, - ], - }, - { - text: 'ダイレクトメッセージ', - link: '/guide/player/direct-message', - }, - { - text: 'ローマ字変換', - link: '/guide/player/japanese-romanization', - }, - ], + text: 'ダイレクトメッセージ', + link: '/player-guide/direct-message', }, - ], - '/reference/': [ { - text: 'パーミッション', - link: '/reference/permissions', + text: 'ローマ字変換', + link: '/player-guide/japanese-romanization', }, { text: 'コマンド', items: [ { text: '/tell', - link: '/reference/commands/tell', + link: '/player-guide/commands/tell', }, { text: '/reply', - link: '/reference/commands/reply', - }, - { - text: '/jp', - link: '/reference/commands/jp', - }, - { - text: '/notice', - link: '/reference/commands/notice', + link: '/player-guide/commands/reply', }, { text: '/lc', items: [ { text: '/lc settings', - link: '/reference/commands/lc/settings', + link: '/player-guide/commands/lc/settings', }, { text: '/lc status', - link: '/reference/commands/lc/status', + link: '/player-guide/commands/lc/status', }, { text: '/lc channel', - link: '/reference/commands/lc/channel', + link: '/player-guide/commands/lc/channel', }, { text: '/lc chatmode', - link: '/reference/commands/lc/chatmode', + link: '/player-guide/commands/lc/chatmode', }, ], }, @@ -131,13 +78,52 @@ export const ja: DefaultTheme.Config = { items: [ { text: '/lcv status', - link: '/reference/commands/lcv/status', + link: '/player-guide/commands/lcv/status', }, ], }, ], }, ], + '/admin-guide/': [ + { + text: 'はじめる', + link: '/admin-guide/getting-started', + }, + { + text: '設定', + link: '/admin-guide/configuration', + }, + { + text: 'パーミッション', + link: '/admin-guide/permissions', + }, + { + text: 'チャンネルチャット', + items: [ + { + text: '展開ガイド', + link: '/admin-guide/channel-chat/introduction', + }, + { + text: 'ログ', + link: '/admin-guide/channel-chat/logs', + }, + ], + }, + { + text: 'Velocity 連携', + link: '/admin-guide/velocity', + }, + { + text: 'キャッシュシステム', + link: '/admin-guide/cache', + }, + { + text: 'データの管理', + link: '/admin-guide/management-data', + }, + ], }, editLink: { pattern: 'https://github.com/m1sk9/LunaticChat/edit/main/docs/src/:path', 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 @@ +# チャンネルチャット: ログ + +チャンネルチャットのログは,チャット内で行われたすべてのメッセージとアクティビティの記録です. + +::: 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` + +- Default: `non OP` + +`/jp` コマンドの使用を切り替えます. + +### `lunaticchat.command.notice` + +- 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 連携 (クロスサーバーチャット) + +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 連携に対応していません. | +| かな・ローマ字変換 | ◯ | かな・ローマ字変換は全サーバーで動作 | | diff --git a/docs/src/en/admin-guide/cache.md b/docs/src/en/admin-guide/cache.md new file mode 100644 index 0000000..1148973 --- /dev/null +++ b/docs/src/en/admin-guide/cache.md @@ -0,0 +1,41 @@ +# Cache System + +LunaticChat includes a system that automatically caches phrases from Japanese romanization conversion to both memory and disk. + +For information on Japanese romanization conversion, see [here](../player-guide/japanese-romanization.md). + +## Memory Cache + +LunaticChat caches converted phrases in memory, allowing for fast responses when the same phrase is requested again. + +This cache is temporary and is saved to disk cache at server restart or at configured intervals. + +## Disk Cache + +LunaticChat periodically saves the contents of the memory cache to disk. This allows the cache contents to be retained even after server restarts. + +The file used for disk cache can be [changed in the configuration](configuration.md#cachefilepath). + +## Cache Release + +Memory cache is automatically released by the JVM's garbage collection after being cached to disk. + +Disk cache can be released by manually deleting the file. LunaticChat will recreate the cache file on restart. + +::: warning About Purge Functionality + +LunaticChat does not implement a cache purge feature. + +This is because allowing players to manipulate the host's file system is not desirable from a security perspective. + +::: + +## Cache Version + +The file used for disk cache includes a `version` field, which handles changes to the cache format due to LunaticChat version updates. + +If the version does not match, LunaticChat recognizes the cache file as **an old format cache**, ignores its contents, and recreates it in the new format. + +```json +{"version":"1","entries":{}} +``` diff --git a/docs/src/en/admin-guide/channel-chat/introduction.md b/docs/src/en/admin-guide/channel-chat/introduction.md new file mode 100644 index 0000000..c87be1b --- /dev/null +++ b/docs/src/en/admin-guide/channel-chat/introduction.md @@ -0,0 +1,74 @@ +# Channel Chat: Deployment Guide + +This guide explains how to deploy channel chat. + +## What is Channel Chat + +Channel chat is a feature that allows players to create channels and share chat among specific players. + +For detailed features, please refer to the [Player Guide](../../player-guide/channel-chat/about.md). + +## Preparing to Deploy Channel Chat + +To deploy channel chat, you need to enable the channel chat feature in the LunaticChat configuration file `config.yml`. + +1. Stop the server. +2. Open `plugins/LunaticChat/config.yml`. +3. Set `features.channelChat.enabled` to `true`. +4. Restart the server. + +This will enable the channel chat feature and allow players to use channel chat. + +## Channel Chat Configuration + +The configuration items related to channel chat are as follows: + +- `features.channelChat.maxChannelsPerPlayer`: Specifies the maximum number of channels a single player can create. +- `features.channelChat.maxMembersPerChannel`: Specifies the maximum number of members that can join a single channel. +- `features.channelChat.maxMembershipPerPlayer`: Specifies the maximum number of channels a single player can join. + +The default is set to `0`, which means there is no limit. + +::: tip Recommended Settings + +If you want to actively use the channel chat feature, we recommend setting these values higher. + +However, as this may impact server performance, please set them appropriately according to your server's resource situation. + +Recommended settings are as follows: + +- `features.channelChat.maxChannelsPerPlayer`: `3` to `5` +- `features.channelChat.maxMembersPerChannel`: `20` to `50` +- `features.channelChat.maxMembershipPerPlayer`: `5` to `10` + +::: + +## Channel Chat Logging + +::: warning Compatibility with Plugins like CoreProtect + +As of v0.7.0, LunaticChat's channel chat feature is not compatible with logging plugins like CoreProtect. + +::: + +Channel chat logging is enabled by default. + +For more details, see [Channel Chat: Logs](logs.md). + +## Channel Management + +Basically, [players manage channels themselves](../../player-guide/channel-chat/moderation.md). + +However, as a server administrator, please note the following: + +- Server administrators have owner permissions for all channels. If operations are required, please respond appropriately. +- To maintain server performance, set limits on the number of channels and members as needed. +- If inappropriate channels or member behavior occurs, take appropriate action. + +If you want to avoid troubles related to channel management, consider restricting moderate commands such as `/lc channel ban`. + +## Plugins that Intercept Channel Chat + +Logging plugins like CoreProtect do not intercept LunaticChat's channel chat messages by default. + +However, plugins that use Paper API's `originalMessage()` to retrieve messages may intercept LunaticChat's channel chat messages. diff --git a/docs/src/en/admin-guide/channel-chat/logs.md b/docs/src/en/admin-guide/channel-chat/logs.md new file mode 100644 index 0000000..b65750b --- /dev/null +++ b/docs/src/en/admin-guide/channel-chat/logs.md @@ -0,0 +1,119 @@ +# Channel Chat: Logs + +Channel chat logs are a record of all messages and activities that occur within the chat. + +::: warning Compatibility with Plugins like CoreProtect + +As of v0.7.0, LunaticChat's channel chat feature is not compatible with logging plugins like CoreProtect. + +::: + +## Checking Channel Chat Logs + +Channel chat logs are stored in the `plugins/LunaticChat/logs/channelchat/` directory. + +Channel chat log files are saved in the following format: + +``` +{"timestamp":"2026-01-31T08:54:18.504343071Z","playerId":"ceaea267-39dd-3bac-931c-761ada671ebe","playerName":"m1sk9","channelId":"test","message":"Hello"} +``` + +## About File Size + +Each line is a complete JSON object, separated by line breaks, and the file as a whole is not a JSON array. + +```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) <- Weekend, active +├── 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) <- Today (in progress) +``` + +Total: approximately 83 MB + +With a 30-day retention setting, the January 17 file will be automatically deleted tomorrow. + +### Size per Message + +Channel chat log entries are approximately 200 bytes per line. + +Assuming 1000 messages per hour: + +```text +1000 msg/h × 24h × 220 bytes = 5,280,000 bytes ≈ 5.3 MB/day +``` + +With the default 30-day retention setting, this amounts to approximately **159 MB**. + +```text +5.3 MB × 30 days = 159 MB +``` + +## Visualization with Grafana Loki + +Due to the JSON format, using Promtail to ingest channel chat logs into Grafana Loki will parse them for easier reading. + +```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 Filtering Examples + +Examples of querying logs in Grafana Loki: + +```text +{job="lunatichat"} |= "new features" +{job="lunatichat", channel="Global"} +{job="lunatichat", player="Steve"} +``` + +::: + +## Command Line Checking Examples + +### View the latest 10 entries + +```bash +tail -n 10 plugins/LunaticChat/logs/channel-messages-2026-01-31.json | jq +``` + +### Extract messages from a specific player + +```bash +cat plugins/LunaticChat/logs/channel-messages-*.json | \ +jq 'select(.playerName=="Steve")' +``` + +### Count messages from a specific channel + +```bash +cat plugins/LunaticChat/logs/channel-messages-*.json | \ +jq 'select(.channelId=="global")' | wc -l +``` + +### Message count by date + +```bash +for file in plugins/LunaticChat/logs/channel-messages-*.json; do +echo "$file: $(wc -l < $file) messages" +done +``` diff --git a/docs/src/en/admin-guide/configuration.md b/docs/src/en/admin-guide/configuration.md new file mode 100644 index 0000000..9d77d46 --- /dev/null +++ b/docs/src/en/admin-guide/configuration.md @@ -0,0 +1,326 @@ +# Configuration + +```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` + +Starts LunaticChat in debug mode. + +### `userSettingsFilePath` + +- Type: `string` +- Default: `player-settings.yaml` + +Specifies the path to the YAML file where LunaticChat saves player settings. + +### `checkForUpdates` + +- Type: `boolean` +- Default: `true` + +Configures whether to prompt for LunaticChat updates at startup and when players with the required permissions join the server. + +### `language` + +- Type: `string` +- Default: `en` + +Specifies the language for LunaticChat's player-facing messages. + +### Supported languages: + +- `en`: English +- `ja`: Japanese (日本語) + +## Features Settings + +### `features.quickReplies.enabled` + +- Type: `boolean` +- Default: `true` + +Enables the quick reply feature via the [`/reply`](../player-guide/commands/reply.md) command in LunaticChat. + +When disabled, the [`/reply`](../player-guide/commands/reply.md) command will not be registered with Paper and cannot be used. + +### `features.japaneseConversion.enabled` + +- Type: `boolean` +- Default: `false` + +Enables the conversion feature from romaji to hiragana. + +### `features.japaneseConversion` + +#### `cache.maxEntries` + +- Type: `integer` +- Default: `500` + +Specifies the maximum number of entries to store in the romanization conversion cache. + +When this value is exceeded, the oldest entries are deleted first. + +Setting a higher value improves conversion performance, but also increases memory usage and cache file size. + +#### `cache.saveIntervalSeconds` + +- Type: `integer` +- Default: `300` + +Specifies the interval (in seconds) for saving the romanization conversion cache to disk. + +#### `cache.filePath` + +- Type: `string` +- Default: `conversion_cache.json` + +Specifies the file path where the romanization conversion cache is saved. + +The path set here is interpreted as a relative path from the `plugins/LunaticChat/` directory. + +#### `api.timeout` + +- Type: `integer` +- Default: `3000` + +Specifies the timeout duration (in milliseconds) for API requests to the romanization conversion service. + +#### `api.retryAttempts` + +- Type: `integer` +- Default: `2` + +Specifies the number of retry attempts for failed API requests to the romanization conversion service. + +### `features.channelChat` + +#### `enabled` + +- Type: `boolean` +- Default: `false` + +Enables channel-based chat functionality. + +#### `maxChannelsPerServer` + +- Type: `integer` +- Default: `0` + +Specifies the maximum number of channels that can be created per server. + +Set to `0` for unlimited. + +#### `maxMembersPerChannel` + +- Type: `integer` +- Default: `0` + +Specifies the maximum number of members that can join a single channel. + +Set to `0` for unlimited. + +#### `maxMembershipPerPlayer` + +- Type: `integer` +- Default: `0` + +Specifies the maximum number of channels a single player can join. + +Set to `0` for unlimited. + +#### `messageLogging.enabled` + +- Type: `boolean` +- Default: `true` + +Specifies whether to log channel chat messages in NDJSON format. + +#### `messageLogging.retentionDays` + +- Type: `integer` +- Default: `30` + +Specifies the number of days to retain channel chat log files. + +Set to `0` to never delete log files. + +#### `messageLogging.maxFileSizeMB` + +- Type: `integer` +- Default: `100` + +Specifies the maximum size (in megabytes) of channel chat log files. + +Log files exceeding `maxFileSizeMB` will stop accepting new entries. + +### `features.velocityIntegration` + +#### `enabled` + +- Type: `boolean` +- Default: `false` + +Enables integration with Velocity proxy plugin. + +#### `crossServerGlobalChat` + +- Type: `boolean` +- Default: `false` + +Specifies whether to share chat messages across all Paper servers connected to the Velocity proxy. + +#### `serverName` + +- Type: `string` +- Default: `Unknown` + +Specifies the server name to display in Velocity cross-server chat. + +Examples: `survival`, `creative`, `lobby` + +#### `messageDeduplicationCacheSize` + +- Type: `integer` +- Default: `100` + +Specifies the size of the message deduplication cache. + +## Message Format Settings + +Available placeholders: + +- `{sender}`: Name of the message sender +- `{recipient}`: Name of the message recipient +- `{message}`: Content of the message +- `{channel}`: Name of the chat channel (only for channel chat) +- `{server}`: Name of the server (only for Velocity cross-server chat) + +### `messageFormat.directMessageFormat` + +- Type: `string` +- Default: `§7[§e{sender} §7>> §e{recipient}§7] §f{message}` + +Specifies the format for messages sent via direct message ([`/tell`](../player-guide/commands/tell.md) or [`/reply`](../player-guide/commands/reply.md) commands). + +### `messageFormat.channelMessageFormat` + +- Type: `string` +- Default: `§7[§b#{channel}§7] §e{sender}: §f{message}` + +Specifies the format for messages sent in channel chat. + +### `messageFormat.crossServerGlobalChatFormat` + +- Type: `string` +- Default: `§7[§6{server}§7] §e{sender}: §f{message}` + +Specifies the format for messages sent via Velocity cross-server global chat. diff --git a/docs/src/en/admin-guide/getting-started.md b/docs/src/en/admin-guide/getting-started.md new file mode 100644 index 0000000..c7654a0 --- /dev/null +++ b/docs/src/en/admin-guide/getting-started.md @@ -0,0 +1,42 @@ +# Getting Started + +## Installation + +Install LunaticChat. LunaticChat can be obtained from: + +- [GitHub](https://github.com/m1sk9/LunaticChat/releases) +- [Modrinth](https://modrinth.com/project/lunaticchat) + +Place the downloaded plugin file in your server's `plugins` folder and restart the server. + +## Configuration + +When LunaticChat starts, the following files will be created: + +- `plugins/LunaticChat/config.yml`: Plugin configuration file +- `plugins/LunaticChat/player-settings.yaml`: User-specific settings file +- `plugins/LunaticChat/conversion_cache.json`: Romanization conversion cache file + +Open the configuration file `config.yml` and modify the settings as needed. For details on configuration options, refer to the [Configuration Guide](./configuration.md). + +## Permissions + +Set LunaticChat's permissions using a permission management plugin like LuckPerms. + +Basic permissions can be configured using Paper or Velocity's default permission system (`OP` / `non OP`), but LuckPerms is recommended for more detailed control. + +- For details on permission nodes, refer to the [Permissions Guide](./permissions.md). +- For permission nodes corresponding to each command feature, refer to the [Command Reference](../player-guide/index.md). + +## Restart the server + +After completing the configuration, restart the server to apply the changes. + +This completes the basic setup of LunaticChat. + +## What's next? + +- [Cache System](./cache.md): Explains LunaticChat's cache system. +- [Channel Chat](./channel-chat/introduction.md): Overview of the channel chat feature. +- [Command List](../player-guide/index.md): View the list of LunaticChat commands. +- [Permissions List](./permissions.md): View LunaticChat's permission nodes. diff --git a/docs/src/en/admin-guide/management-data.md b/docs/src/en/admin-guide/management-data.md new file mode 100644 index 0000000..ffed59d --- /dev/null +++ b/docs/src/en/admin-guide/management-data.md @@ -0,0 +1,107 @@ +# Data and Logs + +::: danger Do Not Edit + +These data files are essential to the operation of LunaticChat. Direct editing may cause data corruption or unexpected behavior. Do not directly edit these files unless you are backing up data. + +::: + +## Data Storage Location + +LunaticChat saves channel data and configuration information to local disk. + +- `channels.json`: Stores channel information. +- `chatmodes.json`: Stores player chat mode settings. +- `conversion_cache.json`: Stores cache for channel conversion. +- `player-settings.yaml`: Stores player-specific settings. + +::: tip Regular Backups + +To ensure the safety of your LunaticChat data, we recommend creating regular backups. + +::: + +### `channels.json` + +The `channels.json` file stores information about channels managed by LunaticChat. This file contains information such as channel names, participant lists, and chat modes. + +```json +{ + "channels": { + "general-channel": { + "id": "general-channel", + "name": "General Channel", + "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` + +The `chatmodes.json` file stores player chat mode settings. This file contains chat mode information for each player. + +```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` + +The `conversion_cache.json` file stores cache for channel conversion. This file contains channel conversion information for each player. + +For more information about the cache system, see [here](./cache.md). + + +```json +{"version":"1","entries":{"hi":"日"}} +``` + +### `player-settings.yaml` + +The `player-settings.yaml` file stores player-specific settings. This file contains individual player settings. + +```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 +``` + +## Cache Version + +Files used for disk caching include a `version` field to accommodate changes in cache format as LunaticChat is upgraded. + +If the version does not match, LunaticChat recognizes the cache file as **old format cache**, ignores the contents, and recreates it in the new format. + +```json +{"version":"1","entries":{}} +``` diff --git a/docs/src/en/admin-guide/permissions.md b/docs/src/en/admin-guide/permissions.md new file mode 100644 index 0000000..6bb8172 --- /dev/null +++ b/docs/src/en/admin-guide/permissions.md @@ -0,0 +1,179 @@ +# Permissions + +For details on configuration using LuckPerms, refer to the [LuckPerms Wiki](https://luckperms.net/wiki/Home). + +## `lunaticchat.*` + +### `lunaticchat.spy` + +- Default: `OP` + +Visualizes communication via [`/tell`](../player-guide/commands/tell.md) / [`/reply`](../player-guide/commands/reply.md) commands. + +Players with this permission will have messages from other players' [`/tell`](../player-guide/commands/tell.md) / [`/reply`](../player-guide/commands/reply.md) commands broadcast to them. + +### `lunaticchat.noticeUpdate` + +- Default: `OP` + +Receives LunaticChat update notifications. + +[You must have `checkForUpdates` enabled](./configuration.md#checkforupdates) to receive notifications. + +### `lunaticchat.channelbypass` + +- Default: `OP` + +Bypasses moderation features and restrictions on private channels. + +## `lunaticchat.command.*` + +### `lunaticchat.command.tell` + +- Default: `non OP` + +Toggles the use of the [`/tell`](../player-guide/commands/tell.md) command. + +### `lunaticchat.command.reply` + +- Default: `non OP` + +Toggles the use of the [`/reply`](../player-guide/commands/reply.md) command. + +### `lunaticchat.command.lc` + +- Default: `non OP` + +Toggles the use of the `/lc` command. + +### `lunaticchat.command.lc.settings` + +- Default: `non OP` + +Toggles the use of the [`/lc settings`](../player-guide/commands/lc/settings.md) command. + +### `lunaticchat.command.lc.status` + +- Default: `non OP` + +Toggles the use of the [`/lc status`](../player-guide/commands/lc/status.md) command. + +### `lunaticchat.command.lc.channel` + +- Default: `non OP` + +Toggles the use of the [`/lc channel`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.create` + +- Default: `non OP` + +Toggles the use of the [`/lc channel create`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.list` + +- Default: `non OP` + +Toggles the use of the [`/lc channel list`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.join` + +- Default: `non OP` + +Toggles the use of the [`/lc channel join`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.leave` + +- Default: `non OP` + +Toggles the use of the [`/lc channel leave`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.switch` + +- Default: `non OP` + +Toggles the use of the [`/lc channel switch`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.status` + +- Default: `non OP` + +Toggles the use of the [`/lc channel status`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.info` + +- Default: `non OP` + +Toggles the use of the [`/lc channel info`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.delete` + +- Default: `non OP` + +Toggles the use of the [`/lc channel delete`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.invite` + +- Default: `non OP` + +Toggles the use of the [`/lc channel invite`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.kick` + +- Default: `non OP` + +Toggles the use of the [`/lc channel kick`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.ban` + +- Default: `non OP` + +Toggles the use of the [`/lc channel ban`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.unban` + +- Default: `non OP` + +Toggles the use of the [`/lc channel unban`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.mod` + +- Default: `non OP` + +Toggles the use of the [`/lc channel mod`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.channel.ownership` + +- Default: `non OP` + +Toggles the use of the [`/lc channel ownership`](../player-guide/commands/lc/channel.md) command. + +### `lunaticchat.command.lc.chatmode` + +- Default: `non OP` + +Toggles the use of the [`/lc chatmode`](../player-guide/commands/lc/chatmode.md) command. + +### `lunaticchat.command.lc.chatmode.toggle` + +- Default: `non OP` + +Toggles the use of the [`/lc chatmode toggle`](../player-guide/commands/lc/chatmode.md) command. + +### `lunaticchat.command.lcv.status` + +- Default: `OP` + +Toggles the use of the [`/lcv status`](../player-guide/commands/lcv/status.md) command. + +### `lunaticchat.command.jp` + +- Default: `non OP` + +Toggles the use of the [`/jp`](../player-guide/commands/jp.md) command. + +### `lunaticchat.command.notice` + +- Default: `non OP` + +Toggles the use of the [`/notice`](../player-guide/commands/notice.md) command. diff --git a/docs/src/en/admin-guide/velocity.md b/docs/src/en/admin-guide/velocity.md new file mode 100644 index 0000000..e1f9aa0 --- /dev/null +++ b/docs/src/en/admin-guide/velocity.md @@ -0,0 +1,78 @@ +# Velocity Integration (Cross-Server Chat) + +This feature enables cross-server chat between Paper servers connected through a Velocity proxy server. + +::: warning Experimental Feature + +This feature is currently provided as an experimental feature. Specifications may change in future updates. + +::: + +## Enabling Integration + +To enable Velocity integration, follow these steps: + +1. Install the Velocity version of LunaticChat on the Velocity side. +2. Open `plugins/LunaticChat/config.yml` on each Paper server and set `velocity.enabled` to `true`. +3. Start Velocity and Paper, and verify that the integration completion message appears. + +## Plugin Version and Protocol Version + +For Velocity and Paper's LunaticChat to integrate correctly, both plugin versions and protocol versions must be compatible. + +- Ensure that the LunaticChat versions on Velocity and Paper sides are the same. + - Compatibility may not be guaranteed when using beta or development versions. +- Ensure that protocol versions match. + +::: danger Regarding LunaticChat versions prior to v0.7.0 + +LunaticChat versions prior to v0.7.0 are not backward compatible with the Velocity version. + +They cannot be used together, so if you are using LunaticChat prior to v0.7.0, do not use the Velocity integration feature. + +::: + +## How to Check Integration Status + +To verify that Velocity integration is working properly, use the `/lcv status` command. + +The current protocol version and connection state will be displayed. + +::: warning Behavior When Versions Mismatch + +When the version or protocol version does not match, the Velocity integration feature is disabled, but **the plugin itself continues to operate**. + +You can check the connection state and error details using the `/lcv status` command. To reconnect, ensure that the LunaticChat version / protocol version on Velocity and Paper sides match. + +::: + +::: tip About Velocity Integration Timing + +LunaticChat connects to Velocity **when the first player joins the server** after startup. + +Therefore, if you run the `/lcv status` command immediately after server startup, the Velocity integration may not be established yet. + +::: + +## Troubleshooting + +If you encounter issues with Velocity integration, check the following: + +- **Run the `/lcv status` command to check the connection state**. If there are errors such as version mismatches, an error message will be displayed. +- Ensure that the LunaticChat version / protocol version on Velocity and Paper sides are the same. +- Verify that LunaticChat settings are correct. +- Ensure that network connection between Velocity server and Paper servers is working properly. + +## Cross-Server Chat + +When Velocity integration is enabled, chat messages are shared across all servers connected through the proxy server. + +## Features Compatible with Velocity Integration + +The main features available during Velocity integration are as follows: + +| | Compatibility | Behavior | Notes | +|------------| --- | --- | --- | +| Direct Messages | × | `/tell` and `/reply` commands operate only within the server | Direct messages do not support Velocity integration. | +| Channel Chat | × | Channel chat operates only within the server | Channel chat does not support Velocity integration. | +| Kana/Romanization | ◯ | Kana/Romanization works across all servers | | diff --git a/docs/src/en/guide/about.md b/docs/src/en/guide/about.md deleted file mode 100644 index 388df7b..0000000 --- a/docs/src/en/guide/about.md +++ /dev/null @@ -1,60 +0,0 @@ -# About LunaticChat - -LunaticChat is a chat plugin for the Minecraft server software Paper/Velocity. - -In 2013, [ucchyocean](https://github.com/ucchyocean) released [LunaChat](https://github.com/ucchyocean/LunaChat). LunaticChat is developed as a successor to LunaChat, rewritten from scratch to work with the latest versions. - -LunaChat is no longer being developed and does not support the latest Minecraft versions. While many server administrators have forked LunaChat, LunaticChat is designed as an alternative that inherits LunaChat's features while being designed to work with the latest Minecraft versions. - -## Key Features - -- **Lightweight and Fast**: LunaticChat is designed to maintain high performance while minimizing server load. -- **1-on-1 Direct Messaging**: Chat one-on-one using /tell or /msg commands. -- **Quick Reply**: Quickly reply to the most recent message sender with /reply. -- **Japanese Romanization Conversion**: Automatically converts messages input in romaji to Japanese. -- **CoreProtect Support**: LunaticChat's chat logs are compatible with CoreProtect. -- **High-Speed Performance with Caching**: Uses caching for romaji-to-Japanese conversion, operating faster than traditional LunaChat. -- **Latest Version Support**: Reduces dependencies on other plugins, always supporting the latest Minecraft versions. - -## Comparison - -| | LunaticChat | LunaChat | -| ----- |-------------|----------------------------------------| -| Development Status | Actively Developed | Development Ended | -| Supported Platforms | Paper / Velocity | Bukkit / Spigot / BungeeCord | -| Supported Versions | 1.21.x ~ | Up to 1.16.x | -| Language | Kotlin | Java | -| Plugin Dependencies | None | EssentialsX, etc. | -| Caching | Yes | No | -| Documentation | Yes | No | -| License | GNU General Public License v3.0 | GNU Lesser General Public License v3.0 | - -## FAQ - -### Is LunaticChat free to use? - -As open-source software, LunaticChat can be used, modified, and distributed for free. - -### Which Minecraft versions does LunaticChat support? - -LunaticChat supports Minecraft version 1.21.x and later. - -### Can LunaticChat be used alongside other chat plugins? - -LunaticChat can be used alongside other chat plugins, but to avoid conflicts, ensure that chat-related features do not overlap. - -### Where can I get support for LunaticChat? - -Support for LunaticChat is available on the [official GitHub Discussions](https://github.com/m1sk9/LunaticChat/discussions). - -### Where can I get the source code for LunaticChat? - -The source code for LunaticChat is available on [GitHub](https://github.com/m1sk9/LunaticChat). - -### Is there a Spigot/BungeeCord version of LunaticChat? - -No. There are no plans to support these platforms. Please use Paper/Velocity. - -### Under what license is LunaticChat distributed? - -LunaticChat is distributed under the GNU General Public License v3.0 (GPLv3). diff --git a/docs/src/en/guide/admin/cache.md b/docs/src/en/guide/admin/cache.md deleted file mode 100644 index 2fa2802..0000000 --- a/docs/src/en/guide/admin/cache.md +++ /dev/null @@ -1,41 +0,0 @@ -# Cache System - -LunaticChat includes a system that automatically caches phrases from Japanese romanization conversion to both memory and disk. - -For information on Japanese romanization conversion, see [here](../player/japanese-romanization.md). - -## Memory Cache - -LunaticChat caches converted phrases in memory, allowing for fast responses when the same phrase is requested again. - -This cache is temporary and is saved to disk cache at server restart or at configured intervals. - -## Disk Cache - -LunaticChat periodically saves the contents of the memory cache to disk. This allows the cache contents to be retained even after server restarts. - -The file used for disk cache can be [changed in the configuration](configuration.md#cachefilepath). - -## Cache Release - -Memory cache is automatically released by the JVM's garbage collection after being cached to disk. - -Disk cache can be released by manually deleting the file. LunaticChat will recreate the cache file on restart. - -::: warning About Purge Functionality - -LunaticChat does not implement a cache purge feature. - -This is because allowing players to manipulate the host's file system is not desirable from a security perspective. - -::: - -## Cache Version - -The file used for disk cache includes a `version` field, which handles changes to the cache format due to LunaticChat version updates. - -If the version does not match, LunaticChat recognizes the cache file as **an old format cache**, ignores its contents, and recreates it in the new format. - -```json -{"version":"1","entries":{}} -``` diff --git a/docs/src/en/guide/admin/channel-chat/introduction.md b/docs/src/en/guide/admin/channel-chat/introduction.md deleted file mode 100644 index e755139..0000000 --- a/docs/src/en/guide/admin/channel-chat/introduction.md +++ /dev/null @@ -1,74 +0,0 @@ -# Channel Chat: Deployment Guide - -This guide explains how to deploy channel chat. - -## What is Channel Chat - -Channel chat is a feature that allows players to create channels and share chat among specific players. - -For detailed features, please refer to the [Player Guide](../../player/channel-chat/about.md). - -## Preparing to Deploy Channel Chat - -To deploy channel chat, you need to enable the channel chat feature in the LunaticChat configuration file `config.yml`. - -1. Stop the server. -2. Open `plugins/LunaticChat/config.yml`. -3. Set `features.channelChat.enabled` to `true`. -4. Restart the server. - -This will enable the channel chat feature and allow players to use channel chat. - -## Channel Chat Configuration - -The configuration items related to channel chat are as follows: - -- `features.channelChat.maxChannelsPerPlayer`: Specifies the maximum number of channels a single player can create. -- `features.channelChat.maxMembersPerChannel`: Specifies the maximum number of members that can join a single channel. -- `features.channelChat.maxMembershipPerPlayer`: Specifies the maximum number of channels a single player can join. - -The default is set to `0`, which means there is no limit. - -::: tip Recommended Settings - -If you want to actively use the channel chat feature, we recommend setting these values higher. - -However, as this may impact server performance, please set them appropriately according to your server's resource situation. - -Recommended settings are as follows: - -- `features.channelChat.maxChannelsPerPlayer`: `3` to `5` -- `features.channelChat.maxMembersPerChannel`: `20` to `50` -- `features.channelChat.maxMembershipPerPlayer`: `5` to `10` - -::: - -## Channel Chat Logging - -::: warning Compatibility with Plugins like CoreProtect - -As of v0.7.0, LunaticChat's channel chat feature is not compatible with logging plugins like CoreProtect. - -::: - -Channel chat logging is enabled by default. - -For more details, see [Channel Chat: Logs](logs.md). - -## Channel Management - -Basically, [players manage channels themselves](../../player/channel-chat/moderation.md). - -However, as a server administrator, please note the following: - -- Server administrators have owner permissions for all channels. If operations are required, please respond appropriately. -- To maintain server performance, set limits on the number of channels and members as needed. -- If inappropriate channels or member behavior occurs, take appropriate action. - -If you want to avoid troubles related to channel management, consider restricting moderate commands such as `/lc channel ban`. - -## Plugins that Intercept Channel Chat - -Logging plugins like CoreProtect do not intercept LunaticChat's channel chat messages by default. - -However, plugins that use Paper API's `originalMessage()` to retrieve messages may intercept LunaticChat's channel chat messages. diff --git a/docs/src/en/guide/admin/channel-chat/logs.md b/docs/src/en/guide/admin/channel-chat/logs.md deleted file mode 100644 index b65750b..0000000 --- a/docs/src/en/guide/admin/channel-chat/logs.md +++ /dev/null @@ -1,119 +0,0 @@ -# Channel Chat: Logs - -Channel chat logs are a record of all messages and activities that occur within the chat. - -::: warning Compatibility with Plugins like CoreProtect - -As of v0.7.0, LunaticChat's channel chat feature is not compatible with logging plugins like CoreProtect. - -::: - -## Checking Channel Chat Logs - -Channel chat logs are stored in the `plugins/LunaticChat/logs/channelchat/` directory. - -Channel chat log files are saved in the following format: - -``` -{"timestamp":"2026-01-31T08:54:18.504343071Z","playerId":"ceaea267-39dd-3bac-931c-761ada671ebe","playerName":"m1sk9","channelId":"test","message":"Hello"} -``` - -## About File Size - -Each line is a complete JSON object, separated by line breaks, and the file as a whole is not a JSON array. - -```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) <- Weekend, active -├── 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) <- Today (in progress) -``` - -Total: approximately 83 MB - -With a 30-day retention setting, the January 17 file will be automatically deleted tomorrow. - -### Size per Message - -Channel chat log entries are approximately 200 bytes per line. - -Assuming 1000 messages per hour: - -```text -1000 msg/h × 24h × 220 bytes = 5,280,000 bytes ≈ 5.3 MB/day -``` - -With the default 30-day retention setting, this amounts to approximately **159 MB**. - -```text -5.3 MB × 30 days = 159 MB -``` - -## Visualization with Grafana Loki - -Due to the JSON format, using Promtail to ingest channel chat logs into Grafana Loki will parse them for easier reading. - -```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 Filtering Examples - -Examples of querying logs in Grafana Loki: - -```text -{job="lunatichat"} |= "new features" -{job="lunatichat", channel="Global"} -{job="lunatichat", player="Steve"} -``` - -::: - -## Command Line Checking Examples - -### View the latest 10 entries - -```bash -tail -n 10 plugins/LunaticChat/logs/channel-messages-2026-01-31.json | jq -``` - -### Extract messages from a specific player - -```bash -cat plugins/LunaticChat/logs/channel-messages-*.json | \ -jq 'select(.playerName=="Steve")' -``` - -### Count messages from a specific channel - -```bash -cat plugins/LunaticChat/logs/channel-messages-*.json | \ -jq 'select(.channelId=="global")' | wc -l -``` - -### Message count by date - -```bash -for file in plugins/LunaticChat/logs/channel-messages-*.json; do -echo "$file: $(wc -l < $file) messages" -done -``` diff --git a/docs/src/en/guide/admin/configuration.md b/docs/src/en/guide/admin/configuration.md deleted file mode 100644 index 15c8f10..0000000 --- a/docs/src/en/guide/admin/configuration.md +++ /dev/null @@ -1,326 +0,0 @@ -# Configuration - -```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` - -Starts LunaticChat in debug mode. - -### `userSettingsFilePath` - -- Type: `string` -- Default: `player-settings.yaml` - -Specifies the path to the YAML file where LunaticChat saves player settings. - -### `checkForUpdates` - -- Type: `boolean` -- Default: `true` - -Configures whether to prompt for LunaticChat updates at startup and when players with the required permissions join the server. - -### `language` - -- Type: `string` -- Default: `en` - -Specifies the language for LunaticChat's player-facing messages. - -### Supported languages: - -- `en`: English -- `ja`: Japanese (日本語) - -## Features Settings - -### `features.quickReplies.enabled` - -- Type: `boolean` -- Default: `true` - -Enables the quick reply feature via the [`/reply`](../../reference/commands/reply.md) command in LunaticChat. - -When disabled, the [`/reply`](../../reference/commands/reply.md) command will not be registered with Paper and cannot be used. - -### `features.japaneseConversion.enabled` - -- Type: `boolean` -- Default: `false` - -Enables the conversion feature from romaji to hiragana. - -### `features.japaneseConversion` - -#### `cache.maxEntries` - -- Type: `integer` -- Default: `500` - -Specifies the maximum number of entries to store in the romanization conversion cache. - -When this value is exceeded, the oldest entries are deleted first. - -Setting a higher value improves conversion performance, but also increases memory usage and cache file size. - -#### `cache.saveIntervalSeconds` - -- Type: `integer` -- Default: `300` - -Specifies the interval (in seconds) for saving the romanization conversion cache to disk. - -#### `cache.filePath` - -- Type: `string` -- Default: `conversion_cache.json` - -Specifies the file path where the romanization conversion cache is saved. - -The path set here is interpreted as a relative path from the `plugins/LunaticChat/` directory. - -#### `api.timeout` - -- Type: `integer` -- Default: `3000` - -Specifies the timeout duration (in milliseconds) for API requests to the romanization conversion service. - -#### `api.retryAttempts` - -- Type: `integer` -- Default: `2` - -Specifies the number of retry attempts for failed API requests to the romanization conversion service. - -### `features.channelChat` - -#### `enabled` - -- Type: `boolean` -- Default: `false` - -Enables channel-based chat functionality. - -#### `maxChannelsPerServer` - -- Type: `integer` -- Default: `0` - -Specifies the maximum number of channels that can be created per server. - -Set to `0` for unlimited. - -#### `maxMembersPerChannel` - -- Type: `integer` -- Default: `0` - -Specifies the maximum number of members that can join a single channel. - -Set to `0` for unlimited. - -#### `maxMembershipPerPlayer` - -- Type: `integer` -- Default: `0` - -Specifies the maximum number of channels a single player can join. - -Set to `0` for unlimited. - -#### `messageLogging.enabled` - -- Type: `boolean` -- Default: `true` - -Specifies whether to log channel chat messages in NDJSON format. - -#### `messageLogging.retentionDays` - -- Type: `integer` -- Default: `30` - -Specifies the number of days to retain channel chat log files. - -Set to `0` to never delete log files. - -#### `messageLogging.maxFileSizeMB` - -- Type: `integer` -- Default: `100` - -Specifies the maximum size (in megabytes) of channel chat log files. - -Log files exceeding `maxFileSizeMB` will stop accepting new entries. - -### `features.velocityIntegration` - -#### `enabled` - -- Type: `boolean` -- Default: `false` - -Enables integration with Velocity proxy plugin. - -#### `crossServerGlobalChat` - -- Type: `boolean` -- Default: `false` - -Specifies whether to share chat messages across all Paper servers connected to the Velocity proxy. - -#### `serverName` - -- Type: `string` -- Default: `Unknown` - -Specifies the server name to display in Velocity cross-server chat. - -Examples: `survival`, `creative`, `lobby` - -#### `messageDeduplicationCacheSize` - -- Type: `integer` -- Default: `100` - -Specifies the size of the message deduplication cache. - -## Message Format Settings - -Available placeholders: - -- `{sender}`: Name of the message sender -- `{recipient}`: Name of the message recipient -- `{message}`: Content of the message -- `{channel}`: Name of the chat channel (only for channel chat) -- `{server}`: Name of the server (only for Velocity cross-server chat) - -### `messageFormat.directMessageFormat` - -- Type: `string` -- Default: `§7[§e{sender} §7>> §e{recipient}§7] §f{message}` - -Specifies the format for messages sent via direct message ([`/tell`](../../reference/commands/tell.md) or [`/reply`](../../reference/commands/reply.md) commands). - -### `messageFormat.channelMessageFormat` - -- Type: `string` -- Default: `§7[§b#{channel}§7] §e{sender}: §f{message}` - -Specifies the format for messages sent in channel chat. - -### `messageFormat.crossServerGlobalChatFormat` - -- Type: `string` -- Default: `§7[§6{server}§7] §e{sender}: §f{message}` - -Specifies the format for messages sent via Velocity cross-server global chat. diff --git a/docs/src/en/guide/admin/management-data.md b/docs/src/en/guide/admin/management-data.md deleted file mode 100644 index ffed59d..0000000 --- a/docs/src/en/guide/admin/management-data.md +++ /dev/null @@ -1,107 +0,0 @@ -# Data and Logs - -::: danger Do Not Edit - -These data files are essential to the operation of LunaticChat. Direct editing may cause data corruption or unexpected behavior. Do not directly edit these files unless you are backing up data. - -::: - -## Data Storage Location - -LunaticChat saves channel data and configuration information to local disk. - -- `channels.json`: Stores channel information. -- `chatmodes.json`: Stores player chat mode settings. -- `conversion_cache.json`: Stores cache for channel conversion. -- `player-settings.yaml`: Stores player-specific settings. - -::: tip Regular Backups - -To ensure the safety of your LunaticChat data, we recommend creating regular backups. - -::: - -### `channels.json` - -The `channels.json` file stores information about channels managed by LunaticChat. This file contains information such as channel names, participant lists, and chat modes. - -```json -{ - "channels": { - "general-channel": { - "id": "general-channel", - "name": "General Channel", - "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` - -The `chatmodes.json` file stores player chat mode settings. This file contains chat mode information for each player. - -```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` - -The `conversion_cache.json` file stores cache for channel conversion. This file contains channel conversion information for each player. - -For more information about the cache system, see [here](./cache.md). - - -```json -{"version":"1","entries":{"hi":"日"}} -``` - -### `player-settings.yaml` - -The `player-settings.yaml` file stores player-specific settings. This file contains individual player settings. - -```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 -``` - -## Cache Version - -Files used for disk caching include a `version` field to accommodate changes in cache format as LunaticChat is upgraded. - -If the version does not match, LunaticChat recognizes the cache file as **old format cache**, ignores the contents, and recreates it in the new format. - -```json -{"version":"1","entries":{}} -``` diff --git a/docs/src/en/guide/admin/velocity.md b/docs/src/en/guide/admin/velocity.md deleted file mode 100644 index e1f9aa0..0000000 --- a/docs/src/en/guide/admin/velocity.md +++ /dev/null @@ -1,78 +0,0 @@ -# Velocity Integration (Cross-Server Chat) - -This feature enables cross-server chat between Paper servers connected through a Velocity proxy server. - -::: warning Experimental Feature - -This feature is currently provided as an experimental feature. Specifications may change in future updates. - -::: - -## Enabling Integration - -To enable Velocity integration, follow these steps: - -1. Install the Velocity version of LunaticChat on the Velocity side. -2. Open `plugins/LunaticChat/config.yml` on each Paper server and set `velocity.enabled` to `true`. -3. Start Velocity and Paper, and verify that the integration completion message appears. - -## Plugin Version and Protocol Version - -For Velocity and Paper's LunaticChat to integrate correctly, both plugin versions and protocol versions must be compatible. - -- Ensure that the LunaticChat versions on Velocity and Paper sides are the same. - - Compatibility may not be guaranteed when using beta or development versions. -- Ensure that protocol versions match. - -::: danger Regarding LunaticChat versions prior to v0.7.0 - -LunaticChat versions prior to v0.7.0 are not backward compatible with the Velocity version. - -They cannot be used together, so if you are using LunaticChat prior to v0.7.0, do not use the Velocity integration feature. - -::: - -## How to Check Integration Status - -To verify that Velocity integration is working properly, use the `/lcv status` command. - -The current protocol version and connection state will be displayed. - -::: warning Behavior When Versions Mismatch - -When the version or protocol version does not match, the Velocity integration feature is disabled, but **the plugin itself continues to operate**. - -You can check the connection state and error details using the `/lcv status` command. To reconnect, ensure that the LunaticChat version / protocol version on Velocity and Paper sides match. - -::: - -::: tip About Velocity Integration Timing - -LunaticChat connects to Velocity **when the first player joins the server** after startup. - -Therefore, if you run the `/lcv status` command immediately after server startup, the Velocity integration may not be established yet. - -::: - -## Troubleshooting - -If you encounter issues with Velocity integration, check the following: - -- **Run the `/lcv status` command to check the connection state**. If there are errors such as version mismatches, an error message will be displayed. -- Ensure that the LunaticChat version / protocol version on Velocity and Paper sides are the same. -- Verify that LunaticChat settings are correct. -- Ensure that network connection between Velocity server and Paper servers is working properly. - -## Cross-Server Chat - -When Velocity integration is enabled, chat messages are shared across all servers connected through the proxy server. - -## Features Compatible with Velocity Integration - -The main features available during Velocity integration are as follows: - -| | Compatibility | Behavior | Notes | -|------------| --- | --- | --- | -| Direct Messages | × | `/tell` and `/reply` commands operate only within the server | Direct messages do not support Velocity integration. | -| Channel Chat | × | Channel chat operates only within the server | Channel chat does not support Velocity integration. | -| Kana/Romanization | ◯ | Kana/Romanization works across all servers | | diff --git a/docs/src/en/guide/getting-started.md b/docs/src/en/guide/getting-started.md deleted file mode 100644 index e7aaf2d..0000000 --- a/docs/src/en/guide/getting-started.md +++ /dev/null @@ -1,42 +0,0 @@ -# Getting Started - -## Installation - -Install LunaticChat. LunaticChat can be obtained from: - -- [GitHub](https://github.com/m1sk9/LunaticChat/releases) -- [Modrinth](https://modrinth.com/project/lunaticchat) - -Place the downloaded plugin file in your server's `plugins` folder and restart the server. - -## Configuration - -When LunaticChat starts, the following files will be created: - -- `plugins/LunaticChat/config.yml`: Plugin configuration file -- `plugins/LunaticChat/player-settings.yaml`: User-specific settings file -- `plugins/LunaticChat/conversion_cache.json`: Romanization conversion cache file - -Open the configuration file `config.yml` and modify the settings as needed. For details on configuration options, refer to the [Configuration Guide](admin/configuration.md). - -## Permissions - -Set LunaticChat's permissions using a permission management plugin like LuckPerms. - -Basic permissions can be configured using Paper or Velocity's default permission system (`OP` / `non OP`), but LuckPerms is recommended for more detailed control. - -- For details on permission nodes, refer to the [Permissions Guide](../reference/permissions.md). -- For permission nodes corresponding to each command feature, refer to the [Command Reference](../reference/index.md). - -## Restart the server - -After completing the configuration, restart the server to apply the changes. - -This completes the basic setup of LunaticChat. - -## What's next? - -- [Cache System](./admin/cache.md): Explains LunaticChat's cache system. -- [Channel Chat](./admin/channel-chat/introduction.md): Overview of the channel chat feature. -- [Command List](../reference/index.md): View the list of LunaticChat commands. -- [Permissions List](../reference/permissions.md): View LunaticChat's permission nodes. diff --git a/docs/src/en/guide/player/channel-chat.md b/docs/src/en/guide/player/channel-chat.md deleted file mode 100644 index f1dcbf0..0000000 --- a/docs/src/en/guide/player/channel-chat.md +++ /dev/null @@ -1,13 +0,0 @@ -# Channel Chat - -This feature allows specific players to share chat. - -::: warning Experimental Feature - -This feature is currently implemented experimentally, and specifications may change in future updates. - -Since this is a large-scale feature, we plan to implement it gradually rather than all at once. - -For detailed implementation plans, see the [Roadmap (m1sk9/LunaticChat #54)](https://github.com/m1sk9/LunaticChat/issues/54). - -::: diff --git a/docs/src/en/guide/player/channel-chat/about.md b/docs/src/en/guide/player/channel-chat/about.md deleted file mode 100644 index 3b9b088..0000000 --- a/docs/src/en/guide/player/channel-chat/about.md +++ /dev/null @@ -1,112 +0,0 @@ -# Channel Chat - -This feature allows specific players to share chat. - -::: warning Experimental Feature - -This feature is currently implemented experimentally, and specifications may change in future updates. - -Since this is a large-scale feature, we plan to implement it gradually rather than all at once. - -For detailed implementation plans, see the [Roadmap (m1sk9/LunaticChat #54)](https://github.com/m1sk9/LunaticChat/issues/54). - -::: - -::: tip This feature must be enabled on the server - -If channel chat is disabled on the server, these features cannot be used. - -Please contact your server administrator. - -::: - -## Creating a Channel - -To use channel chat, you must first create a chat channel. - -Use the [`/lc channnel create`](../../../reference/commands/lc/channel.md#lc-channel-create-channel-id-channel-name-channel-description-private-setting) command to create a chat channel. - -``` -/lc channel create [channel-description] [private-setting] -``` - -- `` specifies the channel ID. -- `` specifies the channel name. -- `[channel-description]` specifies the channel description (optional). - - The description will be displayed when viewing the channel list with the `/lc channel list` command. -- `[private-setting]` specifies the channel's privacy setting. - - If `true` is specified, it will be created as a private channel, and only invited players can join. - - If `false` is specified or omitted, it will be created as a public channel, and anyone can join. - -::: tip Channel ID Requirements - -Channel IDs must follow these requirements: - -- Must be between 3 and 30 characters long -- Can only contain alphanumeric characters, underscores (_), and hyphens (-) - -::: - -::: warning Notes on Entering Channel Names and Descriptions - -When entering channel names and descriptions, arguments must be enclosed in `"` (double quotes). - -Example: - -``` -/lc channel create pvp_channel "PvP Enthusiasts Club" "A gathering of people who love PvP" false -``` - -::: - -The channel will be created and a confirmation message will be displayed in chat. - -## Joining a Channel - -To join a created channel, use the [`/lc channel join`](../../../reference/commands/lc/channel.md#lc-channel-join-channel-id) command. - -``` -/lc channel join -``` - -When you join a channel, your chat mode will switch from global chat to channel chat. - -## Viewing the Channel List - -To view the list of channels you can join, use the [`/lc channel list`](../../../reference/commands/lc/channel.md#lc-channel-list) command. - -``` -/lc channel list -``` - -A list of available channels will be displayed in the chat. You can click on them or use the [`/lc channel join`](#joining-a-channel) command to join a channel. - -## Chat Modes - -In LunaticChat, there are two types of chat modes for players when sending chat messages: - -1. Global chat mode: Share chat with all players. -2. Channel chat mode: Share chat with players in a specific channel you have joined. - -Channel chat primarily uses chat mode `2`. - -For more details, see [here](./chatmode.md). - -## Difference Between Active Channel and Membership Status - -In LunaticChat, a player's active channel and membership status are managed separately. - -- Active channel: The channel used in channel chat mode -- Membership status: List of channels the player has joined - -Only one channel can be designated as the active channel at a time. To switch the active channel to a channel in your membership status, use the [`/lc channel switch`](../../../reference/commands/lc/channel.md#lc-channel-switch-channel-id) command. - -``` -/lc channel switch -``` - -Removing a channel from your active status does not remove it from your membership status. To leave a channel, switch to it as your active channel first, then use the [`/lc channel leave`](../../../reference/commands/lc/channel.md#lc-channel-leave) command. - -``` -/lc channel leave -``` diff --git a/docs/src/en/guide/player/channel-chat/chatmode.md b/docs/src/en/guide/player/channel-chat/chatmode.md deleted file mode 100644 index 02d6a18..0000000 --- a/docs/src/en/guide/player/channel-chat/chatmode.md +++ /dev/null @@ -1,30 +0,0 @@ -# Chat Mode - -Chat mode refers to the mode in which players send chat messages in LunaticChat. LunaticChat has the following two types of chat modes: - -1. Global chat mode: Share chat with all players. -2. Channel chat mode: Share chat with players in a specific channel you have joined. - -## Channel Chat Mode - -While in channel chat mode, all chat messages are displayed only to players in the channel you have joined and will not be displayed in global chat. - -::: tip Temporarily Send to Global Chat - -If you want to temporarily send a message to global chat while in channel chat mode, prefix your message with `!`. - -``` -!Hello everyone, how are you? -``` - -::: - -## Global Chat Mode - -While in global chat mode, you share chat with all players on the server. It functions the same as normal Minecraft chat. - -## Temporarily Switching Chat Modes - -To temporarily switch chat modes, use the `/chatmode toggle` command. - -When you switch using this command, you can change chat modes without joining or leaving channels. diff --git a/docs/src/en/guide/player/channel-chat/moderation.md b/docs/src/en/guide/player/channel-chat/moderation.md deleted file mode 100644 index 3bf8609..0000000 --- a/docs/src/en/guide/player/channel-chat/moderation.md +++ /dev/null @@ -1,95 +0,0 @@ -# Channel Management - -You can manage member behavior within a channel using channel chat moderation features. - -::: danger Warning - -These moderation features are only available for LunaticChat channel chat. - -If you need to punish actual rule violators, we recommend reporting them to the server administrator. - -::: - -## Moderation Feature Specifications - -Moderation features have several specifications: - -- Players with Bypass permissions are not affected by moderation features. - - This means you cannot use these features against server administrators. -- To use moderation features, you need the respective channel role and server permissions. -- The effects of moderation features are independent for each channel. - - For example, a player permanently banned (BAN) from one channel can chat normally in other channels. - -## Roles - -Channels have the following roles: - -- Member: Regular players participating in the channel -- Moderator: Players who can use channel moderation features -- Owner: The channel creator who can use all moderation features - -::: tip Moderation by Server Administrators - -Server administrators uniformly have the same permissions as owner permissions in all channels. - -::: - -## Temporarily Expel a Member (Kick) - -To temporarily expel a member from a channel, use the [`/lc channel kick`](../../../reference/commands/lc/channel.md#lc-channel-kick-player-id) command. - -``` -/lc channel kick -``` - -Executing this command will immediately expel the specified player from the channel. - -However, the expelled player can rejoin. - -## Permanently Ban a Member (Ban) - -To permanently ban a member from a channel, use the [`/lc channel ban`](../../../reference/commands/lc/channel.md#lc-channel-ban-player-id) command. - -``` -/lc channel ban -``` - -Executing this command will immediately expel the specified player from the channel and also prohibit them from rejoining. - -## Unban a Permanently Banned Member - -To unban a permanently banned member, use the [`/lc channel unban`](../../../reference/commands/lc/channel.md#lc-channel-unban-player-id) command. - -``` -/lc channel unban -``` - -## Appoint/Dismiss Moderators - -To appoint/dismiss a channel member as a moderator, use the [`/lc channel mod`](../../../reference/commands/lc/channel.md#lc-channel-mod-player-id) command. - -``` -/lc channel mod -``` - -Executing this command will appoint the specified player as a moderator. Executing this command again on an appointed player will dismiss them from being a moderator. - -## Transfer Owner Permissions - -To transfer channel owner permissions to another member, use the [`/lc channel ownership`](../../../reference/commands/lc/channel.md#lc-channel-ownership-player-id) command. - -``` -/lc channel ownership -``` - -Executing this command will transfer all owner permissions to the specified player. The original owner becomes a moderator. - -::: danger Important Notes on Execution - -- Owner permission transfer is an irreversible operation. - - Once transferred, the original owner cannot regain owner permissions unless the player with owner permissions transfers them again. - - This applies even to server administrators. -- The recipient of owner permissions must be a member of the channel. -- Owner permissions can use all moderation features and delete the channel, which is a powerful privilege. Choose carefully to whom you transfer permissions. - -::: diff --git a/docs/src/en/guide/player/channel-chat/private-channel.md b/docs/src/en/guide/player/channel-chat/private-channel.md deleted file mode 100644 index 3b33559..0000000 --- a/docs/src/en/guide/player/channel-chat/private-channel.md +++ /dev/null @@ -1,25 +0,0 @@ -# Private Channels - -Private channels are chat channels that only specific users can join. - -## Creating a Private Channel - -To create a private channel, use the [`/lc channel create`](../../../reference/commands/lc/channel.md) command and specify `true` for the private setting argument. - -``` -/lc channel create [channel description] [private setting] -``` - -## Inviting to a Channel - -Private channels are not listed in the `/lc channel list` command and cannot be joined using the `/lc channel join` command. - -To join, you need to receive an invitation from the owner or moderator. - -To invite someone, use the [`/lc channel invite`](../../../reference/commands/lc/channel.md#lc-channel-invite-player-id) command. - -``` -/lc channel invite -``` - -The invited player automatically joins the channel. diff --git a/docs/src/en/guide/player/direct-message.md b/docs/src/en/guide/player/direct-message.md deleted file mode 100644 index 64c99b8..0000000 --- a/docs/src/en/guide/player/direct-message.md +++ /dev/null @@ -1,65 +0,0 @@ -# Direct Messages - -The direct message feature allows you to send messages to specific players only. - -## Sending Messages - -To send a message, use the [`/tell`](../../reference/commands/tell.md) command. - -You can only send messages to online players. Messages cannot be sent to offline players. - -``` -/tell -``` - -::: tip Auto-completion Feature - -LunaticChat supports player name auto-completion during chat input. - -For example, if you type `/tell Al`, online player names starting with `Al` will be suggested as candidates. - -::: - -::: warning Operation in GeyserMC Environments - -We do not guarantee functionality for players connecting from Minecraft Bedrock Edition using GeyserMC environments. - -Since LunaticChat is designed based on the Minecraft Java Edition/Paper chat system, issues may occur when operating through GeyserMC. There are no plans to support this. - -::: - -## Quick Reply Feature - -LunaticChat provides a quick reply feature that allows you to quickly respond to the most recent player who sent you a direct message. - -To use quick reply, use the [`/reply`](../../reference/commands/reply.md) command. - -``` -/reply -``` - -::: warning If This Command Cannot Be Used - -This command may be disabled (this feature can be toggled ON/OFF in the configuration). - -Please contact your server administrator. - -::: - -## Notification Settings - -As of v0.4.0, you can change the notification settings for direct messages. - -A notification sound will play when you receive or send a direct message. - -To change notification settings, use the [`/lc settings`](../../reference/commands/lc/settings.md) command. - -::: tip Client Volume Settings - -This notification sound depends on the **Players** category volume setting on the client. - -If you cannot hear LunaticChat's notification sound, check your client's volume settings. - -![](../../../assets/direct-message/minecraft-player-sound.png) - -::: diff --git a/docs/src/en/guide/player/japanese-romanization.md b/docs/src/en/guide/player/japanese-romanization.md deleted file mode 100644 index e851bb9..0000000 --- a/docs/src/en/guide/player/japanese-romanization.md +++ /dev/null @@ -1,101 +0,0 @@ -# Romanization Conversion - -LunaticChat provides a feature to convert Japanese text from romaji. - -## Enabling/Disabling - -The romanization conversion feature is enabled by default. - -You can toggle the romanization conversion setting using the [`/lc settings`](../../reference/commands/lc/settings.md) command. - -## Conversion Process - -LunaticChat converts text from players through the following steps: - -1. Verify that the player's text is composed of romaji -2. Check if the phrase exists in the memory cache - 1. If a matching phrase is found here, return it to the server -3. If it doesn't exist in the memory cache, convert from romaji to hiragana -4. Send the converted string to the Google IME API to convert it to a human-readable form -5. Save to memory cache and return it to the server - -``` -┌───────────────────────────────────────────────────┐ -│ User Input │ -│ (Romanji Text) │ -└─────────────────────┬─────────────────────────────┘ - │ - ▼ -┌───────────────────────────────────────────────────┐ -│ RomanjiConverter │ -│ ┌───────────────────────────────────────────┐ │ -│ │ 1. Check Memory Cache │ │ -│ │ └─→ Hit: Return immediately │ │ -│ │ │ │ -│ │ 2. Call Google IME API │ │ -│ │ │ │ -│ │ 3. Store in Memory Cache │ │ -│ │ │ │ -│ │ 4. Queue for Disk Save (async) │ │ -│ └───────────────────────────────────────────┘ │ -└─────────────────────┬─────────────────────────────┘ - │ - ▼ -┌───────────────────────────────────────────────────┐ -│ Converted Text │ -│ (Japanese Text) │ -└───────────────────────────────────────────────────┘ -``` - -::: tip Saving to File - -To avoid adding load, the contents of the memory cache are automatically saved to file cache at configured intervals and after server shutdown. - -::: - -For information on cache files, see [here](../admin/cache.md). - -## Improved Cache Strategy - -As of v0.5.0, LunaticChat has improved the cache strategy for romanization conversion. - -Player chat is now cached word by word, enabling more efficient conversion. - -For example, consider the following long chat message: - -> konnichiwa minna ohayou gozaimasu kyou wa totemo ii tenki desu ne bokutachi wa issho ni asobi ni ikimashou kono atarashii game wo tameshite mitai to omoimasu sore wa totemo omoshiroi to kiite imasu arigatou gozaimasu mata ne - -LunaticChat doesn't convert this sentence all at once, but splits and caches it word by word. - -This means that if words like "konnichiwa" or "minna" are already cached, those words don't need to be converted again, significantly improving conversion speed. - -### First Conversion - -``` -Input: "konnichiwa minna ohayou gozaimasu" - -konnichiwa → API → こんにちは (cached) -minna → API → みんな (cached) -ohayou → API → おはよう (cached) -gozaimasu → API → ございます (cached) - -Result: "こんにちは みんな おはよう ございます" -API Calls: 4 -``` - -### Second Conversion - -``` -Input: "ohayou gozaimasu kyou wa ii tenki desu" - -ohayou → Cache hit → おはよう -gozaimasu → Cache hit → ございます -kyou → API → 今日 (cached) -wa → API → は (cached) -ii → API → いい (cached) -tenki → API → 天気 (cached) -desu → API → です (cached) - -Result: "おはよう ございます 今日 は いい 天気 です" -API Calls: 5 (Cache hits: 2) -``` diff --git a/docs/src/en/index.md b/docs/src/en/index.md index 266c4a6..535fa0c 100644 --- a/docs/src/en/index.md +++ b/docs/src/en/index.md @@ -4,17 +4,14 @@ layout: home hero: name: "LunaticChat" - tagline: Next-generation chat plugin for Paper/Velocity. + tagline: A next-generation chat plugin for Paper, Folia and Velocity. actions: - theme: brand - text: Getting Started - link: /en/guide/getting-started + text: Player Guide + link: /en/player-guide/channel-chat/about - theme: brand - text: About LunaticChat - link: /en/guide/about - - theme: brand - text: Reference - link: /en/reference + text: Admin Guide + link: /en/admin-guide/getting-started - theme: alt text: GitHub link: https://github.com/m1sk9/LunaticChat @@ -36,7 +33,7 @@ features: details: Create and manage chat channels, send private messages between specific players icon: ☎️ - title: Multi-Platform Support - details: Support for multi-platform Paper and Velocity, enabling cross-server chat + details: Support for multi-platform Paper, Folia and Velocity, enabling cross-server chat icon: 🚀 - title: High-Speed Performance with Caching details: Uses caching for romaji-to-Japanese conversion, operating faster than traditional LunaChat diff --git a/docs/src/en/player-guide/about.md b/docs/src/en/player-guide/about.md new file mode 100644 index 0000000..388df7b --- /dev/null +++ b/docs/src/en/player-guide/about.md @@ -0,0 +1,60 @@ +# About LunaticChat + +LunaticChat is a chat plugin for the Minecraft server software Paper/Velocity. + +In 2013, [ucchyocean](https://github.com/ucchyocean) released [LunaChat](https://github.com/ucchyocean/LunaChat). LunaticChat is developed as a successor to LunaChat, rewritten from scratch to work with the latest versions. + +LunaChat is no longer being developed and does not support the latest Minecraft versions. While many server administrators have forked LunaChat, LunaticChat is designed as an alternative that inherits LunaChat's features while being designed to work with the latest Minecraft versions. + +## Key Features + +- **Lightweight and Fast**: LunaticChat is designed to maintain high performance while minimizing server load. +- **1-on-1 Direct Messaging**: Chat one-on-one using /tell or /msg commands. +- **Quick Reply**: Quickly reply to the most recent message sender with /reply. +- **Japanese Romanization Conversion**: Automatically converts messages input in romaji to Japanese. +- **CoreProtect Support**: LunaticChat's chat logs are compatible with CoreProtect. +- **High-Speed Performance with Caching**: Uses caching for romaji-to-Japanese conversion, operating faster than traditional LunaChat. +- **Latest Version Support**: Reduces dependencies on other plugins, always supporting the latest Minecraft versions. + +## Comparison + +| | LunaticChat | LunaChat | +| ----- |-------------|----------------------------------------| +| Development Status | Actively Developed | Development Ended | +| Supported Platforms | Paper / Velocity | Bukkit / Spigot / BungeeCord | +| Supported Versions | 1.21.x ~ | Up to 1.16.x | +| Language | Kotlin | Java | +| Plugin Dependencies | None | EssentialsX, etc. | +| Caching | Yes | No | +| Documentation | Yes | No | +| License | GNU General Public License v3.0 | GNU Lesser General Public License v3.0 | + +## FAQ + +### Is LunaticChat free to use? + +As open-source software, LunaticChat can be used, modified, and distributed for free. + +### Which Minecraft versions does LunaticChat support? + +LunaticChat supports Minecraft version 1.21.x and later. + +### Can LunaticChat be used alongside other chat plugins? + +LunaticChat can be used alongside other chat plugins, but to avoid conflicts, ensure that chat-related features do not overlap. + +### Where can I get support for LunaticChat? + +Support for LunaticChat is available on the [official GitHub Discussions](https://github.com/m1sk9/LunaticChat/discussions). + +### Where can I get the source code for LunaticChat? + +The source code for LunaticChat is available on [GitHub](https://github.com/m1sk9/LunaticChat). + +### Is there a Spigot/BungeeCord version of LunaticChat? + +No. There are no plans to support these platforms. Please use Paper/Velocity. + +### Under what license is LunaticChat distributed? + +LunaticChat is distributed under the GNU General Public License v3.0 (GPLv3). diff --git a/docs/src/en/player-guide/channel-chat/about.md b/docs/src/en/player-guide/channel-chat/about.md new file mode 100644 index 0000000..5130064 --- /dev/null +++ b/docs/src/en/player-guide/channel-chat/about.md @@ -0,0 +1,112 @@ +# Channel Chat + +This feature allows specific players to share chat. + +::: warning Experimental Feature + +This feature is currently implemented experimentally, and specifications may change in future updates. + +Since this is a large-scale feature, we plan to implement it gradually rather than all at once. + +For detailed implementation plans, see the [Roadmap (m1sk9/LunaticChat #54)](https://github.com/m1sk9/LunaticChat/issues/54). + +::: + +::: tip This feature must be enabled on the server + +If channel chat is disabled on the server, these features cannot be used. + +Please contact your server administrator. + +::: + +## Creating a Channel + +To use channel chat, you must first create a chat channel. + +Use the [`/lc channnel create`](../commands/lc/channel.md#lc-channel-create-channel-id-channel-name-channel-description-private-setting) command to create a chat channel. + +``` +/lc channel create [channel-description] [private-setting] +``` + +- `` specifies the channel ID. +- `` specifies the channel name. +- `[channel-description]` specifies the channel description (optional). + - The description will be displayed when viewing the channel list with the `/lc channel list` command. +- `[private-setting]` specifies the channel's privacy setting. + - If `true` is specified, it will be created as a private channel, and only invited players can join. + - If `false` is specified or omitted, it will be created as a public channel, and anyone can join. + +::: tip Channel ID Requirements + +Channel IDs must follow these requirements: + +- Must be between 3 and 30 characters long +- Can only contain alphanumeric characters, underscores (_), and hyphens (-) + +::: + +::: warning Notes on Entering Channel Names and Descriptions + +When entering channel names and descriptions, arguments must be enclosed in `"` (double quotes). + +Example: + +``` +/lc channel create pvp_channel "PvP Enthusiasts Club" "A gathering of people who love PvP" false +``` + +::: + +The channel will be created and a confirmation message will be displayed in chat. + +## Joining a Channel + +To join a created channel, use the [`/lc channel join`](../commands/lc/channel.md#lc-channel-join-channel-id) command. + +``` +/lc channel join +``` + +When you join a channel, your chat mode will switch from global chat to channel chat. + +## Viewing the Channel List + +To view the list of channels you can join, use the [`/lc channel list`](../commands/lc/channel.md#lc-channel-list) command. + +``` +/lc channel list +``` + +A list of available channels will be displayed in the chat. You can click on them or use the [`/lc channel join`](#joining-a-channel) command to join a channel. + +## Chat Modes + +In LunaticChat, there are two types of chat modes for players when sending chat messages: + +1. Global chat mode: Share chat with all players. +2. Channel chat mode: Share chat with players in a specific channel you have joined. + +Channel chat primarily uses chat mode `2`. + +For more details, see [here](./chatmode.md). + +## Difference Between Active Channel and Membership Status + +In LunaticChat, a player's active channel and membership status are managed separately. + +- Active channel: The channel used in channel chat mode +- Membership status: List of channels the player has joined + +Only one channel can be designated as the active channel at a time. To switch the active channel to a channel in your membership status, use the [`/lc channel switch`](../commands/lc/channel.md#lc-channel-switch-channel-id) command. + +``` +/lc channel switch +``` + +Removing a channel from your active status does not remove it from your membership status. To leave a channel, switch to it as your active channel first, then use the [`/lc channel leave`](../commands/lc/channel.md#lc-channel-leave) command. + +``` +/lc channel leave +``` diff --git a/docs/src/en/player-guide/channel-chat/chatmode.md b/docs/src/en/player-guide/channel-chat/chatmode.md new file mode 100644 index 0000000..02d6a18 --- /dev/null +++ b/docs/src/en/player-guide/channel-chat/chatmode.md @@ -0,0 +1,30 @@ +# Chat Mode + +Chat mode refers to the mode in which players send chat messages in LunaticChat. LunaticChat has the following two types of chat modes: + +1. Global chat mode: Share chat with all players. +2. Channel chat mode: Share chat with players in a specific channel you have joined. + +## Channel Chat Mode + +While in channel chat mode, all chat messages are displayed only to players in the channel you have joined and will not be displayed in global chat. + +::: tip Temporarily Send to Global Chat + +If you want to temporarily send a message to global chat while in channel chat mode, prefix your message with `!`. + +``` +!Hello everyone, how are you? +``` + +::: + +## Global Chat Mode + +While in global chat mode, you share chat with all players on the server. It functions the same as normal Minecraft chat. + +## Temporarily Switching Chat Modes + +To temporarily switch chat modes, use the `/chatmode toggle` command. + +When you switch using this command, you can change chat modes without joining or leaving channels. diff --git a/docs/src/en/player-guide/channel-chat/moderation.md b/docs/src/en/player-guide/channel-chat/moderation.md new file mode 100644 index 0000000..1867ec7 --- /dev/null +++ b/docs/src/en/player-guide/channel-chat/moderation.md @@ -0,0 +1,95 @@ +# Channel Management + +You can manage member behavior within a channel using channel chat moderation features. + +::: danger Warning + +These moderation features are only available for LunaticChat channel chat. + +If you need to punish actual rule violators, we recommend reporting them to the server administrator. + +::: + +## Moderation Feature Specifications + +Moderation features have several specifications: + +- Players with Bypass permissions are not affected by moderation features. + - This means you cannot use these features against server administrators. +- To use moderation features, you need the respective channel role and server permissions. +- The effects of moderation features are independent for each channel. + - For example, a player permanently banned (BAN) from one channel can chat normally in other channels. + +## Roles + +Channels have the following roles: + +- Member: Regular players participating in the channel +- Moderator: Players who can use channel moderation features +- Owner: The channel creator who can use all moderation features + +::: tip Moderation by Server Administrators + +Server administrators uniformly have the same permissions as owner permissions in all channels. + +::: + +## Temporarily Expel a Member (Kick) + +To temporarily expel a member from a channel, use the [`/lc channel kick`](../commands/lc/channel.md#lc-channel-kick-player-id) command. + +``` +/lc channel kick +``` + +Executing this command will immediately expel the specified player from the channel. + +However, the expelled player can rejoin. + +## Permanently Ban a Member (Ban) + +To permanently ban a member from a channel, use the [`/lc channel ban`](../commands/lc/channel.md#lc-channel-ban-player-id) command. + +``` +/lc channel ban +``` + +Executing this command will immediately expel the specified player from the channel and also prohibit them from rejoining. + +## Unban a Permanently Banned Member + +To unban a permanently banned member, use the [`/lc channel unban`](../commands/lc/channel.md#lc-channel-unban-player-id) command. + +``` +/lc channel unban +``` + +## Appoint/Dismiss Moderators + +To appoint/dismiss a channel member as a moderator, use the [`/lc channel mod`](../commands/lc/channel.md#lc-channel-mod-player-id) command. + +``` +/lc channel mod +``` + +Executing this command will appoint the specified player as a moderator. Executing this command again on an appointed player will dismiss them from being a moderator. + +## Transfer Owner Permissions + +To transfer channel owner permissions to another member, use the [`/lc channel ownership`](../commands/lc/channel.md#lc-channel-ownership-player-id) command. + +``` +/lc channel ownership +``` + +Executing this command will transfer all owner permissions to the specified player. The original owner becomes a moderator. + +::: danger Important Notes on Execution + +- Owner permission transfer is an irreversible operation. + - Once transferred, the original owner cannot regain owner permissions unless the player with owner permissions transfers them again. + - This applies even to server administrators. +- The recipient of owner permissions must be a member of the channel. +- Owner permissions can use all moderation features and delete the channel, which is a powerful privilege. Choose carefully to whom you transfer permissions. + +::: diff --git a/docs/src/en/player-guide/channel-chat/private-channel.md b/docs/src/en/player-guide/channel-chat/private-channel.md new file mode 100644 index 0000000..414f783 --- /dev/null +++ b/docs/src/en/player-guide/channel-chat/private-channel.md @@ -0,0 +1,25 @@ +# Private Channels + +Private channels are chat channels that only specific users can join. + +## Creating a Private Channel + +To create a private channel, use the [`/lc channel create`](../commands/lc/channel.md) command and specify `true` for the private setting argument. + +``` +/lc channel create [channel description] [private setting] +``` + +## Inviting to a Channel + +Private channels are not listed in the `/lc channel list` command and cannot be joined using the `/lc channel join` command. + +To join, you need to receive an invitation from the owner or moderator. + +To invite someone, use the [`/lc channel invite`](../commands/lc/channel.md#lc-channel-invite-player-id) command. + +``` +/lc channel invite +``` + +The invited player automatically joins the channel. diff --git a/docs/src/en/player-guide/commands/jp.md b/docs/src/en/player-guide/commands/jp.md new file mode 100644 index 0000000..839e6e1 --- /dev/null +++ b/docs/src/en/player-guide/commands/jp.md @@ -0,0 +1,17 @@ +# /jp + +### `/jp [on | off]` + +::: danger Deprecated + +This command was deprecated in v0.5.0. Please use the [`/lc settings`](lc/settings.md) command instead. + +::: + +| Permission | +|--------------------------| +| `lunaticchat.command.jp` | + +Toggles the romanization conversion setting. + +This setting is saved by UUID, so the setting will not be lost even if you change your MCID. diff --git a/docs/src/en/player-guide/commands/lc/channel.md b/docs/src/en/player-guide/commands/lc/channel.md new file mode 100644 index 0000000..31941ca --- /dev/null +++ b/docs/src/en/player-guide/commands/lc/channel.md @@ -0,0 +1,77 @@ +# /lc channel + +### `/lc channel create [channel-description] [private-setting]` + +| Permission | +|------------------------------| +| `lunaticchat.command.lc.channel.create` | + +Creates a channel. + +- `` specifies the channel ID. +- `` specifies the channel name. +- `[channel-description]` specifies the channel description (optional). + - The description will be displayed when viewing the channel list with the `/lc channel list` command. +- `[private-setting]` specifies the channel's privacy setting. + - If `true` is specified, it will be created as a private channel, and only invited players can join. + - If `false` is specified or omitted, it will be created as a public channel, and anyone can join. + +::: warning Notes on Entering Channel Names and Descriptions + +When entering channel names and descriptions, arguments must be enclosed in `"` (double quotes). + +Example: + +``` +/lc channel create pvp_channel "PvP Enthusiasts Club" "A gathering of people who love PvP" false +``` + +::: + +### `/lc channel list` + +| Permission | +|---------------------------------------| +| `lunaticchat.command.lc.channel.list` | + +Displays the list of channels. + +### `/lc channel join ` + +| Permission | +|---------------------------------------| +| `lunaticchat.command.lc.channel.join` | + +Joins the specified channel. + +### `/lc channel leave` + +| Permission | +|----------------------------------------| +| `lunaticchat.command.lc.channel.leave` | + +Leaves the currently active channel. + +### `/lc channel switch ` + +| Permission | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.switch` | + +Switches to the specified channel. Use this when you want to switch to another channel while in channel chat mode. + +### `/lc channel status` + +| Permission | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.status` | + +Displays information about the currently joined and active channels. + +### `/lc channel delete ` + +| Permission | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.delete` | + +Deletes the specified channel. You must be the channel creator (owner). diff --git a/docs/src/en/player-guide/commands/lc/chatmode.md b/docs/src/en/player-guide/commands/lc/chatmode.md new file mode 100644 index 0000000..e3f335f --- /dev/null +++ b/docs/src/en/player-guide/commands/lc/chatmode.md @@ -0,0 +1,17 @@ +# /lc chatmode + +### `/lc chatmode` + +| Permission | +|-----------------------------------| +| `lunaticchat.command.lc.chatmode` | + +Displays the current chat mode. + +### `/lc chatmode toggle` + +| Permission | +|------------------------------------| +| `lunaticchat.command.lc.chatmode.toggle` | + +Toggles the chat mode. diff --git a/docs/src/en/player-guide/commands/lc/settings.md b/docs/src/en/player-guide/commands/lc/settings.md new file mode 100644 index 0000000..8b88066 --- /dev/null +++ b/docs/src/en/player-guide/commands/lc/settings.md @@ -0,0 +1,19 @@ +# /lc settings + +### `/lc settings [value]` + +| Permission | +|-----------------------------------| +| `lunaticchat.command.lc.settings` | + +Manages player settings for LunaticChat. If no value is specified, the current setting value will be displayed. + +This setting is saved by UUID, so the setting will not be lost even if you change your MCID. + +#### Available Keys + +| Key | Description | Default Value | +|----------|----------------------------------------------------------|--------| +| `japanese` | Toggles romanization conversion on or off. | `true` | +| `notice` | Toggles whether to receive notifications when receiving direct messages via `/tell` or `/reply`. | `true` | +| `chNotice` | Toggles whether to receive notifications when receiving channel chat messages. | `true` | diff --git a/docs/src/en/player-guide/commands/lc/status.md b/docs/src/en/player-guide/commands/lc/status.md new file mode 100644 index 0000000..1fa6a39 --- /dev/null +++ b/docs/src/en/player-guide/commands/lc/status.md @@ -0,0 +1,9 @@ +# /lc status + +### `/lc status` + +| Permission | +|---------------------------------| +| `lunaticchat.command.lc.status` | + +Displays the status of LunaticChat. diff --git a/docs/src/en/player-guide/commands/lcv/status.md b/docs/src/en/player-guide/commands/lcv/status.md new file mode 100644 index 0000000..2b85283 --- /dev/null +++ b/docs/src/en/player-guide/commands/lcv/status.md @@ -0,0 +1,9 @@ +# /lcv status + +### `/lcv status` + +| Permission | +|------------------------------| +| `lunaticchat.command.lcv.status` | + +Displays the current LunaticChat Velocity integration status. diff --git a/docs/src/en/player-guide/commands/notice.md b/docs/src/en/player-guide/commands/notice.md new file mode 100644 index 0000000..4e7f41f --- /dev/null +++ b/docs/src/en/player-guide/commands/notice.md @@ -0,0 +1,17 @@ +# /notice + +### `/notice [on | off]` + +::: danger Deprecated + +This command was deprecated in v0.5.0. Please use the [`/lc settings`](lc/settings.md) command instead. + +::: + +| Permission | Aliases | +|-----------------------------|-------------| +| `lunaticchat.command.notice` | `/dmnotice` | + +Toggles notifications for direct messages sent via [`/tell`](tell.md) or [`/reply`](reply.md) commands on or off. + +This setting is saved by UUID, so the setting will not be lost even if you change your MCID. diff --git a/docs/src/en/player-guide/commands/reply.md b/docs/src/en/player-guide/commands/reply.md new file mode 100644 index 0000000..1b26be2 --- /dev/null +++ b/docs/src/en/player-guide/commands/reply.md @@ -0,0 +1,17 @@ +# /reply   + +### `/reply ` + +| Permission | Aliases | +|-----------------------------|-------| +| `lunaticchat.command.reply` | `/r` | + +Replies to the player with whom you most recently communicated using [`/tell`](tell.md). + +::: info If This Command Cannot Be Used + +This command may be disabled (this feature can be toggled ON/OFF in the configuration). + +Please contact your server administrator. + +::: diff --git a/docs/src/en/player-guide/commands/tell.md b/docs/src/en/player-guide/commands/tell.md new file mode 100644 index 0000000..fb2b8e1 --- /dev/null +++ b/docs/src/en/player-guide/commands/tell.md @@ -0,0 +1,11 @@ +# /tell + +### `/tell ` + +| Permission | Aliases | +| ---- | ---- | +| `lunaticchat.command.tell` | `/t`, `/msg`, `/m`, `/w`, `/whisper` | + +Sends a message to the specified player. + +Clicking on a sent message will automatically input this command into the chat bar. diff --git a/docs/src/en/player-guide/direct-message.md b/docs/src/en/player-guide/direct-message.md new file mode 100644 index 0000000..54f7404 --- /dev/null +++ b/docs/src/en/player-guide/direct-message.md @@ -0,0 +1,65 @@ +# Direct Messages + +The direct message feature allows you to send messages to specific players only. + +## Sending Messages + +To send a message, use the [`/tell`](./commands/tell.md) command. + +You can only send messages to online players. Messages cannot be sent to offline players. + +``` +/tell +``` + +::: tip Auto-completion Feature + +LunaticChat supports player name auto-completion during chat input. + +For example, if you type `/tell Al`, online player names starting with `Al` will be suggested as candidates. + +::: + +::: warning Operation in GeyserMC Environments + +We do not guarantee functionality for players connecting from Minecraft Bedrock Edition using GeyserMC environments. + +Since LunaticChat is designed based on the Minecraft Java Edition/Paper chat system, issues may occur when operating through GeyserMC. There are no plans to support this. + +::: + +## Quick Reply Feature + +LunaticChat provides a quick reply feature that allows you to quickly respond to the most recent player who sent you a direct message. + +To use quick reply, use the [`/reply`](./commands/reply.md) command. + +``` +/reply +``` + +::: warning If This Command Cannot Be Used + +This command may be disabled (this feature can be toggled ON/OFF in the configuration). + +Please contact your server administrator. + +::: + +## Notification Settings + +As of v0.4.0, you can change the notification settings for direct messages. + +A notification sound will play when you receive or send a direct message. + +To change notification settings, use the [`/lc settings`](./commands/lc/settings.md) command. + +::: tip Client Volume Settings + +This notification sound depends on the **Players** category volume setting on the client. + +If you cannot hear LunaticChat's notification sound, check your client's volume settings. + +![](../../assets/direct-message/minecraft-player-sound.png) + +::: diff --git a/docs/src/en/player-guide/getting-started.md b/docs/src/en/player-guide/getting-started.md new file mode 100644 index 0000000..19f7c83 --- /dev/null +++ b/docs/src/en/player-guide/getting-started.md @@ -0,0 +1,77 @@ +# Player Guide: Getting Started + +This guide is for players who have joined a server with LunaticChat installed. + +::: info For Server Administrators + +For plugin installation and configuration, refer to the [Admin Guide: Getting Started](../admin-guide/getting-started.md). + +::: + +## What You Can Do with LunaticChat + +LunaticChat is a plugin that extends the chat features of your Minecraft server. The following features are available: + +- **Direct Messages**: Send one-on-one messages to specific players +- **Quick Reply**: Quickly reply to the last player who messaged you with a single command +- **Channel Chat**: Create and join channels with other players to chat only among specific members +- **Romanization Conversion**: Automatically converts messages typed in romaji to hiragana + +::: tip + +Available features may vary depending on server configuration. Contact your server administrator for details. + +::: + +## Sending Direct Messages + +Use the [`/tell`](./commands/tell.md) command to send a message to a specific player. + +``` +/tell +``` + +After receiving a message, you can quickly reply using the [`/reply`](./commands/reply.md) command. + +``` +/reply +``` + +For more details, see [Direct Messages](./direct-message.md). + +## Joining Channel Chat + +Channel chat lets you create and join channels where only specific members can converse. + +You can see available channels with [`/lc channel list`](./commands/lc/channel.md). + +``` +/lc channel list +``` + +To join a channel, use [`/lc channel join`](./commands/lc/channel.md). + +``` +/lc channel join +``` + +For more details, see [Channel Chat](./channel-chat/about.md). + +## Using Romanization Conversion + +LunaticChat can automatically convert messages typed in romaji to hiragana. + +You can toggle romanization conversion on or off with the [`/lc settings`](./commands/lc/settings.md) command. + +``` +/lc settings romanization +``` + +For more details, see [Romanization Conversion](./japanese-romanization.md). + +## What's Next? + +- [Channel Chat](./channel-chat/about.md): Learn how to use channel chat +- [Direct Messages](./direct-message.md): Learn how to use direct messages +- [Romanization Conversion](./japanese-romanization.md): Details on the romanization conversion feature +- [Command List](./index.md): View all commands available in LunaticChat diff --git a/docs/src/en/player-guide/index.md b/docs/src/en/player-guide/index.md new file mode 100644 index 0000000..545d0f6 --- /dev/null +++ b/docs/src/en/player-guide/index.md @@ -0,0 +1,23 @@ +# Player Reference + +This page is a reference for players using LunaticChat. + +For plugin installation and configuration, refer to the [Guide](../admin-guide/getting-started.md). + +## Legend + +The legend used in the command reference is as follows: + +- ``: Indicates a required argument. Must be specified for execution. +- `[argument]`: Indicates an optional argument. Can be omitted during execution. +- `|`: Used when there are multiple choices. For example, `` means specifying either `yes` or `no`. +- `...`: Indicates that multiple arguments can be specified. For example, `...` means multiple items can be specified. + +## Labels + +When the following labels are present, they have these meanings: + +- : Indicates this feature was introduced in LunaticChat version 0.1.0. +- : Indicates this feature is available in Paper environments. +- : Indicates this feature is available in Velocity environments. +- : Indicates this feature is available in both Paper and Velocity environments. diff --git a/docs/src/en/player-guide/japanese-romanization.md b/docs/src/en/player-guide/japanese-romanization.md new file mode 100644 index 0000000..104d6d0 --- /dev/null +++ b/docs/src/en/player-guide/japanese-romanization.md @@ -0,0 +1,101 @@ +# Romanization Conversion + +LunaticChat provides a feature to convert Japanese text from romaji. + +## Enabling/Disabling + +The romanization conversion feature is enabled by default. + +You can toggle the romanization conversion setting using the [`/lc settings`](./commands/lc/settings.md) command. + +## Conversion Process + +LunaticChat converts text from players through the following steps: + +1. Verify that the player's text is composed of romaji +2. Check if the phrase exists in the memory cache + 1. If a matching phrase is found here, return it to the server +3. If it doesn't exist in the memory cache, convert from romaji to hiragana +4. Send the converted string to the Google IME API to convert it to a human-readable form +5. Save to memory cache and return it to the server + +``` +┌───────────────────────────────────────────────────┐ +│ User Input │ +│ (Romanji Text) │ +└─────────────────────┬─────────────────────────────┘ + │ + ▼ +┌───────────────────────────────────────────────────┐ +│ RomanjiConverter │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 1. Check Memory Cache │ │ +│ │ └─→ Hit: Return immediately │ │ +│ │ │ │ +│ │ 2. Call Google IME API │ │ +│ │ │ │ +│ │ 3. Store in Memory Cache │ │ +│ │ │ │ +│ │ 4. Queue for Disk Save (async) │ │ +│ └───────────────────────────────────────────┘ │ +└─────────────────────┬─────────────────────────────┘ + │ + ▼ +┌───────────────────────────────────────────────────┐ +│ Converted Text │ +│ (Japanese Text) │ +└───────────────────────────────────────────────────┘ +``` + +::: tip Saving to File + +To avoid adding load, the contents of the memory cache are automatically saved to file cache at configured intervals and after server shutdown. + +::: + +For information on cache files, see [here](../admin-guide/cache.md). + +## Improved Cache Strategy + +As of v0.5.0, LunaticChat has improved the cache strategy for romanization conversion. + +Player chat is now cached word by word, enabling more efficient conversion. + +For example, consider the following long chat message: + +> konnichiwa minna ohayou gozaimasu kyou wa totemo ii tenki desu ne bokutachi wa issho ni asobi ni ikimashou kono atarashii game wo tameshite mitai to omoimasu sore wa totemo omoshiroi to kiite imasu arigatou gozaimasu mata ne + +LunaticChat doesn't convert this sentence all at once, but splits and caches it word by word. + +This means that if words like "konnichiwa" or "minna" are already cached, those words don't need to be converted again, significantly improving conversion speed. + +### First Conversion + +``` +Input: "konnichiwa minna ohayou gozaimasu" + +konnichiwa → API → こんにちは (cached) +minna → API → みんな (cached) +ohayou → API → おはよう (cached) +gozaimasu → API → ございます (cached) + +Result: "こんにちは みんな おはよう ございます" +API Calls: 4 +``` + +### Second Conversion + +``` +Input: "ohayou gozaimasu kyou wa ii tenki desu" + +ohayou → Cache hit → おはよう +gozaimasu → Cache hit → ございます +kyou → API → 今日 (cached) +wa → API → は (cached) +ii → API → いい (cached) +tenki → API → 天気 (cached) +desu → API → です (cached) + +Result: "おはよう ございます 今日 は いい 天気 です" +API Calls: 5 (Cache hits: 2) +``` diff --git a/docs/src/en/reference/commands/jp.md b/docs/src/en/reference/commands/jp.md deleted file mode 100644 index 839e6e1..0000000 --- a/docs/src/en/reference/commands/jp.md +++ /dev/null @@ -1,17 +0,0 @@ -# /jp - -### `/jp [on | off]` - -::: danger Deprecated - -This command was deprecated in v0.5.0. Please use the [`/lc settings`](lc/settings.md) command instead. - -::: - -| Permission | -|--------------------------| -| `lunaticchat.command.jp` | - -Toggles the romanization conversion setting. - -This setting is saved by UUID, so the setting will not be lost even if you change your MCID. diff --git a/docs/src/en/reference/commands/lc/channel.md b/docs/src/en/reference/commands/lc/channel.md deleted file mode 100644 index 31941ca..0000000 --- a/docs/src/en/reference/commands/lc/channel.md +++ /dev/null @@ -1,77 +0,0 @@ -# /lc channel - -### `/lc channel create [channel-description] [private-setting]` - -| Permission | -|------------------------------| -| `lunaticchat.command.lc.channel.create` | - -Creates a channel. - -- `` specifies the channel ID. -- `` specifies the channel name. -- `[channel-description]` specifies the channel description (optional). - - The description will be displayed when viewing the channel list with the `/lc channel list` command. -- `[private-setting]` specifies the channel's privacy setting. - - If `true` is specified, it will be created as a private channel, and only invited players can join. - - If `false` is specified or omitted, it will be created as a public channel, and anyone can join. - -::: warning Notes on Entering Channel Names and Descriptions - -When entering channel names and descriptions, arguments must be enclosed in `"` (double quotes). - -Example: - -``` -/lc channel create pvp_channel "PvP Enthusiasts Club" "A gathering of people who love PvP" false -``` - -::: - -### `/lc channel list` - -| Permission | -|---------------------------------------| -| `lunaticchat.command.lc.channel.list` | - -Displays the list of channels. - -### `/lc channel join ` - -| Permission | -|---------------------------------------| -| `lunaticchat.command.lc.channel.join` | - -Joins the specified channel. - -### `/lc channel leave` - -| Permission | -|----------------------------------------| -| `lunaticchat.command.lc.channel.leave` | - -Leaves the currently active channel. - -### `/lc channel switch ` - -| Permission | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.switch` | - -Switches to the specified channel. Use this when you want to switch to another channel while in channel chat mode. - -### `/lc channel status` - -| Permission | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.status` | - -Displays information about the currently joined and active channels. - -### `/lc channel delete ` - -| Permission | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.delete` | - -Deletes the specified channel. You must be the channel creator (owner). diff --git a/docs/src/en/reference/commands/lc/chatmode.md b/docs/src/en/reference/commands/lc/chatmode.md deleted file mode 100644 index e3f335f..0000000 --- a/docs/src/en/reference/commands/lc/chatmode.md +++ /dev/null @@ -1,17 +0,0 @@ -# /lc chatmode - -### `/lc chatmode` - -| Permission | -|-----------------------------------| -| `lunaticchat.command.lc.chatmode` | - -Displays the current chat mode. - -### `/lc chatmode toggle` - -| Permission | -|------------------------------------| -| `lunaticchat.command.lc.chatmode.toggle` | - -Toggles the chat mode. diff --git a/docs/src/en/reference/commands/lc/settings.md b/docs/src/en/reference/commands/lc/settings.md deleted file mode 100644 index 8b88066..0000000 --- a/docs/src/en/reference/commands/lc/settings.md +++ /dev/null @@ -1,19 +0,0 @@ -# /lc settings - -### `/lc settings [value]` - -| Permission | -|-----------------------------------| -| `lunaticchat.command.lc.settings` | - -Manages player settings for LunaticChat. If no value is specified, the current setting value will be displayed. - -This setting is saved by UUID, so the setting will not be lost even if you change your MCID. - -#### Available Keys - -| Key | Description | Default Value | -|----------|----------------------------------------------------------|--------| -| `japanese` | Toggles romanization conversion on or off. | `true` | -| `notice` | Toggles whether to receive notifications when receiving direct messages via `/tell` or `/reply`. | `true` | -| `chNotice` | Toggles whether to receive notifications when receiving channel chat messages. | `true` | diff --git a/docs/src/en/reference/commands/lc/status.md b/docs/src/en/reference/commands/lc/status.md deleted file mode 100644 index 1fa6a39..0000000 --- a/docs/src/en/reference/commands/lc/status.md +++ /dev/null @@ -1,9 +0,0 @@ -# /lc status - -### `/lc status` - -| Permission | -|---------------------------------| -| `lunaticchat.command.lc.status` | - -Displays the status of LunaticChat. diff --git a/docs/src/en/reference/commands/lcv/status.md b/docs/src/en/reference/commands/lcv/status.md deleted file mode 100644 index 2b85283..0000000 --- a/docs/src/en/reference/commands/lcv/status.md +++ /dev/null @@ -1,9 +0,0 @@ -# /lcv status - -### `/lcv status` - -| Permission | -|------------------------------| -| `lunaticchat.command.lcv.status` | - -Displays the current LunaticChat Velocity integration status. diff --git a/docs/src/en/reference/commands/notice.md b/docs/src/en/reference/commands/notice.md deleted file mode 100644 index 4e7f41f..0000000 --- a/docs/src/en/reference/commands/notice.md +++ /dev/null @@ -1,17 +0,0 @@ -# /notice - -### `/notice [on | off]` - -::: danger Deprecated - -This command was deprecated in v0.5.0. Please use the [`/lc settings`](lc/settings.md) command instead. - -::: - -| Permission | Aliases | -|-----------------------------|-------------| -| `lunaticchat.command.notice` | `/dmnotice` | - -Toggles notifications for direct messages sent via [`/tell`](tell.md) or [`/reply`](reply.md) commands on or off. - -This setting is saved by UUID, so the setting will not be lost even if you change your MCID. diff --git a/docs/src/en/reference/commands/reply.md b/docs/src/en/reference/commands/reply.md deleted file mode 100644 index 1b26be2..0000000 --- a/docs/src/en/reference/commands/reply.md +++ /dev/null @@ -1,17 +0,0 @@ -# /reply   - -### `/reply ` - -| Permission | Aliases | -|-----------------------------|-------| -| `lunaticchat.command.reply` | `/r` | - -Replies to the player with whom you most recently communicated using [`/tell`](tell.md). - -::: info If This Command Cannot Be Used - -This command may be disabled (this feature can be toggled ON/OFF in the configuration). - -Please contact your server administrator. - -::: diff --git a/docs/src/en/reference/commands/tell.md b/docs/src/en/reference/commands/tell.md deleted file mode 100644 index fb2b8e1..0000000 --- a/docs/src/en/reference/commands/tell.md +++ /dev/null @@ -1,11 +0,0 @@ -# /tell - -### `/tell ` - -| Permission | Aliases | -| ---- | ---- | -| `lunaticchat.command.tell` | `/t`, `/msg`, `/m`, `/w`, `/whisper` | - -Sends a message to the specified player. - -Clicking on a sent message will automatically input this command into the chat bar. diff --git a/docs/src/en/reference/index.md b/docs/src/en/reference/index.md deleted file mode 100644 index 338694e..0000000 --- a/docs/src/en/reference/index.md +++ /dev/null @@ -1,23 +0,0 @@ -# Player Reference - -This page is a reference for players using LunaticChat. - -For plugin installation and configuration, refer to the [Guide](../guide/getting-started.md). - -## Legend - -The legend used in the command reference is as follows: - -- ``: Indicates a required argument. Must be specified for execution. -- `[argument]`: Indicates an optional argument. Can be omitted during execution. -- `|`: Used when there are multiple choices. For example, `` means specifying either `yes` or `no`. -- `...`: Indicates that multiple arguments can be specified. For example, `...` means multiple items can be specified. - -## Labels - -When the following labels are present, they have these meanings: - -- : Indicates this feature was introduced in LunaticChat version 0.1.0. -- : Indicates this feature is available in Paper environments. -- : Indicates this feature is available in Velocity environments. -- : Indicates this feature is available in both Paper and Velocity environments. diff --git a/docs/src/en/reference/permissions.md b/docs/src/en/reference/permissions.md deleted file mode 100644 index 4508808..0000000 --- a/docs/src/en/reference/permissions.md +++ /dev/null @@ -1,179 +0,0 @@ -# Permissions - -For details on configuration using LuckPerms, refer to the [LuckPerms Wiki](https://luckperms.net/wiki/Home). - -## `lunaticchat.*` - -### `lunaticchat.spy` - -- Default: `OP` - -Visualizes communication via [`/tell`](commands/tell.md) / [`/reply`](commands/reply.md) commands. - -Players with this permission will have messages from other players' [`/tell`](commands/tell.md) / [`/reply`](commands/reply.md) commands broadcast to them. - -### `lunaticchat.noticeUpdate` - -- Default: `OP` - -Receives LunaticChat update notifications. - -[You must have `checkForUpdates` enabled](../guide/admin/configuration.md#checkforupdates) to receive notifications. - -### `lunaticchat.channelbypass` - -- Default: `OP` - -Bypasses moderation features and restrictions on private channels. - -## `lunaticchat.command.*` - -### `lunaticchat.command.tell` - -- Default: `non OP` - -Toggles the use of the [`/tell`](commands/tell.md) command. - -### `lunaticchat.command.reply` - -- Default: `non OP` - -Toggles the use of the [`/reply`](commands/reply.md) command. - -### `lunaticchat.command.lc` - -- Default: `non OP` - -Toggles the use of the `/lc` command. - -### `lunaticchat.command.lc.settings` - -- Default: `non OP` - -Toggles the use of the [`/lc settings`](commands/lc/settings.md) command. - -### `lunaticchat.command.lc.status` - -- Default: `non OP` - -Toggles the use of the [`/lc status`](commands/lc/status.md) command. - -### `lunaticchat.command.lc.channel` - -- Default: `non OP` - -Toggles the use of the [`/lc channel`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.create` - -- Default: `non OP` - -Toggles the use of the [`/lc channel create`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.list` - -- Default: `non OP` - -Toggles the use of the [`/lc channel list`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.join` - -- Default: `non OP` - -Toggles the use of the [`/lc channel join`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.leave` - -- Default: `non OP` - -Toggles the use of the [`/lc channel leave`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.switch` - -- Default: `non OP` - -Toggles the use of the [`/lc channel switch`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.status` - -- Default: `non OP` - -Toggles the use of the [`/lc channel status`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.info` - -- Default: `non OP` - -Toggles the use of the [`/lc channel info`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.delete` - -- Default: `non OP` - -Toggles the use of the [`/lc channel delete`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.invite` - -- Default: `non OP` - -Toggles the use of the [`/lc channel invite`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.kick` - -- Default: `non OP` - -Toggles the use of the [`/lc channel kick`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.ban` - -- Default: `non OP` - -Toggles the use of the [`/lc channel ban`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.unban` - -- Default: `non OP` - -Toggles the use of the [`/lc channel unban`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.mod` - -- Default: `non OP` - -Toggles the use of the [`/lc channel mod`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.channel.ownership` - -- Default: `non OP` - -Toggles the use of the [`/lc channel ownership`](commands/lc/channel.md) command. - -### `lunaticchat.command.lc.chatmode` - -- Default: `non OP` - -Toggles the use of the [`/lc chatmode`](commands/lc/chatmode.md) command. - -### `lunaticchat.command.lc.chatmode.toggle` - -- Default: `non OP` - -Toggles the use of the [`/lc chatmode toggle`](commands/lc/chatmode.md) command. - -### `lunaticchat.command.lcv.status` - -- Default: `OP` - -Toggles the use of the [`/lcv status`](commands/lcv/status.md) command. - -### `lunaticchat.command.jp` - -- Default: `non OP` - -Toggles the use of the [`/jp`](commands/jp.md) command. - -### `lunaticchat.command.notice` - -- Default: `non OP` - -Toggles the use of the [`/notice`](commands/notice.md) command. diff --git a/docs/src/guide/about.md b/docs/src/guide/about.md deleted file mode 100644 index 933426f..0000000 --- a/docs/src/guide/about.md +++ /dev/null @@ -1,61 +0,0 @@ -# LunaticChat について - -LunaticChat は Minecraft サーバソフトウェアである Paper / Velocity 向けのチャットプラグインです. - -2013年,[ucchyocean](https://github.com/ucchyocean) 氏が公開した [LunaChat](https://github.com/ucchyocean/LunaChat) の後継,そして最新版で動くように一から書き直したプラグインとして開発しています. - -現在 LunaChat は開発が終了しており,最新の Minecraft バージョンには対応していません.多くのサーバー管理者が LunaChat を Fork していますが, LunaticChat はその代替として,LunaChat の機能を引き継ぎつつ,最新の Minecraft バージョンで動作するよう設計されています. - -## 主な特徴 - -- **軽量で高速**: LunaticChat は高いパフォーマンスを維持しつつ,サーバーへの負荷を最小限に抑えるよう設計されています. -- **1on1 ダイレクトメッセージ機能**: /tell や /msg コマンドで,1対1のチャットが可能です. -- **クイック返信**: /reply で,直前にメッセージを送信した相手に素早く返信可能です. -- **かな・ローマ字変換**: ローマ字で入力したメッセージを,自動的に日本語に変換します. -- **チャンネルチャット機能**: 複数のチャットチャンネルを作成し,特定のチャンネルでのみメッセージを送信できる環境を実現します. -- **CoreProtect への対応**: LunaticChat のチャットログは CoreProtect と互換性があります. -- **キャッシュによる高速動作**: ローマ字から日本語の変換はキャッシュを使用し,従来の LunaChat よりも高速に動作します. -- **最新版の対応**: 他プラグインとの依存を完全に排除し,常に最新の Minecraft バージョンに対応します. - -## 比較 - -| | LunaticChat | LunaChat | -| ----- |-------------|----------------------------------------| -| 開発状況 | 継続的に開発中 | 開発終了 | -| 対応プラットフォーム | Paper / Velocity | Bukkit / Spigot / BungeeCord | -| サポートバージョン | 1.21.x ~ | 1.16.x まで | -| 使用言語 | Kotlin | Java | -| 依存プラグイン | なし | EssentialsX など | -| キャッシュ | あり | なし | -| ドキュメント | あり | なし | -| ライセンス | GNU General Public License v3.0 | GNU Lesser General Public License v3.0 | - -## FAQ - -### LunaticChat は無料で使えますか? - -オープンソースソフトウェアとして,LunaticChat は無料で使用,修正,配布できます. - -### LunaticChat はどの Minecraft バージョンに対応していますか? - -LunaticChat は Minecraft 1.21.x 以降のバージョンに対応しています. - -### LunaticChat は他のチャットプラグインと併用できますか? - -LunaticChat は他のチャットプラグインと併用できますが,競合を避けるために,チャット関連の機能が重複しないように注意してください. - -### LunaticChat のサポートはどこで受けられますか? - -LunaticChat のサポートは,[公式の GitHub Discussion](https://github.com/m1sk9/LunaticChat/discussions) で受けられます. - -### LunaticChat のソースコードはどこで入手できますか? - -LunaticChat のソースコードは,[GitHub](https://github.com/m1sk9/LunaticChat) で公開されています. - -### Spigot / BungeeCord 版の LunaticChat はありますか? - -ありません.対応する予定もありません.Paper / Velocity でご利用ください. - -### LunaticChat はどのようなライセンスで配布されていますか? - -LunaticChat は GNU General Public License v3.0 (GPLv3) の下で配布されています. diff --git a/docs/src/guide/admin/cache.md b/docs/src/guide/admin/cache.md deleted file mode 100644 index afacac5..0000000 --- a/docs/src/guide/admin/cache.md +++ /dev/null @@ -1,31 +0,0 @@ -# キャッシュシステム - -LunaticChat では,かな・ローマ字変換時のフレーズを自動でメモリ・ディスクにキャッシュするシステムが搭載されています. - -かな・ローマ字変換に関する情報は [こちら](../player/japanese-romanization.md) をご覧ください. - -## メモリキャッシュ - -LunaticChat は変換済みのフレーズをメモリ上にキャッシュし,再度同じフレーズが要求された際に高速に応答できるようにしています. - -このキャッシュは一時的であり,サーバー再起動時や設定した秒数毎にディスクキャッシュへ保存されます. - -## ディスクキャッシュ - -LunaticChat はメモリキャッシュの内容を定期的にディスクに保存します. これにより,サーバー再起動後もキャッシュ内容を保持できるようになっています. - -ディスクキャッシュとして使用されるファイルは [設定で変更できます](configuration.md#cachefilepath). - -## キャッシュの解放 - -メモリキャッシュは,ディスクにキャッシュしたのち自動的に JVM のガベージコレクションにより解放されます. - -ディスクキャッシュは,手動でファイルを削除することで解放できます. 再起動時に LunaticChat は再度キャッシュファイルを作成します. - -::: warning パージ機能について - -LunaticChat では,キャッシュのパージ 機能は実装されていません. - -これはプレイヤー側にホストのファイルシステムを操作させることがセキュリティ上好ましくないためです. - -::: diff --git a/docs/src/guide/admin/channel-chat/introduction.md b/docs/src/guide/admin/channel-chat/introduction.md deleted file mode 100644 index cf9fe52..0000000 --- a/docs/src/guide/admin/channel-chat/introduction.md +++ /dev/null @@ -1,74 +0,0 @@ -# チャンネルチャット: 展開ガイド - -このガイドでは、チャンネルチャットの展開方法について説明します. - -## チャンネルチャットとは - -プレイヤー間でチャンネルを作成し,特定のプレイヤー間で,チャットを共有できる機能です. - -詳しい機能については [プレイヤー向けガイド版](../../player/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/channel-chat/moderation.md). - -ただし,サーバー管理者として,以下の点に注意してください: - -- サーバー管理者はすべてのチャンネルに対してオーナー権限を持ちます.操作が必要な場合は,適切に対応してください. -- サーバーのパフォーマンスを維持するために,必要に応じてチャンネル数やメンバー数の制限を設定してください. -- 不適切なチャンネルやメンバー行動が発生した場合は,適切な措置を講じてください. - -また,それらのチャンネルの管理によるトラブルを回避したい場合は `/lc channel ban` などのモデレートコマンドの制限を検討してください. - -## チャンネルチャットを捕捉してしまうプラグイン - -基本的に CoreProtect などのログ記録プラグインは,LunaticChat のチャンネルチャットメッセージを捕捉しません. - -ただし,Paper API の `originalMessage()` を使用してメッセージを取得しているプラグインは,LunaticChat のチャンネルチャットメッセージを捕捉してしまう可能性があります. diff --git a/docs/src/guide/admin/channel-chat/logs.md b/docs/src/guide/admin/channel-chat/logs.md deleted file mode 100644 index 9b88bdd..0000000 --- a/docs/src/guide/admin/channel-chat/logs.md +++ /dev/null @@ -1,119 +0,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/guide/admin/configuration.md b/docs/src/guide/admin/configuration.md deleted file mode 100644 index b641549..0000000 --- a/docs/src/guide/admin/configuration.md +++ /dev/null @@ -1,318 +0,0 @@ -# 設定 - -```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`](../../reference/commands/reply.md) コマンドによるクイックリプライ機能を有効にします. - -無効にすると [`/reply`](../../reference/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`](../../reference/commands/tell.md) や [`/reply`](../../reference/commands/reply.md) コマンド)で送信されるメッセージのフォーマットを指定します. - -### `messageFormat.channelMessageFormat` - -- Type: `string` -- Default: `§7[§b#{channel}§7] §e{sender}: §f{message}` - -チャンネルチャットで送信されるメッセージのフォーマットを指定します. diff --git a/docs/src/guide/admin/management-data.md b/docs/src/guide/admin/management-data.md deleted file mode 100644 index 5527ffa..0000000 --- a/docs/src/guide/admin/management-data.md +++ /dev/null @@ -1,107 +0,0 @@ -# データ・ログ - -::: 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/guide/admin/velocity.md b/docs/src/guide/admin/velocity.md deleted file mode 100644 index 862b529..0000000 --- a/docs/src/guide/admin/velocity.md +++ /dev/null @@ -1,87 +0,0 @@ -# Velocity 連携 (クロスサーバーチャット) - -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 連携に対応していません. | -| かな・ローマ字変換 | ◯ | かな・ローマ字変換は全サーバーで動作 | | diff --git a/docs/src/guide/getting-started.md b/docs/src/guide/getting-started.md deleted file mode 100644 index 36bd4c4..0000000 --- a/docs/src/guide/getting-started.md +++ /dev/null @@ -1,72 +0,0 @@ -# はじめる - -## 事前準備 - -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` が作成されます. - -該当のファイルを開き,初期設定を変更してください.なお,全設定項目の詳細については,[設定ガイド](admin/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 の使用を推奨します. - -- パーミッションノードの詳細については [パーミッションガイド](../reference/permissions.md)を参照してください. -- コマンドの各機能に対応するパーミッションノードは,[コマンドリファレンス](../reference/index.md)を参照してください. - -## サーバーの再起動 - -設定が完了したら,サーバーを再起動して設定を反映させてください. - -以上で LunaticChat の基本的なセットアップは完了です. - -## 次は? - -- [キャッシュシステム](./admin/cache.md): LunaticChat のキャッシュシステムについて説明します. -- [チャンネルチャット](./admin/channel-chat/introduction.md): チャンネルチャット機能の概要を説明します. -- [コマンド一覧](../reference/index.md): LunaticChat のコマンド一覧を確認します. -- [パーミッション一覧](../reference/permissions.md): LunaticChat のパーミッションノード一覧を確認します. diff --git a/docs/src/guide/player/channel-chat/about.md b/docs/src/guide/player/channel-chat/about.md deleted file mode 100644 index 9d1ae33..0000000 --- a/docs/src/guide/player/channel-chat/about.md +++ /dev/null @@ -1,108 +0,0 @@ -# チャンネルチャット - -特定のプレイヤー間で,チャットを共有できる機能です. - -::: warning 試験的機能 - -この機能は現在試験的な機能として提供されています.今後のアップデートで仕様が変更される可能性があります. - -::: - -::: tip この機能はサーバーで有効化する必要があります - -チャンネルチャットがサーバーで無効化されている場合,これらの機能は使用できません. - -サーバー管理者にお問い合わせください. - -::: - -## チャンネルを作成する - -チャンネルチャットを利用するには,まずチャットチャンネルを作成する必要があります. - -[`/lc channnel create`](../../../reference/commands/lc/channel.md#lc-channel-create-チャンネルid-チャンネル名-チャンネルの説明-プライベート設定) コマンドを使用して,チャットチャンネルを作成します. - -``` -/lc channel create <チャンネルID> <チャンネル名> [チャンネルの説明] [プライベート設定] -``` - -- `<チャンネルID>` はチャンネルのIDを指定します. -- `<チャンネル名>` はチャンネルの名前を指定します. -- `[チャンネルの説明]` はチャンネルの説明を指定します (省略可能). - - `/lc channel list` コマンドでチャンネル一覧を表示した際に,説明が表示されます. -- `[プライベート設定]` はチャンネルの公開設定を指定します. - - `true` を指定するとプライベートチャンネルとして作成され,招待されたプレイヤーのみが参加できます. - - `false` を指定するか,省略した場合はパブリックチャンネルとして作成され,誰でも参加できます. - -::: tip チャンネルIDの要件 - -チャンネルIDは次の要件に従う必要があります: - -- 3文字以上,30文字以下であること -- 英数字,アンダースコア(_),ハイフン(-)のみを含むこと - -::: - -::: warning チャンネル名・チャンネルの説明を入力する際の注意点 - -チャンネル名・チャンネルの説明を入力する際は,引数を `"` (ダブルクォーテーション) で囲む必要があります. - -実行例は次のとおりです: - -``` -/lc channel create pvp_channel "PvP大好きクラブ" "PvPが大好きな人たちの集まり" false -``` - -::: - -チャンネルが正常に作成されると,チャットで確認メッセージが表示されます. - -## チャンネルに参加する - -作成されたチャンネルに参加するには,[`/lc channel join`](../../../reference/commands/lc/channel.md#lc-channel-join-チャンネルid) コマンドを使用します. - -チャンネルに参加すると,チャットモードが全体チャットからチャンネルチャットに切り替わります. - -``` -/lc channel join <チャンネルID> -``` - -## チャンネル一覧を表示する - -参加可能なチャンネル一覧を表示するには,[`/lc channel list`](../../../reference/commands/lc/channel.md#lc-channel-list) コマンドを使用します. - -チャット欄に参加可能なチャンネルの一覧が表示されます.クリックするか [`/lc channel join`](#チャンネルに参加する) コマンドを使用して,チャンネルに参加できます. - -``` -/lc channel list -``` - -## チャットモード - -LunaticChat では,プレイヤーがチャットを送信する際のモードとして,以下の2種類のチャットモードが存在します: - -1. 全体チャットモード: すべてのプレイヤーとチャットを共有します. -2. チャンネルチャットモード: 参加している特定のチャンネル内のプレイヤーとチャットを共有します. - -チャンネルチャットでは主に `2` のチャットモードが使用されます. - -詳しくは [こちら](./chatmode.md) をご覧ください. - -## アクティブチャンネルとメンバーシップ状態の違い - -LunaticChat では,プレイヤーのアクティブチャンネルとメンバーシップ状態は別々に管理されています. - -- アクティブチャンネル: チャンネルチャットモードで使用されるチャンネル -- メンバーシップ状態: プレイヤーが参加しているチャンネルの一覧 - -アクティブチャンネルは一度に一つのチャンネルのみを指定できます.メンバーシップ状態のチャンネルにアクティブチャンネルを切り替える場合は [`/lc channel switch`](../../../reference/commands/lc/channel.md#lc-channel-switch-チャンネルid) コマンドを使用します. - -``` -/lc channel switch <チャンネルID> -``` - -メンバーシップ状態のチャンネルからアクティブチャンネルを解除してもチャンネルからは削除されません.チャンネルから退出するにはアクティブチャンネルに切り替えてから [`/lc channel leave`](../../../reference/commands/lc/channel.md#lc-channel-leave) コマンドを使用します. - -``` -/lc channel leave -``` diff --git a/docs/src/guide/player/channel-chat/chatmode.md b/docs/src/guide/player/channel-chat/chatmode.md deleted file mode 100644 index 9e2712d..0000000 --- a/docs/src/guide/player/channel-chat/chatmode.md +++ /dev/null @@ -1,30 +0,0 @@ -# チャットモード - -チャットモードは LunaticChat におけるプレイヤーがチャットを送信する際のモードを指します.LunaticChat では以下の2種類のチャットモードが存在します. - -1. 全体チャットモード: すべてのプレイヤーとチャットを共有します. -2. チャンネルチャットモード: 参加している特定のチャンネル内のプレイヤーとチャットを共有します. - -## チャットチャットモード - -チャンネルチャットモード中は,全てのチャットが参加しているチャンネルのプレイヤーのみに表示され,全体チャットには表示されません. - -::: tip 一時的に全体チャットを送信する - -チャンネルチャットモード中に,一時的に全体チャットを送信したい場合は,メッセージの先頭に `!` を付けて送信します. - -``` -!こんにちは、みんな元気? -``` - -::: - -## 全体チャットモード - -全体チャットモード中は,サーバー内のすべてのプレイヤーとチャットを共有します.通常の Minecraft チャットと同様の動作をします. - -## 一時的にチャットモードを切り替える - -チャットモードを一時的に切り替えるには,`/chatmode toggle` コマンドを使用します. - -このコマンドで切り替えた場合はチャンネルの入退出なしで,チャットモードを切り替えることができます. diff --git a/docs/src/guide/player/channel-chat/moderation.md b/docs/src/guide/player/channel-chat/moderation.md deleted file mode 100644 index 821c635..0000000 --- a/docs/src/guide/player/channel-chat/moderation.md +++ /dev/null @@ -1,95 +0,0 @@ -# チャンネルの管理 - -チャンネルチャットのモデレート機能を使用して,チャンネル内のメンバー行動を管理できます. - -::: danger 注意 - -これらのモデレート機能はあくまで LunaticChat のチャンネルチャットに対して使用できるものです. - -実際にルール違反者に対して処罰が必要な場合は,サーバー管理者に通報することをお勧めします. - -::: - -## モデレート機能の仕様 - -モデレート機能にはいくつかの仕様があります. - -- Bypass 権限を持つプレイヤーは,モデレート機能の影響を受けません. - - つまり,サーバー管理者に対してはこれらの機能を使用できません. -- モデレート機能を使用するには,それぞれのチャンネルのロールとサーバー自体の権限が必要です. -- モデレート機能の効果はチャンネルごとに独立しています. - - 例えば,あるチャンネルで永久追放(BAN)されたプレイヤーは,他のチャンネルでは通常通りチャットできます. - -## ロール - -チャンネルには以下のロールが存在しています. - -- メンバー (Member): チャンネルに参加している通常のプレイヤー -- モデレーター (Moderator): チャンネルのモデレート機能を使用できるプレイヤー -- オーナー (Owner): チャンネルの作成者であり,すべてのモデレート機能を使用できるプレイヤー - -::: tip サーバー管理者によるモデレート - -サーバー管理者は一律で全てのチャンネルにおいてオーナー権限と同じ権限を持ちます. - -::: - -## メンバーを一時的に追放する (Kick) - -メンバーを一時的にチャンネルから追放するには,[`/lc channel kick`](../../../reference/commands/lc/channel.md#lc-channel-kick-プレイヤーid) コマンドを使用します. - -``` -/lc channel kick <プレイヤーID> -``` - -このコマンドを実行すると,指定したプレイヤーがチャンネルから即座に退出されます. - -ただし,追放されたプレイヤーは再参加が可能です. - -## メンバーを永久に追放する (Ban) - -メンバーを永久にチャンネルから追放するには,[`/lc channel ban`](../../../reference/commands/lc/channel.md#lc-channel-ban-プレイヤーid) コマンドを使用します. - -``` -/lc channel ban <プレイヤーID> -``` - -このコマンドを実行すると,指定したプレイヤーがチャンネルから即座に退出され,さらに再参加も禁止されます. - -## 永久追放を解除する - -永久追放されたメンバーの追放を解除するには,[`/lc channel unban`](../../../reference/commands/lc/channel.md#lc-channel-unban-プレイヤーid) コマンドを使用します. - -``` -/lc channel unban <プレイヤーID> -``` - -## モデレーターを任命・解任する - -チャンネルのメンバーをモデレーターに任命/解任するには,[`/lc channel mod`](../../../reference/commands/lc/channel.md#lc-channel-mod-プレイヤーid) コマンドを使用します. - -``` -/lc channel mod <プレイヤーID> -``` - -このコマンドを実行すると,指定したプレイヤーがモデレーターに任命されます.また任命状態のプレイヤーに対して再度このコマンドを実行すると,モデレーターから解任されます. - -## オーナー権限を譲渡する - -チャンネルのオーナー権限を他のメンバーに譲渡するには,[`/lc channel ownership`](../../../reference/commands/lc/channel.md#lc-channel-ownership-プレイヤーid) コマンドを使用します. - -``` -/lc channel ownership <プレイヤーID> -``` - -このコマンドを実行すると,指定したプレイヤーに全てのオーナー権限が譲渡されます.元のオーナーはモデレーターになります. - -::: danger 実行時の注意点 - -- オーナー権限の譲渡は不可逆的な操作です. - - つまり,一度譲渡してしまうとオーナー権限を持つプレイヤーが再度譲渡しない限り,元のオーナーがオーナー権限を取り戻すことはできません. - - これはサーバー管理者であってもです. -- オーナー権限を譲渡する相手は,必ずチャンネルのメンバーである必要があります. -- オーナー権限は全てのモデレート機能を使用でき,かつチャンネルを削除できる強力な権限です.譲渡する相手を慎重に選んでください. - -::: diff --git a/docs/src/guide/player/channel-chat/private-channel.md b/docs/src/guide/player/channel-chat/private-channel.md deleted file mode 100644 index 6123310..0000000 --- a/docs/src/guide/player/channel-chat/private-channel.md +++ /dev/null @@ -1,25 +0,0 @@ -# プライベートチャンネル - -プライベートチャンネルは,特定のユーザーのみが参加できるチャットチャンネルです. - -## プライベートチャンネルの作成 - -プライベートを作成する場合は [`/lc channel create`](../../../reference/commands/lc/channel.md) コマンドで,プライベート設定引数に `true` を指定します. - -``` -/lc channel create <チャンネルID> <チャンネル名> [チャンネルの説明] [プライベート設定] -``` - -## チャンネルへの招待 - -プライベートチャンネルは `/lc channel list` コマンドでは一覧表示されず, `/lc channel join` コマンドで参加することもできません. - -参加するにはオーナーもしくはモデレーターから招待を受ける必要があります. - -招待するには,[`/lc channel invite`](../../../reference/commands/lc/channel.md#lc-channel-invite-プレイヤーid) コマンドを使用します. - -``` -/lc channel invite <プレイヤーID> -``` - -招待を受けたプレイヤーは自動でチャンネルに参加します. diff --git a/docs/src/guide/player/direct-message.md b/docs/src/guide/player/direct-message.md deleted file mode 100644 index 8edd16e..0000000 --- a/docs/src/guide/player/direct-message.md +++ /dev/null @@ -1,65 +0,0 @@ -# ダイレクトメッセージ - -特定のプレイヤーに対してのみメッセージを送信するダイレクトメッセージ機能です. - -## メッセージを送信する - -メッセージを送信するには [`/tell`](../../reference/commands/tell.md) コマンドを使用します. - -オンラインプレイヤーに対してのみメッセージを送信できます.オフラインプレイヤーには送信できません. - -``` -/tell -``` - -::: tip 補完機能 - -LunaticChat はチャット入力時にプレイヤー名の補完をサポートしています. - -例えば,`/tell Al` と入力した場合,`Al` で始まるオンラインプレイヤー名が候補として表示されます. - -::: - -::: warning GeyserMC 環境での動作 - -GeyserMC 環境を用いて Minecraft Bedrock Edition から接続しているプレイヤーに機能を提供している場合の動作は保証していません. - -LunaticChat は Minecraft Java Edition / Paper のチャットシステムを前提として設計されているため,GeyserMC 経由での動作に問題が発生する可能性があります.対応の予定はありません. - -::: - -## クイックリプライ機能 - -LunaticChat では,直前にダイレクトメッセージを送信した相手に対して素早く返信できるクイックリプライ機能が提供されています. - -クイックリプライを使用するには [`/reply`](../../reference/commands/reply.md) コマンドを使用します. - -``` -/reply -``` - -::: warning このコマンドが使用できない場合 - -このコマンドが無効化されている可能性があります (この機能は設定で ON/OFF できるため) - -サーバーの管理者に連絡してください. - -::: - -## 通知設定 - -v0.4.0 以降,ダイレクトメッセージの通知設定を変更できるようになりました. - -ダイレクトメッセージを受信・送信時に通知音がなるようになります. - -通知設定を変更するには [`/lc settings`](../../reference/commands/lc/settings.md) コマンドを使用します. - -::: tip クライアントでの音量設定 - -この通知音はクライアント上の **プレイヤー** カテゴリーの音量設定に依存します. - -LunaticChat の通知音が聞こえない場合は,クライアントの音量設定を確認してください. - -![](../../assets/direct-message/minecraft-player-sound.png) - -::: diff --git a/docs/src/guide/player/japanese-romanization.md b/docs/src/guide/player/japanese-romanization.md deleted file mode 100644 index 3b62e51..0000000 --- a/docs/src/guide/player/japanese-romanization.md +++ /dev/null @@ -1,101 +0,0 @@ -# ローマ字変換 - -LunaticChat では、日本語のテキストをローマ字に変換する機能が提供されています. - -## 有効化・無効化 - -ローマ字変換機能はデフォルトで有効化されています. - -[`/lc settings`](../../reference/commands/lc/settings.md) コマンドを使用して,ローマ字変換の設定を切り替えることができます. - -## 変換の仕組み - -LunaticChat はプレイヤーからのテキストを以下の手順で変換を行います. - -1. プレイヤーからのテキストがローマ字で構成されているかを検証する -2. メモリキャッシュから該当のフレーズがあるかどうかを調べる - 1. ここで該当フレーズがヒットした場合はそれをサーバーに返す -3. メモリキャッシュに存在していない場合は,ローマ字からひらがなに変換する -4. 変換した文字列を Google IME API へ送り,人が読める形に変換する -5. メモリキャッシュに保存し,それをサーバーに返す - -``` -┌───────────────────────────────────────────────────┐ -│ User Input │ -│ (Romanji Text) │ -└─────────────────────┬─────────────────────────────┘ - │ - ▼ -┌───────────────────────────────────────────────────┐ -│ RomanjiConverter │ -│ ┌───────────────────────────────────────────┐ │ -│ │ 1. Check Memory Cache │ │ -│ │ └─→ Hit: Return immediately │ │ -│ │ │ │ -│ │ 2. Call Google IME API │ │ -│ │ │ │ -│ │ 3. Store in Memory Cache │ │ -│ │ │ │ -│ │ 4. Queue for Disk Save (async) │ │ -│ └───────────────────────────────────────────┘ │ -└─────────────────────┬─────────────────────────────┘ - │ - ▼ -┌───────────────────────────────────────────────────┐ -│ Converted Text │ -│ (Japanese Text) │ -└───────────────────────────────────────────────────┘ -``` - -::: tip ファイルへの保存 - -メモリキャッシュの内容は負荷にならないよう,設定した秒毎・サーバ停止後にファイルキャッシュへ自動でセーブします. - -::: - -キャッシュファイルに関する情報は [こちら](../admin/cache.md) をご覧ください. - -## 改善されたキャッシュ戦略 - -v0.5.0 以降,LunaticChat はローマ字変換のキャッシュ戦略を改善しました. - -プレイヤーのチャットを単語ごとにキャッシュするようになり,より効率的に変換を行えるようになりました. - -例えば,以下のような長文のチャットがあるとします. - -> konnichiwa minna ohayou gozaimasu kyou wa totemo ii tenki desu ne bokutachi wa issho ni asobi ni ikimashou kono atarashii game wo tameshite mitai to omoimasu sore wa totemo omoshiroi to kiite imasu arigatou gozaimasu mata ne - -LunaticChat はこの文章を一度に変換するのではなく,単語ごとに分割してキャッシュを行います. - -これにより,例えば「konnichiwa」や「minna」などの単語が既にキャッシュされている場合,それらの単語は再度変換する必要がなくなり,変換速度が大幅に向上します. - -### 1回目の変換 - -``` -入力: "konnichiwa minna ohayou gozaimasu" - -konnichiwa → API → こんにちは (キャッシュ保存) -minna → API → みんな (キャッシュ保存) -ohayou → API → おはよう (キャッシュ保存) -gozaimasu → API → ございます (キャッシュ保存) - -結果: "こんにちは みんな おはよう ございます" -APIコール: 4回 -``` - -### 2回目の変換 - -``` -入力: "ohayou gozaimasu kyou wa ii tenki desu" - -ohayou → キャッシュヒット → おはよう -gozaimasu → キャッシュヒット → ございます -kyou → API → 今日 (キャッシュ保存) -wa → API → は (キャッシュ保存) -ii → API → いい (キャッシュ保存) -tenki → API → 天気 (キャッシュ保存) -desu → API → です (キャッシュ保存) - -結果: "おはよう ございます 今日 は いい 天気 です" -APIコール: 5回(キャッシュヒット: 2回) -``` diff --git a/docs/src/index.md b/docs/src/index.md index e070120..9982744 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -4,17 +4,14 @@ layout: home hero: name: "LunaticChat" - tagline: Next-generation chat plugin for Paper/Velocity. + tagline: A next-generation chat plugin for Paper, Folia and Velocity. actions: - theme: brand - text: はじめる - link: /guide/getting-started + text: プレイヤーガイド + link: /player-guide/channel-chat/about - theme: brand - text: LunaticChat について - link: /guide/about - - theme: brand - text: リファレンス - link: /reference + text: 管理者ガイド + link: /admin-guide/getting-started - theme: alt text: GitHub link: https://github.com/m1sk9/LunaticChat diff --git a/docs/src/player-guide/about.md b/docs/src/player-guide/about.md new file mode 100644 index 0000000..933426f --- /dev/null +++ b/docs/src/player-guide/about.md @@ -0,0 +1,61 @@ +# LunaticChat について + +LunaticChat は Minecraft サーバソフトウェアである Paper / Velocity 向けのチャットプラグインです. + +2013年,[ucchyocean](https://github.com/ucchyocean) 氏が公開した [LunaChat](https://github.com/ucchyocean/LunaChat) の後継,そして最新版で動くように一から書き直したプラグインとして開発しています. + +現在 LunaChat は開発が終了しており,最新の Minecraft バージョンには対応していません.多くのサーバー管理者が LunaChat を Fork していますが, LunaticChat はその代替として,LunaChat の機能を引き継ぎつつ,最新の Minecraft バージョンで動作するよう設計されています. + +## 主な特徴 + +- **軽量で高速**: LunaticChat は高いパフォーマンスを維持しつつ,サーバーへの負荷を最小限に抑えるよう設計されています. +- **1on1 ダイレクトメッセージ機能**: /tell や /msg コマンドで,1対1のチャットが可能です. +- **クイック返信**: /reply で,直前にメッセージを送信した相手に素早く返信可能です. +- **かな・ローマ字変換**: ローマ字で入力したメッセージを,自動的に日本語に変換します. +- **チャンネルチャット機能**: 複数のチャットチャンネルを作成し,特定のチャンネルでのみメッセージを送信できる環境を実現します. +- **CoreProtect への対応**: LunaticChat のチャットログは CoreProtect と互換性があります. +- **キャッシュによる高速動作**: ローマ字から日本語の変換はキャッシュを使用し,従来の LunaChat よりも高速に動作します. +- **最新版の対応**: 他プラグインとの依存を完全に排除し,常に最新の Minecraft バージョンに対応します. + +## 比較 + +| | LunaticChat | LunaChat | +| ----- |-------------|----------------------------------------| +| 開発状況 | 継続的に開発中 | 開発終了 | +| 対応プラットフォーム | Paper / Velocity | Bukkit / Spigot / BungeeCord | +| サポートバージョン | 1.21.x ~ | 1.16.x まで | +| 使用言語 | Kotlin | Java | +| 依存プラグイン | なし | EssentialsX など | +| キャッシュ | あり | なし | +| ドキュメント | あり | なし | +| ライセンス | GNU General Public License v3.0 | GNU Lesser General Public License v3.0 | + +## FAQ + +### LunaticChat は無料で使えますか? + +オープンソースソフトウェアとして,LunaticChat は無料で使用,修正,配布できます. + +### LunaticChat はどの Minecraft バージョンに対応していますか? + +LunaticChat は Minecraft 1.21.x 以降のバージョンに対応しています. + +### LunaticChat は他のチャットプラグインと併用できますか? + +LunaticChat は他のチャットプラグインと併用できますが,競合を避けるために,チャット関連の機能が重複しないように注意してください. + +### LunaticChat のサポートはどこで受けられますか? + +LunaticChat のサポートは,[公式の GitHub Discussion](https://github.com/m1sk9/LunaticChat/discussions) で受けられます. + +### LunaticChat のソースコードはどこで入手できますか? + +LunaticChat のソースコードは,[GitHub](https://github.com/m1sk9/LunaticChat) で公開されています. + +### Spigot / BungeeCord 版の LunaticChat はありますか? + +ありません.対応する予定もありません.Paper / Velocity でご利用ください. + +### LunaticChat はどのようなライセンスで配布されていますか? + +LunaticChat は GNU General Public License v3.0 (GPLv3) の下で配布されています. diff --git a/docs/src/player-guide/channel-chat/about.md b/docs/src/player-guide/channel-chat/about.md new file mode 100644 index 0000000..f15fb17 --- /dev/null +++ b/docs/src/player-guide/channel-chat/about.md @@ -0,0 +1,108 @@ +# チャンネルチャット + +特定のプレイヤー間で,チャットを共有できる機能です. + +::: warning 試験的機能 + +この機能は現在試験的な機能として提供されています.今後のアップデートで仕様が変更される可能性があります. + +::: + +::: tip この機能はサーバーで有効化する必要があります + +チャンネルチャットがサーバーで無効化されている場合,これらの機能は使用できません. + +サーバー管理者にお問い合わせください. + +::: + +## チャンネルを作成する + +チャンネルチャットを利用するには,まずチャットチャンネルを作成する必要があります. + +[`/lc channnel create`](../commands/lc/channel.md#lc-channel-create-チャンネルid-チャンネル名-チャンネルの説明-プライベート設定) コマンドを使用して,チャットチャンネルを作成します. + +``` +/lc channel create <チャンネルID> <チャンネル名> [チャンネルの説明] [プライベート設定] +``` + +- `<チャンネルID>` はチャンネルのIDを指定します. +- `<チャンネル名>` はチャンネルの名前を指定します. +- `[チャンネルの説明]` はチャンネルの説明を指定します (省略可能). + - `/lc channel list` コマンドでチャンネル一覧を表示した際に,説明が表示されます. +- `[プライベート設定]` はチャンネルの公開設定を指定します. + - `true` を指定するとプライベートチャンネルとして作成され,招待されたプレイヤーのみが参加できます. + - `false` を指定するか,省略した場合はパブリックチャンネルとして作成され,誰でも参加できます. + +::: tip チャンネルIDの要件 + +チャンネルIDは次の要件に従う必要があります: + +- 3文字以上,30文字以下であること +- 英数字,アンダースコア(_),ハイフン(-)のみを含むこと + +::: + +::: warning チャンネル名・チャンネルの説明を入力する際の注意点 + +チャンネル名・チャンネルの説明を入力する際は,引数を `"` (ダブルクォーテーション) で囲む必要があります. + +実行例は次のとおりです: + +``` +/lc channel create pvp_channel "PvP大好きクラブ" "PvPが大好きな人たちの集まり" false +``` + +::: + +チャンネルが正常に作成されると,チャットで確認メッセージが表示されます. + +## チャンネルに参加する + +作成されたチャンネルに参加するには,[`/lc channel join`](../commands/lc/channel.md#lc-channel-join-チャンネルid) コマンドを使用します. + +チャンネルに参加すると,チャットモードが全体チャットからチャンネルチャットに切り替わります. + +``` +/lc channel join <チャンネルID> +``` + +## チャンネル一覧を表示する + +参加可能なチャンネル一覧を表示するには,[`/lc channel list`](../commands/lc/channel.md#lc-channel-list) コマンドを使用します. + +チャット欄に参加可能なチャンネルの一覧が表示されます.クリックするか [`/lc channel join`](#チャンネルに参加する) コマンドを使用して,チャンネルに参加できます. + +``` +/lc channel list +``` + +## チャットモード + +LunaticChat では,プレイヤーがチャットを送信する際のモードとして,以下の2種類のチャットモードが存在します: + +1. 全体チャットモード: すべてのプレイヤーとチャットを共有します. +2. チャンネルチャットモード: 参加している特定のチャンネル内のプレイヤーとチャットを共有します. + +チャンネルチャットでは主に `2` のチャットモードが使用されます. + +詳しくは [こちら](./chatmode.md) をご覧ください. + +## アクティブチャンネルとメンバーシップ状態の違い + +LunaticChat では,プレイヤーのアクティブチャンネルとメンバーシップ状態は別々に管理されています. + +- アクティブチャンネル: チャンネルチャットモードで使用されるチャンネル +- メンバーシップ状態: プレイヤーが参加しているチャンネルの一覧 + +アクティブチャンネルは一度に一つのチャンネルのみを指定できます.メンバーシップ状態のチャンネルにアクティブチャンネルを切り替える場合は [`/lc channel switch`](../commands/lc/channel.md#lc-channel-switch-チャンネルid) コマンドを使用します. + +``` +/lc channel switch <チャンネルID> +``` + +メンバーシップ状態のチャンネルからアクティブチャンネルを解除してもチャンネルからは削除されません.チャンネルから退出するにはアクティブチャンネルに切り替えてから [`/lc channel leave`](../commands/lc/channel.md#lc-channel-leave) コマンドを使用します. + +``` +/lc channel leave +``` diff --git a/docs/src/player-guide/channel-chat/chatmode.md b/docs/src/player-guide/channel-chat/chatmode.md new file mode 100644 index 0000000..9e2712d --- /dev/null +++ b/docs/src/player-guide/channel-chat/chatmode.md @@ -0,0 +1,30 @@ +# チャットモード + +チャットモードは LunaticChat におけるプレイヤーがチャットを送信する際のモードを指します.LunaticChat では以下の2種類のチャットモードが存在します. + +1. 全体チャットモード: すべてのプレイヤーとチャットを共有します. +2. チャンネルチャットモード: 参加している特定のチャンネル内のプレイヤーとチャットを共有します. + +## チャットチャットモード + +チャンネルチャットモード中は,全てのチャットが参加しているチャンネルのプレイヤーのみに表示され,全体チャットには表示されません. + +::: tip 一時的に全体チャットを送信する + +チャンネルチャットモード中に,一時的に全体チャットを送信したい場合は,メッセージの先頭に `!` を付けて送信します. + +``` +!こんにちは、みんな元気? +``` + +::: + +## 全体チャットモード + +全体チャットモード中は,サーバー内のすべてのプレイヤーとチャットを共有します.通常の Minecraft チャットと同様の動作をします. + +## 一時的にチャットモードを切り替える + +チャットモードを一時的に切り替えるには,`/chatmode toggle` コマンドを使用します. + +このコマンドで切り替えた場合はチャンネルの入退出なしで,チャットモードを切り替えることができます. diff --git a/docs/src/player-guide/channel-chat/moderation.md b/docs/src/player-guide/channel-chat/moderation.md new file mode 100644 index 0000000..8e0555d --- /dev/null +++ b/docs/src/player-guide/channel-chat/moderation.md @@ -0,0 +1,95 @@ +# チャンネルの管理 + +チャンネルチャットのモデレート機能を使用して,チャンネル内のメンバー行動を管理できます. + +::: danger 注意 + +これらのモデレート機能はあくまで LunaticChat のチャンネルチャットに対して使用できるものです. + +実際にルール違反者に対して処罰が必要な場合は,サーバー管理者に通報することをお勧めします. + +::: + +## モデレート機能の仕様 + +モデレート機能にはいくつかの仕様があります. + +- Bypass 権限を持つプレイヤーは,モデレート機能の影響を受けません. + - つまり,サーバー管理者に対してはこれらの機能を使用できません. +- モデレート機能を使用するには,それぞれのチャンネルのロールとサーバー自体の権限が必要です. +- モデレート機能の効果はチャンネルごとに独立しています. + - 例えば,あるチャンネルで永久追放(BAN)されたプレイヤーは,他のチャンネルでは通常通りチャットできます. + +## ロール + +チャンネルには以下のロールが存在しています. + +- メンバー (Member): チャンネルに参加している通常のプレイヤー +- モデレーター (Moderator): チャンネルのモデレート機能を使用できるプレイヤー +- オーナー (Owner): チャンネルの作成者であり,すべてのモデレート機能を使用できるプレイヤー + +::: tip サーバー管理者によるモデレート + +サーバー管理者は一律で全てのチャンネルにおいてオーナー権限と同じ権限を持ちます. + +::: + +## メンバーを一時的に追放する (Kick) + +メンバーを一時的にチャンネルから追放するには,[`/lc channel kick`](../commands/lc/channel.md#lc-channel-kick-プレイヤーid) コマンドを使用します. + +``` +/lc channel kick <プレイヤーID> +``` + +このコマンドを実行すると,指定したプレイヤーがチャンネルから即座に退出されます. + +ただし,追放されたプレイヤーは再参加が可能です. + +## メンバーを永久に追放する (Ban) + +メンバーを永久にチャンネルから追放するには,[`/lc channel ban`](../commands/lc/channel.md#lc-channel-ban-プレイヤーid) コマンドを使用します. + +``` +/lc channel ban <プレイヤーID> +``` + +このコマンドを実行すると,指定したプレイヤーがチャンネルから即座に退出され,さらに再参加も禁止されます. + +## 永久追放を解除する + +永久追放されたメンバーの追放を解除するには,[`/lc channel unban`](../commands/lc/channel.md#lc-channel-unban-プレイヤーid) コマンドを使用します. + +``` +/lc channel unban <プレイヤーID> +``` + +## モデレーターを任命・解任する + +チャンネルのメンバーをモデレーターに任命/解任するには,[`/lc channel mod`](../commands/lc/channel.md#lc-channel-mod-プレイヤーid) コマンドを使用します. + +``` +/lc channel mod <プレイヤーID> +``` + +このコマンドを実行すると,指定したプレイヤーがモデレーターに任命されます.また任命状態のプレイヤーに対して再度このコマンドを実行すると,モデレーターから解任されます. + +## オーナー権限を譲渡する + +チャンネルのオーナー権限を他のメンバーに譲渡するには,[`/lc channel ownership`](../commands/lc/channel.md#lc-channel-ownership-プレイヤーid) コマンドを使用します. + +``` +/lc channel ownership <プレイヤーID> +``` + +このコマンドを実行すると,指定したプレイヤーに全てのオーナー権限が譲渡されます.元のオーナーはモデレーターになります. + +::: danger 実行時の注意点 + +- オーナー権限の譲渡は不可逆的な操作です. + - つまり,一度譲渡してしまうとオーナー権限を持つプレイヤーが再度譲渡しない限り,元のオーナーがオーナー権限を取り戻すことはできません. + - これはサーバー管理者であってもです. +- オーナー権限を譲渡する相手は,必ずチャンネルのメンバーである必要があります. +- オーナー権限は全てのモデレート機能を使用でき,かつチャンネルを削除できる強力な権限です.譲渡する相手を慎重に選んでください. + +::: diff --git a/docs/src/player-guide/channel-chat/private-channel.md b/docs/src/player-guide/channel-chat/private-channel.md new file mode 100644 index 0000000..eb321de --- /dev/null +++ b/docs/src/player-guide/channel-chat/private-channel.md @@ -0,0 +1,25 @@ +# プライベートチャンネル + +プライベートチャンネルは,特定のユーザーのみが参加できるチャットチャンネルです. + +## プライベートチャンネルの作成 + +プライベートを作成する場合は [`/lc channel create`](../commands/lc/channel.md) コマンドで,プライベート設定引数に `true` を指定します. + +``` +/lc channel create <チャンネルID> <チャンネル名> [チャンネルの説明] [プライベート設定] +``` + +## チャンネルへの招待 + +プライベートチャンネルは `/lc channel list` コマンドでは一覧表示されず, `/lc channel join` コマンドで参加することもできません. + +参加するにはオーナーもしくはモデレーターから招待を受ける必要があります. + +招待するには,[`/lc channel invite`](../commands/lc/channel.md#lc-channel-invite-プレイヤーid) コマンドを使用します. + +``` +/lc channel invite <プレイヤーID> +``` + +招待を受けたプレイヤーは自動でチャンネルに参加します. diff --git a/docs/src/player-guide/commands/lc/channel.md b/docs/src/player-guide/commands/lc/channel.md new file mode 100644 index 0000000..4b96559 --- /dev/null +++ b/docs/src/player-guide/commands/lc/channel.md @@ -0,0 +1,141 @@ +# /lc channel + +### `/lc channel create <チャンネルID> <チャンネル名> [チャンネルの説明] [プライベート設定]` + +| パーミッション | +|------------------------------| +| `lunaticchat.command.lc.channel.create` | + +チャンネルを作成します. + +- `<チャンネルID>` はチャンネルのIDを指定します. +- `<チャンネル名>` はチャンネルの名前を指定します. +- `[チャンネルの説明]` はチャンネルの説明を指定します (省略可能). + - `/lc channel list` コマンドでチャンネル一覧を表示した際に,説明が表示されます. +- `[プライベート設定]` はチャンネルの公開設定を指定します. + - `true` を指定するとプライベートチャンネルとして作成され,招待されたプレイヤーのみが参加できます. + - `false` を指定するか,省略した場合はパブリックチャンネルとして作成され,誰でも参加できます. + +::: warning チャンネル名・チャンネルの説明を入力する際の注意点 + +チャンネル名・チャンネルの説明を入力する際は,引数を `"` (ダブルクォーテーション) で囲む必要があります. + +実行例は次のとおりです: + +``` +/lc channel create pvp_channel "PvP大好きクラブ" "PvPが大好きな人たちの集まり" false +``` + +::: + +### `/lc channel list` + +| パーミッション | +|---------------------------------------| +| `lunaticchat.command.lc.channel.list` | + +チャンネルの一覧を表示します. + +### `/lc channel join <チャンネルID>` + +| パーミッション | +|---------------------------------------| +| `lunaticchat.command.lc.channel.join` | + +指定したチャンネルに参加します. + +### `/lc channel leave` + +| パーミッション | +|----------------------------------------| +| `lunaticchat.command.lc.channel.leave` | + +現在アクティブなチャンネルから退出します. + +### `/lc channel switch <チャンネルID>` + +| パーミッション | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.switch` | + +指定したチャンネルに切り替えます.チャンネルチャットモード中に他のチャンネルに切り替えたい場合に使用します. + +### `/lc channel status` + +| パーミッション | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.status` | + +現在参加・アクティブ状態のチャンネルの情報を表示します. + +### `/lc channel delete <チャンネルID>` + +| パーミッション | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.delete` | + +指定したチャンネルを削除します.チャンネルの作成者(オーナー) である必要があります. + +### `/lc channel info [<チャンネルID>]` + +| パーミッション | +|---------------------------------------| +| `lunaticchat.command.lc.channel.info` | + +指定したチャンネルの情報を表示します. + +引数を指定した場合は現在アクティブ状態のチャンネルの情報を表示します. + +### `/lc channel invite <プレイヤーID>` + +| パーミッション | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.invite` | + +指定したプレイヤーを現在アクティブ状態のチャンネルに招待します. + +### `/lc channel kick <プレイヤーID>` + +| パーミッション | +|---------------------------------------| +| `lunaticchat.command.lc.channel.kick` | + +指定したプレイヤーを現在アクティブ状態のチャンネルから一時的に追放します. + +追放されたプレイヤーはそのチャンネルから即時退出されますが,再参加できます. + +### `/lc channel ban <プレイヤーID>` + +| パーミッション | +|-----------------------------------------| +| `lunaticchat.command.lc.channel.ban` | + +指定したプレイヤーを現在アクティブ状態のチャンネルから永久追放します. + +永久追放されたプレイヤーはそのチャンネルから即時退出され,再参加できません. + +### `/lc channel unban <プレイヤーID>` + +| パーミッション | +|----------------------------------------| +| `lunaticchat.command.lc.channel.unban` | + +指定したプレイヤーの永久追放の解除を行います. + +### `/lc channel mod <プレイヤーID>` + +| パーミッション | +|--------------------------------------| +| `lunaticchat.command.lc.channel.mod` | + +指定したプレイヤーを現在アクティブ状態のチャンネルのモデレーターに昇格/降格させます. + +### `/lc channel ownership <プレイヤーID>` + +| パーミッション | +|--------------------------------------------| +| `lunaticchat.command.lc.channel.ownership` | + +指定したプレイヤーに現在アクティブ状態のチャンネルのオーナー権を譲渡します. + +譲渡後,元のオーナーにはモデレーター権が付与されます. diff --git a/docs/src/player-guide/commands/lc/chatmode.md b/docs/src/player-guide/commands/lc/chatmode.md new file mode 100644 index 0000000..eee6238 --- /dev/null +++ b/docs/src/player-guide/commands/lc/chatmode.md @@ -0,0 +1,17 @@ +# /lc chatmode + +### `/lc chatmode` + +| パーミッション | +|-----------------------------------| +| `lunaticchat.command.lc.chatmode` | + +現在のチャットモードを表示します. + +### `/lc chatmode toggle` + +| パーミッション | +|------------------------------------| +| `lunaticchat.command.lc.chatmode.toggle` | + +チャットモードを切り替えます. diff --git a/docs/src/player-guide/commands/lc/settings.md b/docs/src/player-guide/commands/lc/settings.md new file mode 100644 index 0000000..343ffd5 --- /dev/null +++ b/docs/src/player-guide/commands/lc/settings.md @@ -0,0 +1,19 @@ +# /lc settings + +### `/lc settings [value]` + +| パーミッション | +|-----------------------------------| +| `lunaticchat.command.lc.settings` | + +LunaticChat のプレイヤー設定を管理します.値を指定しなかった場合は設定値が表示されます. + +この設定は UUID で保存されるため, MCID を切り替えても設定が消えることはありません. + +#### 利用可能なキー + +| キー | 説明 | デフォルト値 | +|------------|----------------------------------------------------------|--------| +| `japanese` | ローマ字変換の有効化・無効化を切り替えます. | `true` | +| `notice` | `/tell` や `/reply` でダイレクトメッセージを受信した際に通知を受け取るかどうかを切り替えます. | `true` | +| `chNotice` | チャンネルチャットを受信した際に通知を受け取るかどうかを切り替えます. | `true` | diff --git a/docs/src/player-guide/commands/lc/status.md b/docs/src/player-guide/commands/lc/status.md new file mode 100644 index 0000000..02f75ce --- /dev/null +++ b/docs/src/player-guide/commands/lc/status.md @@ -0,0 +1,9 @@ +# /lc status + +### `/lc status` + +| パーミッション | +|---------------------------------| +| `lunaticchat.command.lc.status` | + +LunaticChat のステータスを表示します. diff --git a/docs/src/player-guide/commands/lcv/status.md b/docs/src/player-guide/commands/lcv/status.md new file mode 100644 index 0000000..320e6fa --- /dev/null +++ b/docs/src/player-guide/commands/lcv/status.md @@ -0,0 +1,9 @@ +# /lcv status + +### `/lcv status` + +| パーミッション | +|------------------------------| +| `lunaticchat.command.lcv.status` | + +現在の LunaticChat の Velocity 連携ステータスを表示します. diff --git a/docs/src/player-guide/commands/reply.md b/docs/src/player-guide/commands/reply.md new file mode 100644 index 0000000..5e0752f --- /dev/null +++ b/docs/src/player-guide/commands/reply.md @@ -0,0 +1,17 @@ +# /reply   + +### `/reply <メッセージ>` + +| パーミッション | エイリアス | +|-----------------------------|-------| +| `lunaticchat.command.reply` | `/r` | + +直近で [`/tell`](tell.md) を使用し,やりとりをしたプレイヤーに対して返信します. + +::: info このコマンドが使用できない場合 + +このコマンドが無効化されている可能性があります (この機能は設定で ON/OFF できるため) + +サーバーの管理者に連絡してください. + +::: diff --git a/docs/src/player-guide/commands/tell.md b/docs/src/player-guide/commands/tell.md new file mode 100644 index 0000000..35edca8 --- /dev/null +++ b/docs/src/player-guide/commands/tell.md @@ -0,0 +1,11 @@ +# /tell + +### `/tell <プレイヤーID> <メッセージ>` + +| パーミッション | エイリアス | +| ---- | ---- | +| `lunaticchat.command.tell` | `/t`, `/msg`, `/m`, `/w`, `/whisper` | + +指定したプレイヤーに対してメッセージを送信します. + +送信されたメッセージをクリックするとこのコマンドがチャット欄に自動入力されます. diff --git a/docs/src/player-guide/direct-message.md b/docs/src/player-guide/direct-message.md new file mode 100644 index 0000000..64fbb95 --- /dev/null +++ b/docs/src/player-guide/direct-message.md @@ -0,0 +1,65 @@ +# ダイレクトメッセージ + +特定のプレイヤーに対してのみメッセージを送信するダイレクトメッセージ機能です. + +## メッセージを送信する + +メッセージを送信するには [`/tell`](./commands/tell.md) コマンドを使用します. + +オンラインプレイヤーに対してのみメッセージを送信できます.オフラインプレイヤーには送信できません. + +``` +/tell +``` + +::: tip 補完機能 + +LunaticChat はチャット入力時にプレイヤー名の補完をサポートしています. + +例えば,`/tell Al` と入力した場合,`Al` で始まるオンラインプレイヤー名が候補として表示されます. + +::: + +::: warning GeyserMC 環境での動作 + +GeyserMC 環境を用いて Minecraft Bedrock Edition から接続しているプレイヤーに機能を提供している場合の動作は保証していません. + +LunaticChat は Minecraft Java Edition / Paper のチャットシステムを前提として設計されているため,GeyserMC 経由での動作に問題が発生する可能性があります.対応の予定はありません. + +::: + +## クイックリプライ機能 + +LunaticChat では,直前にダイレクトメッセージを送信した相手に対して素早く返信できるクイックリプライ機能が提供されています. + +クイックリプライを使用するには [`/reply`](./commands/reply.md) コマンドを使用します. + +``` +/reply +``` + +::: warning このコマンドが使用できない場合 + +このコマンドが無効化されている可能性があります (この機能は設定で ON/OFF できるため) + +サーバーの管理者に連絡してください. + +::: + +## 通知設定 + +v0.4.0 以降,ダイレクトメッセージの通知設定を変更できるようになりました. + +ダイレクトメッセージを受信・送信時に通知音がなるようになります. + +通知設定を変更するには [`/lc settings`](./commands/lc/settings.md) コマンドを使用します. + +::: tip クライアントでの音量設定 + +この通知音はクライアント上の **プレイヤー** カテゴリーの音量設定に依存します. + +LunaticChat の通知音が聞こえない場合は,クライアントの音量設定を確認してください. + +![](../assets/direct-message/minecraft-player-sound.png) + +::: diff --git a/docs/src/player-guide/getting-started.md b/docs/src/player-guide/getting-started.md new file mode 100644 index 0000000..440e287 --- /dev/null +++ b/docs/src/player-guide/getting-started.md @@ -0,0 +1,77 @@ +# プレイヤーガイド: はじめる + +LunaticChat が導入されたサーバーに参加したプレイヤー向けのガイドです. + +::: info サーバー管理者の方へ + +プラグインの導入・設定方法については [管理者ガイド: はじめる](../admin-guide/getting-started.md) を参照してください. + +::: + +## LunaticChat でできること + +LunaticChat は,Minecraft サーバーのチャット機能を拡張するプラグインです.以下の機能が利用できます: + +- **ダイレクトメッセージ**: 特定のプレイヤーへ 1 対 1 でメッセージを送信できます +- **クイック返信**: 直前にメッセージを送ってきた相手に,コマンド一つで素早く返信できます +- **チャンネルチャット**: プレイヤー同士でチャンネルを作成・参加し,特定のメンバー間でのみチャットができます +- **ローマ字変換**: ローマ字で入力したメッセージを,自動的にひらがなに変換します + +::: tip + +利用できる機能はサーバーの設定によって異なる場合があります.詳しくはサーバー管理者にお問い合わせください. + +::: + +## ダイレクトメッセージを送る + +[`/tell`](./commands/tell.md) コマンドを使用して,特定のプレイヤーにメッセージを送信できます. + +``` +/tell <プレイヤー名> <メッセージ> +``` + +メッセージを受け取った後,[`/reply`](./commands/reply.md) コマンドで素早く返信できます. + +``` +/reply <メッセージ> +``` + +詳しくは [ダイレクトメッセージ](./direct-message.md) を参照してください. + +## チャンネルチャットに参加する + +チャンネルチャットでは,特定のメンバー間だけで会話できるチャンネルを作成・参加できます. + +参加可能なチャンネルは [`/lc channel list`](./commands/lc/channel.md) で確認できます. + +``` +/lc channel list +``` + +チャンネルに参加するには [`/lc channel join`](./commands/lc/channel.md) を使用します. + +``` +/lc channel join <チャンネルID> +``` + +詳しくは [チャンネルチャット](./channel-chat/about.md) を参照してください. + +## ローマ字変換を使う + +LunaticChat はローマ字で入力したメッセージを自動的にひらがなに変換できます. + +ローマ字変換のオン / オフは [`/lc settings`](./commands/lc/settings.md) コマンドで切り替えられます. + +``` +/lc settings romanization +``` + +詳しくは [ローマ字変換](./japanese-romanization.md) を参照してください. + +## 次は? + +- [チャンネルチャット](./channel-chat/about.md): チャンネルチャットの使い方を確認します +- [ダイレクトメッセージ](./direct-message.md): ダイレクトメッセージの使い方を確認します +- [ローマ字変換](./japanese-romanization.md): ローマ字変換機能の詳細を確認します +- [コマンド一覧](./index.md): LunaticChat で使用できるコマンド一覧を確認します diff --git a/docs/src/player-guide/index.md b/docs/src/player-guide/index.md new file mode 100644 index 0000000..621a347 --- /dev/null +++ b/docs/src/player-guide/index.md @@ -0,0 +1,24 @@ +# プレイヤー向けリファレンス + +このページは LunaticChat を使用するプレイヤー向けのリファレンスです。 + +プラグインの導入方法や設定方法については [ガイド](../admin-guide/getting-started.md) を参照してください。 + +## 凡例 + +コマンドリファレンスで使用される凡例は以下の通りです。 + +- `<引数>`: 必須の引数を示します.実行には必ず指定する必要があります. +- `[引数]`: 任意の引数を示します.実行時に省略可能です. +- `|`: 複数の選択肢がある場合に使用します.例えば,`` は `yes` または `no` のいずれかを指定することを意味します. +- `...` : 複数の引数を指定できることを示します.例えば,`...` は複数のアイテムを指定できることを意味します. + +## ラベル + +以下のようなラベルが記載されている場合は,次のような意味を持ちます. + +- : この機能が LunaticChat バージョン 0.1.0 で導入されたことを示します. +- : この機能が Paper 環境で利用可能であることを示します. +- : この機能が Velocity 環境で利用可能であることを示します. +- : この機能が Paper / Velocity 環境で利用可能であることを示します. + diff --git a/docs/src/player-guide/japanese-romanization.md b/docs/src/player-guide/japanese-romanization.md new file mode 100644 index 0000000..cc982f0 --- /dev/null +++ b/docs/src/player-guide/japanese-romanization.md @@ -0,0 +1,101 @@ +# ローマ字変換 + +LunaticChat では、日本語のテキストをローマ字に変換する機能が提供されています. + +## 有効化・無効化 + +ローマ字変換機能はデフォルトで有効化されています. + +[`/lc settings`](./commands/lc/settings.md) コマンドを使用して,ローマ字変換の設定を切り替えることができます. + +## 変換の仕組み + +LunaticChat はプレイヤーからのテキストを以下の手順で変換を行います. + +1. プレイヤーからのテキストがローマ字で構成されているかを検証する +2. メモリキャッシュから該当のフレーズがあるかどうかを調べる + 1. ここで該当フレーズがヒットした場合はそれをサーバーに返す +3. メモリキャッシュに存在していない場合は,ローマ字からひらがなに変換する +4. 変換した文字列を Google IME API へ送り,人が読める形に変換する +5. メモリキャッシュに保存し,それをサーバーに返す + +``` +┌───────────────────────────────────────────────────┐ +│ User Input │ +│ (Romanji Text) │ +└─────────────────────┬─────────────────────────────┘ + │ + ▼ +┌───────────────────────────────────────────────────┐ +│ RomanjiConverter │ +│ ┌───────────────────────────────────────────┐ │ +│ │ 1. Check Memory Cache │ │ +│ │ └─→ Hit: Return immediately │ │ +│ │ │ │ +│ │ 2. Call Google IME API │ │ +│ │ │ │ +│ │ 3. Store in Memory Cache │ │ +│ │ │ │ +│ │ 4. Queue for Disk Save (async) │ │ +│ └───────────────────────────────────────────┘ │ +└─────────────────────┬─────────────────────────────┘ + │ + ▼ +┌───────────────────────────────────────────────────┐ +│ Converted Text │ +│ (Japanese Text) │ +└───────────────────────────────────────────────────┘ +``` + +::: tip ファイルへの保存 + +メモリキャッシュの内容は負荷にならないよう,設定した秒毎・サーバ停止後にファイルキャッシュへ自動でセーブします. + +::: + +キャッシュファイルに関する情報は [こちら](../admin-guide/cache.md) をご覧ください. + +## 改善されたキャッシュ戦略 + +v0.5.0 以降,LunaticChat はローマ字変換のキャッシュ戦略を改善しました. + +プレイヤーのチャットを単語ごとにキャッシュするようになり,より効率的に変換を行えるようになりました. + +例えば,以下のような長文のチャットがあるとします. + +> konnichiwa minna ohayou gozaimasu kyou wa totemo ii tenki desu ne bokutachi wa issho ni asobi ni ikimashou kono atarashii game wo tameshite mitai to omoimasu sore wa totemo omoshiroi to kiite imasu arigatou gozaimasu mata ne + +LunaticChat はこの文章を一度に変換するのではなく,単語ごとに分割してキャッシュを行います. + +これにより,例えば「konnichiwa」や「minna」などの単語が既にキャッシュされている場合,それらの単語は再度変換する必要がなくなり,変換速度が大幅に向上します. + +### 1回目の変換 + +``` +入力: "konnichiwa minna ohayou gozaimasu" + +konnichiwa → API → こんにちは (キャッシュ保存) +minna → API → みんな (キャッシュ保存) +ohayou → API → おはよう (キャッシュ保存) +gozaimasu → API → ございます (キャッシュ保存) + +結果: "こんにちは みんな おはよう ございます" +APIコール: 4回 +``` + +### 2回目の変換 + +``` +入力: "ohayou gozaimasu kyou wa ii tenki desu" + +ohayou → キャッシュヒット → おはよう +gozaimasu → キャッシュヒット → ございます +kyou → API → 今日 (キャッシュ保存) +wa → API → は (キャッシュ保存) +ii → API → いい (キャッシュ保存) +tenki → API → 天気 (キャッシュ保存) +desu → API → です (キャッシュ保存) + +結果: "おはよう ございます 今日 は いい 天気 です" +APIコール: 5回(キャッシュヒット: 2回) +``` diff --git a/docs/src/reference/commands/lc/channel.md b/docs/src/reference/commands/lc/channel.md deleted file mode 100644 index 4b96559..0000000 --- a/docs/src/reference/commands/lc/channel.md +++ /dev/null @@ -1,141 +0,0 @@ -# /lc channel - -### `/lc channel create <チャンネルID> <チャンネル名> [チャンネルの説明] [プライベート設定]` - -| パーミッション | -|------------------------------| -| `lunaticchat.command.lc.channel.create` | - -チャンネルを作成します. - -- `<チャンネルID>` はチャンネルのIDを指定します. -- `<チャンネル名>` はチャンネルの名前を指定します. -- `[チャンネルの説明]` はチャンネルの説明を指定します (省略可能). - - `/lc channel list` コマンドでチャンネル一覧を表示した際に,説明が表示されます. -- `[プライベート設定]` はチャンネルの公開設定を指定します. - - `true` を指定するとプライベートチャンネルとして作成され,招待されたプレイヤーのみが参加できます. - - `false` を指定するか,省略した場合はパブリックチャンネルとして作成され,誰でも参加できます. - -::: warning チャンネル名・チャンネルの説明を入力する際の注意点 - -チャンネル名・チャンネルの説明を入力する際は,引数を `"` (ダブルクォーテーション) で囲む必要があります. - -実行例は次のとおりです: - -``` -/lc channel create pvp_channel "PvP大好きクラブ" "PvPが大好きな人たちの集まり" false -``` - -::: - -### `/lc channel list` - -| パーミッション | -|---------------------------------------| -| `lunaticchat.command.lc.channel.list` | - -チャンネルの一覧を表示します. - -### `/lc channel join <チャンネルID>` - -| パーミッション | -|---------------------------------------| -| `lunaticchat.command.lc.channel.join` | - -指定したチャンネルに参加します. - -### `/lc channel leave` - -| パーミッション | -|----------------------------------------| -| `lunaticchat.command.lc.channel.leave` | - -現在アクティブなチャンネルから退出します. - -### `/lc channel switch <チャンネルID>` - -| パーミッション | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.switch` | - -指定したチャンネルに切り替えます.チャンネルチャットモード中に他のチャンネルに切り替えたい場合に使用します. - -### `/lc channel status` - -| パーミッション | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.status` | - -現在参加・アクティブ状態のチャンネルの情報を表示します. - -### `/lc channel delete <チャンネルID>` - -| パーミッション | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.delete` | - -指定したチャンネルを削除します.チャンネルの作成者(オーナー) である必要があります. - -### `/lc channel info [<チャンネルID>]` - -| パーミッション | -|---------------------------------------| -| `lunaticchat.command.lc.channel.info` | - -指定したチャンネルの情報を表示します. - -引数を指定した場合は現在アクティブ状態のチャンネルの情報を表示します. - -### `/lc channel invite <プレイヤーID>` - -| パーミッション | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.invite` | - -指定したプレイヤーを現在アクティブ状態のチャンネルに招待します. - -### `/lc channel kick <プレイヤーID>` - -| パーミッション | -|---------------------------------------| -| `lunaticchat.command.lc.channel.kick` | - -指定したプレイヤーを現在アクティブ状態のチャンネルから一時的に追放します. - -追放されたプレイヤーはそのチャンネルから即時退出されますが,再参加できます. - -### `/lc channel ban <プレイヤーID>` - -| パーミッション | -|-----------------------------------------| -| `lunaticchat.command.lc.channel.ban` | - -指定したプレイヤーを現在アクティブ状態のチャンネルから永久追放します. - -永久追放されたプレイヤーはそのチャンネルから即時退出され,再参加できません. - -### `/lc channel unban <プレイヤーID>` - -| パーミッション | -|----------------------------------------| -| `lunaticchat.command.lc.channel.unban` | - -指定したプレイヤーの永久追放の解除を行います. - -### `/lc channel mod <プレイヤーID>` - -| パーミッション | -|--------------------------------------| -| `lunaticchat.command.lc.channel.mod` | - -指定したプレイヤーを現在アクティブ状態のチャンネルのモデレーターに昇格/降格させます. - -### `/lc channel ownership <プレイヤーID>` - -| パーミッション | -|--------------------------------------------| -| `lunaticchat.command.lc.channel.ownership` | - -指定したプレイヤーに現在アクティブ状態のチャンネルのオーナー権を譲渡します. - -譲渡後,元のオーナーにはモデレーター権が付与されます. diff --git a/docs/src/reference/commands/lc/chatmode.md b/docs/src/reference/commands/lc/chatmode.md deleted file mode 100644 index eee6238..0000000 --- a/docs/src/reference/commands/lc/chatmode.md +++ /dev/null @@ -1,17 +0,0 @@ -# /lc chatmode - -### `/lc chatmode` - -| パーミッション | -|-----------------------------------| -| `lunaticchat.command.lc.chatmode` | - -現在のチャットモードを表示します. - -### `/lc chatmode toggle` - -| パーミッション | -|------------------------------------| -| `lunaticchat.command.lc.chatmode.toggle` | - -チャットモードを切り替えます. diff --git a/docs/src/reference/commands/lc/settings.md b/docs/src/reference/commands/lc/settings.md deleted file mode 100644 index 343ffd5..0000000 --- a/docs/src/reference/commands/lc/settings.md +++ /dev/null @@ -1,19 +0,0 @@ -# /lc settings - -### `/lc settings [value]` - -| パーミッション | -|-----------------------------------| -| `lunaticchat.command.lc.settings` | - -LunaticChat のプレイヤー設定を管理します.値を指定しなかった場合は設定値が表示されます. - -この設定は UUID で保存されるため, MCID を切り替えても設定が消えることはありません. - -#### 利用可能なキー - -| キー | 説明 | デフォルト値 | -|------------|----------------------------------------------------------|--------| -| `japanese` | ローマ字変換の有効化・無効化を切り替えます. | `true` | -| `notice` | `/tell` や `/reply` でダイレクトメッセージを受信した際に通知を受け取るかどうかを切り替えます. | `true` | -| `chNotice` | チャンネルチャットを受信した際に通知を受け取るかどうかを切り替えます. | `true` | diff --git a/docs/src/reference/commands/lc/status.md b/docs/src/reference/commands/lc/status.md deleted file mode 100644 index 02f75ce..0000000 --- a/docs/src/reference/commands/lc/status.md +++ /dev/null @@ -1,9 +0,0 @@ -# /lc status - -### `/lc status` - -| パーミッション | -|---------------------------------| -| `lunaticchat.command.lc.status` | - -LunaticChat のステータスを表示します. diff --git a/docs/src/reference/commands/lcv/status.md b/docs/src/reference/commands/lcv/status.md deleted file mode 100644 index 320e6fa..0000000 --- a/docs/src/reference/commands/lcv/status.md +++ /dev/null @@ -1,9 +0,0 @@ -# /lcv status - -### `/lcv status` - -| パーミッション | -|------------------------------| -| `lunaticchat.command.lcv.status` | - -現在の LunaticChat の Velocity 連携ステータスを表示します. diff --git a/docs/src/reference/commands/reply.md b/docs/src/reference/commands/reply.md deleted file mode 100644 index 5e0752f..0000000 --- a/docs/src/reference/commands/reply.md +++ /dev/null @@ -1,17 +0,0 @@ -# /reply   - -### `/reply <メッセージ>` - -| パーミッション | エイリアス | -|-----------------------------|-------| -| `lunaticchat.command.reply` | `/r` | - -直近で [`/tell`](tell.md) を使用し,やりとりをしたプレイヤーに対して返信します. - -::: info このコマンドが使用できない場合 - -このコマンドが無効化されている可能性があります (この機能は設定で ON/OFF できるため) - -サーバーの管理者に連絡してください. - -::: diff --git a/docs/src/reference/commands/tell.md b/docs/src/reference/commands/tell.md deleted file mode 100644 index 35edca8..0000000 --- a/docs/src/reference/commands/tell.md +++ /dev/null @@ -1,11 +0,0 @@ -# /tell - -### `/tell <プレイヤーID> <メッセージ>` - -| パーミッション | エイリアス | -| ---- | ---- | -| `lunaticchat.command.tell` | `/t`, `/msg`, `/m`, `/w`, `/whisper` | - -指定したプレイヤーに対してメッセージを送信します. - -送信されたメッセージをクリックするとこのコマンドがチャット欄に自動入力されます. diff --git a/docs/src/reference/index.md b/docs/src/reference/index.md deleted file mode 100644 index 0563bca..0000000 --- a/docs/src/reference/index.md +++ /dev/null @@ -1,24 +0,0 @@ -# プレイヤー向けリファレンス - -このページは LunaticChat を使用するプレイヤー向けのリファレンスです。 - -プラグインの導入方法や設定方法については [ガイド](../guide/getting-started.md) を参照してください。 - -## 凡例 - -コマンドリファレンスで使用される凡例は以下の通りです。 - -- `<引数>`: 必須の引数を示します.実行には必ず指定する必要があります. -- `[引数]`: 任意の引数を示します.実行時に省略可能です. -- `|`: 複数の選択肢がある場合に使用します.例えば,`` は `yes` または `no` のいずれかを指定することを意味します. -- `...` : 複数の引数を指定できることを示します.例えば,`...` は複数のアイテムを指定できることを意味します. - -## ラベル - -以下のようなラベルが記載されている場合は,次のような意味を持ちます. - -- : この機能が LunaticChat バージョン 0.1.0 で導入されたことを示します. -- : この機能が Paper 環境で利用可能であることを示します. -- : この機能が Velocity 環境で利用可能であることを示します. -- : この機能が Paper / Velocity 環境で利用可能であることを示します. - diff --git a/docs/src/reference/permissions.md b/docs/src/reference/permissions.md deleted file mode 100644 index 5704a50..0000000 --- a/docs/src/reference/permissions.md +++ /dev/null @@ -1,179 +0,0 @@ -# パーミッション - -LuckPerms を使用した設定方法に関する詳細は [LuckPerms Wiki](https://luckperms.net/wiki/Home) を参照してください. - -## `lunaticchat.*` - -### `lunaticchat.spy` - -- Default: `OP` - -各種プレイヤー間のやり取りを可視化します. - -この権限を持つプレイヤーは他プレイヤーの [`/tell`](commands/tell.md) / [`/reply`](commands/reply.md) でのメッセージ・全チャンネルチャットがブロードキャストされます. - -### `lunaticchat.noticeUpdate` - -- Default: `OP` - -LunaticChat のアップデート通知を受け取ります. - -[受け取るには `checkForUpdates` を有効にしておく](../guide/admin/configuration.md#checkforupdates) 必要があります. - -### `lunaticchat.channelbypass` - -- Default: `OP` - -各チャンネルのモデレート機能やプライベートチャンネルに対する制限を無視します. - -## `lunaticchat.command.*` - -### `lunaticchat.command.tell` - -- Default: `non OP` - -[`/tell`](commands/tell.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.reply` - -- Default: `non OP` - -[`/reply`](commands/reply.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc` - -- Default: `non OP` - -`/lc` コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.settings` - -- Default: `non OP` - -[`/lc settings`](commands/lc/settings.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.status` - -- Default: `non OP` - -[`/lc status`](commands/lc/status.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel` - -- Default: `non OP` - -[`/lc channel`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.create` - -- Default: `non OP` - -[`/lc channel create`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.list` - -- Default: `non OP` - -[`/lc channel list`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.join` - -- Default: `non OP` - -[`/lc channel join`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.leave` - -- Default: `non OP` - -[`/lc channel leave`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.switch` - -- Default: `non OP` - -[`/lc channel switch`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.status` - -- Default: `non OP` - -[`/lc channel status`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.info` - -- Default: `non OP` - -[`/lc channel info`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.delete` - -- Default: `non OP` - -[`/lc channel delete`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.invite` - -- Default: `non OP` - -[`/lc channel invite`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.kick` - -- Default: `non OP` - -[`/lc channel kick`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.ban` - -- Default: `non OP` - -[`/lc channel ban`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.unban` - -- Default: `non OP` - -[`/lc channel unban`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.mod` - -- Default: `non OP` - -[`/lc channel mod`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.channel.ownership` - -- Default: `non OP` - -[`/lc channel ownership`](commands/lc/channel.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.chatmode` - -- Default: `non OP` - -[`/lc chatmode`](commands/lc/chatmode.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lc.chatmode.toggle` - -- Default: `non OP` - -[`/lc chatmode toggle`](commands/lc/chatmode.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.lcv.status` - -- Default: `OP` - -[`/lcv status`](commands/lcv/status.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.jp` - -- Default: `non OP` - -[`/jp`](commands/jp.md) コマンドの使用を切り替えます. - -### `lunaticchat.command.notice` - -- Default: `non OP` - -[`/notice`](commands/notice.md) コマンドの使用を切り替えます. -- cgit v1.2.1