Tags
Creators
Details
All versions
1.0-Nightly-6
Alpha
CoreTuff-1.0-Nightly-65 months ago 18
Uploaded by
Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
1.20.x
Platforms
Folia
Paper
Purpur
Changes
CoreTuff v1.0 Nightly-6 - Development Build Changelog
Overview:
- Sixth public development build of CoreTuff.
- Complete package rebrand from
net.voxfonix.coreTufftoorg.voxelware.coretuff. - Added full economy system with Vault integration, transaction history, and interest scheduler.
- Added Lands system with persistent homes and warps backed by H2 database.
- Added economy integration for warps (per-warp cost with bypass permission).
- Added Jail system for moderating players with configurable teleport delay and sounds.
- Added Kits system with YAML-based item definitions and per-player cooldowns.
- Added PlaceholderAPI expansion exposing economy, warps, and moderation data.
- Added custom plugin dependency resolver for bootstrapping H2, Configurate, and Lombok.
- Added Modrinth-based update checker.
- Added
formatRaw()message method for prefix-free display messages. - Added new config files:
ecoconfig.yml,kitsconfig.yml,landconfig.yml. - Expanded H2 database with 6 new tables for homes, warps, economy, transactions, jails, and jailed players.
- Improved security with
plugin-hidedefaulting tofalseand refined permission checks. - Improved VersionedConfigLoader rename pattern to timestamped
old<base>_<date>.yml.
Additions:
Economy System:
- Full virtual economy with H2 persistence:
/balance [player]-- Check your or another player's balance. Permission:coretuff.economy.balance(default: true),coretuff.economy.balance.others/pay <player> <amount>-- Transfer funds to another player. Permission:coretuff.economy.pay(default: true)/eco <give|take|set|reset> <player> <amount>-- Admin economy management. Permission:coretuff.economy.admin
- Economy configuration (
ecoconfig.yml):- Currency name, name-plural, symbol, decimal places
- Starting balance, max balance
- Pay tax percentage with bypass permission
- Interest system (rate %, interval hours, max balance, bypass permission)
- Configurable sounds for pay-sent, pay-received, balance-check, eco actions, insufficient-funds
- Vault integration:
VaultHook.javaregisters a Vault economy provider on startup if Vault is detected- Allows other plugins (e.g. ShopGUI+, Essentials) to use CoreTuff's economy
- Transaction history:
TransactionRepository.javawith H2economy_transactionstable- Tracks sender, target, amount, type, reason, timestamp
TransactionTypeenum (PAY, ADMIN_GIVE, ADMIN_TAKE, ADMIN_SET, ADMIN_RESET, INTEREST)
- Economy service (
EconomyService.java):- Thread-safe balance operations with BigDecimal precision
- Interest scheduler: runs at configurable interval via Folia/Paper scheduler
EconomyRepository.javafor H2 CRUD operations
Lands System:
- Homes (H2 database-backed):
/home <name>-- Teleport to a home. Permission:coretuff.land.home/sethome <name>-- Set a home at your location. Permission:coretuff.land.sethome/delhome <name>-- Delete a home. Permission:coretuff.land.delhome- Configurable teleport delay, default home name, max homes per permission
- Configurable sounds (set, teleport, delete, list)
- Warps (H2 database-backed):
/warp <name> [player]-- Teleport to a warp. Permission:coretuff.land.warps.warp, warp-others:coretuff.land.warps.warp.others/setwarp <name> [description]-- Create or update a warp. Permission:coretuff.land.warps.setwarp/delwarp <name>-- Delete a warp. Permission:coretuff.land.warps.delwarp/warps [page]-- List all warps. Permission:coretuff.land.warps.list
- Economy integration: per-warp cost with
coretuff.land.warps.bypass-costbypass permission- Max warps per permission base, configurable descriptions, creation timestamps
- Configurable sounds (set, teleport, delete, list, no-permission, insufficient-funds)
- Lands configuration (
landconfig.yml):- Separate sections for homes and warps with their own messages, sounds, and limits
- Versioned config with auto-migration
Jail System:
- Full moderation jail feature with H2 database:
/setjail <name>-- Create a jail at your location. Permission:coretuff.moderation.jail.setjail/deljail <name>-- Delete a jail. Permission:coretuff.moderation.jail.deljail/jail <name> [player] [reason]-- Jail a player. Permission:coretuff.moderation.jail.jail, others:coretuff.moderation.jail.jail.others/jails-- List all configured jails. Permission:coretuff.moderation.jail.list
- H2 tables:
jails(locations) andjailed_players(tracking) - Configurable teleport delay (seconds), release-on-logout toggle
- Configurable messages and sounds in
modconfig.ymlundermoderation.jail.*
Kits System:
- YAML-defined kits with cooldowns:
/kit <name> [player]-- Redeem a kit. Permission:coretuff.utility.kit.<name>, others:coretuff.utility.kit.others/kits-- List available kits with availability status. Permission:coretuff.utility.kit.list(default: true)
kitsconfig.ymlwithconfig-version, default cooldown, kit teleport delay- Sample kit "starter" with diamond sword, cooked beef, iron tools
- Per-player cooldown tracking (in-memory Map, resets on restart)
- Items defined as YAML list of
material+amountentries - Items dropped at feet if inventory is full
PlaceholderAPI Expansion:
CoreTuffExpansion.javaauto-registers on startup if PlaceholderAPI is present%coretuff_economy_balance%/%coretuff_economy_balance_raw%-- Current player's balance%coretuff_economy_balance_<player>%-- Specific player's balance%coretuff_economy_balance_raw_<player>%-- Specific player's raw balance%coretuff_economy_currency_symbol%/%coretuff_economy_currency_name%/%coretuff_currency_name_plural%%coretuff_economy_has_funds_<amount>%-- Returns yes/no if player can afford the amount%coretuff_warps_count%/%coretuff_warps_list%-- Warp statistics%coretuff_warps_list_with_desc%-- Warp list with descriptions%coretuff_moderation_warnings%/%coretuff_moderation_warnings_<player>%-- Warning points%coretuff_moderation_is_banned%/%coretuff_moderation_is_banned_<player>%-- Ban status%coretuff_moderation_punishments%/%coretuff_moderation_punishments_<player>%-- Punishment count
Custom Plugin Dependency Resolver:
dependencyresolver.java-- Paper plugin loader that bootstraps Maven-like dependencies- Automatically downloads and loads
com.h2database:h2:2.4.240,org.spongepowered:configurate-yaml:4.1.2,org.projectlombok:lombok:1.18.46from Maven Central
Update Checker:
UpdateChecker.java-- Checks Modrinth API on startup- Compares latest version against current plugin version
- Logs update notification to console if newer version is available
Database Expansion:
- New H2 tables created in
DatabaseManager.java:homes-- player_uuid, home_name, world, x, y, z, yaw, pitch (composite PK)warps-- name (PK), world, x, y, z, yaw, pitch, owner_uuid, description, created_ateconomy-- player_uuid (PK), balanceeconomy_transactions-- id (IDENTITY), sender_uuid, target_uuid, amount, transaction_type, reason, created_atjails-- name (PK), world, x, y, z, yaw, pitchjailed_players-- player_uuid (PK), jail_name, jailed_by, reason, jailed_at, release_at
Changes:
Security:
plugin-hidedefault changed fromtruetofalseinsecurityconfig.yml- All
PluginHideListenerevent handlers now guard withif (!config.pluginHideEnabled()) return;-- hiding only activates when explicitly enabled isVisibleTo()returnstruefor commands with null/blank permission (fixes tab-completion for vanilla commands)- Removed custom
coretuff.command.<name>fallback fromProtocolCommandHider SecurityConfignow provides typed API:pluginHideEnabled(),setPluginHide(),hiddenCommandMessage()PlayerCommandSendEventhandler simplified withremoveIfpattern- Brigadier
childrenfield resolved once in static block for performance
Config Version Migration:
VersionedConfigLoader.renameCurrentAsOld()now createsold<base>_yyyyMMdd-HHmmss.ymlinstead ofold<filename>- Pre-existing old file is deleted before rename to avoid conflicts
Permission Tree Expansion:
- New top-level permission groups:
coretuff.land,coretuff.economy,coretuff.moderation.jail,coretuff.utility.kit - New player-facing Permissions:
coretuff.land.home,coretuff.land.sethome,coretuff.land.delhome,coretuff.economy.balance(true),coretuff.economy.pay,coretuff.utility.kit.list coretuff.land.warpschildren: warp, setwarp, delwarp, list, warp.others, bypass-costcoretuff.economychildren: balance, balance.others, pay, admin, bypass-tax, bypass-interest
Config File Additions:
ecoconfig.yml-- Economy configuration (version 1.0)kitsconfig.yml-- Kit definitions (version 1.0)landconfig.yml-- Homes and warps configuration (version 1.0)modconfig.yml-- Bumped to version 1.1 with jail section
Bugs:
- Tab completion incorrectly hid commands that had no permission requirement (Fixed --
isVisibleTo()now returnstruefor null/blank permission)
Notes:
- This is a nightly development build, It might be unstable.
- Existing Nightly-5 config files are compatible but
modconfig.ymlwill be auto-migrated to v1.1 on first run (old file preserved asoldmodconfig_<date>.yml). - Plugin hide security feature is now opt-in (defaults to
false). Enable with/ct pluginHide true. - Economy data is stored in H2 database -- backup
Core/database.mv.dbregularly. - Kit cooldowns are currently in-memory only and reset on server restart (persistence planned).
- We highly recommend you to review all new config files, especially
ecoconfig.yml,landconfig.yml, andkitsconfig.yml.
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:s7Qe5Y2n:fzYe4Jeq"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:s7Qe5Y2n:fzYe4Jeq"
}

