diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/romangraef/tagtooltip/TagTooltip.java | 21 | ||||
-rw-r--r-- | src/main/resources/META-INF/mods.toml | 2 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/main/java/com/romangraef/tagtooltip/TagTooltip.java b/src/main/java/com/romangraef/tagtooltip/TagTooltip.java index 31dfa6c..cf5a9a3 100644 --- a/src/main/java/com/romangraef/tagtooltip/TagTooltip.java +++ b/src/main/java/com/romangraef/tagtooltip/TagTooltip.java @@ -1,5 +1,6 @@ package com.romangraef.tagtooltip; +import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.util.InputMappings; import net.minecraft.util.ResourceLocation; @@ -7,10 +8,10 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TranslationTextComponent; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.settings.KeyConflictContext; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ExtensionPoint; @@ -35,26 +36,38 @@ public class TagTooltip { public static final String MODID = "tagtooltip"; public static final Logger log = LogManager.getLogger(MODID); public KeyBinding showTagsBinding = new KeyBinding("key.showtags", KeyConflictContext.UNIVERSAL, InputMappings.Type.KEYSYM, GLFW.GLFW_KEY_M, "key.categories.inventory"); + public boolean isShowTagsDown = false; public TagTooltip() { if (FMLEnvironment.dist == Dist.DEDICATED_SERVER) { log.warn("Tag Tooltips is a client side only mod."); } else { IEventBus eventBus = MinecraftForge.EVENT_BUS; - eventBus.addListener(EventPriority.NORMAL, false, ItemTooltipEvent.class, this::onTooltip); + eventBus.register(this); ClientRegistry.registerKeyBinding(showTagsBinding); } } + private boolean isKeyBindDown(KeyBinding keyBinding) { + if (keyBinding.isKeyDown()) return true; + InputMappings.Input key = keyBinding.getKey(); + int keyCode = key.getKeyCode(); + // GL window handle + long handle = Minecraft.getInstance().getMainWindow().getHandle(); + return InputMappings.isKeyDown(handle, keyCode) && keyBinding.getKeyModifier().isActive(keyBinding.getKeyConflictContext()); + } + + @SubscribeEvent + @OnlyIn(Dist.CLIENT) public void onTooltip(ItemTooltipEvent event) { if (event == null) return; List<ITextComponent> toolTip = event.getToolTip(); - if (!showTagsBinding.isKeyDown()) { + if (!isKeyBindDown(showTagsBinding)) { toolTip.add(new TranslationTextComponent("tooltip.showTags", showTagsBinding.func_238171_j_())); return; } for (ResourceLocation tag : event.getItemStack().getItem().getTags()) { - toolTip.add(new TranslationTextComponent("tooltip.tag.prefix",new StringTextComponent(tag.toString()))); + toolTip.add(new TranslationTextComponent("tooltip.tag.prefix", new StringTextComponent(tag.toString()))); } } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index e3aba84..16fbddf 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -17,6 +17,6 @@ Adds tooltips to items to show the tags that they have. [[dependencies.tagtooltip]] modId="minecraft" mandatory=true - versionRange="[1.16.1]" + versionRange="[1.16,1.17)" ordering="NONE" side="CLIENT" |