From fbd34f3414473e1031daf04c1ac027fc6fe00a82 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Thu, 6 Mar 2025 22:36:55 +0700 Subject: [PATCH] SimpleCache helper function --- .../entity/matter/MatterEntanglerBlockEntity.kt | 8 ++------ src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt | 13 +++++++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt index 82def3e57..079f70e18 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt @@ -33,6 +33,7 @@ import ru.dbotthepony.mc.otm.container.IEnhancedCraftingContainer import ru.dbotthepony.mc.otm.container.slotted.AutomationFilters import ru.dbotthepony.mc.otm.container.slotted.FilteredContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer +import ru.dbotthepony.mc.otm.core.SimpleCache import ru.dbotthepony.mc.otm.core.collect.filter import ru.dbotthepony.mc.otm.core.collect.forEach import ru.dbotthepony.mc.otm.core.collect.map @@ -95,12 +96,7 @@ class MatterEntanglerBlockEntity(blockPos: BlockPos, blockState: BlockState) : M } private inner class InputSlot(container: SlottedContainer, slot: Int) : FilteredContainerSlot(container, slot) { - val insertCache: Cache = Caffeine.newBuilder() - .maximumSize(1024L) - .expireAfterWrite(Duration.ofMinutes(1L)) - .scheduler(Scheduler.systemScheduler()) - .executor(Util.backgroundExecutor()) - .build() + val insertCache = SimpleCache(1024L, Duration.ofMinutes(1)) override fun canAutomationPlaceItem(itemStack: ItemStack): Boolean { if (!super.canAutomationPlaceItem(itemStack)) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt index 718e617b1..85e8b4e1c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt @@ -3,6 +3,9 @@ package ru.dbotthepony.mc.otm.core +import com.github.benmanes.caffeine.cache.Cache +import com.github.benmanes.caffeine.cache.Caffeine +import com.github.benmanes.caffeine.cache.Scheduler import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableMap import com.google.common.collect.ImmutableMultimap @@ -59,6 +62,7 @@ import java.io.InputStream import java.io.OutputStream import java.lang.ref.Reference import java.math.BigInteger +import java.time.Duration import java.util.* import java.util.concurrent.Callable import java.util.concurrent.Future @@ -655,3 +659,12 @@ fun RandomSource.nextNormalDoubles(stddev: Double, mean: Double): DoublePair { fun RandomSource.nextNormalDouble(stddev: Double, mean: Double): Double { return nextGaussian() * stddev + mean } + +fun SimpleCache(size: Long, freshness: Duration): Cache { + return Caffeine.newBuilder() + .maximumSize(size) + .scheduler(Scheduler.systemScheduler()) + .executor(Util.backgroundExecutor()) + .expireAfterWrite(freshness) + .build() +}