SMP-Utilities-Fabric-1.21.1-0.1.9.jar
Curse Maven Snippet
What's new
# SMP: Utilities - Changelog
Complete development history of **SMP: Utilities**, from the initial refactoring of the legacy workspace to the current **0.1.9** version for **Minecraft 1.20.1 & 1.21.1** (**Forge**, **NeoForge**, and **Fabric**).
---
## [0.1.9] - 1.21.1 Parity & Optional Dependencies
### Optional Dependencies (4 Loaders)
- **Standalone Operation:** Curios (Forge/NeoForge), Trinkets and Accessories (Fabric), JEI, and Balm/Waystones are now strictly optional - the mod starts and operates normally both with these mods installed and without any of them.
- **Open Version Ranges:** `mods.toml` and `neoforge.mods.toml` updated with `versionRange="[0,]"` for `curios` and `jei`; `fabric.mod.json` (1.20.1 and 1.21.1) configured with `"suggests"` using `"*"` for `jei`, `trinkets`, `accessories`, `waystones`, and `balm`.
- **Class & Mixin Protection:** Isolation of optional handlers (`CuriosRestrictionHandler`) and client-only packets (`ShowTypewriterPacket`, `SyncRestrictionsPacket`, `SyncCanonHeartsPacket`), along with `SmpMixinConfigPlugin` using `require = 0` in `TrinketSlotMixin` to prevent crashes when Trinkets is absent.
- **Safety Backup:** Complete snapshot preserved in `_reservados/backup_pre_dependencias_2026-11-10/`.
### Commands & Final Documentation
- **Unquoted `#` Support in `/smpu lectern`:** Hex argument migrated to `ScoreHolderArgument` with `HEX_SUGGESTIONS`, allowing `/smpu lectern #FF5500` or `/smpu lectern #F50` to be used directly without quotation marks.
- **Command-Specific Colors:** Hexadecimal support removed from `/smpu rename`, `/smpu lore`, and `/smpu objective` in all 4 workspaces (keeping Minecraft's 16 named colors + `&` codes), making hexadecimal colors exclusive to `/smpu lectern`.
- **Official Wiki (`WIKI.md`):** Complete documentation rewritten in Markdown, covering all mechanics, items, blocks, commands, 14 restriction categories, TOML examples, Canon Hearts, potions, and FAQ.
- **Organized Exports:** Clean build and export of the 4 final `0.1.9` `.jar` files to `Desktop/SMP Utilities 0.1.9/`.
### Fabric 1.20.1 & 1.21.1 Parity
- **1:1 Fabric 1.21.1 Parity:** Fully ported using `DataComponents` (`CUSTOM_NAME`, `LORE`, `DYED_COLOR`, `POTION_CONTENTS`), `CustomPacketPayload` + `StreamCodec`, `FabricBrewingRecipeRegistryBuilder.BUILD`, `hud/heart/*` sprites, and singular data directories (`recipe`, `loot_table`, `tags/block`, `tags/item`).
- **Canon Hearts via Cardinal Components:** Persistence migrated to **Cardinal Components API** (`5.2.2` in 1.20.1 / `6.1.0` in 1.21.1) with `RespawnCopyStrategy.ALWAYS_COPY`, replacing old entity mixins.
- **HUD Textures & Animation:** Canon Hearts unified under `textures/gui/sprites/hud/heart/*.png` (including the `_blinking` state), with AppleSkin bar offset correction (`GuiMixin` on Fabric and `ARMOR_LEVEL` anchor on NeoForge 1.21.1).
### Curios, Trinkets & Accessories
- **Native Dual Integration on Fabric:** Created `TrinketsCompat` and `AccessoriesCompat` (`CanEquipCallback` + `AccessoryChangeCallback`), maintaining unified aliases in `restrictions.toml` and `PermissionManager` (`blocked_trinkets_items`, `blocked_curios_items`, `blocked_accessories_items`).
- **Prevention of Item Loss on `Shift+Click` and Hover Spam:** Removed error messages triggered merely by hovering over predictive slots (`mayPlace` / `canInsert`) and fixed `AbstractContainerMenuMixin` to prevent relics from being discarded during `QUICK_MOVE`.
### Restriction System (`restrictions.toml`)
- **New Categories (`blocked_offhand_items` and `blocked_crafting_items`):**
- Complete offhand blocking (inventory slots, `F` key, and GUI clicks/swaps) through `RestrictedOffhandSlot` and mixins/events.
- Server-side and client-side crafting recipe blocking (`RecipeManagerMixin` / `RecipeFilterHelper` / `RestrictedResultSlot`), hiding only the recipes in JEI without removing the item from search results when it is not listed in `hidden_jei_items`.
- **Creative vs. JEI Independence:** `hidden_creative_items` and `hidden_jei_items` now operate independently (including the `#c:hidden_from_recipe_viewers` tag for JEI/EMI/REI).
- **Individual Whitelists and Blacklists in the Same File:** Consolidation of `player_whitelist` and `player_blacklist` across all 14 categories within `restrictions.toml` (with the removal of `permissions.toml` and the old `special_features`), using empty `[]` lists by default.
- **Full `.toml` File Preservation:** Decoupling of `ForgeConfigSpec`/`ModConfigSpec` from `restrictions.toml`, `ConfigFormatter` converted into a no-op, and a resilient parser with `loadFallback` tolerant of manually added spaces and blank lines.
- **Action Bar Preemption & Placeholders:** `ShowTypewriterPacket` synchronizing remote messages; immediate preemption (new messages always interrupt previous ones from character 0); proximity-based `drop_items` display without pickup spam; universal case-insensitive resolution of `%item%`, `%block%`, and `%player%` (with a `notifStack` copy before slot removal); left-click attack handling removed from `blocked_use_items` (zero damage handling centralized in `zero_damage_items`).
### Weapons, Items, Audio & Visuals
- **Updated Identity:** Official displayed name set to **`SMP: Utilities`**.
- **Weapon Balancing & Tooltips:**
- `Absurd Damage Sword`: damage fixed at `1,000,000` with a dark green vanilla tooltip displaying the `∞` symbol (without `+`).
- `Ban Sword` and `Chapolin Colorado's Sledgehammer`: `0` actual damage while retaining knockback, particles, and sound only when hitting entities; Sledgehammer attack speed adjusted to `1.6` (`-2.4`).
- `Mind Wrench`: `0` damage, zero knockback, and instant block breaking without drops (including unbreakable blocks, while respecting blocks protected by restrictions).
- `/smpu lore` updated to use a single line with explicit `withItalic(false)` in the `normal` style (also fixing forced italics in `/smpu rename`).
- **3D Audio Normalization:** The 4 `.ogg` files (`little_poop`, `ban_sword`, `absurd_damage_sword`, `chapolin_sledgehammer`) normalized to `-21.2 dBFS` RMS in mono.
- **Tooltips & Line Wrapping:** Automatic wrapping of long lines (`wrapTooltipLines`) added to Fabric.
---
## [0.1.8] - Multi-Loader & NeoForge 1.21.1
### Version Policy & Multi-Loader Structure
- Official version **`0.1.8`** established for synchronization across workspaces, and folder names standardized without hyphens (`-`).
- **NeoForge 1.21.1 Port:** Complete migration of Forge 1.20.1 code to `ModDevGradle`, Java 21, `DataComponents`, `CustomPacketPayload` / `StreamCodec`, `NeoForge.EVENT_BUS`, updated test mods, and compatibility with Curios and JEI 1.21.1.
- **Fabric Workspaces Created (1.20.1 and 1.21.1):** Initial Loom structure, `.bat` execution scripts, NightConfig bundled via Jar-in-Jar, `FabricConfigManager` with templates aligned with Forge, and initial plugins for JEI and Waystones/Balm.
- **Critical Multi-Loader Fixes:**
- Fixed `ClassCastException` in the Creative inventory and `NullPointerException` during client logout (`TypewriterActionBar`).
- Fixed mixin/Jar-in-Jar loading (`syncModsToRun`) and implemented the rule of never exporting the mod's own `.jar` file to `mods/`.
---
## [Pre-0.1.8] - MCreator -> Forge Refactoring
### MCreator Decoupling & Clean Architecture
- Complete removal of MCreator files (`.mcreator`, `elements/`, `mcreator.gradle`) and package migration to `com.gamersa3b.smputilities` with native Gradle and instance `.bat` scripts.
- Migration of world-specific `.dat` files to 4 global `.toml` configs in `config/smp_utilities/` (`restrictions.toml`, `canon_hearts.toml`, `waystones.toml`, `utilities.toml`) with `/smpu reload` and support for vanilla `/reload`.
### Core Mechanics Implemented
- **Restrictions & Anti-Duplication:** Transition from legacy commands (`/restrict`, `/idrestrict`, `/idcontrol`, `/idlock`) to declarative configuration, along with `RestrictedArmorSlot` and `CurioEquipEvent` to eliminate duplication race conditions in slots.
- **Unified Commands (`/smpu` & `/smp_utilities`):** Centralization of `rename`, `lore`, `lectern`, `objective` (with custom typewriter animation and pause for alerts), `canon` (`get`, `set`, `add`, `setmax`, `reset`, `revive` online/offline), and `reload`, all strictly in English.
- **Creative Lectern:** Indestructible and dynamically RGB-dyeable administrative block (`LecternColorHelper`, `creative_lectern_dye` recipe, direct use of dyes in the world, washing with water/cauldrons, 17 entries in vanilla order, `CreativeLecternJeiPlugin`, page-switching fix in the menu, and `Done` button width correction).
- **Items, Weapons & Little Poop:** Infinite durability for admin tools, `LittlePoopProjectileEntity` decoupled from `SnowballItem` with mono 3D audio, `Mind Wrench` with villager menu bypass and `NoAI` toggle, and clean single-paragraph `[SHIFT]` tooltips on the 4 items with descriptions.
- **Blocks, Potions & Canon Hearts:** Fixed UVs and `cullface` on the `Security Block`; standardized potions and arrows in the Creative tab with exact durations (`5:00`, `2:30`, `1:15`, `0:10`); Canon Hearts HUD with left-to-right consumption and `CanonLossMobEffect`.
- **Cleanup & Removals:** Permanent removal of the old `Generator` (`/generator`) and `Lock` (`/lock`) systems, `Golden Beetroot` (`golden_beetroot`), `security_slab`/`security_stairs`, and extra `canon_loss` variants.
This mod has no additional files

