Tags
Creators
Details
All versions
0.0.9
Release
RefineryCore 0.0.92 months ago 7
Uploaded by
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
Platform
Paper
Changes
RefineryCore 0.1.0 — a major feature release adding 15+ new systems to the framework.
Added
GUI / Menus
ListPickerGUI— ready-made paginated picker; render any list as clickable itemsTextInputGUI— anvil-based text input preset with validationGUIAnimator— animated GUI frames (borders, blinking) with auto-stop when idleCollectionBinder— keep paginated GUIs synced to live collections
Text & Time
Placeholders— built-in%namespace_key%placeholder registry (PlaceholderAPI-style, no external dependency)TimeFormat— human-readable durations (2h 15m) + parsing of1d6h30m-style input
Data & Persistence
PersistentCooldownManager— restart-proof cooldowns backed by your databaseItemSerializer— Base64 encode/decode for items and item arraysInventorySnapshot— capture/restore/merge full player inventories as a single string
Concurrency
TaskChain— fluent async→sync task sequencing with Folia-safe thread hops
Communication
Messages— per-player locale message bundles (lang/<locale>.yml) with client-locale detectionHttp— async HTTP client with JSON/form bodies and retry/backoff (webhooks, update checks)ProxyMessenger— Velocity-compatible proxy messaging: server switching, payload forwarding, player counts
Crash Reporting
- New crash handler with modern console output, contextual help lines ("What you can try"), and reports saved to
logs/refinery-crash-reports.txt - Every log line keeps its timestamp/prefix — no broken interleaved output
- Ships with 6 default hints (SQL, I/O, missing classes, API mismatches, wrong-thread, NPEs); add your own via
getCrashHandler().hint(...)
ItemBuilder
skullRawTexture()— raw Base64 head texturesglow()/noGlow()— glint controlloreStrings()— lore straight from config listsinsertLore()— insert a lore line at a position
Fixed
- SQLite & H2 JDBC drivers are now bundled —
RefineryDatabase.sqlite()/.h2()work out of the box - Commands/GUIs now find annotations declared in abstract parent classes
- Invalid command handler signatures fail at registration instead of silently doing nothing
- Chat prompt callbacks run on the correct (region) thread — Folia-safe
- Chat prompts no longer break after
/reload - Commands are properly unregistered on disable (no stale wrappers)
- Fixed classloader leak in command registries
- Database
save()now throws on failure instead of silently losing writes (usesaveQuietly()for fire-and-forget) - No more NPEs after destroying a GUI mid-click
- Cooldown acquisition is race-free; expired entries can be purged
- Bad config values log a helpful warning instead of crashing load
- Explicit
@Subcommand("help")no longer shadowed by built-in help - Duplicate subcommand names are rejected at registration
argBooleanonly accepts true/false/yes/no- README requirements corrected to Paper 1.20+
Notes
- Behavior change: repository
save()throws on SQL failure rather than logging and continuing - No breaking API changes — drop-in upgrade from 0.0.x
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:nIAldHSr:FkdJWddO"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:nIAldHSr:FkdJWddO"
}

