aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/ledger/modules/ChestDetection.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/ledger/modules/ChestDetection.kt')
-rw-r--r--src/main/kotlin/moe/nea/ledger/modules/ChestDetection.kt48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/main/kotlin/moe/nea/ledger/modules/ChestDetection.kt b/src/main/kotlin/moe/nea/ledger/modules/ChestDetection.kt
deleted file mode 100644
index cca02e1..0000000
--- a/src/main/kotlin/moe/nea/ledger/modules/ChestDetection.kt
+++ /dev/null
@@ -1,48 +0,0 @@
-package moe.nea.ledger.modules
-
-import moe.nea.ledger.ItemChange
-import moe.nea.ledger.ItemId
-import moe.nea.ledger.ItemIdProvider
-import moe.nea.ledger.getDisplayNameU
-import moe.nea.ledger.getInternalId
-import moe.nea.ledger.getLore
-import moe.nea.ledger.unformattedString
-import moe.nea.ledger.utils.di.Inject
-import net.minecraft.init.Blocks
-import net.minecraft.inventory.Slot
-import net.minecraft.item.Item
-import java.time.Instant
-
-abstract class ChestDetection {
- data class ChestCost(
- val diff: List<ItemChange>,
- val timestamp: Instant,
- )
-
- @Inject
- lateinit var itemIdProvider: ItemIdProvider
- fun scrapeChestReward(rewardSlot: Slot): ChestCost? {
- val inventory = rewardSlot.inventory
- if (!inventory.displayName.unformattedText.unformattedString()
- .endsWith(" Chest")
- ) return null
- val rewardStack = rewardSlot.stack ?: return null
- val name = rewardStack.getDisplayNameU()
- if (name != "§aOpen Reward Chest") return null
- val lore = rewardStack.getLore()
- val cost = itemIdProvider.findCostItemsFromSpan(lore)
- val gain = (9..18)
- .mapNotNull { inventory.getStackInSlot(it) }
- .filter { it.item != Item.getItemFromBlock(Blocks.stained_glass_pane) }
- .map {
- it.getInternalId()?.withStackSize(it.stackSize)
- ?: itemIdProvider.findStackableItemByName(it.displayName)
- ?: ItemId.NIL.withStackSize(it.stackSize)
- }
- return ChestCost(
- cost.map { ItemChange.lose(it.first, it.second) } + gain.map { ItemChange.gain(it.first, it.second) },
- Instant.now()
- )
- }
-
-} \ No newline at end of file