Fix some issues idk
This commit is contained in:
@@ -35,7 +35,7 @@ public class MixinHandledScreen {
|
||||
|
||||
@Inject(method = "keyPressed", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;handleHotbarKeyPressed(II)Z", shift = At.Shift.BEFORE), cancellable = true)
|
||||
public void onKeyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (HandledScreenKeyPressedEvent.Companion.publish(new HandledScreenKeyPressedEvent(keyCode, scanCode, modifiers)).getCancelled()) {
|
||||
if (HandledScreenKeyPressedEvent.Companion.publish(new HandledScreenKeyPressedEvent((HandledScreen<?>) (Object) this, keyCode, scanCode, modifiers)).getCancelled()) {
|
||||
cir.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,10 +18,16 @@
|
||||
|
||||
package moe.nea.firmament.events
|
||||
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen
|
||||
import net.minecraft.client.option.KeyBinding
|
||||
import moe.nea.firmament.keybindings.IKeyBinding
|
||||
|
||||
data class HandledScreenKeyPressedEvent(val keyCode: Int, val scanCode: Int, val modifiers: Int) : FirmamentEvent.Cancellable() {
|
||||
data class HandledScreenKeyPressedEvent(
|
||||
val screen: HandledScreen<*>,
|
||||
val keyCode: Int,
|
||||
val scanCode: Int,
|
||||
val modifiers: Int
|
||||
) : FirmamentEvent.Cancellable() {
|
||||
companion object : FirmamentEventBus<HandledScreenKeyPressedEvent>()
|
||||
|
||||
fun matches(keyBinding: KeyBinding): Boolean {
|
||||
|
||||
@@ -2,16 +2,25 @@ package moe.nea.firmament.features.debug
|
||||
|
||||
import java.nio.file.Path
|
||||
import java.util.concurrent.CompletableFuture
|
||||
import org.lwjgl.glfw.GLFW
|
||||
import kotlin.io.path.absolute
|
||||
import kotlin.io.path.exists
|
||||
import net.minecraft.client.MinecraftClient
|
||||
import net.minecraft.text.ClickEvent
|
||||
import net.minecraft.text.HoverEvent
|
||||
import net.minecraft.text.Style
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.util.Formatting
|
||||
import moe.nea.firmament.Firmament
|
||||
import moe.nea.firmament.events.HandledScreenKeyPressedEvent
|
||||
import moe.nea.firmament.features.FirmamentFeature
|
||||
import moe.nea.firmament.gui.config.ManagedConfig
|
||||
import moe.nea.firmament.keybindings.IKeyBinding
|
||||
import moe.nea.firmament.mixins.accessor.AccessorHandledScreen
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.TimeMark
|
||||
import moe.nea.firmament.util.iterate
|
||||
import moe.nea.firmament.util.skyBlockId
|
||||
|
||||
object DeveloperFeatures : FirmamentFeature {
|
||||
override val identifier: String
|
||||
@@ -50,5 +59,23 @@ object DeveloperFeatures : FirmamentFeature {
|
||||
}
|
||||
|
||||
override fun onLoad() {
|
||||
HandledScreenKeyPressedEvent.subscribe {
|
||||
if (it.matches(IKeyBinding.ofKeyCode(GLFW.GLFW_KEY_K))) {
|
||||
it.screen as AccessorHandledScreen
|
||||
val focussedSlot = it.screen.focusedSlot_NEU ?: return@subscribe
|
||||
val item = focussedSlot.stack ?: return@subscribe
|
||||
val ident = item.skyBlockId?.identifier.toString()
|
||||
MinecraftClient.getInstance().inGameHud.chatHud.addMessage(
|
||||
Text.translatable(
|
||||
"firmament.debug.skyblockid",
|
||||
ident
|
||||
).setStyle(
|
||||
Style.EMPTY.withColor(Formatting.AQUA)
|
||||
.withClickEvent(ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, ident))
|
||||
.withHoverEvent(HoverEvent(HoverEvent.Action.SHOW_TEXT, Text.translatable("firmament.debug.skyblockid.copy")))
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import moe.nea.firmament.events.CustomItemModelEvent
|
||||
import moe.nea.firmament.events.TickEvent
|
||||
import moe.nea.firmament.features.FirmamentFeature
|
||||
import moe.nea.firmament.gui.config.ManagedConfig
|
||||
import moe.nea.firmament.util.extraAttributes
|
||||
import moe.nea.firmament.util.skyBlockId
|
||||
|
||||
object CustomSkyBlockTextures : FirmamentFeature {
|
||||
override val identifier: String
|
||||
@@ -22,10 +22,8 @@ object CustomSkyBlockTextures : FirmamentFeature {
|
||||
override fun onLoad() {
|
||||
CustomItemModelEvent.subscribe {
|
||||
if (!TConfig.enabled) return@subscribe
|
||||
val extra = it.itemStack.extraAttributes
|
||||
val id = extra.getString("id")
|
||||
if (id.isNotBlank())
|
||||
it.overrideModel = ModelIdentifier("firmskyblock", id.lowercase(), "inventory")
|
||||
val id = it.itemStack.skyBlockId ?: return@subscribe
|
||||
it.overrideModel = ModelIdentifier("firmskyblock", id.identifier.path, "inventory")
|
||||
}
|
||||
TickEvent.subscribe {
|
||||
if (it.tickCount % TConfig.cacheDuration == 0)
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
"firmament.price.bazaar.buy.price": "Buy Price: %s",
|
||||
"firmament.price.bazaar.buy.order": "Buy orders: %d",
|
||||
"firmament.pv.pets": "Pets",
|
||||
"firmament.debug.skyblockid": "SkyBlock ID: %s",
|
||||
"firmament.debug.skyblockid.copy": "Click to copy SkyBlock ID",
|
||||
"firmament.price.bazaar.sell.price": "Sell Price: %s",
|
||||
"firmament.price.bazaar.sell.order": "Sell orders: %d",
|
||||
"firmament.price.lowestbin": "Lowest BIN: %s",
|
||||
|
||||
Reference in New Issue
Block a user