Описание
**Unofficial port of [Carpet Fixes](https://github.com/fxmorin/carpet-fixes) to Minecraft 1.21.11.**
Carpet Fixes is a [Fabric Carpet](https://github.com/gnembon/fabric-carpet) extension that fixes as many vanilla Minecraft bugs as possible — redstone update order, dupes, mob behaviour, pistons, observers, rails, explosions and much more. Every fix is a toggleable rule.
This build ports it to **1.21.11**, based on tomalbrc's 1.21 fork. **Tested in-game** (loads with no mixin errors).
## ⚙️ Requirements
- **Minecraft 1.21.11**
- **Fabric Loader** ≥ 0.16.9
- **Fabric Carpet** `1.21.11-1.4.193+v251211` or newer — **required**
- **Java 21**
- Fabric API is **not** required
- `conditional-mixin` is bundled (jar-in-jar)
## 📦 Installation
1. Install Fabric Loader for 1.21.11.
2. Drop into `mods/`:
- `fabric-carpet` for 1.21.11
- this jar
3. Configure rules in game with **`/carpet-fixes true|false`** (the mod has its **own** command — NOT `/carpet`). Full rule list with descriptions: see RULES.md / RULES-EN.md in the repo.
Works in singleplayer & multiplayer.
## ✅ What's included
**246 fixes active** — redstone update order, dupe fixes, mob/entity behaviour, blocks, pistons, observers, rails, explosions (including the correct TNT exposure calc — `incorrectExplosionExposureFix`), spawn chunks staying loaded, and more.
Restored & tested in `1.18.1-port`: **creeper portal fuse**, **blue wither skulls saved**, **brewing time on unload**, **bubble column**, **`/data` on players**.
## ❌ What's disabled
A handful of fixes are incompatible with 1.21.11 without a full rewrite, or are now redundant (Mojang fixed the bug in vanilla):
- **Custom redstone neighbour-updater** (`useCustomRedstoneUpdates`, `optimizedNeighborUpdater`, `reIntroduceInstantBlockUpdates`) — neighbour-update system reworked (`WireOrientation` / `ChainRestrictedNeighborUpdater`).
- **Explosion world-border** (`explosionsBypassWorldBorderFix`) — `Explosion` became an interface and `ExplosionImpl` was restructured.
- **Entity block-collision / x8-portal** — collision reworked to a `tickBlockCollision(from, to)` queue (vanilla likely fixed it).
- **RecipeManager optimization** — recipe API reworked (Lithium covers it anyway).
- **palette data-corruption** — palettes no longer hold a resize listener → bug can't happen.
- **ChorusFruit / Boat fall damage, Warden eats armor, DaylightDetector placement** — classes/methods removed or made `final`.
- **Mob conversion data transfer** — vanilla's `EntityConversionContext` handles it now.
- debug tools & server-toggle rules.
## ⚠️ Note
The mixin config uses `defaultRequire = 0`: if a fix can't apply in some rare, untested path, it is **silently skipped instead of crashing the server**.
## 🐞 Found a bug?
If a crash happens or a fix misbehaves, **contact me for a fix** — Discord `skrizzz_`. Please attach your game/loader/Carpet versions and the crash log (`logs/latest.log` or `crash-reports/`).
## 💜 Support the porter
- **Discord:** `skrizzz_`
- **Card (Т-Bank):** `2200700868492199` — Ivan P.
## 📜 Credits & License
MIT License — © 2020 Fx Morin.
- **Fabric Carpet** (base mod): **gnembon** & team — https://github.com/gnembon/fabric-carpet
- **Carpet Fixes** (original): **FX_PR0CESS / fxmorin** — https://github.com/fxmorin/carpet-fixes
- **1.21 fork** (port base): **tomalbrc** — https://github.com/tomalbrc/carpet-fixes
- **1.21.11 port:** `skrizzz_` (unofficial) — https://github.com/Skr1zzzz/carpet-fixes-1.21.11
Huge thanks to **gnembon** for Carpet, **fxmorin** for Carpet Fixes, and **tomalbrc** for the 1.21 fork.
> This is an **unofficial** build. Report Carpet Fixes bugs to the original repo; report port-specific issues here.