summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-01-26 02:58:23 +0900
committerGitHub <noreply@github.com>2026-01-26 02:58:23 +0900
commit18a4bbc4ba1a6766af920fb0849215f058ff260e (patch)
treec570633f29f2398cb263e2eb90a7d56f0ea41e78 /docs
parent0fb8f4c92ad5dd7d20778de862b4d12f67f71d5e (diff)
parentc7714add1934baf55a5e6268b1a70780eaa84fea (diff)
downloadLunaticChat-18a4bbc4ba1a6766af920fb0849215f058ff260e.tar.gz
LunaticChat-18a4bbc4ba1a6766af920fb0849215f058ff260e.tar.bz2
LunaticChat-18a4bbc4ba1a6766af920fb0849215f058ff260e.zip
Merge pull request #69 from m1sk9/feat-core-channel-chat
feat: Core Channel Features (Phase 1)
Diffstat (limited to 'docs')
-rw-r--r--docs/.vitepress/config.mts3
-rw-r--r--docs/.vitepress/config/en.ts16
-rw-r--r--docs/.vitepress/config/ja.ts16
-rw-r--r--docs/.vitepress/public/favicon.ico (renamed from docs/src/public/favicon.ico)bin4286 -> 4286 bytes
-rw-r--r--docs/.vitepress/public/icon.png (renamed from docs/src/public/icon.png)bin122601 -> 122601 bytes
-rw-r--r--docs/bun.lock114
-rw-r--r--docs/src/assets/direct-message/minecraft-player-sound.png (renamed from docs/src/public/direct-message/minecraft-player-sound.png)bin1609414 -> 1609414 bytes
-rw-r--r--docs/src/en/guide/admin/configuration.md21
-rw-r--r--docs/src/en/guide/player/channel-chat/about.md112
-rw-r--r--docs/src/en/guide/player/channel-chat/chatmode.md30
-rw-r--r--docs/src/en/guide/player/direct-message.md2
-rw-r--r--docs/src/en/reference/commands/lc/channel.md77
-rw-r--r--docs/src/en/reference/commands/lc/chatmode.md17
-rw-r--r--docs/src/en/reference/commands/lc/settings.md2
-rw-r--r--docs/src/en/reference/permissions.md66
-rw-r--r--docs/src/guide/admin/configuration.md21
-rw-r--r--docs/src/guide/player/channel-chat.md13
-rw-r--r--docs/src/guide/player/channel-chat/about.md112
-rw-r--r--docs/src/guide/player/channel-chat/chatmode.md30
-rw-r--r--docs/src/guide/player/direct-message.md2
-rw-r--r--docs/src/reference/commands/lc/channel.md78
-rw-r--r--docs/src/reference/commands/lc/chatmode.md17
-rw-r--r--docs/src/reference/commands/lc/settings.md8
-rw-r--r--docs/src/reference/permissions.md66
24 files changed, 744 insertions, 79 deletions
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index 7e314f0..9e1f90f 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -9,6 +9,9 @@ export default defineConfig({
cleanUrls: true,
srcDir: './src',
outDir: './dist',
+ vite: {
+ publicDir: '../.vitepress/public',
+ },
head: [['link', { rel: 'icon', href: '/favicon.ico' }]],
themeConfig: {
socialLinks: [
diff --git a/docs/.vitepress/config/en.ts b/docs/.vitepress/config/en.ts
index 0f83c9e..6aec245 100644
--- a/docs/.vitepress/config/en.ts
+++ b/docs/.vitepress/config/en.ts
@@ -37,7 +37,13 @@ export const en: DefaultTheme.Config = {
items: [
{
text: 'Channel Chat',
- link: '/en/guide/player/channel-chat',
+ link: '/en/guide/player/channel-chat/about',
+ items: [
+ {
+ text: 'Chat Mode',
+ link: '/en/guide/player/channel-chat/chatmode',
+ }
+ ]
},
{
text: 'Direct Messages',
@@ -98,6 +104,14 @@ export const en: DefaultTheme.Config = {
text: '/lc status',
link: '/en/reference/commands/lc/status',
},
+ {
+ text: '/lc channel',
+ link: '/en/reference/commands/lc/channel',
+ },
+ {
+ text: '/lc chatmode',
+ link: '/en/reference/commands/lc/chatmode',
+ },
],
},
],
diff --git a/docs/.vitepress/config/ja.ts b/docs/.vitepress/config/ja.ts
index 5264820..013b0d3 100644
--- a/docs/.vitepress/config/ja.ts
+++ b/docs/.vitepress/config/ja.ts
@@ -37,7 +37,13 @@ export const ja: DefaultTheme.Config = {
items: [
{
text: 'チャンネルチャット',
- link: '/guide/player/channel-chat',
+ link: "/guide/player/channel-chat/about",
+ items: [
+ {
+ text: 'チャットモード',
+ link: '/guide/player/channel-chat/chatmode',
+ }
+ ]
},
{
text: 'ダイレクトメッセージ',
@@ -98,6 +104,14 @@ export const ja: DefaultTheme.Config = {
text: '/lc status',
link: '/reference/commands/lc/status',
},
+ {
+ text: '/lc channel',
+ link: '/reference/commands/lc/channel',
+ },
+ {
+ text: '/lc chatmode',
+ link: '/reference/commands/lc/chatmode',
+ },
],
},
],
diff --git a/docs/src/public/favicon.ico b/docs/.vitepress/public/favicon.ico
index 46c0cad..46c0cad 100644
--- a/docs/src/public/favicon.ico
+++ b/docs/.vitepress/public/favicon.ico
Binary files differ
diff --git a/docs/src/public/icon.png b/docs/.vitepress/public/icon.png
index 064445a..064445a 100644
--- a/docs/src/public/icon.png
+++ b/docs/.vitepress/public/icon.png
Binary files differ
diff --git a/docs/bun.lock b/docs/bun.lock
index 6374c97..d62af2c 100644
--- a/docs/bun.lock
+++ b/docs/bun.lock
@@ -10,7 +10,7 @@
},
},
"packages": {
- "@algolia/abtesting": ["@algolia/abtesting@1.12.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-oWknd6wpfNrmRcH0vzed3UPX0i17o4kYLM5OMITyMVM2xLgaRbIafoxL0e8mcrNNb0iORCJA0evnNDKRYth5WQ=="],
+ "@algolia/abtesting": ["@algolia/abtesting@1.13.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-Zrqam12iorp3FjiKMXSTpedGYznZ3hTEOAr2oCxI8tbF8bS1kQHClyDYNq/eV0ewMNLyFkgZVWjaS+8spsOYiQ=="],
"@algolia/autocomplete-core": ["@algolia/autocomplete-core@1.17.7", "", { "dependencies": { "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", "@algolia/autocomplete-shared": "1.17.7" } }, "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q=="],
@@ -20,39 +20,39 @@
"@algolia/autocomplete-shared": ["@algolia/autocomplete-shared@1.17.7", "", { "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg=="],
- "@algolia/client-abtesting": ["@algolia/client-abtesting@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-oRSUHbylGIuxrlzdPA8FPJuwrLLRavOhAmFGgdAvMcX47XsyM+IOGa9tc7/K5SPvBqn4nhppOCEz7BrzOPWc4A=="],
+ "@algolia/client-abtesting": ["@algolia/client-abtesting@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-aOpsdlgS9xTEvz47+nXmw8m0NtUiQbvGWNuSEb7fA46iPL5FxOmOUZkh8PREBJpZ0/H8fclSc7BMJCVr+Dn72w=="],
- "@algolia/client-analytics": ["@algolia/client-analytics@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-EPBN2Oruw0maWOF4OgGPfioTvd+gmiNwx0HmD9IgmlS+l75DatcBkKOPNJN+0z3wBQWUO5oq602ATxIfmTQ8bA=="],
+ "@algolia/client-analytics": ["@algolia/client-analytics@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-EcF4w7IvIk1sowrO7Pdy4Ako7x/S8+nuCgdk6En+u5jsaNQM4rTT09zjBPA+WQphXkA2mLrsMwge96rf6i7Mow=="],
- "@algolia/client-common": ["@algolia/client-common@5.46.2", "", {}, "sha512-Hj8gswSJNKZ0oyd0wWissqyasm+wTz1oIsv5ZmLarzOZAp3vFEda8bpDQ8PUhO+DfkbiLyVnAxsPe4cGzWtqkg=="],
+ "@algolia/client-common": ["@algolia/client-common@5.47.0", "", {}, "sha512-Wzg5Me2FqgRDj0lFuPWFK05UOWccSMsIBL2YqmTmaOzxVlLZ+oUqvKbsUSOE5ud8Fo1JU7JyiLmEXBtgDKzTwg=="],
- "@algolia/client-insights": ["@algolia/client-insights@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-6dBZko2jt8FmQcHCbmNLB0kCV079Mx/DJcySTL3wirgDBUH7xhY1pOuUTLMiGkqM5D8moVZTvTdRKZUJRkrwBA=="],
+ "@algolia/client-insights": ["@algolia/client-insights@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-Ci+cn/FDIsDxSKMRBEiyKrqybblbk8xugo6ujDN1GSTv9RIZxwxqZYuHfdLnLEwLlX7GB8pqVyqrUSlRnR+sJA=="],
- "@algolia/client-personalization": ["@algolia/client-personalization@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-1waE2Uqh/PHNeDXGn/PM/WrmYOBiUGSVxAWqiJIj73jqPqvfzZgzdakHscIVaDl6Cp+j5dwjsZ5LCgaUr6DtmA=="],
+ "@algolia/client-personalization": ["@algolia/client-personalization@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-gsLnHPZmWcX0T3IigkDL2imCNtsQ7dR5xfnwiFsb+uTHCuYQt+IwSNjsd8tok6HLGLzZrliSaXtB5mfGBtYZvQ=="],
- "@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-EgOzTZkyDcNL6DV0V/24+oBJ+hKo0wNgyrOX/mePBM9bc9huHxIY2352sXmoZ648JXXY2x//V1kropF/Spx83w=="],
+ "@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-PDOw0s8WSlR2fWFjPQldEpmm/gAoUgLigvC3k/jCSi/DzigdGX6RdC0Gh1RR1P8Cbk5KOWYDuL3TNzdYwkfDyA=="],
- "@algolia/client-search": ["@algolia/client-search@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-ZsOJqu4HOG5BlvIFnMU0YKjQ9ZI6r3C31dg2jk5kMWPSdhJpYL9xa5hEe7aieE+707dXeMI4ej3diy6mXdZpgA=="],
+ "@algolia/client-search": ["@algolia/client-search@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-b5hlU69CuhnS2Rqgsz7uSW0t4VqrLMLTPbUpEl0QVz56rsSwr1Sugyogrjb493sWDA+XU1FU5m9eB8uH7MoI0g=="],
- "@algolia/ingestion": ["@algolia/ingestion@1.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-1Uw2OslTWiOFDtt83y0bGiErJYy5MizadV0nHnOoHFWMoDqWW0kQoMFI65pXqRSkVvit5zjXSLik2xMiyQJDWQ=="],
+ "@algolia/ingestion": ["@algolia/ingestion@1.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-WvwwXp5+LqIGISK3zHRApLT1xkuEk320/EGeD7uYy+K8WwDd5OjXnhjuXRhYr1685KnkvWkq1rQ/ihCJjOfHpQ=="],
- "@algolia/monitoring": ["@algolia/monitoring@1.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-xk9f+DPtNcddWN6E7n1hyNNsATBCHIqAvVGG2EAGHJc4AFYL18uM/kMTiOKXE/LKDPyy1JhIerrh9oYb7RBrgw=="],
+ "@algolia/monitoring": ["@algolia/monitoring@1.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-j2EUFKAlzM0TE4GRfkDE3IDfkVeJdcbBANWzK16Tb3RHz87WuDfQ9oeEW6XiRE1/bEkq2xf4MvZesvSeQrZRDA=="],
- "@algolia/recommend": ["@algolia/recommend@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-NApbTPj9LxGzNw4dYnZmj2BoXiAc8NmbbH6qBNzQgXklGklt/xldTvu+FACN6ltFsTzoNU6j2mWNlHQTKGC5+Q=="],
+ "@algolia/recommend": ["@algolia/recommend@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-+kTSE4aQ1ARj2feXyN+DMq0CIDHJwZw1kpxIunedkmpWUg8k3TzFwWsMCzJVkF2nu1UcFbl7xsIURz3Q3XwOXA=="],
- "@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2" } }, "sha512-ekotpCwpSp033DIIrsTpYlGUCF6momkgupRV/FA3m62SreTSZUKjgK6VTNyG7TtYfq9YFm/pnh65bATP/ZWJEg=="],
+ "@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0" } }, "sha512-Ja+zPoeSA2SDowPwCNRbm5Q2mzDvVV8oqxCQ4m6SNmbKmPlCfe30zPfrt9ho3kBHnsg37pGucwOedRIOIklCHw=="],
- "@algolia/requester-fetch": ["@algolia/requester-fetch@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2" } }, "sha512-gKE+ZFi/6y7saTr34wS0SqYFDcjHW4Wminv8PDZEi0/mE99+hSrbKgJWxo2ztb5eqGirQTgIh1AMVacGGWM1iw=="],
+ "@algolia/requester-fetch": ["@algolia/requester-fetch@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0" } }, "sha512-N6nOvLbaR4Ge+oVm7T4W/ea1PqcSbsHR4O58FJ31XtZjFPtOyxmnhgCmGCzP9hsJI6+x0yxJjkW5BMK/XI8OvA=="],
- "@algolia/requester-node-http": ["@algolia/requester-node-http@5.46.2", "", { "dependencies": { "@algolia/client-common": "5.46.2" } }, "sha512-ciPihkletp7ttweJ8Zt+GukSVLp2ANJHU+9ttiSxsJZThXc4Y2yJ8HGVWesW5jN1zrsZsezN71KrMx/iZsOYpg=="],
+ "@algolia/requester-node-http": ["@algolia/requester-node-http@5.47.0", "", { "dependencies": { "@algolia/client-common": "5.47.0" } }, "sha512-z1oyLq5/UVkohVXNDEY70mJbT/sv/t6HYtCvCwNrOri6pxBJDomP9R83KOlwcat+xqBQEdJHjbrPh36f1avmZA=="],
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
"@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="],
- "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="],
+ "@babel/parser": ["@babel/parser@7.28.6", "", { "dependencies": { "@babel/types": "^7.28.6" }, "bin": "./bin/babel-parser.js" }, "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ=="],
- "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="],
+ "@babel/types": ["@babel/types@7.28.6", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg=="],
"@biomejs/biome": ["@biomejs/biome@2.3.12", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.12", "@biomejs/cli-darwin-x64": "2.3.12", "@biomejs/cli-linux-arm64": "2.3.12", "@biomejs/cli-linux-arm64-musl": "2.3.12", "@biomejs/cli-linux-x64": "2.3.12", "@biomejs/cli-linux-x64-musl": "2.3.12", "@biomejs/cli-win32-arm64": "2.3.12", "@biomejs/cli-win32-x64": "2.3.12" }, "bin": { "biome": "bin/biome" } }, "sha512-AR7h4aSlAvXj7TAajW/V12BOw2EiS0AqZWV5dGozf4nlLoUF/ifvD0+YgKSskT0ylA6dY1A8AwgP8kZ6yaCQnA=="],
@@ -124,61 +124,61 @@
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="],
- "@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.65", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-v/O0UeqrDz6ASuRVE5g2Puo5aWyej4M/CxX6WYDBARgswwxK0mp3VQbGgPFEAAUU9QN02IjTgjMuO021gpWf2w=="],
+ "@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.67", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-RGJRwlxyup54L1UDAjCshy3ckX5zcvYIU74YLSnUgHGvqh6B4mvksbGNHAIEp7dZQ6cM13RZVT5KC07CmnFNew=="],
"@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="],
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
- "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.55.1", "", { "os": "android", "cpu": "arm" }, "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg=="],
+ "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.56.0", "", { "os": "android", "cpu": "arm" }, "sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw=="],
- "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.55.1", "", { "os": "android", "cpu": "arm64" }, "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg=="],
+ "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.56.0", "", { "os": "android", "cpu": "arm64" }, "sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q=="],
- "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.55.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg=="],
+ "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.56.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w=="],
- "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.55.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ=="],
+ "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.56.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g=="],
- "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.55.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg=="],
+ "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.56.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ=="],
- "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.55.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw=="],
+ "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.56.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg=="],
- "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.55.1", "", { "os": "linux", "cpu": "arm" }, "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ=="],
+ "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.56.0", "", { "os": "linux", "cpu": "arm" }, "sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A=="],
- "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.55.1", "", { "os": "linux", "cpu": "arm" }, "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg=="],
+ "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.56.0", "", { "os": "linux", "cpu": "arm" }, "sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw=="],
- "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.55.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ=="],
+ "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.56.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ=="],
- "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.55.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA=="],
+ "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.56.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA=="],
- "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g=="],
+ "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg=="],
- "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw=="],
+ "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA=="],
- "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.55.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw=="],
+ "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.56.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw=="],
- "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.55.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw=="],
+ "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.56.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg=="],
- "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw=="],
+ "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew=="],
- "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg=="],
+ "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ=="],
- "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.55.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg=="],
+ "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.56.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ=="],
- "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.55.1", "", { "os": "linux", "cpu": "x64" }, "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg=="],
+ "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.56.0", "", { "os": "linux", "cpu": "x64" }, "sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw=="],
- "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.55.1", "", { "os": "linux", "cpu": "x64" }, "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w=="],
+ "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.56.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA=="],
- "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.55.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg=="],
+ "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.56.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA=="],
- "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.55.1", "", { "os": "none", "cpu": "arm64" }, "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw=="],
+ "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.56.0", "", { "os": "none", "cpu": "arm64" }, "sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ=="],
- "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.55.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g=="],
+ "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.56.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing=="],
- "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.55.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA=="],
+ "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.56.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg=="],
- "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.55.1", "", { "os": "win32", "cpu": "x64" }, "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg=="],
+ "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.56.0", "", { "os": "win32", "cpu": "x64" }, "sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ=="],
- "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.55.1", "", { "os": "win32", "cpu": "x64" }, "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw=="],
+ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.56.0", "", { "os": "win32", "cpu": "x64" }, "sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g=="],
"@shikijs/core": ["@shikijs/core@2.5.0", "", { "dependencies": { "@shikijs/engine-javascript": "2.5.0", "@shikijs/engine-oniguruma": "2.5.0", "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.4" } }, "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg=="],
@@ -216,13 +216,13 @@
"@vitejs/plugin-vue": ["@vitejs/plugin-vue@5.2.4", "", { "peerDependencies": { "vite": "^5.0.0 || ^6.0.0", "vue": "^3.2.25" } }, "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA=="],
- "@vue/compiler-core": ["@vue/compiler-core@3.5.26", "", { "dependencies": { "@babel/parser": "^7.28.5", "@vue/shared": "3.5.26", "entities": "^7.0.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w=="],
+ "@vue/compiler-core": ["@vue/compiler-core@3.5.27", "", { "dependencies": { "@babel/parser": "^7.28.5", "@vue/shared": "3.5.27", "entities": "^7.0.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ=="],
- "@vue/compiler-dom": ["@vue/compiler-dom@3.5.26", "", { "dependencies": { "@vue/compiler-core": "3.5.26", "@vue/shared": "3.5.26" } }, "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A=="],
+ "@vue/compiler-dom": ["@vue/compiler-dom@3.5.27", "", { "dependencies": { "@vue/compiler-core": "3.5.27", "@vue/shared": "3.5.27" } }, "sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w=="],
- "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.26", "", { "dependencies": { "@babel/parser": "^7.28.5", "@vue/compiler-core": "3.5.26", "@vue/compiler-dom": "3.5.26", "@vue/compiler-ssr": "3.5.26", "@vue/shared": "3.5.26", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA=="],
+ "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.27", "", { "dependencies": { "@babel/parser": "^7.28.5", "@vue/compiler-core": "3.5.27", "@vue/compiler-dom": "3.5.27", "@vue/compiler-ssr": "3.5.27", "@vue/shared": "3.5.27", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ=="],
- "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.26", "", { "dependencies": { "@vue/compiler-dom": "3.5.26", "@vue/shared": "3.5.26" } }, "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw=="],
+ "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.27", "", { "dependencies": { "@vue/compiler-dom": "3.5.27", "@vue/shared": "3.5.27" } }, "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw=="],
"@vue/devtools-api": ["@vue/devtools-api@7.7.9", "", { "dependencies": { "@vue/devtools-kit": "^7.7.9" } }, "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g=="],
@@ -230,15 +230,15 @@
"@vue/devtools-shared": ["@vue/devtools-shared@7.7.9", "", { "dependencies": { "rfdc": "^1.4.1" } }, "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA=="],
- "@vue/reactivity": ["@vue/reactivity@3.5.26", "", { "dependencies": { "@vue/shared": "3.5.26" } }, "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ=="],
+ "@vue/reactivity": ["@vue/reactivity@3.5.27", "", { "dependencies": { "@vue/shared": "3.5.27" } }, "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ=="],
- "@vue/runtime-core": ["@vue/runtime-core@3.5.26", "", { "dependencies": { "@vue/reactivity": "3.5.26", "@vue/shared": "3.5.26" } }, "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q=="],
+ "@vue/runtime-core": ["@vue/runtime-core@3.5.27", "", { "dependencies": { "@vue/reactivity": "3.5.27", "@vue/shared": "3.5.27" } }, "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A=="],
- "@vue/runtime-dom": ["@vue/runtime-dom@3.5.26", "", { "dependencies": { "@vue/reactivity": "3.5.26", "@vue/runtime-core": "3.5.26", "@vue/shared": "3.5.26", "csstype": "^3.2.3" } }, "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ=="],
+ "@vue/runtime-dom": ["@vue/runtime-dom@3.5.27", "", { "dependencies": { "@vue/reactivity": "3.5.27", "@vue/runtime-core": "3.5.27", "@vue/shared": "3.5.27", "csstype": "^3.2.3" } }, "sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg=="],
- "@vue/server-renderer": ["@vue/server-renderer@3.5.26", "", { "dependencies": { "@vue/compiler-ssr": "3.5.26", "@vue/shared": "3.5.26" }, "peerDependencies": { "vue": "3.5.26" } }, "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA=="],
+ "@vue/server-renderer": ["@vue/server-renderer@3.5.27", "", { "dependencies": { "@vue/compiler-ssr": "3.5.27", "@vue/shared": "3.5.27" }, "peerDependencies": { "vue": "3.5.27" } }, "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA=="],
- "@vue/shared": ["@vue/shared@3.5.26", "", {}, "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A=="],
+ "@vue/shared": ["@vue/shared@3.5.27", "", {}, "sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ=="],
"@vueuse/core": ["@vueuse/core@12.8.2", "", { "dependencies": { "@types/web-bluetooth": "^0.0.21", "@vueuse/metadata": "12.8.2", "@vueuse/shared": "12.8.2", "vue": "^3.5.13" } }, "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ=="],
@@ -248,7 +248,7 @@
"@vueuse/shared": ["@vueuse/shared@12.8.2", "", { "dependencies": { "vue": "^3.5.13" } }, "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w=="],
- "algoliasearch": ["algoliasearch@5.46.2", "", { "dependencies": { "@algolia/abtesting": "1.12.2", "@algolia/client-abtesting": "5.46.2", "@algolia/client-analytics": "5.46.2", "@algolia/client-common": "5.46.2", "@algolia/client-insights": "5.46.2", "@algolia/client-personalization": "5.46.2", "@algolia/client-query-suggestions": "5.46.2", "@algolia/client-search": "5.46.2", "@algolia/ingestion": "1.46.2", "@algolia/monitoring": "1.46.2", "@algolia/recommend": "5.46.2", "@algolia/requester-browser-xhr": "5.46.2", "@algolia/requester-fetch": "5.46.2", "@algolia/requester-node-http": "5.46.2" } }, "sha512-qqAXW9QvKf2tTyhpDA4qXv1IfBwD2eduSW6tUEBFIfCeE9gn9HQ9I5+MaKoenRuHrzk5sQoNh1/iof8mY7uD6Q=="],
+ "algoliasearch": ["algoliasearch@5.47.0", "", { "dependencies": { "@algolia/abtesting": "1.13.0", "@algolia/client-abtesting": "5.47.0", "@algolia/client-analytics": "5.47.0", "@algolia/client-common": "5.47.0", "@algolia/client-insights": "5.47.0", "@algolia/client-personalization": "5.47.0", "@algolia/client-query-suggestions": "5.47.0", "@algolia/client-search": "5.47.0", "@algolia/ingestion": "1.47.0", "@algolia/monitoring": "1.47.0", "@algolia/recommend": "5.47.0", "@algolia/requester-browser-xhr": "5.47.0", "@algolia/requester-fetch": "5.47.0", "@algolia/requester-node-http": "5.47.0" } }, "sha512-AGtz2U7zOV4DlsuYV84tLp2tBbA7RPtLA44jbVH4TTpDcc1dIWmULjHSsunlhscbzDydnjuFlNhflR3nV4VJaQ=="],
"birpc": ["birpc@2.9.0", "", {}, "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw=="],
@@ -270,13 +270,13 @@
"emoji-regex-xs": ["emoji-regex-xs@1.0.0", "", {}, "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg=="],
- "entities": ["entities@7.0.0", "", {}, "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ=="],
+ "entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="],
"esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="],
"estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
- "focus-trap": ["focus-trap@7.7.1", "", { "dependencies": { "tabbable": "^6.4.0" } }, "sha512-Pkp8m55GjxBLnhBoT6OXdMvfRr4TjMAKLvFM566zlIryq5plbhaTmLAJWTGR0EkRwLjEte1lCOG9MxF1ipJrOg=="],
+ "focus-trap": ["focus-trap@7.8.0", "", { "dependencies": { "tabbable": "^6.4.0" } }, "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA=="],
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
@@ -332,7 +332,7 @@
"rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="],
- "rollup": ["rollup@4.55.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.55.1", "@rollup/rollup-android-arm64": "4.55.1", "@rollup/rollup-darwin-arm64": "4.55.1", "@rollup/rollup-darwin-x64": "4.55.1", "@rollup/rollup-freebsd-arm64": "4.55.1", "@rollup/rollup-freebsd-x64": "4.55.1", "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", "@rollup/rollup-linux-arm-musleabihf": "4.55.1", "@rollup/rollup-linux-arm64-gnu": "4.55.1", "@rollup/rollup-linux-arm64-musl": "4.55.1", "@rollup/rollup-linux-loong64-gnu": "4.55.1", "@rollup/rollup-linux-loong64-musl": "4.55.1", "@rollup/rollup-linux-ppc64-gnu": "4.55.1", "@rollup/rollup-linux-ppc64-musl": "4.55.1", "@rollup/rollup-linux-riscv64-gnu": "4.55.1", "@rollup/rollup-linux-riscv64-musl": "4.55.1", "@rollup/rollup-linux-s390x-gnu": "4.55.1", "@rollup/rollup-linux-x64-gnu": "4.55.1", "@rollup/rollup-linux-x64-musl": "4.55.1", "@rollup/rollup-openbsd-x64": "4.55.1", "@rollup/rollup-openharmony-arm64": "4.55.1", "@rollup/rollup-win32-arm64-msvc": "4.55.1", "@rollup/rollup-win32-ia32-msvc": "4.55.1", "@rollup/rollup-win32-x64-gnu": "4.55.1", "@rollup/rollup-win32-x64-msvc": "4.55.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A=="],
+ "rollup": ["rollup@4.56.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.56.0", "@rollup/rollup-android-arm64": "4.56.0", "@rollup/rollup-darwin-arm64": "4.56.0", "@rollup/rollup-darwin-x64": "4.56.0", "@rollup/rollup-freebsd-arm64": "4.56.0", "@rollup/rollup-freebsd-x64": "4.56.0", "@rollup/rollup-linux-arm-gnueabihf": "4.56.0", "@rollup/rollup-linux-arm-musleabihf": "4.56.0", "@rollup/rollup-linux-arm64-gnu": "4.56.0", "@rollup/rollup-linux-arm64-musl": "4.56.0", "@rollup/rollup-linux-loong64-gnu": "4.56.0", "@rollup/rollup-linux-loong64-musl": "4.56.0", "@rollup/rollup-linux-ppc64-gnu": "4.56.0", "@rollup/rollup-linux-ppc64-musl": "4.56.0", "@rollup/rollup-linux-riscv64-gnu": "4.56.0", "@rollup/rollup-linux-riscv64-musl": "4.56.0", "@rollup/rollup-linux-s390x-gnu": "4.56.0", "@rollup/rollup-linux-x64-gnu": "4.56.0", "@rollup/rollup-linux-x64-musl": "4.56.0", "@rollup/rollup-openbsd-x64": "4.56.0", "@rollup/rollup-openharmony-arm64": "4.56.0", "@rollup/rollup-win32-arm64-msvc": "4.56.0", "@rollup/rollup-win32-ia32-msvc": "4.56.0", "@rollup/rollup-win32-x64-gnu": "4.56.0", "@rollup/rollup-win32-x64-msvc": "4.56.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg=="],
"search-insights": ["search-insights@2.17.3", "", {}, "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ=="],
@@ -358,7 +358,7 @@
"unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="],
- "unist-util-visit": ["unist-util-visit@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg=="],
+ "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="],
"unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="],
@@ -370,7 +370,7 @@
"vitepress": ["vitepress@1.6.4", "", { "dependencies": { "@docsearch/css": "3.8.2", "@docsearch/js": "3.8.2", "@iconify-json/simple-icons": "^1.2.21", "@shikijs/core": "^2.1.0", "@shikijs/transformers": "^2.1.0", "@shikijs/types": "^2.1.0", "@types/markdown-it": "^14.1.2", "@vitejs/plugin-vue": "^5.2.1", "@vue/devtools-api": "^7.7.0", "@vue/shared": "^3.5.13", "@vueuse/core": "^12.4.0", "@vueuse/integrations": "^12.4.0", "focus-trap": "^7.6.4", "mark.js": "8.11.1", "minisearch": "^7.1.1", "shiki": "^2.1.0", "vite": "^5.4.14", "vue": "^3.5.13" }, "peerDependencies": { "markdown-it-mathjax3": "^4", "postcss": "^8" }, "optionalPeers": ["markdown-it-mathjax3", "postcss"], "bin": { "vitepress": "bin/vitepress.js" } }, "sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg=="],
- "vue": ["vue@3.5.26", "", { "dependencies": { "@vue/compiler-dom": "3.5.26", "@vue/compiler-sfc": "3.5.26", "@vue/runtime-dom": "3.5.26", "@vue/server-renderer": "3.5.26", "@vue/shared": "3.5.26" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA=="],
+ "vue": ["vue@3.5.27", "", { "dependencies": { "@vue/compiler-dom": "3.5.27", "@vue/compiler-sfc": "3.5.27", "@vue/runtime-dom": "3.5.27", "@vue/server-renderer": "3.5.27", "@vue/shared": "3.5.27" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw=="],
"zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="],
}
diff --git a/docs/src/public/direct-message/minecraft-player-sound.png b/docs/src/assets/direct-message/minecraft-player-sound.png
index 56059e5..56059e5 100644
--- a/docs/src/public/direct-message/minecraft-player-sound.png
+++ b/docs/src/assets/direct-message/minecraft-player-sound.png
Binary files differ
diff --git a/docs/src/en/guide/admin/configuration.md b/docs/src/en/guide/admin/configuration.md
index 0a0bee2..6ce63b4 100644
--- a/docs/src/en/guide/admin/configuration.md
+++ b/docs/src/en/guide/admin/configuration.md
@@ -51,6 +51,9 @@ features:
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
# ----------------------------------------------
# --------- Message Format Settings --------
@@ -62,11 +65,14 @@ features:
# {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)
# ----------------------------------------------
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}"
```
## General Settings
@@ -165,6 +171,13 @@ Specifies the timeout duration (in milliseconds) for API requests to the romaniz
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.
+
## Message Format Settings
Available placeholders:
@@ -172,6 +185,7 @@ 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)
### `messageFormat.directMessageFormat`
@@ -179,3 +193,10 @@ Available placeholders:
- 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.
diff --git a/docs/src/en/guide/player/channel-chat/about.md b/docs/src/en/guide/player/channel-chat/about.md
new file mode 100644
index 0000000..3b9b088
--- /dev/null
+++ b/docs/src/en/guide/player/channel-chat/about.md
@@ -0,0 +1,112 @@
+# 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
new file mode 100644
index 0000000..02d6a18
--- /dev/null
+++ b/docs/src/en/guide/player/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/guide/player/direct-message.md b/docs/src/en/guide/player/direct-message.md
index 460de51..64c99b8 100644
--- a/docs/src/en/guide/player/direct-message.md
+++ b/docs/src/en/guide/player/direct-message.md
@@ -60,6 +60,6 @@ This notification sound depends on the **Players** category volume setting on th
If you cannot hear LunaticChat's notification sound, check your client's volume settings.
-![](/direct-message/minecraft-player-sound.png)
+![](../../../assets/direct-message/minecraft-player-sound.png)
:::
diff --git a/docs/src/en/reference/commands/lc/channel.md b/docs/src/en/reference/commands/lc/channel.md
new file mode 100644
index 0000000..31941ca
--- /dev/null
+++ b/docs/src/en/reference/commands/lc/channel.md
@@ -0,0 +1,77 @@
+# /lc channel <Badge type="tip" text="v0.6.0" /> <Badge type="tip" text="Paper" />
+
+### `/lc channel create <channel-id> <channel-name> [channel-description] [private-setting]`
+
+| Permission |
+|------------------------------|
+| `lunaticchat.command.lc.channel.create` |
+
+Creates a channel.
+
+- `<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.
+
+::: 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 <channel-id>`
+
+| 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 <channel-id>`
+
+| 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 <channel-id>`
+
+| 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
new file mode 100644
index 0000000..e3f335f
--- /dev/null
+++ b/docs/src/en/reference/commands/lc/chatmode.md
@@ -0,0 +1,17 @@
+# /lc chatmode <Badge type="tip" text="v0.6.0" /> <Badge type="tip" text="Paper" />
+
+### `/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
index 742e85c..4d09301 100644
--- a/docs/src/en/reference/commands/lc/settings.md
+++ b/docs/src/en/reference/commands/lc/settings.md
@@ -14,5 +14,5 @@ This setting is saved by UUID, so the setting will not be lost even if you chang
| Key | Description | Default Value |
|----------|----------------------------------------------------------|--------|
-| `jp` | Toggles romanization conversion on or off. | `true` |
+| `japanese` | Toggles romanization conversion on or off. | `true` |
| `notice` | Toggles whether to receive notifications when receiving direct messages via `/tell` or `/reply`. | `true` |
diff --git a/docs/src/en/reference/permissions.md b/docs/src/en/reference/permissions.md
index ed30a77..65825c1 100644
--- a/docs/src/en/reference/permissions.md
+++ b/docs/src/en/reference/permissions.md
@@ -34,6 +34,12 @@ Toggles the use of the [`/tell`](commands/tell.md) command.
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`
@@ -46,6 +52,66 @@ Toggles the use of the [`/lc settings`](commands/lc/settings.md) command.
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.delete`
+
+- Default: `non OP`
+
+Toggles the use of the [`/lc channel delete`](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.jp` <Badge type="danger" text="Deprecated: Will be removed in v1.0.0" />
- Default: `non OP`
diff --git a/docs/src/guide/admin/configuration.md b/docs/src/guide/admin/configuration.md
index 2c70f55..ac63eb7 100644
--- a/docs/src/guide/admin/configuration.md
+++ b/docs/src/guide/admin/configuration.md
@@ -51,6 +51,9 @@ features:
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
# ----------------------------------------------
# --------- Message Format Settings --------
@@ -62,11 +65,14 @@ features:
# {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)
# ----------------------------------------------
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}"
```
## General Settings
@@ -165,6 +171,13 @@ LunaticChat の [`/reply`](../../reference/commands/reply.md) コマンドによ
ローマ字変換 API へのリクエストが失敗した場合の再試行回数を指定します.
+### `features.channelChat.enabled`
+
+- Type: `boolean`
+- Default: `false`
+
+チャンネルチャット機能を有効にします.
+
## Message Format Settings
使用できるプレースホルダー:
@@ -172,6 +185,7 @@ LunaticChat の [`/reply`](../../reference/commands/reply.md) コマンドによ
- `{sender}`: メッセージ送信者の名前
- `{recipient}`: メッセージ受信者の名前
- `{message}`: メッセージの内容
+- `{channel}`: チャットチャンネルの名前 (チャンネルチャットの場合のみ)
### `messageFormat.directMessageFormat`
@@ -179,3 +193,10 @@ LunaticChat の [`/reply`](../../reference/commands/reply.md) コマンドによ
- 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/player/channel-chat.md b/docs/src/guide/player/channel-chat.md
deleted file mode 100644
index ce5a43e..0000000
--- a/docs/src/guide/player/channel-chat.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# チャンネルチャット <Badge type="tip" text="v0.6.0" /> <Badge type="warning" text="試験的" />
-
-特定のプレイヤー間で,チャットを共有できる機能です.
-
-::: warning 試験的機能
-
-この機能は現在,試験的に実装されており,今後のアップデートで仕様が変更される可能性があります.
-
-規模が大きい機能なので,一気に実装はせず段階的な展開を予定しています.
-
-詳しい実装計画は [ロードマップ (m1sk9/LunaticChat #54)](https://github.com/m1sk9/LunaticChat/issues/54) をご覧ください.
-
-:::
diff --git a/docs/src/guide/player/channel-chat/about.md b/docs/src/guide/player/channel-chat/about.md
new file mode 100644
index 0000000..67aa170
--- /dev/null
+++ b/docs/src/guide/player/channel-chat/about.md
@@ -0,0 +1,112 @@
+# チャンネルチャット <Badge type="tip" text="v0.6.0" /> <Badge type="warning" text="試験的" />
+
+特定のプレイヤー間で,チャットを共有できる機能です.
+
+::: warning 試験的機能
+
+この機能は現在,試験的に実装されており,今後のアップデートで仕様が変更される可能性があります.
+
+規模が大きい機能なので,一気に実装はせず段階的な展開を予定しています.
+
+詳しい実装計画は [ロードマップ (m1sk9/LunaticChat #54)](https://github.com/m1sk9/LunaticChat/issues/54) をご覧ください.
+
+:::
+
+::: 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 list
+```
+
+チャット欄に参加可能なチャンネルの一覧が表示されます.クリックするか [`/lc channel join`](#チャンネルに参加する) コマンドを使用して,チャンネルに参加できます.
+
+## チャットモード
+
+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
new file mode 100644
index 0000000..9e2712d
--- /dev/null
+++ b/docs/src/guide/player/channel-chat/chatmode.md
@@ -0,0 +1,30 @@
+# チャットモード
+
+チャットモードは LunaticChat におけるプレイヤーがチャットを送信する際のモードを指します.LunaticChat では以下の2種類のチャットモードが存在します.
+
+1. 全体チャットモード: すべてのプレイヤーとチャットを共有します.
+2. チャンネルチャットモード: 参加している特定のチャンネル内のプレイヤーとチャットを共有します.
+
+## チャットチャットモード
+
+チャンネルチャットモード中は,全てのチャットが参加しているチャンネルのプレイヤーのみに表示され,全体チャットには表示されません.
+
+::: tip 一時的に全体チャットを送信する
+
+チャンネルチャットモード中に,一時的に全体チャットを送信したい場合は,メッセージの先頭に `!` を付けて送信します.
+
+```
+!こんにちは、みんな元気?
+```
+
+:::
+
+## 全体チャットモード
+
+全体チャットモード中は,サーバー内のすべてのプレイヤーとチャットを共有します.通常の Minecraft チャットと同様の動作をします.
+
+## 一時的にチャットモードを切り替える
+
+チャットモードを一時的に切り替えるには,`/chatmode toggle` コマンドを使用します.
+
+このコマンドで切り替えた場合はチャンネルの入退出なしで,チャットモードを切り替えることができます.
diff --git a/docs/src/guide/player/direct-message.md b/docs/src/guide/player/direct-message.md
index b6f1424..8edd16e 100644
--- a/docs/src/guide/player/direct-message.md
+++ b/docs/src/guide/player/direct-message.md
@@ -60,6 +60,6 @@ v0.4.0 以降,ダイレクトメッセージの通知設定を変更できる
LunaticChat の通知音が聞こえない場合は,クライアントの音量設定を確認してください.
-![](/direct-message/minecraft-player-sound.png)
+![](../../assets/direct-message/minecraft-player-sound.png)
:::
diff --git a/docs/src/reference/commands/lc/channel.md b/docs/src/reference/commands/lc/channel.md
new file mode 100644
index 0000000..9cc96e2
--- /dev/null
+++ b/docs/src/reference/commands/lc/channel.md
@@ -0,0 +1,78 @@
+# /lc channel <Badge type="tip" text="v0.6.0" /> <Badge type="tip" text="Paper" />
+
+### `/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` |
+
+指定したチャンネルを削除します.チャンネルの作成者(オーナー)である必要があります.
+
diff --git a/docs/src/reference/commands/lc/chatmode.md b/docs/src/reference/commands/lc/chatmode.md
new file mode 100644
index 0000000..659aca5
--- /dev/null
+++ b/docs/src/reference/commands/lc/chatmode.md
@@ -0,0 +1,17 @@
+# /lc chatmode <Badge type="tip" text="v0.6.0" /> <Badge type="tip" text="Paper" />
+
+### `/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
index 86e0a9d..ab595ef 100644
--- a/docs/src/reference/commands/lc/settings.md
+++ b/docs/src/reference/commands/lc/settings.md
@@ -12,7 +12,7 @@ LunaticChat のプレイヤー設定を管理します.値を指定しなか
#### 利用可能なキー
-| キー | 説明 | デフォルト値 |
-|----------|----------------------------------------------------------|--------|
-| `jp` | ローマ字変換の有効化・無効化を切り替えます. | `true` |
-| `notice` | `/tell` や `/reply` でダイレクトメッセージを受信した際に通知を受け取るかどうかを切り替えます. | `true` |
+| キー | 説明 | デフォルト値 |
+|------------|----------------------------------------------------------|--------|
+| `japanese` | ローマ字変換の有効化・無効化を切り替えます. | `true` |
+| `notice` | `/tell` や `/reply` でダイレクトメッセージを受信した際に通知を受け取るかどうかを切り替えます. | `true` |
diff --git a/docs/src/reference/permissions.md b/docs/src/reference/permissions.md
index 0f3cd97..b557ae9 100644
--- a/docs/src/reference/permissions.md
+++ b/docs/src/reference/permissions.md
@@ -34,6 +34,12 @@ LunaticChat のアップデート通知を受け取ります.
[`/reply`](commands/reply.md) コマンドの使用を切り替えます.
+### `lunaticchat.command.lc`
+
+- Default: `non OP`
+
+`/lc` コマンドの使用を切り替えます.
+
### `lunaticchat.command.lc.settings`
- Default: `non OP`
@@ -46,6 +52,66 @@ LunaticChat のアップデート通知を受け取ります.
[`/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.delete`
+
+- Default: `non OP`
+
+[`/lc channel delete`](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.jp` <Badge type="danger" text="非推奨: v1.0.0 で削除予定" />
- Default: `non OP`