diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8fc3827..cf6ba55 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -17,8 +17,8 @@ jobs:
- name: setup jdk
uses: actions/setup-java@v4
with:
- java-version: '21'
- distribution: 'microsoft'
+ java-version: '25'
+ distribution: microsoft
- name: make gradle wrapper executable
run: chmod +x ./gradlew
- name: build
@@ -27,4 +27,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: Artifacts
- path: build/libs/
\ No newline at end of file
+ path: build/libs/
diff --git a/README.md b/README.md
index 1d71270..4ca6faf 100644
--- a/README.md
+++ b/README.md
@@ -2,17 +2,18 @@
TooltipToggles
## Features
+
Provides toggles for a couple of tooltips and tooltip features.
### Toggles
-- Hide Components in Advanced Tooltips*
+- Hide Components in Advanced Tooltips\*
- Hide Item ID in Advanced Tooltips
-- Remove italics*
-- Sort Attribute Modifiers alphabetically*
+- Remove italics\*
+- Sort Attribute Modifiers alphabetically\*
\* Enabled by default.
### Dependencies
-[Mod Menu](https://modrinth.com/mod/modmenu) and [Cloth Config](https://modrinth.com/mod/cloth-config) optionally required to change config.
\ No newline at end of file
+[Mod Menu](https://modrinth.com/mod/modmenu) and [Cloth Config](https://modrinth.com/mod/cloth-config) optionally required to change config.
diff --git a/build.gradle b/build.gradle
index e0cb803..8043564 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,9 +1,9 @@
plugins {
- id 'fabric-loom' version '1.10-SNAPSHOT'
+ id 'net.fabricmc.fabric-loom' version "${loom_version}"
id 'maven-publish'
}
-version = project.mod_version
+version = "${project.mod_version}+${project.minecraft_version}"
group = project.maven_group
base {
@@ -18,13 +18,12 @@ repositories {
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
- mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
- modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
+ implementation "net.fabricmc:fabric-loader:${project.loader_version}"
- modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
+ api("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
- modCompileOnly "com.terraformersmc:modmenu:${project.mod_menu_version}"
+ compileOnly "com.terraformersmc:modmenu:${project.mod_menu_version}"
}
processResources {
@@ -35,14 +34,8 @@ processResources {
}
}
-configurations.all {
- resolutionStrategy {
- force("net.fabricmc:fabric-loader:$loader_version")
- }
-}
-
tasks.withType(JavaCompile).configureEach {
- it.options.release = 21
+ it.options.release = 25
}
java {
@@ -51,8 +44,8 @@ java {
// If you remove this line, sources will not be generated.
withSourcesJar()
- sourceCompatibility = JavaVersion.VERSION_21
- targetCompatibility = JavaVersion.VERSION_21
+ sourceCompatibility = JavaVersion.VERSION_25
+ targetCompatibility = JavaVersion.VERSION_25
}
jar {
diff --git a/gradle.properties b/gradle.properties
index 66f4466..4429db5 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,17 +2,20 @@
org.gradle.jvmargs=-Xmx1G
org.gradle.parallel=true
+# IntelliJ IDEA is not yet fully compatible with configuration cache, see: https://github.com/FabricMC/fabric-loom/issues/1349
+org.gradle.configuration-cache=false
+
# Fabric Properties
# check these on https://fabricmc.net/develop
-minecraft_version=1.21.5
-yarn_mappings=1.21.5+build.1
-loader_version=0.16.13
+minecraft_version=26.1
+loader_version=0.18.4
+loom_version=1.15-SNAPSHOT
# Mod Properties
-mod_version=1.2.3
+mod_version=1.2.4
maven_group=yungand.tooltiptoggles
archives_base_name=tooltiptoggles
# Dependencies
-cloth_config_version=8.2.88
-mod_menu_version=5.0.2
\ No newline at end of file
+cloth_config_version=26.1.154
+mod_menu_version=18.0.0-alpha.8
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e18bc25..19a6bde 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/src/main/java/yungando/tooltiptoggles/TooltipToggles.java b/src/main/java/yungando/tooltiptoggles/TooltipToggles.java
index c249205..fe086c0 100644
--- a/src/main/java/yungando/tooltiptoggles/TooltipToggles.java
+++ b/src/main/java/yungando/tooltiptoggles/TooltipToggles.java
@@ -4,12 +4,12 @@
import me.shedaniel.autoconfig.serializer.GsonConfigSerializer;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.tooltip.TooltipType;
-import net.minecraft.registry.Registries;
-import net.minecraft.text.MutableText;
-import net.minecraft.text.Text;
-import net.minecraft.util.Formatting;
+import net.minecraft.ChatFormatting;
+import net.minecraft.core.registries.BuiltInRegistries;
+import net.minecraft.network.chat.Component;
+import net.minecraft.network.chat.MutableComponent;
+import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.item.TooltipFlag;
import yungando.tooltiptoggles.config.TooltipTogglesConfig;
import yungando.tooltiptoggles.config.TooltipTogglesConfig.TooltipTogglesAutoConfig;
@@ -32,21 +32,21 @@ public void onInitializeClient() {
}
}
- private static void removeItalics(Text tooltip) {
- if (tooltip instanceof MutableText tooltipText) {
+ private static void removeItalics(Component tooltip) {
+ if (tooltip instanceof MutableComponent tooltipText) {
if (tooltipText.getStyle().isItalic()) {
tooltipText.setStyle(tooltipText.getStyle().withItalic(false));
}
- for (Text siblingTooltip : tooltipText.getSiblings()) {
+ for (Component siblingTooltip : tooltipText.getSiblings()) {
removeItalics(siblingTooltip);
}
}
}
- private static List sortAttributes(int modifiersIndex, List list) {
- ArrayList attributeModifiers = new ArrayList<>();
- for (Text tooltip : list) {
+ private static List sortAttributes(int modifiersIndex, List list) {
+ ArrayList attributeModifiers = new ArrayList<>();
+ for (Component tooltip : list) {
if (tooltip.toString().contains("attribute.modifier")) {
attributeModifiers.add(tooltip);
if (attributeModifiers.size() > 2) {
@@ -62,16 +62,16 @@ private static List sortAttributes(int modifiersIndex, List list) {
return list;
}
- public static List tooltipEditor(ItemStack itemStack, TooltipType type, List list) {
+ public static List tooltipEditor(ItemStack itemStack, TooltipFlag type, List list) {
if (TooltipToggles.config.removeItalics()) {
- for (Text tooltip : list) {
+ for (Component tooltip : list) {
removeItalics(tooltip);
}
}
if (TooltipToggles.config.sortAttributes()) {
int modifiersIndex = -1;
- for (Text tooltip : list) {
+ for (Component tooltip : list) {
if (tooltip.toString().contains("item.modifiers")) {
modifiersIndex = list.indexOf(tooltip);
break;
@@ -86,9 +86,8 @@ public static List tooltipEditor(ItemStack itemStack, TooltipType type, Li
if (!type.isAdvanced()) { return list; }
if (TooltipToggles.config.hideComponents() && !itemStack.getComponents().isEmpty()) {
- ArrayList components = new ArrayList<>();
- assert itemStack.getComponents() != null;
- components.add(Text.translatable("item.components", itemStack.getComponents().size()).formatted(Formatting.DARK_GRAY));
+ ArrayList components = new ArrayList<>();
+ components.add(Component.translatable("item.components", itemStack.getComponents().size()).withStyle(ChatFormatting.DARK_GRAY));
int componentsIndex = list.indexOf(components.getFirst());
if (componentsIndex >= 0) {
list.remove(componentsIndex);
@@ -96,8 +95,8 @@ public static List tooltipEditor(ItemStack itemStack, TooltipType type, Li
}
if (TooltipToggles.config.hideID()) {
- ArrayList id = new ArrayList<>();
- id.add(Text.literal(Registries.ITEM.getId(itemStack.getItem()).toString()).formatted(Formatting.DARK_GRAY));
+ ArrayList id = new ArrayList<>();
+ id.add(Component.literal(BuiltInRegistries.ITEM.getKey(itemStack.getItem()).toString()).withStyle(ChatFormatting.DARK_GRAY));
int idIndex = list.indexOf(id.getFirst());
if (idIndex >= 0) {
diff --git a/src/main/java/yungando/tooltiptoggles/config/ModMenuEntrypoint.java b/src/main/java/yungando/tooltiptoggles/config/ModMenuEntrypoint.java
index 327e0e7..dd845b2 100644
--- a/src/main/java/yungando/tooltiptoggles/config/ModMenuEntrypoint.java
+++ b/src/main/java/yungando/tooltiptoggles/config/ModMenuEntrypoint.java
@@ -2,12 +2,12 @@
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
-import me.shedaniel.autoconfig.AutoConfig;
+import me.shedaniel.autoconfig.AutoConfigClient;
import yungando.tooltiptoggles.config.TooltipTogglesConfig.TooltipTogglesAutoConfig;
public class ModMenuEntrypoint implements ModMenuApi {
@Override
public ConfigScreenFactory> getModConfigScreenFactory() {
- return parent -> AutoConfig.getConfigScreen(TooltipTogglesAutoConfig.class, parent).get();
+ return parent -> AutoConfigClient.getConfigScreen(TooltipTogglesAutoConfig.class, parent).get();
}
}
\ No newline at end of file
diff --git a/src/main/java/yungando/tooltiptoggles/config/TooltipTogglesConfig.java b/src/main/java/yungando/tooltiptoggles/config/TooltipTogglesConfig.java
index b666c38..f96d836 100644
--- a/src/main/java/yungando/tooltiptoggles/config/TooltipTogglesConfig.java
+++ b/src/main/java/yungando/tooltiptoggles/config/TooltipTogglesConfig.java
@@ -11,7 +11,6 @@ public class TooltipTogglesConfig {
public boolean removeItalics() { return true; }
public boolean sortAttributes() { return true; }
- /** Config class requiring AutoConfig */
@SuppressWarnings("FieldMayBeFinal")
@Config(name = TooltipToggles.MODID)
public static class TooltipTogglesAutoConfig extends TooltipTogglesConfig implements ConfigData {
diff --git a/src/main/java/yungando/tooltiptoggles/mixin/GuiMixin.java b/src/main/java/yungando/tooltiptoggles/mixin/GuiMixin.java
new file mode 100644
index 0000000..2c84ead
--- /dev/null
+++ b/src/main/java/yungando/tooltiptoggles/mixin/GuiMixin.java
@@ -0,0 +1,17 @@
+package yungando.tooltiptoggles.mixin;
+
+import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
+import net.minecraft.ChatFormatting;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.network.chat.MutableComponent;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import yungando.tooltiptoggles.TooltipToggles;
+
+@Mixin(Gui.class)
+public class GuiMixin {
+ @WrapWithCondition(method = "extractSelectedItemName", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/MutableComponent;withStyle(Lnet/minecraft/ChatFormatting;)Lnet/minecraft/network/chat/MutableComponent;", ordinal = 1))
+ private boolean TooltipToggles$removeItalics(MutableComponent instance, ChatFormatting formatting) {
+ return !TooltipToggles.config.removeItalics();
+ }
+}
diff --git a/src/main/java/yungando/tooltiptoggles/mixin/InGameHudMixin.java b/src/main/java/yungando/tooltiptoggles/mixin/InGameHudMixin.java
deleted file mode 100644
index cdcfe5f..0000000
--- a/src/main/java/yungando/tooltiptoggles/mixin/InGameHudMixin.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package yungando.tooltiptoggles.mixin;
-
-import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
-import net.minecraft.text.MutableText;
-import net.minecraft.util.Formatting;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-
-import net.minecraft.client.gui.hud.InGameHud;
-import yungando.tooltiptoggles.TooltipToggles;
-
-@Mixin(InGameHud.class)
-public class InGameHudMixin {
- @WrapWithCondition(method = "renderHeldItemTooltip", at = @At(value = "INVOKE", target = "Lnet/minecraft/text/MutableText;formatted(Lnet/minecraft/util/Formatting;)Lnet/minecraft/text/MutableText;", ordinal = 1))
- private boolean TooltipToggles$removeItalics(MutableText instance, Formatting formatting) {
- return !TooltipToggles.config.removeItalics();
- }
-}
diff --git a/src/main/java/yungando/tooltiptoggles/mixin/TooltipMixin.java b/src/main/java/yungando/tooltiptoggles/mixin/ItemStackMixin.java
similarity index 56%
rename from src/main/java/yungando/tooltiptoggles/mixin/TooltipMixin.java
rename to src/main/java/yungando/tooltiptoggles/mixin/ItemStackMixin.java
index 83dc269..527c40f 100644
--- a/src/main/java/yungando/tooltiptoggles/mixin/TooltipMixin.java
+++ b/src/main/java/yungando/tooltiptoggles/mixin/ItemStackMixin.java
@@ -1,10 +1,10 @@
package yungando.tooltiptoggles.mixin;
-import net.minecraft.entity.player.PlayerEntity;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.tooltip.TooltipType;
-import net.minecraft.text.*;
+import net.minecraft.network.chat.Component;
+import net.minecraft.world.entity.player.Player;
+import net.minecraft.world.item.Item;
+import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.item.TooltipFlag;
import yungando.tooltiptoggles.TooltipToggles;
import java.util.List;
@@ -15,9 +15,9 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(ItemStack.class)
-public class TooltipMixin {
- @Inject(method = "getTooltip", at = @At("RETURN"), cancellable = true)
- protected void TooltipToggles$editTooltip(Item.TooltipContext context, PlayerEntity player, TooltipType type, CallbackInfoReturnable> cir) {
+public class ItemStackMixin {
+ @Inject(method = "getTooltipLines", at = @At("RETURN"), cancellable = true)
+ protected void TooltipToggles$editTooltip(Item.TooltipContext context, Player player, TooltipFlag type, CallbackInfoReturnable> cir) {
cir.setReturnValue(TooltipToggles.tooltipEditor((ItemStack) (Object) this, type, cir.getReturnValue()));
}
}
diff --git a/src/main/resources/assets/tooltiptoggles/lang/en_us.json b/src/main/resources/assets/tooltiptoggles/lang/en_us.json
index 5b06eb3..5a8d35f 100644
--- a/src/main/resources/assets/tooltiptoggles/lang/en_us.json
+++ b/src/main/resources/assets/tooltiptoggles/lang/en_us.json
@@ -8,4 +8,4 @@
"text.autoconfig.tooltiptoggles.option.removeItalics.@Tooltip": "Unitalicises all tooltips.",
"text.autoconfig.tooltiptoggles.option.sortAttributes": "Sort Attributes Alphabetically",
"text.autoconfig.tooltiptoggles.option.sortAttributes.@Tooltip": "Sorts the armor attribute (e.g. Armor Toughness, Knockback Resistance) tooltips alphabetically."
-}
\ No newline at end of file
+}
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index f8f70c2..02d7013 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -27,9 +27,9 @@
"tooltiptoggles.mixins.json"
],
"depends": {
- "minecraft": ">=1.21",
- "fabricloader": ">=0.16.13",
- "java": ">=21"
+ "fabricloader": ">=0.18.4",
+ "minecraft": ">=26.1",
+ "java": ">=25"
},
"suggests": {
"modmenu": "*",
diff --git a/src/main/resources/tooltiptoggles.mixins.json b/src/main/resources/tooltiptoggles.mixins.json
index eb54a7b..051c987 100644
--- a/src/main/resources/tooltiptoggles.mixins.json
+++ b/src/main/resources/tooltiptoggles.mixins.json
@@ -1,12 +1,15 @@
{
"required": true,
"package": "yungando.tooltiptoggles.mixin",
- "compatibilityLevel": "JAVA_21",
- "mixins": [
- "InGameHudMixin",
- "TooltipMixin"
- ],
+ "compatibilityLevel": "JAVA_25",
"injectors": {
"defaultRequire": 1
- }
-}
\ No newline at end of file
+ },
+ "overwrites": {
+ "requireAnnotations": true
+ },
+ "client": [
+ "GuiMixin",
+ "ItemStackMixin"
+ ]
+}