<feed xmlns='http://www.w3.org/2005/Atom'>
<title>LunaticChat.git/docker/velocity/compose.yaml, branch main</title>
<subtitle>A next-generation chat plugin for Paper, Folia and Velocity.
</subtitle>
<link rel='alternate' type='text/html' href='https://dangofactory.net/cgit/cgit.cgi/LunaticChat.git/'/>
<entry>
<title>feat(velocity): let the proxy be debugged without a config file</title>
<updated>2026-08-30T11:43:45+00:00</updated>
<author>
<name>Sho Sakuma</name>
<email>me@m1sk9.dev</email>
</author>
<published>2026-08-30T11:43:45+00:00</published>
<link rel='alternate' type='text/html' href='https://dangofactory.net/cgit/cgit.cgi/LunaticChat.git/commit/?id=3aecb1374913d585c789c0c0f27295aa6be43fc4'/>
<id>3aecb1374913d585c789c0c0f27295aa6be43fc4</id>
<content type='text'>
The proxy had three slf4j debug calls and no way to turn them on, so the
handshake internals were either missing or mixed into INFO for every backend.

The switch is read from the `lunaticchat.debug` system property, falling back to
the `LUNATICCHAT_DEBUG` environment variable, rather than from a new config file:
a file means a parser and a parser means a dependency, and platform-velocity
deliberately ships without so much as Ktor. The property wins so a proxy started
from a compose file can still be overridden for one run without editing it.

Paper's `debug` is deliberately not carried over the handshake. The proxy is
shared by every backend, so one Paper server's setting must not decide how much
the proxy logs for everyone else.

The compatibility check now reports both halves of the rule with their measured
values. "Protocol version incompatible" left the operator comparing two version
strings against a rule they could not see, and which half failed is the whole
answer when a rolling upgrade stops relaying. For the same reason the relay names
the servers it skipped and why: from the receiving server's log, "the message
never arrived" and "the message was never sent" look identical.

The lines that were unconditionally at INFO drop to their category, leaving only
the failure an operator has to act on.

Refs #228

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The proxy had three slf4j debug calls and no way to turn them on, so the
handshake internals were either missing or mixed into INFO for every backend.

The switch is read from the `lunaticchat.debug` system property, falling back to
the `LUNATICCHAT_DEBUG` environment variable, rather than from a new config file:
a file means a parser and a parser means a dependency, and platform-velocity
deliberately ships without so much as Ktor. The property wins so a proxy started
from a compose file can still be overridden for one run without editing it.

Paper's `debug` is deliberately not carried over the handshake. The proxy is
shared by every backend, so one Paper server's setting must not decide how much
the proxy logs for everyone else.

The compatibility check now reports both halves of the rule with their measured
values. "Protocol version incompatible" left the operator comparing two version
strings against a rule they could not see, and which half failed is the whole
answer when a rolling upgrade stops relaying. For the same reason the relay names
the servers it skipped and why: from the receiving server's log, "the message
never arrived" and "the message was never sent" look identical.

The lines that were unconditionally at INFO drop to their category, leaving only
the failure an operator has to act on.

Refs #228

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: support Paper 26.2 (Minecraft 26.2)</title>
<updated>2026-08-02T08:43:50+00:00</updated>
<author>
<name>Sho Sakuma</name>
<email>me@m1sk9.dev</email>
</author>
<published>2026-08-02T08:43:50+00:00</published>
<link rel='alternate' type='text/html' href='https://dangofactory.net/cgit/cgit.cgi/LunaticChat.git/commit/?id=45c29405be5169e088023aa01cde50467f3eabed'/>
<id>45c29405be5169e088023aa01cde50467f3eabed</id>
<content type='text'>
Paper 26.2 bundles Adventure 5.2.0, a major bump from the 4.26.1 shipped by 26.1.
Adventure 5 makes ClickEvent generic, so the raw type in
CommandContext.replyWithEvent no longer compiled. Auditing the rest of the
Adventure 5 removals found no other affected usage.

api-version is raised to 26.2, dropping 26.1 support: the two Adventure majors
are not binary compatible, so claiming 26.1 compatibility would be a lie.

Also fixes two problems found while verifying on a real server: the Velocity
healthcheck invoked mc-health, which does not exist in the mc-proxy image, so the
container had never once passed its check; and the debug environments pinned no
build at all, which meant the proxy came up as 4.1.0-SNAPSHOT while the plugin is
compiled against velocity-api 3.5.1. Server versions are now derived by x from
the Gradle coordinates so they cannot drift from what the plugin targets.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Paper 26.2 bundles Adventure 5.2.0, a major bump from the 4.26.1 shipped by 26.1.
Adventure 5 makes ClickEvent generic, so the raw type in
CommandContext.replyWithEvent no longer compiled. Auditing the rest of the
Adventure 5 removals found no other affected usage.

api-version is raised to 26.2, dropping 26.1 support: the two Adventure majors
are not binary compatible, so claiming 26.1 compatibility would be a lie.

Also fixes two problems found while verifying on a real server: the Velocity
healthcheck invoked mc-health, which does not exist in the mc-proxy image, so the
container had never once passed its check; and the debug environments pinned no
build at all, which meant the proxy came up as 4.1.0-SNAPSHOT while the plugin is
compiled against velocity-api 3.5.1. Server versions are now derived by x from
the Gradle coordinates so they cannot drift from what the plugin targets.</pre>
</div>
</content>
</entry>
<entry>
<title>chore(release): prepare paper v1.2.0 for paper 26.1.2 support</title>
<updated>2026-05-05T21:47:09+00:00</updated>
<author>
<name>Sho Sakuma</name>
<email>me@m1sk9.dev</email>
</author>
<published>2026-05-05T21:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://dangofactory.net/cgit/cgit.cgi/LunaticChat.git/commit/?id=10d5cb34292dea800d878a762bc48d1620aebf6d'/>
<id>10d5cb34292dea800d878a762bc48d1620aebf6d</id>
<content type='text'>
- Bump paperVersion to 1.2.0
- Update docker compose files to Paper/Folia 26.1.2
- Add v1.2.0 entry to CHANGELOG
- Drop "LunaticChat" prefix from release titles

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Bump paperVersion to 1.2.0
- Update docker compose files to Paper/Folia 26.1.2
- Add v1.2.0 entry to CHANGELOG
- Drop "LunaticChat" prefix from release titles

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: Support Minecraft 26.1</title>
<updated>2026-04-04T07:12:42+00:00</updated>
<author>
<name>Sho Sakuma</name>
<email>me@m1sk9.dev</email>
</author>
<published>2026-04-04T07:12:42+00:00</published>
<link rel='alternate' type='text/html' href='https://dangofactory.net/cgit/cgit.cgi/LunaticChat.git/commit/?id=c7aff8fbd0b04624b8291cf0362bed70471f46ae'/>
<id>c7aff8fbd0b04624b8291cf0362bed70471f46ae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: Support folia debug-server</title>
<updated>2026-02-23T07:42:43+00:00</updated>
<author>
<name>Sho Sakuma</name>
<email>me@m1sk9.dev</email>
</author>
<published>2026-02-23T07:42:38+00:00</published>
<link rel='alternate' type='text/html' href='https://dangofactory.net/cgit/cgit.cgi/LunaticChat.git/commit/?id=1265f5d6051fbf7942be2a913870bdd1bd5f24fe'/>
<id>1265f5d6051fbf7942be2a913870bdd1bd5f24fe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
