CraftGuard
2.2.0A lightweight, highly configurable Minecraft plugin for managing restrictions for workstations on a per-world basis.
2.2.0latest[2.2.0] - 2026-04-03Apr 3, 2026 Added
- Item Blockability: New feature allowing server owners to disable specific items from being crafted, smelted, blasted, smoked, stonecut, smithed, or brewed. - Configured via newitem-blockabilitysection inconfig.yml- Supports: CRAFTING, FURNACE, BLAST_FURNACE, SMOKER, SMITHING, STONECUTTER, BREWING, CAMPFIRE - Individual item blocking while keeping workstation enabled - Automatic handling of invalid/missing materials with warnings - DataSerializer Utility: New unified serialization system for YAML/JSON conversion - Automatic format detection - Shared schema handling across formats - GZIP compression support for exports - Plugin Enable Toggle: Mastersettings.enabledoption to disable all features without removing the plugin - Preserves all configuration and stored data - No restart required - use/cg reloadto apply changes - Extended Translation System: - Added 6 new languages: French, Portuguese, Italian, Russian, Japanese, Korean - English variants:en-us(default) anden-uk- Support for custom locale files inlocales/folder - Automatic fallback to English for missing translation keys - Reload support for runtime language changes - New Event Listeners: -FurnaceListener: Handles furnace, blast furnace, smoker, and campfire smelting -SmithingListener: Handles smithing table recipes -BrewingListener: Handles brewing stand operations - GitHub Actions CI/CD: Automated build, test, and release workflowsChanged
- Project version updated to 2.2.0 - Config version bumped to 6 - Default language changed fromentoen-us- PostgreSQL driver updated to 42.7.10 (security fix) - Jackson libraries added with proper shading relocations - README completely rewritten with modern styling - License updated with attribution requirements (Custom license with attribution required for derivative works)Fixed
- MiniMessage tag closing order in locale files - Duplicate instance assignment in CraftGuard constructor - Duplicate MessageUtil initialization comment - Hardcoded FastStats token moved to config (advanced.metrics-token) - Removed duplicate language in LanguageManager defaults - Fixed test for reload command to mock static CraftGuard instance2.1.0[2.1.0] - 2026-03-21Mar 21, 2026 Added
- Modernized Text Engine: Transitioned all plugin text and color codes to the MiniMessage format. - Replaced legacy§and&codes with rich tags (e.g.,<red>,<bold>,<gradient>). - Added a MiniMessage converter link toconfig.ymlfor user convenience. - Component-Based GUI Architecture: Completely refactored the GUI system using a newBaseMenuabstract class. - Standardized GUI creation, opening, and click handling (viaMenuListener). - Improved reusability and reduced boilerplate for all menu implementations. - Multi-Language Expansion: Added out-of-the-box support for 3 new languages: -Chinese (Simplified) (
zh.yml) -Dutch (
nl.yml) -Spanish (
es.yml) - Interactive Help System: Added a dedicated Help Button to the main GUI that opens a detailed help menu. - Enhanced Container Support: Added Shulker Box support to the storage containers menu with a centered 5-item layout. - Advanced PlaceholderAPI placeholders: New detailed placeholders for restriction states and counters. - Numeric states:%craftguard_world_state_numeric%and%craftguard_world_state_numeric_<type>%returns 1/0 - Raw boolean states:%craftguard_world_state_raw%and%craftguard_world_state_raw_<type>%returns true/false - Lockdown placeholders:%craftguard_lockdown%,%craftguard_lockdown_numeric%,%craftguard_lockdown_raw%- Global stats:%craftguard_stats_global_total%returns total blocked interactions - Type stats:%craftguard_stats_type_<type>_total%returns blocks per type - World stats:%craftguard_stats_world_<worldname>_total%returns blocks per world - Type-World stats:%craftguard_stats_type_<type>_world_<worldname>_count%returns blocks per type and world - Player stats:%craftguard_stats_player_<type>_count%returns blocks per player for a type - Player-World stats:%craftguard_stats_player_world_<type>_count%returns blocks in player's current world for a type - Feature counts:%craftguard_enabled_features_count%and%craftguard_disabled_features_count%for current worldChanged
- Environment Cleanup: Removeddotenv-javadependency and hardcoded the FastStats token to eliminate the need for.envfiles. - Menu Layouts: Updated the Chests menu to center items for better visual balance across all resolutions.Fixed
- Registry Stability: Resolved compilation errors inRedisDAO.javaand fixed various small-caps styling inconsistencies.2.0.0[2.0.0] - 2026-03-09Mar 11, 2026 Added
- Registry-based API v2.0: Completely redesigned API architecture for better extensibility. - IntroducedCraftGuardAPIsingleton for central access. - ImplementedGuardProvidersystem for modular protection logic. - Added dynamic block protection registration viaProtectionLogic. - Granular Container Protection: New module to individually manage protection for different container types. - Specific toggles for: Chests, Trapped Chests, Ender Chests, and Copper Chests. - AddedContainerProviderandContainerListenerfor efficient interaction handling. - Enhanced Management GUI: Expanded the interactive interface to support new features. - New Chests category and sub-menu for granular control. - Premium small-caps styling and status indicators extended to all new elements.Changed
- Internal Architecture: Migrated all hardcoded workstation and portal logic to the newProvidersystem. - Localization: Updated default English and German locales with specific strings for all new container types. - Improved Performance: Unified interaction checking through the API, reducing redundant logic in listeners.1.9.1[1.9.1] - 2026-03-08Mar 9, 2026 Added
- FastStats Integration: Added support for [FastStats](https://faststats.dev/) for anonymous plugin usage tracking. - Configurable viasettings.faststatsinconfig.yml. - Requires a valid token in the.envfile in the server root directory.Changed
- Plugin Shutdown: Added proper shutdown logic for FastStats to preventIllegalStateExceptionon reload.1.9.0[1.9.0] - 2026-03-06Mar 8, 2026 Added
- Multi-language Support: Fully translatable messages and GUI strings. - IntroducedLanguageManagerfor handling internal and external locale files. - Addedlocales/directory for secondary translation files. - Shipped with default English (en.yml) and German (de.yml) translations. - Configurable language viasettings.languageinconfig.yml. - Refined Configuration: All user-facing text moved fromconfig.ymlto locale files for better organization.1.8.0[1.8.0] - 2026-03-04Mar 6, 2026 Added
- Emergency Lockdown: High-priority world protection system. - Blocks block break/place, PvP/PvE, and all command usage. - Broadcasts activation/deactivation messages to all players in the world. - Supportscraftguard.admin.lockdownandcraftguard.lockdown.bypasspermissions.1.7.0[1.7.0] - 2026-03-02Mar 4, 2026 Added
- Recipe blacklist system: Block specific recipes instead of disabling crafting entirely. - Custom Deny Effects: Massive new system for visual and auditory feedback. - Sounds: Play vanilla sounds when a feature is blocked. - Titles: Show big on-screen titles and subtitles. - Action Bar: Display discrete messages above the hotbar. - Particles: Spawn particles at the player's location. - All effects support MiniMessage, legacy colors, and PlaceholderAPI.Changed
- Internal optimization: Replaced manual notification logic withEffectUtil. - Upgraded configuration synchronization to version 5.1.6.0[1.6.0] - 2026-03-02Mar 2, 2026 [1.6.0] - 2026-03-02
Added
- Flexible Database Abstraction Layer: Support for multiple storage backends using the DAO pattern. - H2 (Local SQL file), MySQL, MariaDB, PostgreSQL, and MongoDB. - Configurable via the newstoragesection inconfig.yml. - Automatic fallback to YAML if database connection fails. - Improved Update Checker: Detects and notifies when running a development or snapshot version. - Database Export System:/cg exportcommand to dump current data into a compressed.json.gzformat. - Database Import System:/cg import <file>command to restore data from a compressed format. - Automatic Config Synchronization: Existingconfig.ymlfiles are now automatically updated with new keys on plugin startup.1.5.1[1.5.0] - 2026-02-21Feb 21, 2026 Added
- All GUI display names, text, status indicators, labels, and category lores are now completely configurable inconfig.ymlunder theguisection. - Addedconfig-version: 3representing the GUI rewrite.Changed
- All player-facing messages inconfig.ymlnow default to small caps styled text for a more premium aesthetic. - Restricted/cg helpand/cgbase command entirely to admins (required:craftguard.adminpermission).1.5.0[1.5.0] - 2026-02-21Feb 21, 2026 Added
- Modrinth Update Notifier: Automatic version checking with admin join notifications. - Configurable viaupdates.check-for-updatesandupdates.auto-downloadinconfig.yml. - Auto-downloads new JAR toplugins/update/when 2+ minor versions behind. - Clickable download link in chat for manual updates. - Premium GUI redesign: Two-row layout with workstation icons and status indicators (Lime/Red Concrete). - MiniMessage small-caps styling for all GUI text. - Slot-based click detection; clicking icon or indicator toggles the feature. - Dark theme usingBLACK_STAINED_GLASS_PANEbackground. - Addedconfig-versionfield toconfig.ymlfor future migration support. - Added/cg(no args) entry and Features section to/cg help.Fixed
- FixedNullPointerExceptionin all listeners when WorldGuard is not installed.Changed
- Refactored package fromme.devflaretode.devflare. - WorldGuard is now an optional soft dependency inplugin.yml. - Updated README with new features and corrected documentation. - Upgraded project version to 1.5.0.1.4.0[1.4.0] - 2026-02-13Feb 21, 2026 Added
- Interactive GUI system: New chest-based interface for managing features. - Accessible via/cg(without arguments). - Categorized into Workstations (Crafting, Anvil, Furnace, etc.) and Portals (Nether, End). - Visual indicators: Green Wool for enabled, Red Wool for disabled. - Automatic pagination and centered item layouts. - Added a "Back to Main Menu" navigation option in all sub-GUIs.Changed
- Command/cgnow opens the GUI for players;/cg helpremains chat-based. - Upgraded project version to 1.4.0. - RefactoredCraftGuardCommandto integrate with the newGUIManager.1.3.0[1.3.0] - 2026-02-10Feb 11, 2026 Added
- Container Control: New module to restrict access to chests, shulker boxes, and other containers. - WorldGuard Integration: Support for region-based bypasses using the custom flagcg-interaction-bypass. - Async Audit Logging: High-performance logging system to track blocked interactions inaudit_log.txt. - Addedcraftguard.bypass.containerspermission.Changed
- Upgraded project version to 1.3.0. - Refactored internal listener logic for better extensibility.1.2.2[1.2.2] - 2026-02-09Feb 9, 2026 Added
- Smarter Placeholder Parsing: Improved world name detection in PAPI placeholders to correctly handle world names containing underscores (e.g.,world_nether,my_custom_world). - Standardized Defaults: Updatedworlds.ymltemplate to ensure features likeanvildefault totrue, preventing accidental global blocks after installation.Changed
- Thread-Safe Architecture: RefactoredConfigManagerto useConcurrentHashMapfor all internal world states, ensuring reliable performance in multi-threaded environments. - Tab-Completion Logic: Refined tab completion to prevent irrelevant feature suggestions when using subcommands likehelporreload. - Feature Consistency: Standardizedcrafting-tableandcraftingunder a unifiedcraftingfeature key across filters, listeners, and config.Fixed
- Dead Code Cleanup: Removed unused fields and redundant special-case checks in command validation to improve maintainability. - Improved Disposal: Enhanced resource cleanup during plugin disable to eliminate potential memory leaks from stale references.1.2.1[1.2.1] - 2026-02-09Feb 9, 2026 Added
- Enhanced Placeholder Support: Now supports both{placeholder}and<placeholder>formats in custom messages for greater flexibility. - Maintenance: Removed unusedskillsfolder from the repository for cleaner organization.Changed
- Help Command Accessibility:/cgand/cg helpcan now be used by all players, regardless of their permissions. - Unified Feature Naming: Consolidatedcrafting-tableandcraftingunder the singlecraftingfeature key for consistency.Fixed
- Message Placeholder Bug: Resolved an issue where{world}and{type}placeholders were not being replaced correctly in "feature-blocked" messages. - Resource Optimization: Ensured explicit cache clearing and resource disposal occur during plugin disable or reload to prevent potential memory leaks.1.2.0[1.2.0] - 2026-02-09Feb 9, 2026 Added
- Granular Feature Control: Every workstation and portal now has its own toggle. - Supported types:crafting,nether-portal,end-portal,anvil,furnace,blast-furnace,smoker,enchanting,brewing,smithing,loom,cartography,grindstone,stonecutter. - New Command Syntax: Updated/cg <world> <type> <on|off|toggle>for better clarity and control. - Split Portal Control: Nether and End portals can now be toggled independently. - New Listeners: ImplementedPortalListenerandWorkstationListenerfor broad feature blocking. - Granular Bypass Permissions: Fixed permissions tocraftguard.bypass.<type>orcraftguard.bypass.*. - Granular Placeholders: Added new PAPI placeholders for all feature types. -%craftguard_world_state_<type>%-%craftguard_world_<worldname>_<type>%Changed
- Hardcoded Permissions: Permissions are now hardcoded and removed fromconfig.ymlfor consistency. - Redesigned Help Menu: cleaner layout and better readability. - World State Migration: automatically migrates existingworlds.ymlto the new granular format.Fixed
- Improved command validation and error messaging.1.1.1[1.1.1] - 2026-02-07Feb 7, 2026 [1.1.1] - 2026-02-07
Fixed
- Crafting Bypass Bug: Changed defaultcraftguard.bypasspermission fromoptofalse. - Fixes issue where server operators could not test crafting restrictions. - Operators now need to explicitly grant themselves the bypass permission. ---[1.1.0] - 2026-02-07
Added
- Reload Command: Added/cg reloadto reload configuration without restarting the server. - Requirescraftguard.adminpermission. - Reloadsconfig.ymlandworlds.ymlinstantly. Full Changelog: https://github.com/itzzjustmateo/CraftGuard/compare/BETA-…1.0.2-SNAPSHOT[1.0.2] - 2026-02-01Feb 1, 2026 Fixed
- Critical Lifecycle Issues: Fixed memory leaks and stale references during plugin reloads - Static instance now properly nullified on disable - Explicit event listener unregistration to prevent duplicate events - Added null-safe checks inonDisableto prevent crashes - State Persistence Improvements: - ChangedworldStatesCachetoConcurrentHashMapfor thread safety - Fixed PlaceholderAPI stale references by changingpersist()tofalse- Re-checks PAPI availability on every reload/enable - Code Quality: - Removed unused imports and fields - Updated versioning for consistency1.0.1-SNAPSHOT[1.0.1] - 2026-02-01Feb 1, 2026 Added
- Help Command System: Added/cgand/cg helpcommands that display plugin information - Shows plugin version dynamically - Lists all available commands - Displays configured permission nodes - Fully customizable help messages in config.yml as a list format - Includes "help" in tab completion suggestionsChanged
- Help Messages Format: Restructured help section in config.yml from individual keys to a cleaner list format - Before:help-header,help-description, etc. - After: Singlehelp:list with all lines - Easier to customize and maintain - Supports empty lines with""- Message Prefix Configuration: Changed error message reference frompaper-plugin.ymltoplugin.yml- Updated version from1.0.0-SNAPSHOTto1.0.1-SNAPSHOTFixed
- Improved consistency in configuration file documentation
Similar projects
Config →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta