• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / CyclopsCore
27%
master-1.21: 31%

Build:
Build:
LAST BUILD BRANCH: master-1.21-lts
DEFAULT BRANCH: master-1.21
Repo Added 16 Mar 2018 10:24AM UTC
Files 656
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix-simpleinventory-identity-semantics
branch: fix-simpleinventory-identity-semantics
CHANGE BRANCH
x
Reset
  • fix-simpleinventory-identity-semantics
  • 01c6cfa25603cf382a59a125fb5e8477be103309
  • 031f93c98cba4e2eeb07d440945ea005276199b1
  • 03ae795142edfccb01a6fa5b23fa1ea6b0e641d5
  • 05c49dabdf70a0dd9d4e766e50552beb7f661e60
  • 07fbbe73dcacc20e1d95132133b523d1ff3352cf
  • 0b7e5d5ed9c3504959926777153ff4bda8090033
  • 0dc6e2b2fd944dfbdcde802eb9eef9e958fca79c
  • 1.12.2-1.0.0
  • 1.12.2-1.0.1
  • 1.12.2-1.0.2
  • 1.12.2-1.0.3
  • 1.12.2-1.0.4
  • 1.12.2-1.0.5
  • 1.12.2-1.0.6
  • 1.12.2-1.1.0
  • 1.12.2-1.1.1
  • 1.12.2-1.2.0
  • 1.12.2-1.2.1
  • 1.12.2-1.3.0
  • 1.12.2-1.4.0
  • 1.12.2-1.5.0
  • 1.12.2-1.5.1
  • 1.12.2-1.6.0
  • 1.12.2-1.6.1
  • 1.12.2-1.6.2
  • 1.12.2-1.6.3
  • 1.12.2-1.6.4
  • 1.12.2-1.6.5
  • 1.12.2-1.6.6
  • 1.12.2-1.6.7
  • 1.14.4-1.5.0
  • 1.14.4-1.5.1
  • 1.14.4-1.5.2
  • 1.14.4-1.5.3
  • 1.14.4-1.5.4
  • 1.14.4-1.5.5
  • 1.14.4-1.6.0
  • 1.14.4-1.6.1
  • 1.15.2-1.6.1
  • 1.15.2-1.6.2
  • 1.15.2-1.7.0
  • 1.15.2-1.7.1
  • 1.15.2-1.8.0
  • 1.15.2-1.8.1
  • 1.15.2-1.8.2
  • 1.15.2-1.8.3
  • 1.15.2-1.8.4
  • 1.15.2-1.8.5
  • 1.15.2-1.8.6
  • 1.15.2-1.9.0
  • 1.16.4-1.10.0
  • 1.16.4-1.10.1
  • 1.16.4-1.11.0
  • 1.16.4-1.11.1
  • 1.16.4-1.9.0
  • 1.16.4-1.9.1
  • 1.16.4-1.9.2
  • 1.16.4-1.9.3
  • 1.16.4-1.9.4
  • 1.16.4-1.9.5
  • 1.16.5-1.11.10
  • 1.16.5-1.11.2
  • 1.16.5-1.11.3
  • 1.16.5-1.11.4
  • 1.16.5-1.11.5
  • 1.16.5-1.11.6
  • 1.16.5-1.11.7
  • 1.16.5-1.11.8
  • 1.16.5-1.11.9
  • 1.16.5-1.12.0
  • 1.16.5-1.12.1
  • 1.16.5-1.12.2
  • 1.16.5-1.12.3
  • 1.16.5-1.12.4
  • 1.16.5-1.13.0
  • 1.18.1-1.12.1
  • 1.18.1-1.13.0
  • 1.18.1-1.13.1
  • 1.18.1-1.13.2
  • 1.18.1-1.13.4
  • 1.18.2-1.13.4
  • 1.18.2-1.13.5
  • 1.18.2-1.13.6
  • 1.18.2-1.13.7
  • 1.18.2-1.14.0
  • 1.18.2-1.15.0
  • 1.18.2-1.15.1
  • 1.18.2-1.16.0
  • 1.18.2-1.16.1
  • 1.18.2-1.16.2
  • 1.18.2-1.17.0
  • 1.18.2-1.17.1
  • 1.18.2-1.17.10
  • 1.18.2-1.17.2
  • 1.18.2-1.17.3
  • 1.18.2-1.17.4
  • 1.18.2-1.17.5
  • 1.18.2-1.17.6
  • 1.18.2-1.17.7
  • 1.18.2-1.17.8
  • 1.18.2-1.17.9
  • 1.19-1.15.0
  • 1.19-1.16.0
  • 1.19-1.16.1
  • 1.19-1.17.0
  • 1.19.2-1.17.0
  • 1.19.2-1.17.1
  • 1.19.2-1.17.2
  • 1.19.2-1.17.3
  • 1.19.2-1.17.4
  • 1.19.2-1.17.5
  • 1.19.2-1.18.0
  • 1.19.2-1.18.1
  • 1.19.2-1.18.10
  • 1.19.2-1.18.11
  • 1.19.2-1.18.2
  • 1.19.2-1.18.3
  • 1.19.2-1.18.4
  • 1.19.2-1.18.5
  • 1.19.2-1.18.6
  • 1.19.2-1.18.7
  • 1.19.2-1.18.8
  • 1.19.2-1.18.9
  • 1.19.2-1.19.0
  • 1.19.2-1.19.1
  • 1.19.2-1.19.2
  • 1.19.2-1.19.3
  • 1.19.2-1.19.4
  • 1.19.2-1.19.5
  • 1.19.2-1.19.6
  • 1.19.2-1.19.7
  • 1.19.2-1.19.8
  • 1.19.2-1.19.9
  • 1.19.2-1.20.0
  • 1.19.2-1.20.1
  • 1.19.2-1.20.2
  • 1.19.2-1.20.3
  • 1.19.2-1.21.0
  • 1.19.3-1.17.3
  • 1.19.3-1.17.4
  • 1.19.3-1.17.5
  • 1.19.3-1.17.6
  • 1.19.3-1.18.0
  • 1.19.3-1.18.1
  • 1.19.3-1.18.2
  • 1.19.4-1.18.2
  • 1.19.4-1.18.3
  • 1.19.4-1.18.4
  • 1.20.1-1.18.10
  • 1.20.1-1.18.11
  • 1.20.1-1.18.12
  • 1.20.1-1.18.13
  • 1.20.1-1.18.14
  • 1.20.1-1.18.4
  • 1.20.1-1.18.5
  • 1.20.1-1.18.6
  • 1.20.1-1.18.7
  • 1.20.1-1.18.8
  • 1.20.1-1.18.9
  • 1.20.1-1.19.0
  • 1.20.1-1.19.1
  • 1.20.1-1.19.10
  • 1.20.1-1.19.2
  • 1.20.1-1.19.3
  • 1.20.1-1.19.4
  • 1.20.1-1.19.5
  • 1.20.1-1.19.6
  • 1.20.1-1.19.7
  • 1.20.1-1.19.8
  • 1.20.1-1.19.9
  • 1.20.1-1.20.0
  • 1.20.1-1.20.1
  • 1.20.1-1.21.0
  • 1.20.1-1.21.1
  • 1.20.1-1.21.2
  • 1.20.1-1.21.3
  • 1.20.1-1.22.0
  • 1.20.1-1.22.1
  • 1.20.1-1.22.2
  • 1.20.1-1.22.3
  • 1.20.4-1.19.0
  • 1.20.4-1.19.1
  • 1.20.4-1.19.2
  • 1.20.4-1.19.3
  • 1.21-1.19.1
  • 1.21-1.19.10
  • 1.21-1.19.2
  • 1.21-1.19.3
  • 1.21-1.19.4
  • 1.21-1.19.5
  • 1.21-1.19.6
  • 1.21-1.19.7
  • 1.21-1.19.8
  • 1.21-1.19.9
  • 1.21.1-1.19.11
  • 1.21.1-1.20.0
  • 1.21.1-1.20.1
  • 1.21.1-1.20.2
  • 1.21.1-1.20.3
  • 1.21.1-1.20.4
  • 1.21.1-1.20.5
  • 1.21.1-1.21.0
  • 1.21.1-1.21.1
  • 1.21.1-1.22.0
  • 1.21.1-1.23.0
  • 1.21.1-1.24.0
  • 1.21.1-1.25.0
  • 1.21.1-1.25.1
  • 1.21.1-1.25.2
  • 1.21.1-1.25.3
  • 1.21.1-1.25.4
  • 1.21.1-1.25.5
  • 1.21.1-1.25.6
  • 1.21.1-1.25.7
  • 1.21.1-1.25.8
  • 1.21.1-1.25.9
  • 1.21.1-1.26.0
  • 1.21.1-1.26.1
  • 1.21.1-1.26.2
  • 1.21.1-1.27.0
  • 1.21.1-1.27.1
  • 1.21.1-1.27.2
  • 1.21.1-1.28.0
  • 1.21.1-1.29.0
  • 1.21.1-1.29.1
  • 1.21.1-1.29.2
  • 1.21.1-1.29.3
  • 1.21.1-1.29.4
  • 12abd5dc5278162910e885d63104ef5627283a17
  • 22762ce096cc85a0184dcc4d0eb6b0f9e9e89abd
  • 26.1.1-1.29.0
  • 26.1.1-1.29.1
  • 26.1.1-1.29.2
  • 26.1.1-1.29.3
  • 26.1.1-1.29.4
  • 26.1.1-1.29.5
  • 26.1.2-1.29.5
  • 26.1.2-1.29.6
  • 26.1.2-1.29.7
  • 26.1.2-1.29.8
  • 26.1.2-1.29.9
  • 26.1.2-1.30.0
  • 26.1.2-1.30.1
  • 26.1.2-1.30.2
  • 26.1.2-1.30.3
  • 26.1.2-1.30.4
  • 260d58504e0f17e16a9f0af7e481507f099fca0a
  • 31ba85e0de1dcdd78a19450e9267409b4d2cccda
  • 37f93bbf1a9eb6edec7d78f4001d036614ddc365
  • 3a4d5c26281ab17fe31460235e49e1631399b3e0
  • 3d3c4634cc9de462aa41fe591287e3a6ec5ad61b
  • 45758d7c37b56f8bd66d0f5434a35ced49f99e04
  • 4ba1b85c85796fe84043209da62c91447e7f6a81
  • 4e13a7e2403fec58908b785dd4e4a068d323c71e
  • 576ee7fbd1ee6fc3a87fd63f2165fe836d3e0a22
  • 67a672f44f2130a0e52a5ec1cf2bf100f51cb28f
  • 68f2285fea4741d4eeb173c2cf62fb67a0f702a4
  • 6d403b7fda1167eecf7e8f40ed2d0628f37c9227
  • 71bdb152ec141afb645c511483628559e75f9404
  • 75511a3299bdba33b7670fceb900b529b6f32555
  • 7604054b568055004edf4f2f1e589109065ae0b8
  • 77b30efc1076174ec1c5445b02d779210bab7528
  • 7c15f15e1e0581953e4ebc659b4206051ff4e63e
  • 8dc309a367329e0876c69d2cbf4c79de4a735131
  • 8ff8f7ae38aac1725d1390821f565aa1061dbb6c
  • 9880f5bd4e923c024598afed31cb7801bd0d7162
  • 9cb3523890a34171c5932f145ff00e427101f2fd
  • 9ed189154ee3c1e47d24604308ba1c29dcc753e9
  • 9f1378f4105e20d4e8df96a9af6a6db2bd3a9e0a
  • IMS212/master-1.21
  • a30e0546076b6ab4302f2efb04cf19d7fbc9ab87
  • a47a18be9f04669ac4e78b22916ba030185f28c8
  • a5299fee92435c7e90ad09c9c87e78b8d269a252
  • aba459ff9bad27a521ae46b9ef523aa1dabf6234
  • ae1129df5c1c8fe7d070393ffed37d356e06c254
  • afefbd85da074cbc8c75a375f674b15f1cf9bebe
  • b898bc5d326d5eb4bc9f95878170fd2b1dca9906
  • c05b5f274d58868431d850b3809ba0bcee2d7bf7
  • c1bde9ceb72a2711c35801c34426d4ee65cdf1ee
  • c38697bde23f1b8c42f641486e45ba9b20bc0b64
  • c559db19d051ead62ba7700ef04c1f5297b83555
  • c6a035a6301740ec79e7671306a26fdcea570a8c
  • c842f7429cf5fef8bc0339c0d64487b2b4101ea6
  • claude/cyclopscore-dimpos-nbt-key
  • claude/gradle-config-on-demand-6hbhyg
  • claude/integrated-dynamics-1695-rsigks
  • claude/scrolling-grid-rows
  • copilot/add-build-number-to-mod-version
  • copilot/add-logical-operators-support
  • copilot/add-resourcehandler-size-check
  • copilot/create-agents-md-file
  • copilot/fix-crash-reports
  • copilot/fix-curiosapi-compatibility-issue
  • copilot/fix-damage-indicated-item-fluid-container
  • copilot/fix-ingredient-slotdisplay-workaround
  • copilot/fix-ingredient-slotdisplay-workaround-again
  • copilot/restore-old-method-code-reuse
  • e2e636a1abae2317000b11286748ce91e033194a
  • e72a27baae12cee2496e987cce2c20242bb8d525
  • fba742b48c6b1402484343e79c1cf068fc7e6169
  • feature-blockcaps
  • feature/DirectoryListerMod
  • feature/dumpregistries
  • feature/energetic-sheep
  • feature/gametest
  • feature/ingredient-transactions
  • feature/multiloader
  • feature/multiloader-colossalchests
  • feature/multiloader-everlastingabilities
  • feature/nbtpath
  • feature/opt-collapsed-collection
  • feature/runtimegametest
  • fed01167a3e969cc17f5cd5147ad296b4d7117ab
  • fix/infobook-empty-recipe-slot-tooltip-crash
  • fix/ingredient-map-wrapped-adapter-redundant-lookup
  • fix/itemstack-hash-components
  • fix/itemstack-hash-components-1.21
  • l10n_crowdin_translations
  • master-1.12
  • master-1.14
  • master-1.15
  • master-1.16
  • master-1.18
  • master-1.19
  • master-1.19-lts
  • master-1.19.2
  • master-1.20
  • master-1.20-lts
  • master-1.21
  • master-1.21-lts
  • master-1.21.10
  • master-1.21.4
  • master-1.21.8
  • master-26
  • master-26-lts
  • patch-1
  • perf/check-castability
  • perf/ingredient-map-compute
  • perf/ingredient-map-compute-1.21
  • release-1.16
  • release-1.18
  • release-1.19

07 Sep 2026 08:08AM UTC coverage: 26.862% (+0.2%) from 26.63%
34099049926

Pull #242

github

rubensworks
Identify inventories by instance instead of by contents

SimpleInventoryCommon compared inventories by their contents and returned a
modification counter as its hash code. Both are wrong for a mutable container,
and together they break item transfer APIs that cache their wrappers in a map
keyed on the container.

Fabric's InventoryStorage is such a cache, and uses equals-based keys:

    private static final Map<Inventory, InventoryStorageImpl> WRAPPERS = new MapMaker().weakValues().makeMap();

Two empty inventories of the same size were therefore equal and hashed the
same, so the second one looked up was handed the first one's storage. Items
inserted into one block ended up in another, and reading a block's contents
returned the other one's items. The changing hash code additionally made an
inventory lose its own cache entry after every modification.

Instances are now compared by identity. getState() still returns the
modification counter, so change detection is unaffected.

The deprecated NeoForge-only SimpleInventory keeps its contents-based equality:
it backs the cyclopscore:inventory data component, which needs value equality.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wbskd84GPZPE1rB7spHkdn
Pull Request #242: Identify inventories by instance instead of by contents

1284 of 5168 branches covered (24.85%)

Branch coverage included in aggregate %.

3667 of 13263 relevant lines covered (27.65%)

1.33 hits per line

Relevant lines Covered
Build:
Build:
13263 RELEVANT LINES 3667 COVERED LINES
1.33 HITS PER LINE
Source Files on fix-simpleinventory-identity-semantics
  • Tree
  • List 656
  • Changed 17
  • Source Changed 0
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
34099049926 fix-simpleinventory-identity-semantics Identify inventories by instance instead of by contents SimpleInventoryCommon compared inventories by their contents and returned a modification counter as its hash code. Both are wrong for a mutable container, and together they break item transf... Pull #242 07 Sep 2026 08:21AM UTC rubensworks github
26.86
34099081237 fix-simpleinventory-identity-semantics Merge f2ee54975 into 039069cea Pull #242 07 Sep 2026 08:20AM UTC web-flow github pending completion  
See All Builds (1302)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc