summaryrefslogtreecommitdiff
path: root/website/src/docs/developers
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-08-31 15:32:37 +0900
committerGitHub <noreply@github.com>2026-08-31 15:32:37 +0900
commit0e24ee83bc05ec4761d46696d07d4a2a4f0b97b6 (patch)
tree370c556ac68086bb9203bb60b4b3f4b82e195db3 /website/src/docs/developers
parent907778db55f7038385100bb2e389f15b6cba75eb (diff)
parent2dcf483773fa1e0968f879e5758bf7e723601f05 (diff)
downloadLunaticChat-0e24ee83bc05ec4761d46696d07d4a2a4f0b97b6.tar.gz
LunaticChat-0e24ee83bc05ec4761d46696d07d4a2a4f0b97b6.tar.bz2
LunaticChat-0e24ee83bc05ec4761d46696d07d4a2a4f0b97b6.zip
Merge pull request #297 from m1sk9/feat/release-v1.4.0
feat: Release LunaticChat v1.4.0
Diffstat (limited to 'website/src/docs/developers')
-rw-r--r--website/src/docs/developers/engine.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/website/src/docs/developers/engine.md b/website/src/docs/developers/engine.md
index a65a3f6..1f8956a 100644
--- a/website/src/docs/developers/engine.md
+++ b/website/src/docs/developers/engine.md
@@ -79,6 +79,17 @@ There are two UUID serializers because they serve different purposes. `UUIDSeria
So that Paper and Velocity can handle domain errors as the same types, exceptions are centralized in `engine`. There is no common sealed base — it is a flat structure that directly extends `Exception`. They fall into existence/reference, state, limit, and permission/BAN/KICK categories, and many take `playerId` / `channelId` / `limit` in the constructor and build their own messages. Because there is no base type, callers are expected to catch each individually.
+## debug — One switch both platforms read
+
+Debug logging is a contract before it is an implementation: `config.yml` and the proxy's system property must mean the same thing by `velocity,protocol`, and a category added on one side must exist on the other. So the vocabulary lives here and only the writing is left to the platforms.
+
+- `DebugCategory` — the areas that can be logged, each carrying the `key` operators write
+- `DebugCategories.parse` / `resolve` — the one reading of a debug switch, shared by `DebugConfigSerializer` on Paper and `VelocityDebugSwitch` on Velocity. An unknown name is collected rather than thrown, so a typo costs only itself
+- `DebugLogger` — `log(category) { message }`. The lambda is the point: the chat path is instrumented once per message, and while debugging is off the string is never built
+- `DebugState` — the categories currently on, replaceable at runtime by `/lc reload` and `/lc debug`
+
+`JulDebugLogger` (Paper) and `Slf4jDebugLogger` (Velocity) both write at `INFO`, because neither platform's stock logging configuration prints anything below it.
+
## permission / command — Neutral abstractions
Permissions and command results are placed in `engine` as neutral representations that can be passed to either the Bukkit or Velocity API.