SacredCowsСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (13)
release
SacredCows 6.1.2
6.1.226 сент. 2026 г.78Minecraft: 26.3fabric
Что нового
## [6.0.1]
**⚠️ Warning: This version removes the custom `sacredcows:cow_id` data component.**
Milk buckets tagged by SacredCows 6.0.0 or earlier will lose their stored teleport
target after updating, and depending on your Minecraft version may not survive being
loaded at all. **Back up your world before updating.** There is no automatic migration:
after updating, simply re-milk any named cows to mint fresh teleport buckets.
If you ran this mod server-side only and your players were being kicked with a registry
sync error ("registry entry sacredcows:cow_id is missing from local registry"), this
release fixes that — the mod no longer adds anything to a synced registry and is once
again safe to install on the server alone.
### Changed
- Cow teleport data is now stored inside vanilla `minecraft:custom_data` instead of a
dedicated `sacredcows:cow_id` data component. This removes the only modded entry in a
synchronized registry, so vanilla clients can connect to a server running SacredCows
without installing the mod themselves.
### Removed
- The `sacredcows:cow_id` `DataComponentType` and its registration. This was the cause of
the forced client-install / registry sync failure introduced in 6.0.0.
### Migration
- **None provided by design.** Pre-6.0.1 milk buckets are not converted. Back up first,
then re-milk named cows to recreate working teleport buckets.
release
SacredCows 6.0.2
6.0.222 июл. 2026 г.74Minecraft: 26.2fabric
Что нового
## [6.0.1]
**⚠️ Warning: This version removes the custom `sacredcows:cow_id` data component.**
Milk buckets tagged by SacredCows 6.0.0 or earlier will lose their stored teleport
target after updating, and depending on your Minecraft version may not survive being
loaded at all. **Back up your world before updating.** There is no automatic migration:
after updating, simply re-milk any named cows to mint fresh teleport buckets.
If you ran this mod server-side only and your players were being kicked with a registry
sync error ("registry entry sacredcows:cow_id is missing from local registry"), this
release fixes that — the mod no longer adds anything to a synced registry and is once
again safe to install on the server alone.
### Changed
- Cow teleport data is now stored inside vanilla `minecraft:custom_data` instead of a
dedicated `sacredcows:cow_id` data component. This removes the only modded entry in a
synchronized registry, so vanilla clients can connect to a server running SacredCows
without installing the mod themselves.
### Removed
- The `sacredcows:cow_id` `DataComponentType` and its registration. This was the cause of
the forced client-install / registry sync failure introduced in 6.0.0.
### Migration
- **None provided by design.** Pre-6.0.1 milk buckets are not converted. Back up first,
then re-milk named cows to recreate working teleport buckets.
release
SacredCows 6.0.1
6.0.120 июн. 2026 г.33Minecraft: 26.2fabric
Что нового
## [6.0.1]
**⚠️ Warning: This version removes the custom `sacredcows:cow_id` data component.**
Milk buckets tagged by SacredCows 6.0.0 or earlier will lose their stored teleport
target after updating, and depending on your Minecraft version may not survive being
loaded at all. **Back up your world before updating.** There is no automatic migration:
after updating, simply re-milk any named cows to mint fresh teleport buckets.
If you ran this mod server-side only and your players were being kicked with a registry
sync error ("registry entry sacredcows:cow_id is missing from local registry"), this
release fixes that — the mod no longer adds anything to a synced registry and is once
again safe to install on the server alone.
### Changed
- Cow teleport data is now stored inside vanilla `minecraft:custom_data` instead of a
dedicated `sacredcows:cow_id` data component. This removes the only modded entry in a
synchronized registry, so vanilla clients can connect to a server running SacredCows
without installing the mod themselves.
### Removed
- The `sacredcows:cow_id` `DataComponentType` and its registration. This was the cause of
the forced client-install / registry sync failure introduced in 6.0.0.
### Migration
- **None provided by design.** Pre-6.0.1 milk buckets are not converted. Back up first,
then re-milk named cows to recreate working teleport buckets.
release
SacredCows 6.0.0
6.0.019 июн. 2026 г.25Minecraft: 26.2fabric
Что нового
## [6.0.0]
- Ported to the Chaos Cubed update. New versions of:
- minecraft_version -> 26.2 (**Chaos Cubed!**)
- loader_version -> 0.19.3
- fabric_version -> 0.152.0
- loom -> 1.17
- gradle -> 9.5.1
release
SacredCows 5.0.1
5.0.129 мая 2026 г.25Minecraft: 26.1fabric
Что нового
# Changelog
All notable changes to CowMurder will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [5.0.1]
### Fixed
- Severe bug that crashed single-player client instances on startup. Moved the
call to load `cowPositions` inside the `SERVER_STARTED` registration
## [5.0.0]
### Breaking Changes
- All per-setting commands have been removed in favor of a unified command
interface. Existing scripts will break. Old → new:
- `/sacredcows enabled <bool>` → `/sacredcows toggle mod_status` (or `enable`/`disable`)
- `/sacredcows bypass <bool>` → `/sacredcows toggle bypass_status`
- `/sacredcows debug <bool>` → `/sacredcows toggle debug_mode`
- `/sacredcows lightning_effect <bool>` → `/sacredcows toggle lightning_effect`
- `/sacredcows punishment_type <mode>` → `/sacredcows set punishment <mode>`
- `/sacredcows save_config` → `/sacredcows config save`
- `/sacredcows reload_config` → `/sacredcows config reload`
- `/sacredcows print_config` → `/sacredcows config print`
- `PunishmentMode.fromString` no longer accepts the aliases `kill`, `hurt`. Use `death`, `damage`, `lightning_only` OR `lightning-only`.
- `/sacredcows config print` now requires operator permission (previously
available to everyone).
- `CowPositionsData` is no longer a singleton. The static `getInstance()`
factory has been removed; callers must now construct it with
`new CowPositionsData(owner, config)` and call `load()` explicitly.
- `CowProtectionFeature` constructor parameter order changed from
`(SacredCows, CowConfig, TickCounter)` to `(SacredCows, TickCounter, CowConfig)`.
- `CowChunkLoaderFeature` constructor now takes
`(SacredCows, TickCounter, CowPositionsData, CowConfig)` instead of
`(SacredCows, TickCounter)`.
### Added
- New unified command surface:
- `/sacredcows toggle <setting>` — flip a boolean setting
- `/sacredcows enable <setting>` / `disable <setting>` — set a boolean explicitly
- `/sacredcows set <setting> <value>` — set any setting to a value
- `/sacredcows get <setting>` — show a setting's current value
- `/sacredcows config <print|save|reload>` — config file operations
- Tab completion for setting names on all of the above.
- New `Setting` sealed interface hierarchy (`BoolSetting`, `IntSetting`,
`DoubleSetting`, `StringSetting`, `EnumSetting<E>`) that owns its own
parsing, serialization, and chat-display formatting.
- `/sacredcows stats` commands now report when the scoreboard or
individual assault/kill tracking is disabled, rather than silently
printing nothing.
- Build now compiles with `-Xlint:all -Werror`.
- Shadowed `error_prone_annotations` 2.49.0 to silence the older version
pulled in transitively by Gson.
### Changed
release
SacredCows 5.0.0
5.0.025 мая 2026 г.28Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
### Breaking Changes
- All per-setting commands have been removed in favor of a unified command
interface. Existing scripts will break. Old → new:
- `/sacredcows enabled <bool>` → `/sacredcows toggle mod_status` (or `enable`/`disable`)
- `/sacredcows bypass <bool>` → `/sacredcows toggle bypass_status`
- `/sacredcows debug <bool>` → `/sacredcows toggle debug_mode`
- `/sacredcows lightning_effect <bool>` → `/sacredcows toggle lightning_effect`
- `/sacredcows punishment_type <mode>` → `/sacredcows set punishment <mode>`
- `/sacredcows save_config` → `/sacredcows config save`
- `/sacredcows reload_config` → `/sacredcows config reload`
- `/sacredcows print_config` → `/sacredcows config print`
- `PunishmentMode.fromString` no longer accepts the aliases `kill`, `hurt`. Use `death`, `damage`, `lightning_only` OR `lightning-only`.
- `/sacredcows config print` now requires operator permission (previously
available to everyone).
- `CowPositionsData` is no longer a singleton. The static `getInstance()`
factory has been removed; callers must now construct it with
`new CowPositionsData(owner, config)` and call `load()` explicitly.
- `CowProtectionFeature` constructor parameter order changed from
`(SacredCows, CowConfig, TickCounter)` to `(SacredCows, TickCounter, CowConfig)`.
- `CowChunkLoaderFeature` constructor now takes
`(SacredCows, TickCounter, CowPositionsData, CowConfig)` instead of
`(SacredCows, TickCounter)`.
### Added
- New unified command surface:
- `/sacredcows toggle <setting>` — flip a boolean setting
- `/sacredcows enable <setting>` / `disable <setting>` — set a boolean explicitly
- `/sacredcows set <setting> <value>` — set any setting to a value
- `/sacredcows get <setting>` — show a setting's current value
- `/sacredcows config <print|save|reload>` — config file operations
- Tab completion for setting names on all of the above.
- New `Setting` sealed interface hierarchy (`BoolSetting`, `IntSetting`,
`DoubleSetting`, `StringSetting`, `EnumSetting<E>`) that owns its own
parsing, serialization, and chat-display formatting.
- `/sacredcows stats` commands now report when the scoreboard or
individual assault/kill tracking is disabled, rather than silently
printing nothing.
- Build now compiles with `-Xlint:all -Werror`.
- Shadowed `error_prone_annotations` 2.49.0 to silence the older version
pulled in transitively by Gson.
### Changed
- Configuration is now driven by a single registry in `CowConfig` rather
than scattered fields and three parallel enums.
- `/sacredcows config print` output now iterates settings generically and
marks unsaved changes uniformly, instead of hand-listing each one.
Changed values are now highlighted in bold aqua with a `<- (changed)`
marker.
- Verbose cow position/chunk tracking logs in `CowChunkLoaderFeature` are
now gated behind the `debug_mode` setting.
- Log messages standardized with a `sacredcows:` prefix; exceptions are
now passed as `Throwable` arguments to the logger rather than
`.getMessage()`, preserving full stack traces.
- Tab completion now uses `SharedSuggestionProvider.suggest` for proper
prefix filtering instead of suggesting every option unconditionally.
### Removed
- `SettingsEnum`, `ScoreboardEnum`, `PermissionsEnum`, and the
`CowConfigKeys` interface they implemented.
- Dozens of per-setting getter/setter pairs on `CowConfig`. Callers now
access settings directly as fields (`config.modStatus.get()`, etc.).
- Dead `MilkTeleportFeature` stub file.
### Fixed
- `EnumSetting` was using `StringSetting.class` for its SLF4J logger,
causing its log messages to be misattributed.
release
SacredCows 4.1.0
4.1.021 мая 2026 г.39Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
## [4.1.0]
### Changed
- Chunk loading for named cows migrated from `setChunkForced` to a custom `TicketType` (`sacred_cows`) with `addTicketWithRadius` / `removeTicketWithRadius`, which is the API-appropriate path for forced chunk loading in 1.21.x and doesn't persist into the world's forced-chunks list
- Permission level handling now uses the `PermissionLevel` enum throughout instead of raw `int`s, with parsing centralized in `CowConfig.getPermissionLevel()`. The reader accepts either an int id or an enum name and falls back to `GAMEMASTERS` on invalid input
- `executeSetPunishmentMode` now returns a failure (status 0) with a user-facing error on invalid input instead of silently defaulting to `DEATH`
- `/sacredcows config` now styles the current punishment mode in yellow to match the visual treatment of other config values, and normalizes case when comparing the in-memory value to the saved property so the "changed" indicator behaves correctly
- Cow names in log messages and the death broadcast now use `getCustomName().getString()` instead of letting the raw `Component` stringify itself (which produced `literal{Bessie}` instead of `Bessie`)
- Logging cleaned up across the mod: `System.err.println` calls in `CowConfig` replaced with `LOGGER.error`, hardcoded logger name in `CowProtectionFeature` replaced with the class name, and concatenated log strings converted to SLF4J parameterized format
### Fixed
- 3x3 chunk-loading radius around named cows actually covers a 3x3 area now; the previous implementation looped over `dx`/`dz` offsets but constructed `new ChunkPos(center.x(), center.z())` inside the loop, so it only ever added the center chunk nine times
- `CowChunkLoaderFeature.onCowDeath` no longer registers a fresh `AFTER_DEATH` listener every time a cow dies — the listener is now registered once in `registerEventHandlers` and the cleanup logic is called directly. (This was a slow-growing listener leak: every named-cow death added another listener, and every existing listener fired on every subsequent death.)
- Saved cow positions are now actually restored on server start. `CowChunkLoaderFeature` reads from the `CowPositionsData` singleton on `SERVER_STARTED` and re-adds chunk tickets for each persisted position before scanning live entities. The save path (`SERVER_STOPPING`) was already wired up; the load path had been missing
- Named cows no longer leak chunk tickets as they wander. When a cow moves to a new chunk, the ticket on the previous chunk is now removed (this was dropped silently during the `setChunkForced` → ticket-API migration earlier in 4.0.3)
- `CowConfig.save()` now writes permission levels as integer ids rather than `String.valueOf(enum)`, which was producing strings like `GAMEMASTERS` that the loader couldn't parse back. Configs with non-default `bypass-op-level` or `admin-op-level` were silently resetting to default on restart
- `CowPositionsData.getInstance()` is now `static`, so it can actually be used as a singleton accessor
- `CowConfig` constructor is now called with the real `configFile` path instead of `null` in `SacredCows.loadConfig`, so `save()`, `load()`, and `createDefaultConfig()` are no longer no-ops
- Eliminated several redundant `AFTER_DEATH` registrations in `SacredCows.onInitialize` that duplicated work already done inside feature classes
### Removed
- `CowConfig.setDefaultProperties()` — unreachable; `createDefaultConfig()` writes defaults directly via the enum iterators
- `SacredCows.getVersion()` and the `/version.properties` read it depended on — unused
- `cleanupTickCounter`, `cowTickCounter`, and the public `serverTickCounter` field on `SacredCows`, along with the inline tick-dispatch loop in `onInitialize`
### Technical
- Tick-driven work centralized in a new `util.TickCounter` class that exposes `registerIntervalCallback(intervalTicks, Runnable)`; `CowProtectionFeature` and `CowChunkLoaderFeature` now register their periodic work through it instead of `SacredCows` owning the tick loop
- `CowProtectionFeature` and `CowChunkLoaderFeature` take a `TickCounter` via constructor injection
- `ScoreboardFeature` now owns its own `SERVER_STARTED` registration via `registerEventHandlers()` instead of being called inline from `SacredCows`
- `CowChunkLoaderFeature` owns its own `SERVER_STARTED`, `ENTITY_LOAD`, `AFTER_DEATH`, and `SERVER_STOPPING` registrations in one place
- `instanceof` pattern variables adopted in `CowProtectionFeature.getPlayerFromDamageSource` (`projectile instanceof Projectile proj`, `projectile instanceof TraceableEntity ownable`)
- Build now compiles with `-Xlint:deprecation`
- Bumped `mod_version` to `4.1.0`
### Upgrade notes
- **Chunk loading mechanism changed.** 4.0.2 and earlier used the world's
forced-chunks list (the one populated by `/forceload`) to keep named cows
loaded. 4.1.0 uses Fabric's ticket system instead, which doesn't persist to
disk. After upgrading, existing worlds may have leftover entries from
4.0.2 in their `/forceload query` output. These are harmless but can be
cleared with `/forceload remove <x> <z>` for each, or `/forceload remove all`
if you have no other manually-set forced chunks.
release
SacredCows 4.0.0
4.0.04 мая 2026 г.33Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
Major feature update! Added milk bucket teleportation to your favorite named bovine. Just milk a cow, and you'll find yourself by her side wherever she may be.
**Full Changelog**: https://github.com/voidfemme/SacredCows/compare/v3.1.0...v4.0.0
release
SacredCows 3.1.0
3.1.021 апр. 2026 г.35Minecraft: 26.1, 26.1.1, 26.1.2fabric
release
SacredCows 3.0.0
3.0.016 апр. 2026 г.38Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
[v2.2.0...v3.0.0](https://github.com/voidfemme/SacredCows/compare/v2.2.0...v3.0.0)
release
SacredCows 2.2.0
2.2.022 дек. 2025 г.83Minecraft: 1.21.11fabric
Что нового
# Version 2.2.0 (Latest)
- Updated for Minecraft 1.21.11 and Fabric Loader >= 0.18.2
- No gameplay or configuration changes; purely an environment compatibility update
release
SacredCows 2.1.0
2.1.03 окт. 2025 г.55Minecraft: 1.21.10, 1.21.9fabric
Что нового
# SacredCows 2.1.0 – Compatibility Update
This release updates SacredCows to run smoothly on the latest Minecraft + Fabric stack.
No gameplay changes, just making sure your cows remain divinely protected in 1.21.9.
## What’s Changed
Updated Minecraft compatibility: 1.21.7 → 1.21.9
Updated Fabric Loader to 0.17.2
Updated Fabric API to 0.134.0+1.21.9
Updated Yarn mappings to 1.21.9+build.1
Replaced legacy operator check with proper permission level checks (level 2 = bypass, level 3 = admin)
Added shiny new icon.png for mod metadata & README
## Technical Improvements
Fixed Gradle deprecation warning (processResources now uses providers.provider)
Unified punishment logic: less redundant world lookups
README updated with new permissions table, version, and badge
## Compatibility
Minecraft: 1.21.9
Server Software: Fabric Server with Fabric API
Java: Requires Java 21
## Note: This release drops support for 1.21.7. Stick with 2.0.1 if you need it.
release
SacredCows 2.0.1
2.0.122 сент. 2025 г.47Minecraft: 1.21.7, 1.21.8fabric
Что нового
## SacredCows v2.0.1 - Bypass Control
### New Features
- **Configurable Bypass Control**: Added `settings.allow-bypass` configuration option to control whether administrators can bypass cow protection
- **Universal Enforcement**: Server owners can now disable admin bypass permissions, making cow protection apply to everyone regardless of OP status
- **Enhanced Testing**: Administrators can now experience the full mod functionality without needing to remove their operator privileges
### Configuration
A new setting has been added to `config/sacredcows.properties`:
```properties
# Whether to allow bypass permissions for administrators (default: true)
settings.allow-bypass=true
**Full Changelog**: https://github.com/voidfemme/SacredCows/compare/v2.0.0...v2.0.1