Links
Tags
Creators
Details
1.0.0
Compatibility
Changes
First public release. The decoy-materialization model shipping here has been running in production on a live survival server for the past two weeks without incident.
What Kyokalith is, in one paragraph: anti-X-Ray that never touches world generation. Vanilla ores generate exactly as always; any ore fully enclosed by solid blocks is a decoy — X-Ray, freecam, and seed-map tools all see it, but whether the block is real is only decided the moment mining first exposes it, by a deterministic function keyed with a private per-server salt. Cheaters tunnel to what they saw through the wall and hit stone; ore an honest player can see is always real. Per-event cost is a constant (removed blocks × 6 neighbor checks) — no packet obfuscation, no chunk scanning. See the README for the full model.
Added
- Customizable messages / locales. All admin-command output moved out of the code into
plugins/Kyokalith/lang/<locale>.yml. Bundled locales:en(default) andzh_TW; new config keylocaleselects one. Edit the generated files to customize — deleted keys fall back to the built-in text, and any key missing from a locale falls back to English. Add your ownlang/<name>.ymland setlocale: <name>for a new language, no code required. - Tab completion for every
/kyosubcommand: subcommand names, coordinates (pre-filled from the block you're looking at, or your position), world names, online player names, ore type ids, radius/amount suggestions. Players withoutkyokalith.adminget no completions. - LICENSE: TinyYana Universal Software License (TYUSL) 1.0 — free to use, modify, integrate, and redistribute (commercial servers included); selling the plugin itself or repackaging it as a paid product requires written permission.
- English documentation as the primary set: README.md, docs/CONFIG.md, docs/API.md. 繁體中文版本: README.zh-TW.md, docs/CONFIG.zh-TW.md, docs/API.zh-TW.md.
- Automated releases: pushing a
v*tag builds, tests, verifies the tag matchesgradle.properties, and publishes a GitHub Release with the jar and this file's matching section as notes.
Changed
- Compiled against the Spigot API (26.2) instead of the Paper API. The single Paper-only call in the codebase (
pluginMeta) was replaced with the Bukkit equivalent, making Spigot compatibility a compile-time fact. Production testing still runs on Paper; Folia is not supported. - Kotlin runtime pinned to stable 2.4.0 (was
2.4.20-Beta1); thelibraries:entry in plugin.yml that the Bukkit library loader downloads at startup matches. - Console/log messages are now English.
/kyo statsoutput no longer leaks internal reward-system terminology ("d20"). - Plugin metadata (description, docs) no longer references the private server project this plugin originated from; source comments that pointed at a private design document now explain the concepts inline or link to
docs/in this repo.
Fixed
processResourcesnow registers the version as a task input — previously an incremental build after bumping onlygradle.propertiescould produce a jar whose embeddedplugin.ymlstill carried the old version string.
Upgrading from a pre-release 0.x build
Drop-in: replace the jar and restart.
- Your existing
config.ymlis kept as-is; the newlocale: enkey is merged in automatically with your values and comments untouched. Setlocale: zh_TWfor Traditional Chinese admin output. plugins/Kyokalith/lang/is created with editable copies of both bundled locales.- Database schema, the
salt, and all tracked state are unchanged — no migration, nothing re-rolls.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:hBIX7vSw:43r243iB"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:hBIX7vSw:43r243iB"
}
