Skip to content

Commit

Permalink
MixinExtrasify @injects
Browse files Browse the repository at this point in the history
  • Loading branch information
Aaron committed Jan 10, 2024
1 parent e1346db commit ecce7cf
Show file tree
Hide file tree
Showing 12 changed files with 28 additions and 34 deletions.
7 changes: 1 addition & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ repositories {
}
maven { url "https://repo.codemc.io/repository/maven-public/" } // For Occlusion Culling library
maven { url "https://repo.nea.moe/releases" } // For neu repoparser
maven { url "https://jitpack.io" }
}

dependencies {
Expand Down Expand Up @@ -59,9 +58,6 @@ dependencies {

include modImplementation("meteordevelopment:discord-ipc:1.1")

// BetterInject (https://github.com/caoimhebyrne/BetterInject)
include implementation(annotationProcessor("com.github.cbyrneee:BetterInject:${project.betterinject_version}"))

// Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling)
include implementation("com.logisticscraft:occlusionculling:${project.occlusionculling_version}")

Expand All @@ -79,8 +75,7 @@ loom {
accessWidenerPath = file("src/main/resources/skyblocker.accesswidener")

mixin {
//BetterInject is incompatible with TR remapping so we'll disable it for futureproofing
useLegacyMixinAp = true
useLegacyMixinAp = false
}
}

Expand Down
2 changes: 0 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ rei_version = 13.0.666
emi_version = 1.0.22+1.20.2

# Minecraft and Related Libraries
## Better Inject (https://github.com/caoimhebyrne/BetterInject)
betterinject_version=0.1.3
## Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling)
occlusionculling_version = 0.0.7-SNAPSHOT
## neu repoparser (https://repo.nea.moe/#/releases/moe/nea/neurepoparser/)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import de.hysky.skyblocker.skyblock.waypoint.MythologicalRitual;
import de.hysky.skyblocker.utils.Utils;
import dev.cbyrne.betterinject.annotations.Inject;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.entity.ItemEntity;
Expand All @@ -18,13 +17,15 @@
import org.slf4j.Logger;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(ClientPlayNetworkHandler.class)
public abstract class ClientPlayNetworkHandlerMixin {

@Inject(method = "onPlaySound", at = @At("RETURN"))
private void skyblocker$onPlaySound(PlaySoundS2CPacket packet) {
private void skyblocker$onPlaySound(PlaySoundS2CPacket packet, CallbackInfo ci) {
FishingHelper.onSound(packet);
}

Expand Down Expand Up @@ -60,7 +61,7 @@ public abstract class ClientPlayNetworkHandlerMixin {
}

@Inject(method = "onParticle", at = @At("RETURN"))
private void skyblocker$onParticle(ParticleS2CPacket packet) {
private void skyblocker$onParticle(ParticleS2CPacket packet, CallbackInfo ci) {
MythologicalRitual.onParticle(packet);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.mojang.authlib.GameProfile;

import dev.cbyrne.betterinject.annotations.Inject;
import de.hysky.skyblocker.skyblock.item.HotbarSlotLock;
import de.hysky.skyblocker.skyblock.item.ItemProtection;
import de.hysky.skyblocker.skyblock.rift.HealingMelonIndicator;
Expand All @@ -12,6 +11,8 @@
import net.minecraft.client.world.ClientWorld;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(ClientPlayerEntity.class)
Expand All @@ -29,7 +30,7 @@ public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) {
}

@Inject(method = "updateHealth", at = @At("RETURN"))
public void skyblocker$updateHealth() {
public void skyblocker$updateHealth(CallbackInfo ci) {
HealingMelonIndicator.updateHealth();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import de.hysky.skyblocker.utils.Utils;
import dev.cbyrne.betterinject.annotations.Inject;
import net.minecraft.entity.data.DataTracker;

@Mixin(DataTracker.class)
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/de/hysky/skyblocker/mixin/DrawContextMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import de.hysky.skyblocker.skyblock.item.ItemCooldowns;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
import dev.cbyrne.betterinject.annotations.Arg;
import dev.cbyrne.betterinject.annotations.Inject;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
Expand All @@ -21,6 +19,8 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(DrawContext.class)
public abstract class DrawContextMixin {
Expand All @@ -32,7 +32,7 @@ public abstract class DrawContextMixin {
public abstract int drawText(TextRenderer textRenderer, @Nullable String text, int x, int y, int color, boolean shadow);

@Inject(method = "drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD"))
private void skyblocker$renderAttributeShardDisplay(@Arg TextRenderer textRenderer, @Arg ItemStack stack, @Arg(ordinal = 0) int x, @Arg(ordinal = 1) int y, @Local(argsOnly = true) LocalRef<String> countOverride) {
private void skyblocker$renderAttributeShardDisplay(CallbackInfo ci, @Local(argsOnly = true) TextRenderer textRenderer, @Local(argsOnly = true) ItemStack stack, @Local(argsOnly = true, ordinal = 0) int x, @Local(argsOnly = true, ordinal = 1) int y, @Local(argsOnly = true) LocalRef<String> countOverride) {
if (!SkyblockerConfigManager.get().general.itemInfoDisplay.attributeShardInfo) return;

if (Utils.isOnSkyblock()) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package de.hysky.skyblocker.mixin;


import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
import dev.cbyrne.betterinject.annotations.Inject;
import it.unimi.dsi.fastutil.ints.IntIntPair;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(ItemStack.class)
public abstract class ItemStackMixin {
Expand All @@ -39,7 +39,7 @@ public abstract class ItemStackMixin {
* Updates the durability of this item stack every tick when in the inventory.
*/
@Inject(method = "inventoryTick", at = @At("TAIL"))
private void skyblocker$updateDamage() {
private void skyblocker$updateDamage(CallbackInfo ci) {
if (!skyblocker$shouldProcess()) {
return;
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/de/hysky/skyblocker/mixin/LeverBlockMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
import net.minecraft.util.shape.VoxelShape;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import dev.cbyrne.betterinject.annotations.Arg;
import dev.cbyrne.betterinject.annotations.Inject;
import com.llamalad7.mixinextras.sugar.Local;

@Mixin(LeverBlock.class)
public abstract class LeverBlockMixin extends WallMountedBlock {
Expand All @@ -20,7 +20,7 @@ protected LeverBlockMixin(Settings settings) {
}

@Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
public void skyblocker$onGetOutlineShape(@Arg BlockState state, CallbackInfoReturnable<VoxelShape> cir) {
public void skyblocker$onGetOutlineShape(CallbackInfoReturnable<VoxelShape> cir, @Local(argsOnly = true) BlockState state) {
if (Utils.isOnSkyblock()) {
VoxelShape shape = OldLever.getShape(state.get(FACE), state.get(FACING));
if (shape != null) cir.setReturnValue(shape);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import dev.cbyrne.betterinject.annotations.Inject;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(MinecraftClient.class)
public abstract class MinecraftClientMixin {
Expand All @@ -30,7 +31,7 @@ public abstract class MinecraftClientMixin {
public ClientPlayerEntity player;

@Inject(method = "handleInputEvents", at = @At("HEAD"))
public void skyblocker$handleInputEvents() {
public void skyblocker$handleInputEvents(CallbackInfo ci) {
if (Utils.isOnSkyblock()) {
HotbarSlotLock.handleInputEvents(player);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import dev.cbyrne.betterinject.annotations.Arg;
import dev.cbyrne.betterinject.annotations.Inject;
import com.llamalad7.mixinextras.sugar.Local;

@Environment(EnvType.CLIENT)
@Mixin(PlayerListHud.class)
public class PlayerListHudMixin {
@Shadow
private Text footer;

@Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/client/gui/DrawContext;ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreboardObjective;)V", cancellable = true)
public void skyblocker$renderTabHud(@Arg DrawContext context, @Arg int w, CallbackInfo info) {
@Inject(at = @At("HEAD"), method = "render", cancellable = true)
public void skyblocker$renderTabHud(CallbackInfo info, @Local(argsOnly = true) DrawContext context, @Local(argsOnly = true) int w) {
if (!Utils.isOnSkyblock() || !SkyblockerConfigManager.get().general.tabHud.tabHudEnabled || TabHud.defaultTgl.isPressed()) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import com.llamalad7.mixinextras.injector.WrapWithCondition;

import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.PlayerHeadHashCache;
import de.hysky.skyblocker.utils.Utils;
import dev.cbyrne.betterinject.annotations.Inject;
import net.minecraft.client.texture.NativeImage;
import net.minecraft.client.texture.PlayerSkinTexture;

Expand All @@ -25,7 +26,7 @@ public class PlayerSkinTextureMixin {
private boolean isSkyblockSkinTexture;

@Inject(method = "remapTexture", at = @At("HEAD"))
private void skyblocker$determineSkinSource() {
private void skyblocker$determineSkinSource(CallbackInfoReturnable<NativeImage> cir) {
if (Utils.isOnSkyblock()) {
int skinHash = PlayerHeadHashCache.getSkinHash(this.url).hashCode();
this.isSkyblockSkinTexture = PlayerHeadHashCache.contains(skinHash);
Expand Down
3 changes: 0 additions & 3 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@
"client": [
"de.hysky.skyblocker.SkyblockerMod"
],
"preLaunch": [
"dev.cbyrne.betterinject.BetterInject::initialize"
],
"modmenu": [
"de.hysky.skyblocker.compatibility.modmenu.ModMenuEntry"
],
Expand Down

0 comments on commit ecce7cf

Please sign in to comment.