Fix seven errors the third verification pass found
The Database example did not compile. It called getLogger(), which Database does
not have: the class implements DatabaseListener and its whole surface is the
constructor, shutdown, getConnection, three final callbacks and the two abstract
log methods. shared-jar has no Bukkit either, so JavaPlugin's logger was not in
scope by any route. The example now brings its own java.util.logging.Logger and
the page says why.
The shading page omitted commons-lang3 from the list of transitives a spigot-utils
consumer must relocate. It arrives through commons-text, which declares it at
compile scope, and spigot-jar relocates it under its own spigot-utils heading. A
reader relocating exactly the seven listed would have shipped it unrelocated,
which is the collision that paragraph exists to prevent.
EntityMethodsPre_1_13 was listed as removed. It is in the published spigot-nms
1.2.32 jar at 6260 bytes and on every consumer's compile classpath; it left the
documented api surface and the aggregated javadoc, which is not the same thing.
MaterialData and EventManager really are absent, so those rows stand.
Four signatures named KMessageSingle where v5 takes VersionedComponent, on
CommandPaging.getPage and setHelpComments, which contradicted the KamiCommand page
getting it right. CommandPage should have been CommandPaging in two places. Txt
titleizedPageTitle lost its List args parameter in alpha.50 and the page had not
caught up. And the subsystem failure note quoted only the module log line, while
FeatureManager logs "Can not register the feature", so a reader whose feature was
silently absent would have grepped for a string that never appears.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Stop narrating how the design was arrived at
Several pages reported on investigation rather than explaining behaviour. The
Adventure page said the nested jar "is not an oversight to work around", that
shading flat "made it importable by every consumer", and that "a consumer compiled
against it successfully even with the dependency declared runtime-only". That is a
description of an experiment. A reader needs the rule, which is that scope
metadata cannot conceal bytes physically present in a jar, and that nesting also
survives them shading KamiCommon themselves.
The Database page carried a post-mortem on a v4 property map that never took
effect. It now states what applies today, with the v4 correction moved into a
clearly marked migration note for anyone who believed SSL was disabled.
Also removed: "v4 hardcoded the relocated name, which failed for non-shaded
consumers", "v4 had no way to close it at all", "v4 threw on every 26.x server",
"this changed in v4 and catches people out", and a note in the migration guide
explaining what an earlier revision of that same page used to say.
Comparisons with v4 inside migration callouts are kept. That is what a migration
guide is for, and an upgrading reader needs them.
Document v5: entry pages, topic pages, and the changes since alpha.20
The v5 section had no topic pages at all. Its only feature documentation was the
nine v3 pages, which teach APIs that v4 and v5 both replaced, so anyone following
the only documentation that existed wrote code that did not compile. Getting
Started was a placeholder reading "API documentation and getting started content
will be added here".
Fifteen new pages. Three cover setup: how to depend on the library, which of the
six modules to pick, what shading obliges you to do, and the Java 8 floor with its
one Java 11 exception. Seven replace the v3 topic pages for KamiPlugin,
KamiCommand, menus, menu configuration, ItemBuilder, configuration and subsystems.
Five cover ground the wiki has never had in any version: the VersionedComponent
text API, which Adventure a server actually uses and where the 1.18.2 boundary
falls, NmsAPI, Redis and Database.
The migration guide had three entries that were actively wrong rather than
missing. It told readers to update imports to three integration classes that a
later section of the same page said were removed. It presented MaterialData to
XMaterialData as a rename when five things differ, one of them silently because
XMaterialData has no equals or hashCode. And it named the EventManager removal
without saying that no replacement exists, so the seven lines of removed logic are
now published for reimplementation. Four omitted changes were added, of which
AbstractBlockUtil.setBlock is a hard compile break.
Everything after alpha.20 was documented nowhere. Readers coming from 4.0.0 are
routed to the topic pages, since for them it is new capability rather than
renames. Readers who tracked the pre-releases get a dedicated alpha.20 to 5.0.0
guide covering the whole window.
Written as though 5.0.0 is live, so no dated stamps outside the historical
alpha.17 page, version placeholders rather than hardcoded numbers, and the Home
status no longer says active development.
A review against the source caught nineteen defects before this landed, most of
them examples that would not compile: the shading bootstrap was wrong on three
pages, registerModule was documented taking a class when it takes an instance, and
ConfigObserver's package was wrong everywhere it appeared. All are corrected here.
Every internal link and cross-page anchor is verified, including three v3 links
that were missing their v3 prefix.
Co-Authored-By: Claude Code <noreply@anthropic.com>