Fairy LightingСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (13)
release
v8.0.16
8.0.1626 авг. 2026 г.734Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.16 - Pennant attach + save hang
## Pennant Bunting
- Flags hung ~1 block below the rope (CF report, reproduced `meka_test` 07.22.32).
- 8.0.8 applied the model `fixed` translation `[-7.5, -16, -8]` by hand **and** `renderBakedModel` still applies `ItemDisplayContext.FIXED`. Doubled offset.
- Renderer now lets FIXED apply once.
## World leave hang
- Save/quit stuck at `Saving worlds` (07:22:36, no `Saving chunks`). `setRemoved` / fence entity unload called `fastener.remove()`, which `dest.get`s the other end under `CONNECTION_MAP_LOCK`.
- Unload now `detachLocal()` (clear maps, no peer lookup). Intentional break still `dropItems` + `remove()` from `FastenerBlock.onRemove` / fence `KILLED`.
release
v8.0.15
8.0.1515 авг. 2026 г.135Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.15 - Crafting + / manual grid
## Crafting
- Generic recipes were marked incomplete because empty 3x3 cells used `Ingredient.EMPTY`. Vanilla treats that as "missing items", so the recipe book never unlocked them. JEI / recipe-book + would not pull ingredients, and a limited-crafting world also refused a manual grid.
- Light and pennant extras now match the `fairylights:lights` / `fairylights:pennants` tags, so dyed / twinkling stacks count the same as bare ones.
- Item ingredients are item-type matches, not prototype `ItemStack`s.
## Build
- Compile JEI pin moved `19.21.2.313` → `19.27.0.340` (old artifact gone from Maven). Runtime pack JEI 19.39 still fine.
release
v8.0.14
8.0.1422 июл. 2026 г.307Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.14 - JEI Twinkle / Color-Changing Recipes
## JEI
- Twinkle (light + glowstone) and color-changing (light + gold nugget + dyes) are special crafts with no fixed result. JEI now gets sample results and registers those special recipes so they show when viewing a fairy light.
- Dye color subtypes no longer hide shared upgrade recipes (color still separates stacks in the item list).
- Twinkle / color-changing stay distinct from plain lights in recipe matching (fixes empty JEI output when viewing a non-twinkling light).
- Twinkle / color-changing recipes cycle every light type in JEI, not only the first tag entry.
## Twinkle / color-changing behavior
- Hanging-light patterns now persist twinkle and color-changing data across sync (same backup path as dye color).
- Client connections apply powered state after feature rebuilds so twinkle/emissive rendering can run.
- Placed light blocks tick their light behavior so twinkle animates there too.
- Crafting only keeps an active twinkle flag (false/absent no longer sticks as a component).
- Color-changing lights store their palette on a real `fairylights:colors` data component (CUSTOM_DATA alone was producing plain dyed results).
release
v8.0.13
8.0.1322 июл. 2026 г.15Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.13 - Fence Placement & Tether Fixes
## Placement
- Finishing a place no longer destroys the connection (incoming peer-teardown was colliding with `reconnect`).
- Hotbar abort still clears the tether from the owner fastener without breaking completed strands.
- Clicking a fence attaches via `FenceFastenerEntity` instead of spawning a wall Fastener block beside the post.
## Fence tether / sync
- Fence fastener updates are sent as real network payloads (client tether rope renders during place).
- Connect before spawning the fence entity so spawn data includes the placing tether.
- Player tether hand offset uses the held item + main arm (no longer stuck on the left when player fastener data is client-local).
## Fence break
- Breaking a fence tears down both ends of the connection immediately.
- Removed fence entities are treated as gone so the other end does not leave a ghost rope.
- Fence fastener model uses the FIXED display transform again (nub centered on the post).
## Tooling
- `publish.ps1` auto-resolves CurseForge Client/Server environment version IDs (75208).
release
v8.0.11
8.0.1121 июл. 2026 г.18Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.11 - Stability, Colors, Placement
## Critical Fixes
### Server Watchdog Hang on Chunk Unload
- Guarded `HangingLightsConnection.removeLight()` with `world.isLoaded(pos)` so unload no longer triggers blocking chunk loads / deadlocks.
- Soft-teardown on fastener remove (`noDrop()` before connection teardown) to avoid item rain and world mutation during unload.
### Placement Tether / Player Fling
- Aborting a place (e.g. hotbar switch) now fully tears down the connection instead of only stripping the player’s incoming map entry.
- `PlayerFastener` is ticked from `ServerEventHandler` and stored via NeoForge data attachments (replacing the fragile `WeakHashMap`).
## Visual / Item Fixes
### Invisible Black / Gray (and EMI icons)
- Normalize dye/string/item tints to opaque ARGB for Minecraft 1.21 ItemColor.
- Sync `COLOR` from connection logic on pickup; restore `fl_backup_color` for pennant patterns; opaque seasonal/ClientProxy fallbacks.
### Light Block Toggle
- Migrated dead `LightBlock.use()` to `useItemOn` / `useWithoutItem` and sync BE `on` with `LIT`.
## Recipes / Data
- Restored `color_changing_light` recipe (was a width-0 stub) and wire `"colors"` through crafting + `ColorChangingBehavior`.
- Fixed `light_twinkle` crafting to persist the `twinkle` component; tooltip/name helpers read components correctly.
- Fixed malformed NeoForge tag JSON for `#c:ingots/iron` and `#c:nuggets/gold`.
## Performance
- Stop per-tick `sendBlockUpdated` for dynamic catenaries (only sync when explicitly dirty).
- Strip hot-path info logging (letter/pennant/tinsel/JEI).
## Other
- Pick-block (`getCloneItemStack`) updated for NeoForge 1.21.1.
- Fastener renderer provides infinite render bounds so long connections cull correctly.
- `settings.gradle` NeoForge plugin repo URL uses `/releases`.
release
v8.0.10
8.0.102 мая 2026 г.2,2 тыс.Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.10 - Performance: Remove Dead Reflection Code
## Performance Fixes
### CapabilityHandler (~16% render thread overhead eliminated)
- **Removed per-tick reflection calls** in `getFastenerCapability()` for both `Entity` and `BlockEntity` overloads. The code was calling `Class.getMethod()` / `Method.invoke()` every tick trying to find old Forge API methods (`getCapability`, `getData`, `setData`, `addCapability`, `getOrCreateCapability`) that don't exist in NeoForge 1.21.1. Each call threw `NoSuchMethodException` which is expensive to construct.
- The `instanceof` checks for `FastenerBlockEntity`, `FenceFastenerEntity`, and `Player` already covered all real use cases — the reflection fallbacks never succeeded.
## Bug Fixes
### Connection Item Matching (Connection.java)
- **Fixed `matches()` and `replace()` using dead `getTag()` reflection** instead of the Data Components API. `ItemStack.getTag()` was removed in 1.20.5 — the reflection always failed and returned `null`, causing `matches()` to always return `true` for same-type items (preventing valid NBT comparison) and `replace()` to always pass empty data (losing connection properties like color/pattern). Now correctly reads from `FLDataComponents.CONNECTION_LOGIC`.
## Dead Code Removal
### FenceFastenerEntity.java
- Removed two useless reflection attempts for `NbtAccounter.unlimitedHeap()` and `NbtAccounter.createUnlimited(int)` in `readSpawnData()` — neither exists in 1.21.1. The correct `NbtAccounter.create()` was already the final fallback.
### NetBuilder.java
- Removed dead reflection in `sendToClient()` trying `PayloadRegistrar.send()` and `PayloadRegistrar.sendToPlayer()` — neither method exists. The handler map fallback was the actual working code path.
### ClientEventHandler.java
- Removed reflection-based `addVertexToBuffer()` trying the old `VertexConsumer.vertex(double,double,double)` chained API. This code path is unreachable (only called from commented-out `drawEntityHighlight`).
### ClientProxy.java
- Removed unused `getUvIndex()` method containing `VertexFormatElement.getUsage()` reflection — never called from anywhere in the codebase.
release
v8.0.9
8.0.93 апр. 2026 г.2,4 тыс.Minecraft: 1.21.1neoforge
Что нового
- Suppressed `FL_DEBUG` and `FL_DEBUG_CRITICAL` console spam.
release
v8.0.8
8.0.82 мар. 2026 г.1,8 тыс.Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.8 - Letter & Pennant Bunting Rendering Fix
## Major Fixes
### Letter Bunting Rendering
- **Fixed letters not appearing on string**: Letters now render correctly on letter bunting after entering text in the dialog. The root cause was a broken manual vertex extraction approach — replaced with Minecraft's native `putBulkData()` method for rendering BakedQuads.
### Pennant Bunting Rendering
- **Fixed pennants not appearing on string**: Pennants now render correctly. The model lookup was using the wrong variant (`"inventory"` instead of `"standalone"`), causing all models to return the missing model.
- **Fixed pennants off-center**: Added proper centering translation to align pennants under their attachment points on the string.
### Rendering Pipeline
- **Fixed texture atlas mismatch**: BakedQuad rendering was using the mod's custom entity texture atlas, but the quad UV coordinates reference the block texture atlas. Switched to `Sheets.cutoutBlockSheet()` for correct rendering.
## Technical Improvements
- Replaced ~120 lines of broken manual vertex extraction and reflection-based rendering with a single `putBulkData()` call
- Fixed model variant from `"inventory"` to `"standalone"` in `PennantBuntingRenderer`
- Updated `FenceFastenerRenderer` to use the `MultiBufferSource` overload
- Removed excessive debug logging and `System.out.println` statements
- Removed unnecessary depth offset hacks from all connection renderers
release
v8.0.7
8.0.77 февр. 2026 г.718Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.7 - Connection Placement & Item Drop Fixes
## Major Fixes
### Connection Placement System
- **Fixed placement after breaking**: Hanging lights can now be placed at different distances after breaking the first fastener. Previously, the connection would remain in the player's hand and block new placements.
- **Fixed reconnection logic**: When placing a connection at a different distance, the system now properly handles reconnecting to a new destination or creating a new connection if the old destination is invalid.
- **Improved connection validation**: The placement system now correctly ignores removed or invalid connections, allowing new placements even when stale connection data exists.
### Item Drop System
- **Fixed swapped light drops**: When breaking a hanging lights connection, all individual lights from the pattern (including any lights you swapped in) are now properly dropped as items. Previously, swapped-in lights would be lost.
- **Fixed drop behavior**: Pattern items are now dropped both when manually disconnecting a connection and when breaking the fastener block, ensuring you always get your lights back.
## Technical Improvements
- Enhanced connection type matching to allow reconnection when types match
- Improved handling of stale connections in player capability
- Better null safety checks in connection removal code
- Fixed item dropping to occur in both `onRemove()` and `disconnect()` methods
## Notes
- Breaking a hanging lights connection now returns all lights that were placed in the pattern
- You can now freely place connections at different distances without being blocked by previous placements
- The connection system now properly cleans up invalid connections automatically
release
v8.0.6
8.0.65 февр. 2026 г.199Minecraft: 1.21.1neoforge
Что нового
# Fairy Lights 8.0.6 - Hanging Lights Interaction & On/Off Toggle Fixes
## Major Fixes
### Hanging Lights Interaction System
- **Fixed individual light swapping**: Lights can now be individually replaced by clicking on them with a different light item in hand. Each light maintains its own state and can be changed independently.
- **Fixed light shape changes**: Swapping lights now correctly changes both the color AND shape of the light, not just the color.
- **Fixed interaction detection**: Improved client-side interaction detection to reliably detect clicks on individual lights, fasteners, and the rope itself.
### On/Off Toggle System
- **Fixed on/off state persistence**: Lights now correctly maintain their on/off state and properly toggle when clicked with an empty hand.
- **Fixed state synchronization**: The on/off state now correctly synchronizes from server to client, ensuring all players see the same state.
- **Fixed light block removal**: When lights are turned off, the light blocks (that emit actual light) are now properly removed on both server and client, so the area becomes dark as expected.
- **Fixed toggle behavior**: Lights only toggle on/off when clicking with an empty hand. Swapping lights no longer triggers the toggle.
## Technical Improvements
- Improved network synchronization for connection state updates
- Enhanced client-side state management for hanging lights
- Better handling of light block placement and removal
- Fixed duplicate interaction handling to prevent double-toggles
## Notes
- The on/off toggle requires an empty hand - holding an item will swap the light instead
- Individual lights can be swapped by clicking on them with a different light item
- Light blocks are automatically removed when lights are turned off, restoring normal lighting
release
v8.0.5
8.0.53 февр. 2026 г.52Minecraft: 1.21.1neoforge
Что нового
# 8.0.5
### Fixed
- **Server Crash**: Fixed a crash that occurred when sending chunk data to players. The issue was caused by `LightBlockEntity` attempting to save an empty `ItemStack` to NBT, which Minecraft 1.21.1 disallows. The block entity now only saves item data when the item stack is not empty, preventing the `IllegalStateException: Cannot encode empty ItemStack` crash.
release
v8.0.4
8.0.43 февр. 2026 г.81Minecraft: 1.21.1neoforge
Что нового
# 8.0.4
### Fixed
- **Breaking**: Breaking/disconnecting connections is now much easier and more reliable. Improved interaction handling and reach distance checks ensure connections can be broken consistently when attacking them.
- **Colors**: Fixed color persistence and display issues. Colors now properly use the new 1.21.1 Data Components system and will correctly save and load. Added fallback support for legacy color data to ensure compatibility with existing items.
release
Fairy Lights 8.0.3
8.0.322 янв. 2026 г.155Minecraft: 1.21.1neoforge
Что нового
### Fixed
- **Recipes**: Fixed the majority of recipes not showing up in JEI. All items should now be craftable and visible.
- **Connections**: Fixed an issue where hanging lights/bunting connection ropes would become invisible when standing close to them.
- **Construction**: Fixed a bug where you couldn't place the second point of a connection if you were using an item from the Creative Menu.