Releases: AREKKUZZERA/nerfstick
Release list
nerfstick - 1.0.6
Changed
- Reworked the Debug Stick permission model.
- Replaced per-block/per-property permissions with manipulation-category permissions.
- Debug Stick access is now controlled by
nerfstick.use. - Block-state editing is now controlled by category permissions:
nerfstick.manipulation.directionnerfstick.manipulation.openablenerfstick.manipulation.powernerfstick.manipulation.waternerfstick.manipulation.shapenerfstick.manipulation.levelnerfstick.manipulation.multi_facenerfstick.manipulation.miscnerfstick.manipulation.*
Improved
- Made the Debug Stick behave closer to vanilla:
- left click selects the editable property;
- right click cycles the selected value;
- sneaking reverses cycling direction.
- Unauthorized properties are hidden from the selection cycle instead of being selectable but unusable.
- Refactored the plugin into cleaner components:
- event listener;
- debug-stick service;
- block-state service;
- permission service;
- protection service;
- manipulation registry.
- Moved runtime code fully under the
com.arekkuzzera.nerfstickpackage.
Fixed
- Fixed release builds by making
papermakeFinalizeBuilddepend onreobfJar. - Updated
plugin.ymlpermissions to match the new permission model. - Updated documentation for the new category-based permissions.
Notes
- The old
nerfstick.use.minecraft.<block>.<state>permission scheme is no longer used. - Servers should update permission groups to use the new
nerfstick.useandnerfstick.manipulation.*permissions.
Full Changelog: 1.0.5...1.0.6
nerfstick - 1.0.5
Fixed
-
Fixed enum-based block property cycling in
cycleValue()- Previously, enum properties such as
facing,axis,half,shape,hinge,instrument,attachment,orientation, androtationwere not processed correctly and returned unchanged values. - This caused most block interactions (doors, stairs, rails, logs, furnaces, etc.) to not respond to right-click state changes.
- Previously, enum properties such as
-
Fixed missing invocation of
allowBlockState()inPermission.java- Permission checks for
nerfstick.use.minecraft.<block>.<property>were not enforced at runtime. - As a result, players could modify any block property regardless of permissions.
- Permission checks for
-
Fixed crash in
allowBlockState()for blocks without explicit namespace- Added safe parsing to prevent
ArrayIndexOutOfBoundsException.
- Added safe parsing to prevent
Changed
-
Refactored block state cycling system using
BlockStateUtil-
Replaced manual property handling with reflection-based detection of Bukkit/Paper state interfaces:
DirectionalOrientableBisectedAgeableLevelledPowerableMultipleFacing
-
Automatically resolves valid enum values via
getEnumConstants().
-
-
Improved handling of multi-face block states
- Proper support for blocks such as fences, glass panes, and similar structures using
MultipleFacing#setFaceinstead of generic enum cycling.
- Proper support for blocks such as fences, glass panes, and similar structures using
-
Changed block update behavior
- Replaced
block.setBlockData(data, false)withblock.setBlockData(data, true) - Ensures correct physics and neighbor updates (doors, rails, redstone components).
- Replaced
Added
-
Added soft dependency support in
plugin.yml:- WorldGuard
- GriefPrevention
- Ensures correct load order for region protection integration.
-
Added update checker (optional)
-
Sources:
- Modrinth (
nerfstick-remastered) - GitHub Releases (
AREKKUZZERA/nerfstick)
- Modrinth (
-
Runs asynchronously
-
Does not perform automatic updates
-
Configurable via
check-for-updatesinconfig.yml -
Admin-only notification on player join
-
Full Changelog: https://github.com/AREKKUZZERA/nerfstick/commits/1.0.5