
LumenSmith
Configurable recipe manager: disable vanilla recipes and add your own
104
0
Список изменений
LumenSmith v0.1.4 — Major Update
New Features
In-Game Recipe Creator (/ls create <key>)
- Full click-based GUI recipe builder — no YAML editing needed
- Supports all 9 recipe types: shaped, shapeless, furnace, blasting, smoking, campfire, stonecutting, smithing transform, and adjacent pair
- Click a slot, then click any item in your inventory to assign materials
- Type selector — pick your recipe type visually, change it anytime
- Result amount control — set output amount from 1-64 with +/- buttons (always starts at 1 when picking an item)
- Cooking controls — adjust cooking time (+/-50 ticks) and experience (+/-0.1) directly in the GUI
- Fuel selector — restrict which fuels are allowed for cooking recipes (click to add fuels, right-click to clear)
- Direction option — for adjacent pair recipes, choose horizontal, vertical, or both placement directions
- Auto-generates
auto_unlock_onfrom ingredients - Saves directly to
config.ymland reloads instantly
Recipe Editing
- Edit button in recipe detail view (writable book icon) — loads existing recipe into the creator with all data pre-filled
- Supports editing all recipe types including shaped grid layout, cooking settings, fuel restrictions, and direction
- Saves changes in-place (replaces old config entry)
Recipe Deletion
- Delete button in recipe detail view (TNT icon) — removes recipe from config with one click
- Instantly reloads after deletion
Adjacent Pair Direction
- New
directionconfig field for adjacent pair recipes:horizontal,vertical, orboth(default) - Controls which placement orientations are registered
- Fully configurable from both YAML and the in-game creator
Bug Fixes
Smelting Output Fix
- Fixed critical bug where custom cooking recipe outputs were blocked by
remove_by_output - Example: custom "Crying Obsidian -> Obsidian" recipe was blocked because OBSIDIAN was in the blocked outputs list
- Custom recipes now correctly bypass the vanilla output blocker
Fuel Enforcement Fix
- Switched from
FurnaceSmeltEventtoFurnaceBurnEventfor fuel checking FurnaceBurnEventfires before fuel is consumed, makinggetFuel()reliable- Prevents infinite smelting loops when wrong fuel was used
Ingredient Display Deduplication
/ls recipesbrowser and detail view now groups duplicate ingredients- Shows
STONE x9instead of listing STONE nine separate times - Applies to both shapeless and shaped recipe displays
Performance Optimizations
O(1) Fuel Index Lookup
- Pre-built
cookingFuelIndexmap in RecipeLoader (built once during config load) CookingBlockListener.onBurnnow uses direct map lookup instead of iterating all recipes- Reduces furnace burn event processing from O(n) to O(1) where n = total recipe count
Memory Leak Prevention
- Creator sessions are now cleaned up on
PlayerQuitEvent - Prevents session map from growing unbounded when players disconnect without closing the GUI
Existing Optimizations
- Pre-computed static messages in BlockCraftListener (no string processing on hot paths)
- Debounced recipe book rescanning with
pendingRescanset + 2-tick delay boolean[]indexed byMaterial.ordinal()for O(1) material presence checks in UnlockListener- Immutable
List.copyOf/Map.copyOffor cached recipe data
Permissions
| Permission | Description |
|---|---|
lumensmith.admin | Access to /ls reload, /ls rescan, /ls list, /ls delete |
lumensmith.create | Access to /ls create, edit, and delete recipes from GUI |
Config Changes
New optional fields for cooking recipes:
custom_recipes:
- key: "my_smelt"
type: "furnace"
input: "CRYING_OBSIDIAN"
experience: 1.0
cooking_time: 200
allowed_fuels: # NEW — restrict fuel types
- COAL
- LAVA_BUCKET
result:
item: "OBSIDIAN"
amount: 1
New optional field for adjacent pair recipes:
- key: "my_pair"
type: "adjacent_pair"
items: ["DIAMOND_BLOCK", "GOLD_BLOCK"]
direction: "horizontal" # NEW — horizontal, vertical, or both (default)
result:
item: "NETHERITE_BLOCK"
amount: 1
Full Changelog: v0.1.3 -> v0.1.4
Файлы
LumenSmith-0.1.4.jar(133.60 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
0.1.4
Загрузчики
PaperPurpurSpigot
Версии игры
1.20–1.21.11
Загрузок
26
Дата публикации
1 мес. назад
