From 96c657cbb5e1c9282911bb8b7b6f6239392ae07f Mon Sep 17 00:00:00 2001 From: Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> Date: Mon, 19 Feb 2024 15:40:02 +0100 Subject: Added GetFromSackAPI. #968 --- src/main/java/at/hannibal2/skyhanni/utils/ChatUtils.kt | 14 +++++++++++++- .../java/at/hannibal2/skyhanni/utils/PrimitiveItemStack.kt | 13 +++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/main/java/at/hannibal2/skyhanni/utils/PrimitiveItemStack.kt (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/ChatUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/ChatUtils.kt index f8a156644..533c67731 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/ChatUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/ChatUtils.kt @@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.utils import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.LorenzTickEvent +import at.hannibal2.skyhanni.events.MessageSendToServerEvent import at.hannibal2.skyhanni.utils.StringUtils.removeColor import net.minecraft.client.Minecraft import net.minecraft.event.ClickEvent @@ -11,6 +12,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import java.util.LinkedList import java.util.Queue import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.times object ChatUtils { @@ -183,6 +185,10 @@ object ChatUtils { private var lastMessageSent = SimpleTimeMark.farPast() private val sendQueue: Queue = LinkedList() + private val messageDelay = 300.milliseconds + + fun getTimeWhenNewlyQueuedMessageGetsExecuted() = + (lastMessageSent + sendQueue.size * messageDelay).takeIf { !it.isInPast() } ?: SimpleTimeMark.now() @SubscribeEvent fun sendQueuedChatMessages(event: LorenzTickEvent) { @@ -191,7 +197,7 @@ object ChatUtils { sendQueue.clear() return } - if (lastMessageSent.passedSince() > 300.milliseconds) { + if (lastMessageSent.passedSince() > messageDelay) { player.sendChatMessage(sendQueue.poll() ?: return) lastMessageSent = SimpleTimeMark.now() } @@ -204,4 +210,10 @@ object ChatUtils { fun sendCommandToServer(command: String) { sendMessageToServer("/$command") } + + fun MessageSendToServerEvent.isCommand(commandWithSlash: String) = + splitMessage.takeIf { it.isNotEmpty() }?.get(0) == commandWithSlash + + fun MessageSendToServerEvent.isCommand(commandsWithSlash: Collection) = + splitMessage.takeIf { it.isNotEmpty() }?.get(0) in commandsWithSlash } diff --git a/src/main/java/at/hannibal2/skyhanni/utils/PrimitiveItemStack.kt b/src/main/java/at/hannibal2/skyhanni/utils/PrimitiveItemStack.kt new file mode 100644 index 000000000..ad7b864b1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/utils/PrimitiveItemStack.kt @@ -0,0 +1,13 @@ +package at.hannibal2.skyhanni.utils + +import at.hannibal2.skyhanni.utils.NEUItems.getItemStack + +data class PrimitiveItemStack(val name: NEUInternalName, val amount: Int) { + + fun createItem() = name.getItemStack().apply { stackSize = amount } + + companion object { + + fun NEUInternalName.makePrimitiveStack(amount: Int) = PrimitiveItemStack(this, amount) + } +} -- cgit