Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- in English:
- Patch Notes – Plugin Adjustments and Implementations - Version 1.1.1
- ■ Laser
- Previously, it wasn’t possible to use more than one laser in the same procedure. Now you can add as many blocks as you want to generate lasers and emit particles.
- ➤ Problem:
- - Activating lasers on multiple blocks caused the game to crash (ClassCastException).
- - The template created multiple @SubscribeEvent listeners (internal classes $1, $4, …) within the same procedure.
- - The EventBus attempted to use one handler as if it were another, causing a cast error.
- ➔ Fix:
- - Replaced multiple listeners with a single global listener for ServerTickEvent (via addListener, without @SubscribeEvent).
- - Each click now generates a task (parlack.laser.task@<dim>:<pos>) processed every tick.
- - When time expires or the block changes, the task is removed.
- - Added a lock to prevent duplicate lasers from the same origin (parlack.laser.active@…).
- ----------------------------------------------------------------------------------------------------------------------------------
- ■ X-Ray
- Previously, X-Ray only worked for one block. Now it can be enabled for multiple blocks in the same procedure.
- ➤ Problem:
- - The procedure always wrote to the same NBT keys (nx_xr_block, nx_xr_radius, nx_xr_color, nx_xr_until).
- - The last call of the tick overwrote previous ones → only one highlight appeared.
- - In some cases, the game crashed because ARGB color values were saved as negative integers but parsed with parseUnsignedInt.
- ➔ Fix:
- - Preserved 100% of the original rendering and flow.
- - Added per-tick “slots”: nx_xr_lasttick, nx_xr_count, and arrays nx_xr_block_{i}, nx_xr_radius_{i}, nx_xr_color_{i}, nx_xr_until_{i} (up to 8 per tick).
- - The listener reads all slots and renders all blocks; if none exist, it falls back to the old keys (retro-compatible).
- - Crash fix: switched to Integer.parseInt (accepts negative ARGB).
- ----------------------------------------------------------------------------------------------------------------------------------
- ■ Protective Globe Barrier
- Now detects when the armor is removed (even one piece) and disables the barrier properly in On player tick update.
- ➤ Problem:
- - With “duration = 0” (infinite), the procedure stored nx_globe_until = infinite.
- - When armor was removed, the block stopped running, but the barrier remained infinite.
- ➔ Fix:
- - Kept the original behavior.
- - For “duration = 0”, implemented a keep-alive system:
- - Each call sets: nx_globe_keepalive = true, nx_globe_last = now, nx_globe_until = now + 5 ticks.
- - Listeners end the barrier when:
- - Time expires (gameTime >= nx_globe_until), or
- - No refresh occurs for ~6 ticks (block stopped → barrier fades automatically).
- ----------------------------------------------------------------------------------------------------------------------------------
- ■ Replace Item Inventory
- Previously caused compilation errors when selecting items from your mod or other mods.
- ➤ Problem:
- - Items selected appeared as CUSTOM:ItemName, which isn’t valid Java code.
- - The template couldn’t handle both selector-based items and Get item by ID at the same time.
- - In some cases, the swap also ran on the client, causing “desync” and items seeming to disappear.
- ➔ Fix:
- - Dual support for item origin:
- - If CUSTOM:ItemName → convert to ${modid}:item_name (CamelCase → snake_case).
- - Otherwise → use the expression as-is (Items.*, MyModItems.*.get(), Get item by ID).
- - Execution runs server-side only + broadcastChanges() for proper sync.
- - Behavior preserved: swap in the same slot, keeping count, NBT, and damage.
- ----------------------------------------------------------------------------------------------------------------------------------
- ■ Remove Block Area
- ➔ Accidental file duplication fixed. Functionality now restored.
- ----------------------------------------------------------------------------------------------------------------------------------
- ■ New Procedures:
- ➤ Fly Custom
- - New procedure that allows flying with configurable speed and duration:
- - Speed: choose the speed (0 = default).
- - Duration: set in ticks. Use 0 for infinite (in On player tick update).
- Speed scales:
- 0.5 → 2x faster
- 0.25 → 4x
- 0.2 → 5x
- 0.1 → 10x (very fast)
- 0.05 → 20x (extreme)
- 0.02 → 50x (almost unplayable)
- ----------------------------------------------------------------------------------------------------------------------------------
- ➤ Vein Break
- ➔ Function:
- Breaks all connected blocks of the same type from the origin block, respecting:
- maximum limit,
- reach (Manhattan radius),
- diagonals (6 or 26 directions),
- whether to drop items or just remove.
- Perfect for “chop down entire trees”, ore vein mining, digging clusters, etc.
- Common Triggers
- A block is broken
- Player left/right clicked block
- When block destroyed with item…
- Parameters
- x / y / z: coordinates of the origin block.
- max: maximum number of blocks (anti-lag).
- radius: Manhattan distance reach.
- drops: ✔ = drop items, ✖ = just remove.
- diagonals: ✔ = connect 26 directions, ✖ = only 6.
- ➔ Recommended Settings:
- Axe (trees): max 128, radius 6–8, diagonals ✔, drops ✔.
- Pickaxe (ores): max 256–512, radius 10–16, diagonals ✖, drops ✔.
- Shovel (sand/gravel): max 128–256, radius 8–12, diagonals ✖, drops optional.
- Shears/Sickle (leaves/plants): max 200+, radius 8–12, diagonals ✔, drops ✔.
- ➔ Tips:
- Always use max + radius.
- Disable diagonals for ores (prevents grabbing separate veins).
- Use drops ✖ for cleanup routines (worldedit-like, without filling the ground with items).
- Combine with a tool damage procedure (e.g., sum blocks broken).
- ----------------------------------------------------------------------------------------------------------------------------------
Add Comment
Please, Sign In to add comment