diff options
Diffstat (limited to 'src/main/kotlin')
79 files changed, 0 insertions, 4432 deletions
diff --git a/src/main/kotlin/moe/nea/ledger/ConfigCommand.kt b/src/main/kotlin/moe/nea/ledger/ConfigCommand.kt deleted file mode 100644 index 5b964c8..0000000 --- a/src/main/kotlin/moe/nea/ledger/ConfigCommand.kt +++ /dev/null @@ -1,31 +0,0 @@ -package moe.nea.ledger - -import io.github.notenoughupdates.moulconfig.common.IMinecraft -import net.minecraft.command.CommandBase -import net.minecraft.command.ICommandSender - -class ConfigCommand : CommandBase() { - override fun canCommandSenderUseCommand(sender: ICommandSender?): Boolean { - return true - } - - override fun getCommandName(): String { - return "ledgerconfig" - } - - override fun getCommandUsage(sender: ICommandSender?): String { - return "" - } - - override fun processCommand(sender: ICommandSender?, args: Array<out String>) { - val editor = Ledger.managedConfig.getEditor() - editor.search(args.joinToString(" ")) - Ledger.runLater { - IMinecraft.instance.openWrappedScreen(editor) - } - } - - override fun getCommandAliases(): List<String> { - return listOf("moneyledger") - } -}
\ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/DebugDataCommand.kt b/src/main/kotlin/moe/nea/ledger/DebugDataCommand.kt deleted file mode 100644 index bab0a78..0000000 --- a/src/main/kotlin/moe/nea/ledger/DebugDataCommand.kt +++ /dev/null @@ -1,34 +0,0 @@ -package moe.nea.ledger - -import moe.nea.ledger.events.SupplyDebugInfo -import moe.nea.ledger.utils.di.Inject -import net.minecraft.command.CommandBase -import net.minecraft.command.ICommandSender -import net.minecraftforge.common.MinecraftForge - -class DebugDataCommand : CommandBase() { - - override fun canCommandSenderUseCommand(sender: ICommandSender?): Boolean { - return true - } - - override fun getCommandName(): String { - return "ledgerdebug" - } - - override fun getCommandUsage(sender: ICommandSender?): String { - return "" - } - - @Inject - lateinit var logger: LedgerLogger - - override fun processCommand(sender: ICommandSender?, args: Array<out String>?) { - val debugInfo = SupplyDebugInfo() - MinecraftForge.EVENT_BUS.post(debugInfo) - logger.printOut("Collected debug info:") - debugInfo.data.forEach { - logger.printOut("${it.first}: ${it.second}") - } - } -}
\ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/DevUtil.kt b/src/main/kotlin/moe/nea/ledger/DevUtil.kt deleted file mode 100644 index d0dd653..0000000 --- a/src/main/kotlin/moe/nea/ledger/DevUtil.kt +++ /dev/null @@ -1,7 +0,0 @@ -package moe.nea.ledger - -import net.minecraft.launchwrapper.Launch - -object DevUtil { - val isDevEnv = Launch.blackboard["fml.deobfuscatedEnvironment"] as Boolean -}
\ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/ExpiringValue.kt b/src/main/kotlin/moe/nea/ledger/ExpiringValue.kt deleted file mode 100644 index dac4751..0000000 --- a/src/main/kotlin/moe/nea/ledger/ExpiringValue.kt +++ /dev/null @@ -1,28 +0,0 @@ -package moe.nea.ledger - -import kotlin.time.Duration -import kotlin.time.Duration.Companion.nanoseconds - -class ExpiringValue<T>(private val value: T) { - val lastSeenAt: Long = System.nanoTime() - val age get() = (System.nanoTime() - lastSeenAt).nanoseconds - var taken = false - fun get(expiry: Duration): T? { - return if (!taken && expiry > age) value - else null - } - - companion object { - fun <T> empty(): ExpiringValue<T> { - val value = ExpiringValue(Unit) - value.take() - @Suppress("UNCHECKED_CAST") - return value as ExpiringValue<T> - } - } - - fun consume(expiry: Duration): T? = get(expiry).also { take() } - fun take() { - taken = true - } -}
\ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/ItemChange.kt b/src/main/kotlin/moe/nea/ledger/ItemChange.kt deleted file mode 100644 index fda709c..0000000 --- a/src/main/kotlin/moe/nea/ledger/ItemChange.kt +++ /dev/null @@ -1,84 +0,0 @@ -package moe.nea.ledger - -import moe.nea.ledger.database.DBItemEntry -import moe.nea.ledger.database.ResultRow -import net.minecraft.event.HoverEvent -import net.minecraft.util.ChatComponentText -import net.minecraft.util.ChatStyle -import net.minecraft.util.EnumChatFormatting -import net.minecraft.util.IChatComponent - -data class ItemChange( - val itemId: ItemId, - val count: Double, - val direction: ChangeDirection, -) { - fun formatChat(): IChatComponent { - return ChatComponentText(" ") - .appendSibling(direction.chatFormat) - .appendText(" ") - .appendSibling(ChatComponentText("$count").setChatStyle(ChatStyle().setColor(EnumChatFormatting.WHITE))) - .appendSibling(ChatComponentText("x").setChatStyle(ChatStyle().setColor(EnumChatFormatting.DARK_GRAY))) - .appendText(" ") - .appendSibling(ChatComponentText(itemId.string).setChatStyle(ChatStyle().setParentStyle(ChatStyle().setColor( - EnumChatFormatting.WHITE)))) - } - - enum class ChangeDirection { - GAINED, - TRANSFORM, - SYNC, - CATALYST, - LOST; - - val chatFormat by lazy { formatChat0() } - private fun formatChat0(): IChatComponent { - val (text, color) = when (this) { - GAINED -> "+" to EnumChatFormatting.GREEN - TRANSFORM -> "~" to EnumChatFormatting.YELLOW - SYNC -> "=" to EnumChatFormatting.BLUE - CATALYST -> "*" to EnumChatFormatting.DARK_PURPLE - LOST -> "-" to EnumChatFormatting.RED - } - return ChatComponentText(text) - .setChatStyle( - ChatStyle() - .setColor(color) - .setChatHoverEvent(HoverEvent(HoverEvent.Action.SHOW_TEXT, - ChatComponentText(name).setChatStyle(ChatStyle().setColor(color))))) - } - } - - companion object { - fun gainCoins(number: Double): ItemChange { - return gain(ItemId.COINS, number) - } - - fun unpair(direction: ChangeDirection, pair: Pair<ItemId, Double>): ItemChange { - return ItemChange(pair.first, pair.second, direction) - } - - fun unpairGain(pair: Pair<ItemId, Double>) = unpair(ChangeDirection.GAINED, pair) - fun unpairLose(pair: Pair<ItemId, Double>) = unpair(ChangeDirection.LOST, pair) - - fun gain(itemId: ItemId, amount: Number): ItemChange { - return ItemChange(itemId, amount.toDouble(), ChangeDirection.GAINED) - } - - fun lose(itemId: ItemId, amount: Number): ItemChange { - return ItemChange(itemId, amount.toDouble(), ChangeDirection.LOST) - } - - fun loseCoins(number: Double): ItemChange { - return lose(ItemId.COINS, number) - } - - fun from(result: ResultRow): ItemChange { - return ItemChange( - result[DBItemEntry.itemId], - result[DBItemEntry.size], - result[DBItemEntry.mode], - ) - } - } -}
\ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/ItemId.kt b/src/main/kotlin/moe/nea/ledger/ItemId.kt deleted file mode 100644 index 2b83357..0000000 --- a/src/main/kotlin/moe/nea/ledger/ItemId.kt +++ /dev/null @@ -1,37 +0,0 @@ -package moe.nea.ledger - -@JvmInline -value class ItemId( - val string: String -) { - fun singleItem(): Pair<ItemId, Double> { - return withStackSize(1) - } - - fun withStackSize(size: Number): Pair<ItemId, Double> { - return Pair(this, size.toDouble()) - } - - - companion object { - fun skill(skill: String) = ItemId("SKYBLOCK_SKILL_$skill") - - val GARDEN = skill("GARDEN") - val FARMING = skill("FARMING") - val GEMSTONE_POWDER = ItemId("SKYBLOCK_POWDER_GEMSTONE") - val MITHRIL_POWDER = ItemId("SKYBLOCK_POWDER_MITHRIL") - val GOLD_ESSENCE = ItemId("ESSENCE_GOLD") - val PELT = ItemId("SKYBLOCK_PELT") - val COINS = ItemId("SKYBLOCK_COIN") - val FINE_FLOUR = ItemId("FINE_FLOUR") - val BITS = ItemId("SKYBLOCK_BIT") - val COPPER = ItemId("SKYBLOCK_COPPER") - val NIL = ItemId("SKYBLOCK_NIL") - val ARCHFIEND_LOW_CLASS = ItemId("ARCHFIEND_DICE") - val ARCHFIEND_HIGH_CLASS = ItemId("HIGH_CLASS_ARCHFIEND_DICE") - val ARCHFIEND_DYE = ItemId("DYE_ARCHFIEND") - val DUNGEON_CHEST_KEY = ItemId("DUNGEON_CHEST_KEY") - val BOOSTER_COOKIE = ItemId("BOOSTER_COOKIE") - val KISMET_FEATHER = ItemId("KISMET_FEATHER") - } -}
\ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/ItemIdProvider.kt b/src/main/kotlin/moe/nea/ledger/ItemIdProvider.kt deleted file mode 100644 index 7fe0206..0000000 --- a/src/main/kotlin/moe/nea/ledger/ItemIdProvider.kt +++ /dev/null @@ -1,179 +0,0 @@ -package moe.nea.ledger - -import moe.nea.ledger.events.BeforeGuiAction -import moe.nea.ledger.events.ExtraSupplyIdEvent -import moe.nea.ledger.events.RegistrationFinishedEvent -import moe.nea.ledger.events.SupplyDebugInfo -import moe.nea.ledger.modules.ExternalDataProvider -import net.minecraft.client.Minecraft -import net.minecraft.item.ItemStack -import net.minecraft.nbt.NBTTagCompound -import net.minecraftforge.client.event.GuiScreenEvent -import net.minecraftforge.common.MinecraftForge -import net.minecraftforge.fml.common.eventhandler.EventPriority -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import org.lwjgl.input.Mouse - -class ItemIdProvider { - - @SubscribeEvent - fun onMouseInput(event: GuiScreenEvent.MouseInputEvent.Pre) { - if (Mouse.getEventButton() == -1) return - MinecraftForge.EVENT_BUS.post(BeforeGuiAction(event.gui)) - } - - @SubscribeEvent - fun onKeyInput(event: GuiScreenEvent.KeyboardInputEvent.Pre) { - MinecraftForge.EVENT_BUS.post(BeforeGuiAction(event.gui)) - } - - private val knownNames = mutableMapOf<String, ItemId>() - - fun createLookupTagFromDisplayName(itemName: String): String { - return itemName.unformattedString().trim().lowercase() - } - - fun saveKnownItem(itemName: String, itemId: ItemId) { - knownNames[createLookupTagFromDisplayName(itemName)] = itemId - } - - @SubscribeEvent - fun onDataLoaded(event: ExternalDataProvider.DataLoaded) { - event.provider.itemNames.forEach { (itemId, itemName) -> - saveKnownItem(itemName, ItemId(itemId)) - } - } - - @SubscribeEvent - fun onRegistrationFinished(event: RegistrationFinishedEvent) { - MinecraftForge.EVENT_BUS.post(ExtraSupplyIdEvent(::saveKnownItem)) - } - - @SubscribeEvent(priority = EventPriority.HIGH) - fun savePlayerInventoryIds(event: BeforeGuiAction) { - val player = Minecraft.getMinecraft().thePlayer ?: return - val inventory = player.inventory ?: return - inventory.mainInventory?.forEach { saveFromSlot(it) } - inventory.armorInventory?.forEach { saveFromSlot(it) } - } - - @SubscribeEvent - fun onDebugData(event: SupplyDebugInfo) { - event.record("knownItemNames", knownNames.size) - } - - fun saveFromSlot(stack: ItemStack?, preprocessName: (String) -> String = { it }) { - if (stack == null) return - val nbt = stack.tagCompound ?: NBTTagCompound() - val display = nbt.getCompoundTag("display") - var name = display.getString("Name").unformattedString() - name = preprocessName(name) - name = name.trim() - val id = stack.getInternalId() - if (id != null && name.isNotBlank()) { - saveKnownItem(name, id) - } - } - - @SubscribeEvent(priority = EventPriority.HIGH) - fun saveChestInventoryIds(event: BeforeGuiAction) { - val slots = event.chestSlots ?: return - val chestName = slots.lowerChestInventory.name.unformattedString() - val isOrderMenu = chestName == "Your Bazaar Orders" || chestName == "Co-op Bazaar Orders" - val preprocessor: (String) -> String = if (isOrderMenu) { - { it.removePrefix("BUY ").removePrefix("SELL ") } - } else { - { it } - } - slots.inventorySlots.forEach { - saveFromSlot(it?.stack, preprocessor) - } - } - - // TODO: make use of colour - fun findForName(name: String, fallbackToGenerated: Boolean = true): ItemId? { - var id = knownNames[createLookupTagFromDisplayName(name)] - if (id == null && fallbackToGenerated) { - id = generateName(name) - } - return id - } - - fun generateName(name: String): ItemId { - return ItemId(name.uppercase().replace(" ", "_")) - } - - private val coinRegex = "(?<amount>$SHORT_NUMBER_PATTERN) Coins?".toPattern() - private val stackedItemRegex = "(?<name>.*) x(?<count>$SHORT_NUMBER_PATTERN)".toPattern() - private val essenceRegex = "(?<essence>.*) Essence x(?<count>$SHORT_NUMBER_PATTERN)".toPattern() - private val numberedItemRegex = "(?<count>$SHORT_NUMBER_PATTERN) (?<what>.*)".toPattern() - - fun findCostItemsFromSpan(lore: List<String>): List<Pair<ItemId, Double>> { - return lore.iterator().asSequence() - .dropWhile { it.unformattedString() != "Cost" }.drop(1) - .takeWhile { it != "" } - .map { findStackableItemByName(it) ?: Pair(ItemId.NIL, 1.0) } - .toList() - } - - private val etherialRewardPatte |
