All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Cooldown Coordinator

Cooldown Coordinator

by gniftygnome • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Cooldown Coordinator

Fabric library to help mods coordinate item movement cooldowns

What it Does

Cooldown Coordinator is a library mod intended to enable heterogeneous networks of vanilla hoppers and item transferring modded block entities to move items throughout the network in a vanilla-alike and consistent manner. For example, one goal is to allow sorters consisting of a mixture of vanilla and modded hoppers, ducts, etc. to behave predictably.

How Does it Do it?

The mod provides an interface to implement and a method to call when a cooldown should be triggered. The method may safely be called with any BlockEntity as its argument. When the target BE implements the interface, it will be notified of the cooldown and can take whatever action it deems appropriate. When this mod is installed, descendants of HopperBlockEntity which do not override HBE's insert() and innermost transfer() methods automatically implement the interface and will coordinate with other implementing BEs.

How to Use this Library

There are some important details (f.e. how to know when a cooldown should be triggered) which implementors need to get right in order for coordination to work properly. See the library's javadocs, or take a look at the wiki.

Future Goals

I would like this mod or something similar to be part of the Fabric API. At present, it is somewhere between an RFC and a WIP. If it performs as intended and there is interest from the Fabric community, I intend to maintain the mod until (and beyond) it becomes part of Fabric or something better comes along.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x
Fabric Quilt
2mo ago 1
26.1.x
Fabric Quilt
6mo ago 1
1.21.11
Fabric Quilt
6mo ago 1
25w46a 25w45a 25w44a +4
Fabric Quilt
last yr. 1
1.21.x 1.20.x
Fabric Quilt
last yr. 1
24w39a 1.21.x 1.20.x
Fabric Quilt
last yr. 1
1.21.x 1.20.x
Fabric Quilt
last yr. 1
1.21 1.20.x
Fabric Quilt
last yr. 1
1.21.x 1.20.x
Fabric Quilt
last yr. 1
1.21.x 1.20.x
Fabric Quilt
last yr. 1
1.20.x 1.19.x
Fabric Quilt
last yr. 1
24w19b 24w19a 24w18a +1
Fabric Quilt
last yr. 1
24w14a 24w13a 1.20.x
Fabric Quilt
last yr. 1
1.20.x 1.19.x
Fabric Quilt
last yr. 1
1.20.x
Fabric Quilt
last yr. 1
23w18a 23w17a 23w16a +5
Fabric Quilt
last yr. 1
1.19.x
Fabric
last yr. 1
1.19.x
Fabric
last yr. 1
1.19.x
Fabric
last yr. 1
1.19.x
Fabric
last yr. 1
1.19-pre1
Fabric
last yr. 1
1.18.x
Fabric
last yr. 1
1.18.x
Fabric
last yr. 1
1.18.x
Fabric
last yr. 1
1.18.x
Fabric
last yr. 1
1.18.x
Fabric
last yr. 1
  • Stabilize for 26.1+

  • Update for Minecraft 26.1

  • Release stable for 1.21.11
  • Update to Minecraft 25w46a
  • Update Mixin Squared to 0.3.3
  • Modernize HBE mixin slightly

  • Fix minor breakage in 0.8.0

  • Releasing 0.8 as stable
  • NOTE the new maven repository: https://maven.gnomecraft.net/releases
  • Change MixinSquared dependency group to resolve conflicts (thanks Bawnorton)
  • Update to MixinSquared 0.2.0 release (identical to the last beta)


  • Simplify Fabric transfer API mixin using Mixin Squared
  • Release as v0.8.0 beta

  • Fix backwards transfers from Hoppers aimed at no Inventory

  • Fix repeated transfers to Fabric Transfer API-only modded blocks

  • Fix repeated transfers to Fabric Transfer API-only modded blocks

  • Release for 1.20.5

  • Update for 24w13a
  • Follow Fabric transfer API changes
  • Use Mixin Extras to improve local capture reliability
CooldownCoordinator Lithium Special Compatibility Edition (tm)

  • Restores compatibility with Lithium by reverting to disabling Lithium's Hopper optimizations.
  • We tried using a new Lithium API but it turns out the API cannot encompass our entire use case.
  • Anyone using 0.5.0 - 0.6.1 should prefer this release.

Cooldown Coordinator for Minecraft 1.20

Build for 1.20 release
Upgrade Loom and Gradle

Cooldown Coordinator for Minecraft 1.20

  • Implement Lithium's new cooldown interface.
  • Re-enable Lithium's Hopper optimizations.
  • Declare "breaks" relationship with Lithium <= 0.10.4.

Cooldown Coordinator library v0.5.0 for Minecraft 1.19.3

  • Rebuild for 1.19.3; otherwise identical to 0.4.3.

Version 0.4.3

  • Disable recent breaking Lithium Hopper optimizations for now.

Version 0.4.2

  • Official release for 1.19.

Version 0.4.1 - still beta after all these years

  • Missed a spot for that breaking change in Fabric's transfer API.

Version 0.4.0 for 1.19 - beta until I'm more certain I haven't missed something.

  • Upgrade deps for Minecraft 1.19-pre.1.
  • Accommodate a minor breaking change in Fabric's transfer API.

Version 0.3.1.

  • Update build deps.
  • Add the mod name to our mixin methods.
  • Add a ModMenu "library" badge.
Version 0.3.0:

  • Override transfer API's HBE mixin to coordinate with Storage-only BEs.
  • Refactor isItemStorageEmpty() to isStorageEmpty() and deprecate former.
  • Bump FAPI version and deal with iterator changes in transfer API.
  • No longer beta; all core features are implemented.

Version 0.2.1:
  • Change notify() to not require NotNull becase it's too easy to forget.
  • This fixes Ductwork crashing when transferring to a composter.

Version 0.2.0
  • Reimplemented using interface injection, which allows me to consolidate HopperBlockEntity code (no API changes).
  • Further javadoc refinements.

This is still somewhat experimental but it has been working well for me. I'd like to get comments from at least one other mod developer before I call it any kind of "stable".
Initial release.

This beta release may see significant refactoring but I think the interface is stable.
Cooldown Coordinator Icon
Download Cooldown Coordinator
Select game version
Select platform