Skip to content

Releases: AREKKUZZERA/nerfstick

nerfstick - 1.0.6

Choose a tag to compare

@AREKKUZZERA AREKKUZZERA released this 22 Jun 08:49
609554a

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.direction
    • nerfstick.manipulation.openable
    • nerfstick.manipulation.power
    • nerfstick.manipulation.water
    • nerfstick.manipulation.shape
    • nerfstick.manipulation.level
    • nerfstick.manipulation.multi_face
    • nerfstick.manipulation.misc
    • nerfstick.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.nerfstick package.

Fixed

  • Fixed release builds by making papermakeFinalizeBuild depend on reobfJar.
  • Updated plugin.yml permissions 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.use and nerfstick.manipulation.* permissions.

Full Changelog: 1.0.5...1.0.6

nerfstick - 1.0.5

Choose a tag to compare

@AREKKUZZERA AREKKUZZERA released this 19 Jun 20:09

Fixed

  • Fixed enum-based block property cycling in cycleValue()

    • Previously, enum properties such as facing, axis, half, shape, hinge, instrument, attachment, orientation, and rotation were 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.
  • Fixed missing invocation of allowBlockState() in Permission.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.
  • Fixed crash in allowBlockState() for blocks without explicit namespace

    • Added safe parsing to prevent ArrayIndexOutOfBoundsException.

Changed

  • Refactored block state cycling system using BlockStateUtil

    • Replaced manual property handling with reflection-based detection of Bukkit/Paper state interfaces:

      • Directional
      • Orientable
      • Bisected
      • Ageable
      • Levelled
      • Powerable
      • MultipleFacing
    • 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#setFace instead of generic enum cycling.
  • Changed block update behavior

    • Replaced block.setBlockData(data, false) with block.setBlockData(data, true)
    • Ensures correct physics and neighbor updates (doors, rails, redstone components).

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)
    • Runs asynchronously

    • Does not perform automatic updates

    • Configurable via check-for-updates in config.yml

    • Admin-only notification on player join

Full Changelog: https://github.com/AREKKUZZERA/nerfstick/commits/1.0.5