
StonecutterDamage
Lightweight Minecraft plugin that adds a subtle survival mechanic by dealing damage to any entity standing on a stonecutter.
- Загрузки
- 202
- Подписчики
- 2
- Обновлён
- 22 марта 2026 г.
- Лицензия
- GPL-3.0-only
Опубликован 14 декабря 2025 г.
Overview
Stonecutter Damage adds a gameplay mechanic where players and living entities take damage when standing on a stonecutter block. The plugin efficiently tracks entities that step onto stonecutters and applies configurable damage at a fixed interval. The system is optimized to minimize unnecessary checks by only processing relevant worlds, entities, and block-position changes.
Features
- Configurable damage amount dealt by stonecutters
- Supports players and all LivingEntity types
- World whitelist support
- Entity blacklist support (e.g. bats or other excluded mobs)
- Optimized tracking using cached block positions
- Configurable task delay and period
- Enable or disable the plugin via config
- Lightweight and safe for large servers
Spoiler
# Enable or disable Stonecutter damage handling
# Default: true
enabled: true
# Permission that allows players to ignore stonecutter damage
# Default: stonecutter.bypass
permission: stonecutter.bypass
# Amount of damage dealt per hit (in half-hearts)
# 1 = 0.5 heart
# Default: 1.0
damage-amount: 1.0
# Initial delay before the damage task starts (in ticks)
# 20 ticks = 1 second
# Default: 20
task-delay: 20
# Interval between damage checks (in ticks)
# 20 ticks = 1 second
# Default: 20
task-period: 20
# List of worlds where StonecutterDamage is active
# Only entities/players in these worlds will be checked
# Default: ["world", "world_nether", "world_the_end"]
allowed-worlds:
- world
- world_nether
- world_the_end
# List of entity types that are excluded from StonecutterDamage
# Use Bukkit entity type names, e.g., ZOMBIE, CREEPER, ARMOR_STAND
# Default: ["ARMOR_STAND", "ITEM_FRAME"]
blacklisted-entities:
- ARMOR_STAND
- ITEM_FRAME
# Help command output
# {0} replaces with the command label
# /stonecutter help
help-messages:
- "§7=== §aStonecutterDamage Commands §7==="
- "§e/{0} help §8- §fShows this help message."
- "§e/{0} reload §8- §fReloads the config."
# Message shown after successful config reload
# /stonecutter reload
reload-message: "§8[§aStonecutter§8] §fSuccessfully reloaded the config."
Permissions
stonecutter.bypass - Allows a player to stand on stonecutters without taking damage.
Commands
/stonecutter help - Displays all available commands. /stonecutter reload - Reloads the plugin configuration.
bStats
Ченджлог
1.0.0-alpha.24Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
ci: update build name format in workflow file
1.0.0-alpha.23Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
ci: change release deletion from 'dev-build' to 'dev-latest'
1.0.0-alpha.22Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
ci: refactor .releaserc.json for semantic-release plugins
1.0.0-alpha.21Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
chore: sync dev with master (#24)
1.0.0-alpha.20Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
ci: update game version range in release workflow
1.0.0-alpha.19Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
ci: update game version range in build-dev.yml
1.1.0Релиз1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
- Changed key task-period to task-interval (#11)
- Prevented memory leaks during entity cleanup (#12)
Replaced hard references from LivingEntity to UUID. This allows the garbage collector to properly clear entities when chunks unload. Improved validation logic during removal to ensure all tracking caches are safely cleared.
- Implemented tick slicing for entity damage processing (#13)
Replaced the synchronous global entity iteration in DamageTask with a chunked processing system (Tick Slicing). Entities are now processed in batches of 50 per tick to distribute server load. Added fast-fail UUID validity checks before block location lookups. This eliminates massive TPS drops on servers with large mob farms.
- Removed player from contacts on disconnect (#14)
Add onPlayerQuit method in StonecutterListener class to instantly clear redundant player data from StonecutterContacts when a player leaves the server, preventing minor memory overhead.
- Added gradle wrapper scripts
- Created .releaserc.json for semantic release setup
Add configuration for semantic release with plugins.
- Created GitHub Actions workflow for development build
- Added PR check and build workflow
This workflow checks and builds pull requests to the 'dev' branch, setting up JDK 17 and uploading the built artifact.
- Added GitHub Actions workflow for release automation
- Added gradle-wrapper.jar to fix actions
- Added sound and particle effect configurations (#15)
- Added customizable sound and particle effects (type, volume, pitch, offset) via config.yml.
- Implemented safe particle spawning to prevent BlockData-related crashes.
- Improved performance and validation in DamageTask (added fast-fail checks for gamemodes, invulnerability, and invalid entities).
- Enhanced PR workflow with name extraction and permissions
Added permissions and steps to extract version and name from Gradle files for PR builds.
- Extracted project name from settings.gradle
- Fixed extraction of project name in build-dev.yml
- Fixed extraction of project name in PR check workflow
- Extracted project name and update release metadata
- Optimized global entity iteration in DamageTask to prevent TPS drops (#17)
- Replaced Player objects with UUIDs in cache to prevent memory leaks.
- Implemented dynamic tick slicing in DamageTask to distribute CPU load evenly.
- Cached configuration values to eliminate redundant Bukkit API calls and GC spikes.
- Added artifact upload step in PR workflow to fix download link
- Modified PR comment to include build details
Update PR comment message to include version and name.
- Added step to get last commit message in workflow
Added a step to retrieve the last commit message and store it in the environment for use in the publish step to show in modrinth and curseforge.
- Included changelog in release.yml
Add changelog to release metadata in workflow
- Added changelog generation step to release workflow
- Improved particle effect handling in DamageTask (#21)
1.0.0-alpha.18Альфа1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
ci: update release workflow to fetch changelog from GitHub
Комментарии
Загружаем…