-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit b4ec266
Showing
15 changed files
with
426 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
# User-specific stuff | ||
.idea/ | ||
|
||
*.iml | ||
*.ipr | ||
*.iws | ||
|
||
# IntelliJ | ||
out/ | ||
# mpeltonen/sbt-idea plugin | ||
.idea_modules/ | ||
|
||
# JIRA plugin | ||
atlassian-ide-plugin.xml | ||
|
||
# Compiled class file | ||
*.class | ||
|
||
# Log file | ||
*.log | ||
|
||
# BlueJ files | ||
*.ctxt | ||
|
||
# Package Files # | ||
*.jar | ||
*.war | ||
*.nar | ||
*.ear | ||
*.zip | ||
*.tar.gz | ||
*.rar | ||
|
||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml | ||
hs_err_pid* | ||
|
||
*~ | ||
|
||
# temporary files which can be created if a process still has a handle open of a deleted file | ||
.fuse_hidden* | ||
|
||
# KDE directory preferences | ||
.directory | ||
|
||
# Linux trash folder which might appear on any partition or disk | ||
.Trash-* | ||
|
||
# .nfs files are created when an open file is removed but is still being accessed | ||
.nfs* | ||
|
||
# General | ||
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
||
# Windows thumbnail cache files | ||
Thumbs.db | ||
Thumbs.db:encryptable | ||
ehthumbs.db | ||
ehthumbs_vista.db | ||
|
||
# Dump file | ||
*.stackdump | ||
|
||
# Folder config file | ||
[Dd]esktop.ini | ||
|
||
# Recycle Bin used on file shares | ||
$RECYCLE.BIN/ | ||
|
||
# Windows Installer files | ||
*.cab | ||
*.msi | ||
*.msix | ||
*.msm | ||
*.msp | ||
|
||
# Windows shortcuts | ||
*.lnk | ||
|
||
.gradle | ||
build/ | ||
|
||
# Ignore Gradle GUI config | ||
gradle-app.setting | ||
|
||
# Cache of project | ||
.gradletasknamecache | ||
|
||
**/build/ | ||
|
||
# Common working directory | ||
run/ | ||
runs/ | ||
|
||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) | ||
!gradle-wrapper.jar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
When [EMI](https://www.curseforge.com/minecraft/mc-mods/emi) and [Obscure Tooltips](https://www.curseforge.com/minecraft/mc-mods/obscure-tooltips) are installed it will turn this: | ||
|
||
![img.png](./resources/wrong_1.png) | ||
![img.png](./resources/wrong_2.png) | ||
|
||
Into this: | ||
|
||
![img.png](./resources/correct_1.png) | ||
![img.png](./resources/correct_2.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
plugins { | ||
id 'eclipse' | ||
id 'idea' | ||
id 'maven-publish' | ||
id 'net.neoforged.gradle' version '[6.0.18,6.2)' | ||
id 'org.parchmentmc.librarian.forgegradle' version '1.+' | ||
id 'org.spongepowered.mixin' version '0.7.+' | ||
} | ||
|
||
version = minecraft_version + "-" + mod_version | ||
|
||
base { | ||
archivesName = mod_id | ||
} | ||
|
||
java.toolchain.languageVersion = JavaLanguageVersion.of(17) | ||
|
||
minecraft { | ||
mappings channel: mapping_channel, version: mapping_version | ||
|
||
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') | ||
|
||
runs { | ||
configureEach { | ||
workingDirectory project.file("run/${it.name}") | ||
property 'forge.logging.markers', 'SCAN' /* REGISTRIES / REGISTRYDUMP */ | ||
property 'forge.logging.console.level', 'debug' | ||
|
||
mods { | ||
"${mod_id}" { | ||
source sourceSets.main | ||
} | ||
} | ||
} | ||
|
||
client { | ||
property 'forge.enabledGameTestNamespaces', mod_id | ||
// Support for mixins of other mods | ||
property 'mixin.env.remapRefMap', 'true' | ||
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" | ||
} | ||
|
||
clientRandom { | ||
parent runs.client | ||
// #### will be replaced with a random number | UUID is a randomly generated one | ||
args '--username', 'Dev####', '--uuid', 'fdb0e318-1ac3-4049-b6f8-d024c0b87a56' | ||
} | ||
|
||
server { | ||
property 'forge.enabledGameTestNamespaces', mod_id | ||
// Support for mixins of other mods | ||
property 'mixin.env.remapRefMap', 'true' | ||
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" | ||
} | ||
|
||
data { | ||
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') | ||
} | ||
} | ||
} | ||
|
||
sourceSets.main.resources { srcDir 'src/generated/resources' } | ||
|
||
repositories { | ||
flatDir { dirs 'dev' } | ||
maven { url = "https://jitpack.io" } // Mixin Squared | ||
maven { url = "https://www.cursemaven.com" } // CurseForge | ||
} | ||
|
||
dependencies { | ||
minecraft "net.neoforged:forge:${minecraft_version}-${neo_version}" | ||
|
||
implementation fg.deobf("curse.maven:emi-580555:5497473") // 1.1.10 | ||
implementation fg.deobf("curse.maven:obscure-tooltips-715660:4686579") // 2.2770828") | ||
|
||
/* --- Mixin Configuration --- */ | ||
implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras_version}")) | ||
implementation(jarJar("io.github.llamalad7:mixinextras-forge:${mixin_extras_version}")) { | ||
jarJar.ranged(it, "[${mixin_extras_version},)") | ||
} | ||
|
||
annotationProcessor "org.spongepowered:mixin:0.8.5:processor" | ||
} | ||
|
||
mixin { | ||
config "${mod_id}.mixins.json" | ||
add sourceSets.main, "${mod_id}.refmap.json" | ||
} | ||
|
||
tasks.withType(ProcessResources).configureEach { | ||
var replaceProperties = [ | ||
minecraft_version : minecraft_version, | ||
minecraft_version_range: minecraft_version_range, | ||
loader_version_range : loader_version_range, | ||
mod_id : mod_id, | ||
mod_name : mod_name, | ||
mod_license : mod_license, | ||
mod_version : mod_version, | ||
mod_authors : mod_authors, | ||
mod_description : mod_description | ||
] | ||
|
||
inputs.properties replaceProperties | ||
|
||
filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { | ||
expand replaceProperties + [project: project] | ||
} | ||
} | ||
|
||
tasks.named('jar', Jar).configure { | ||
manifest { | ||
attributes([ | ||
'Specification-Title' : mod_id, | ||
'Specification-Vendor' : mod_authors, | ||
'Specification-Version' : '1', | ||
'Implementation-Title' : project.name, | ||
'Implementation-Version' : mod_version, | ||
'Implementation-Vendor' : mod_authors, | ||
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") | ||
]) | ||
} | ||
|
||
finalizedBy 'reobfJar' | ||
} | ||
|
||
tasks.withType(JavaCompile).configureEach { | ||
options.encoding = 'UTF-8' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
group=de.cadentem | ||
|
||
minecraft_version=1.20.1 | ||
neo_version=47.1.65 | ||
|
||
minecraft_version_range=[1.20, 1.20.1] | ||
loader_version_range=[46,) | ||
|
||
# Mappings | ||
mapping_channel=parchment | ||
mapping_version=2023.09.03-1.20.1 | ||
|
||
# Mod | ||
mod_name=Obscure Tooltips Fix | ||
mod_authors=Cadentem | ||
mod_id=obscure_tooltips_fix | ||
mod_description=Fixes tooltip issues | ||
mod_license=MIT License | ||
|
||
mod_version=1.0.0 | ||
|
||
# Dependencies | ||
mixin_squared_version=0.1.1 | ||
mixin_extras_version=0.5.0-beta.3 | ||
|
||
# Jar | ||
file_name=obscure_tooltips_fix | ||
|
||
# Gradle | ||
org.gradle.daemon=false | ||
org.gradle.jvmargs=-Xmx3G |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
distributionBase=GRADLE_USER_HOME | ||
distributionPath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip | ||
networkTimeout=10000 | ||
validateDistributionUrl=true | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
pluginManagement { | ||
repositories { | ||
gradlePluginPortal() | ||
maven { /* NeoForged */ url "https://maven.neoforged.net/releases" } | ||
maven { /* ParchmentMC */ url "https://maven.parchmentmc.org" } | ||
maven { /* SpongePowered */ url "https://repo.spongepowered.org/repository/maven-public/" } | ||
} | ||
} | ||
|
||
plugins { | ||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package de.cadentem.obscure_tooltips_fix; | ||
|
||
import net.minecraftforge.fml.common.Mod; | ||
|
||
@Mod(OTF.MODID) | ||
public class OTF { | ||
public static final String MODID = "obscure_tooltips_fix"; | ||
|
||
public static boolean SWITCHED; | ||
} |
56 changes: 56 additions & 0 deletions
56
src/main/java/de/cadentem/obscure_tooltips_fix/mixin/TooltipRendererMixin.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package de.cadentem.obscure_tooltips_fix.mixin; | ||
|
||
import com.llamalad7.mixinextras.expression.Definition; | ||
import com.llamalad7.mixinextras.expression.Expression; | ||
import com.llamalad7.mixinextras.injector.ModifyExpressionValue; | ||
import com.llamalad7.mixinextras.sugar.Local; | ||
import com.obscuria.tooltips.client.renderer.TooltipContext; | ||
import com.obscuria.tooltips.client.renderer.TooltipRenderer; | ||
import dev.emi.emi.api.stack.EmiStack; | ||
import dev.emi.emi.screen.EmiScreenManager; | ||
import net.minecraft.client.gui.Font; | ||
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; | ||
import net.minecraft.world.item.ItemStack; | ||
import org.spongepowered.asm.mixin.Mixin; | ||
import org.spongepowered.asm.mixin.Shadow; | ||
import org.spongepowered.asm.mixin.Unique; | ||
import org.spongepowered.asm.mixin.injection.At; | ||
import org.spongepowered.asm.mixin.injection.ModifyVariable; | ||
|
||
import java.util.List; | ||
|
||
@Mixin(value = TooltipRenderer.class, remap = false) | ||
public abstract class TooltipRendererMixin { | ||
@Shadow private static ItemStack renderStack; | ||
@Unique private static boolean obscure_tooltip_fix$switched; | ||
|
||
@ModifyVariable(method = "render", at = @At(value = "HEAD"), argsOnly = true) | ||
private static ItemStack obscure_tooltips_fix$handleEmptyStack(final ItemStack tooltipStack, /* Method arguments */ final TooltipContext context, final ItemStack ignored, final Font font, final List<ClientTooltipComponent> components, final int x, final int y) { | ||
if (tooltipStack.isEmpty()) { | ||
List<EmiStack> stacks = EmiScreenManager.getHoveredStack(x, y, true, true).getStack().getEmiStacks(); | ||
|
||
if (!stacks.isEmpty()) { | ||
obscure_tooltip_fix$switched = true; | ||
return stacks.get(0).getItemStack(); | ||
} | ||
} | ||
|
||
return tooltipStack; | ||
} | ||
|
||
@Definition(id = "renderStack", field = "Lcom/obscuria/tooltips/client/renderer/TooltipRenderer;renderStack:Lnet/minecraft/world/item/ItemStack;") | ||
@Definition(id = "stack", local = @Local(type = ItemStack.class, ordinal = 0)) | ||
@Expression("stack == renderStack") | ||
@ModifyExpressionValue(method = "updateStyle", at = @At("MIXINEXTRAS:EXPRESSION")) | ||
private static boolean obscure_tooltips_fix$isSameStack(final boolean original, @Local(argsOnly = true, ordinal = 0) final ItemStack stack) { | ||
if (!original && obscure_tooltip_fix$switched) { | ||
obscure_tooltip_fix$switched = false; | ||
|
||
if (stack.getItem() == renderStack.getItem()) { | ||
return true; | ||
} | ||
} | ||
|
||
return original; | ||
} | ||
} |
Oops, something went wrong.