diff --git a/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java b/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java index 7ab56e1a5..b7e96798c 100644 --- a/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java +++ b/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java @@ -24,6 +24,7 @@ public LevelAttached(Function factory, Consumer finalizer) ALL.add(thisRef); cache = CacheBuilder.newBuilder() + .weakKeys() // This prevents Levels from being leaked if invalidateLevel isn't called for them, usually in level wrapper cases .removalListener(n -> finalizer.accept(n.getValue())) .build(new CacheLoader<>() { @Override