diff options
| author | Sho Sakuma <me@m1sk9.dev> | 2026-02-23 18:57:05 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-23 18:57:05 +0900 |
| commit | f56d42a478c0dfefe8b2a5d73e483d0ad11e1e89 (patch) | |
| tree | 70f28be9cec5a06eec88a6049fe374c85ed0f5d2 /docs/src/en/guide | |
| parent | 59a7e742fe52afba246ff2e4dce9753dd1468e05 (diff) | |
| parent | 58cd5abbbf258dee0c6aa83326ebf86076efa07e (diff) | |
| download | LunaticChat-f56d42a478c0dfefe8b2a5d73e483d0ad11e1e89.tar.gz LunaticChat-f56d42a478c0dfefe8b2a5d73e483d0ad11e1e89.tar.bz2 LunaticChat-f56d42a478c0dfefe8b2a5d73e483d0ad11e1e89.zip | |
Merge pull request #115 from m1sk9/docs/replace-oxc_and_folia
docs: Replace oxc, Add Folia guide
Diffstat (limited to 'docs/src/en/guide')
| -rw-r--r-- | docs/src/en/guide/about.md | 60 | ||||
| -rw-r--r-- | docs/src/en/guide/admin/cache.md | 41 | ||||
| -rw-r--r-- | docs/src/en/guide/admin/channel-chat/introduction.md | 74 | ||||
| -rw-r--r-- | docs/src/en/guide/admin/channel-chat/logs.md | 119 | ||||
| -rw-r--r-- | docs/src/en/guide/admin/configuration.md | 326 | ||||
| -rw-r--r-- | docs/src/en/guide/admin/management-data.md | 107 | ||||
| -rw-r--r-- | docs/src/en/guide/admin/velocity.md | 78 | ||||
| -rw-r--r-- | docs/src/en/guide/getting-started.md | 42 | ||||
| -rw-r--r-- | docs/src/en/guide/player/channel-chat.md | 13 | ||||
| -rw-r--r-- | docs/src/en/guide/player/channel-chat/about.md | 112 | ||||
| -rw-r--r-- | docs/src/en/guide/player/channel-chat/chatmode.md | 30 | ||||
| -rw-r--r-- | docs/src/en/guide/player/channel-chat/moderation.md | 95 | ||||
| -rw-r--r-- | docs/src/en/guide/player/channel-chat/private-channel.md | 25 | ||||
| -rw-r--r-- | docs/src/en/guide/player/direct-message.md | 65 | ||||
| -rw-r--r-- | docs/src/en/guide/player/japanese-romanization.md | 101 |
15 files changed, 0 insertions, 1288 deletions
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 <Badge type="tip" text="v0.7.0" /> - -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) <Badge type="tip" text="v0.8.0" /> - -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 <Badge type="tip" text="v0.6.0" /> <Badge type="warning" text="Experimental" /> - -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 <Badge type="tip" text="v0.6.0" /> <Badge type="warning" text="Experimental" /> - -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-id> <channel-name> [channel-description] [private-setting] -``` - -- `<channel-id>` specifies the channel ID. -- `<channel-name>` 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 <channel-id> -``` - -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 <channel-id> -``` - -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 <player ID> -``` - -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 <player ID> -``` - -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 <player ID> -``` - -## 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 <player ID> -``` - -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 <player ID> -``` - -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 ID> <channel name> [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 <player ID> -``` - -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 <Badge type="tip" text="v0.1.0" /> - -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 <player> <message> -``` - -::: 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 <Badge type="tip" text="v0.1.0" /> - -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 <message> -``` - -::: 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 <Badge type="tip" text="v0.4.0" /> - -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. - - - -::: 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 <Badge type="tip" text="v0.1.0" /> <Badge type="tip" text="Paper" /> - -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 <Badge type="tip" text="v0.5.0" /> - -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) -``` |
