aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/CheckRenderEntityEvent.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetHandlerPlayClientHook.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetworkManagerHook.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderItemHook.kt33
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderManagerHook.kt25
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/hooks/render/BlockRendererDispatcherHook.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/AccessorGuiPlayerTabOverlay.kt20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.kt37
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetworkManager.kt33
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderItem.kt74
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.kt38
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinBlockRendererDispatcher.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinRendererLivingEntity.kt67
13 files changed, 209 insertions, 143 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/events/CheckRenderEntityEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/CheckRenderEntityEvent.kt
index 386144128..bd9a816cb 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/CheckRenderEntityEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/CheckRenderEntityEvent.kt
@@ -5,7 +5,7 @@ import net.minecraft.entity.Entity
import net.minecraftforge.fml.common.eventhandler.Cancelable
@Cancelable
-class CheckRenderEntityEvent<T : Entity>(
+data class CheckRenderEntityEvent<T : Entity>(
val entity: T,
val camera: ICamera,
val camX: Double,
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetHandlerPlayClientHook.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetHandlerPlayClientHook.kt
new file mode 100644
index 000000000..b18d80613
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetHandlerPlayClientHook.kt
@@ -0,0 +1,9 @@
+package at.hannibal2.skyhanni.mixins.hooks
+
+import at.hannibal2.skyhanni.events.PacketEvent
+import net.minecraft.network.Packet
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo
+
+fun onSendPacket(packet: Packet<*>, ci: CallbackInfo) {
+ if (PacketEvent.SendEvent(packet).postAndCatch()) ci.cancel()
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetworkManagerHook.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetworkManagerHook.kt
new file mode 100644
index 000000000..b9265587a
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/NetworkManagerHook.kt
@@ -0,0 +1,10 @@
+package at.hannibal2.skyhanni.mixins.hooks
+
+import at.hannibal2.skyhanni.events.PacketEvent
+import io.netty.channel.ChannelHandlerContext
+import net.minecraft.network.Packet
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo
+
+fun onReceivePacket(context: ChannelHandlerContext, packet: Packet<*>, ci: CallbackInfo) {
+ if (PacketEvent.ReceiveEvent(packet).postAndCatch()) ci.cancel()
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderItemHook.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderItemHook.kt
new file mode 100644
index 000000000..48d98fb5d
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderItemHook.kt
@@ -0,0 +1,33 @@
+package at.hannibal2.skyhanni.mixins.hooks
+
+import at.hannibal2.skyhanni.events.GuiRenderItemEvent
+import at.hannibal2.skyhanni.events.RenderRealOverlayEvent
+import net.minecraft.client.gui.FontRenderer
+import net.minecraft.item.ItemStack
+import net.minecraft.util.ResourceLocation
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo
+
+val RES_ITEM_GLINT = ResourceLocation("textures/misc/enchanted_item_glint.png")
+
+var skipGlint = false
+
+fun renderItemOverlayPost(
+ fr: FontRenderer,
+ stack: ItemStack?,
+ xPosition: Int,
+ yPosition: Int,
+ text: String?,
+ ci: CallbackInfo
+) {
+ GuiRenderItemEvent.RenderOverlayEvent.Post(
+ fr,
+ stack,
+ xPosition,
+ yPosition,
+ text
+ ).postAndCatch()
+}
+
+fun renderItemReturn(stack: ItemStack, x: Int, y: Int, ci: CallbackInfo) {
+ RenderRealOverlayEvent(stack, x, y).postAndCatch()
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderManagerHook.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderManagerHook.kt
new file mode 100644
index 000000000..3e3283662
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderManagerHook.kt
@@ -0,0 +1,25 @@
+package at.hannibal2.skyhanni.mixins.hooks
+
+import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
+import net.minecraft.client.renderer.culling.ICamera
+import net.minecraft.entity.Entity
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable
+
+fun shouldRender(
+ entityIn: Entity,
+ camera: ICamera,
+ camX: Double,
+ camY: Double,
+ camZ: Double,
+ cir: CallbackInfoReturnable<Boolean>
+) {
+ if (
+ CheckRenderEntityEvent(
+ entityIn,
+ camera,
+ camX,
+ camY,
+ camZ
+ ).postAndCatch()
+ ) cir.returnValue = false
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/render/BlockRendererDispatcherHook.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/render/BlockRendererDispatcherHook.kt
index 8b6fce6b3..4f951a887 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/render/BlockRendererDispatcherHook.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/render/BlockRendererDispatcherHook.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.mixins.hooks.render
+package at.hannibal2.skyhanni.mixinhooks.render
import at.hannibal2.skyhanni.events.RenderBlockInWorldEvent
import net.minecraft.block.state.IBlockState
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/AccessorGuiPlayerTabOverlay.kt b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/AccessorGuiPlayerTabOverlay.kt
index edd2c7abc..41091580e 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/AccessorGuiPlayerTabOverlay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/AccessorGuiPlayerTabOverlay.kt
@@ -1,12 +1,12 @@
-package at.hannibal2.skyhanni.mixins.transformers
+package at.hannibal2.skyhanni.mixins.transformers;
-import net.minecraft.client.gui.GuiPlayerTabOverlay
-import net.minecraft.util.IChatComponent
-import org.spongepowered.asm.mixin.Mixin
-import org.spongepowered.asm.mixin.gen.Accessor
+import net.minecraft.client.gui.GuiPlayerTabOverlay;
+import net.minecraft.util.IChatComponent;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
-@Mixin(GuiPlayerTabOverlay::class)
-interface AccessorGuiPlayerTabOverlay {
- @get:Accessor("footer")
- val footer: IChatComponent?
-} \ No newline at end of file
+@Mixin(GuiPlayerTabOverlay.class)
+public interface AccessorGuiPlayerTabOverlay {
+ @Accessor("footer")
+ IChatComponent getFooter();
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.kt b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.kt
index f620797c8..bd4107369 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.kt
@@ -1,25 +1,24 @@
-package at.hannibal2.skyhanni.mixins.transformers
+package at.hannibal2.skyhanni.mixins.transformers;
-import at.hannibal2.skyhanni.events.PacketEvent
-import net.minecraft.client.multiplayer.WorldClient
-import net.minecraft.client.network.NetHandlerPlayClient
-import net.minecraft.network.Packet
-import net.minecraft.network.play.INetHandlerPlayClient
-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 at.hannibal2.skyhanni.mixins.hooks.NetHandlerPlayClientHookKt;
+import net.minecraft.client.multiplayer.WorldClient;
+import net.minecraft.client.network.NetHandlerPlayClient;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.INetHandlerPlayClient;
+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(value = [NetHandlerPlayClient::class], priority = 1001)
-abstract class MixinNetHandlerPlayClient : INetHandlerPlayClient {
+@Mixin(value = NetHandlerPlayClient.class, priority = 1001)
+public abstract class MixinNetHandlerPlayClient implements INetHandlerPlayClient {
- //TODO delete this?
@Shadow
- private val clientWorldController: WorldClient? = null
+ private WorldClient clientWorldController;
- @Inject(method = ["addToSendQueue"], at = [At("HEAD")], cancellable = true)
- private fun onSendPacket(packet: Packet<*>, ci: CallbackInfo) {
- if (PacketEvent.SendEvent(packet).postAndCatch()) ci.cancel()
+ @Inject(method = "addToSendQueue", at = @At("HEAD"), cancellable = true)
+ private void onSendPacket(Packet<?> packet, CallbackInfo ci) {
+ NetHandlerPlayClientHookKt.onSendPacket(packet, ci);
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetworkManager.kt b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetworkManager.kt
index b386a27f7..459da17a1 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetworkManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetworkManager.kt
@@ -1,19 +1,20 @@
-package at.hannibal2.skyhanni.mixins.transformers
+package at.hannibal2.skyhanni.mixins.transformers;
-import at.hannibal2.skyhanni.events.PacketEvent
-import io.netty.channel.ChannelHandlerContext
-import io.netty.channel.SimpleChannelInboundHandler
-import net.minecraft.network.NetworkManager
-import net.minecraft.network.Packet
-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 at.hannibal2.skyhanni.mixins.hooks.NetworkManagerHookKt;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+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;
-@Mixin(value = [NetworkManager::class], priority = 1001)
-abstract class MixinNetworkManager : SimpleChannelInboundHandler<Packet<*>?>() {
- @Inject(method = ["channelRead0"], at = [At("HEAD")], cancellable = true)
- private fun onReceivePacket(context: ChannelHandlerContext, packet: Packet<*>, ci: CallbackInfo) {
- if (PacketEvent.ReceiveEvent(packet).postAndCatch()) ci.cancel()
+@Mixin(value = NetworkManager.class, priority = 1001)
+public abstract class MixinNetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
+
+ @Inject(method = "channelRead0", at = @At("HEAD"), cancellable = true)
+ private void onReceivePacket(ChannelHandlerContext context, Packet<?> packet, CallbackInfo ci) {
+ NetworkManagerHookKt.onReceivePacket(context, packet, ci);
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderItem.kt b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderItem.kt
index c0dcffcb2..ebd3161ce 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderItem.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderItem.kt
@@ -1,42 +1,46 @@
-package at.hannibal2.skyhanni.mixins.transformers
+package at.hannibal2.skyhanni.mixins.transformers;
-import at.hannibal2.skyhanni.events.GuiRenderItemEvent
-import at.hannibal2.skyhanni.events.RenderRealOverlayEvent
-import net.minecraft.client.gui.FontRenderer
-import net.minecraft.client.renderer.entity.RenderItem
-import net.minecraft.item.ItemStack
-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 at.hannibal2.skyhanni.mixins.hooks.RenderItemHookKt;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.item.ItemStack;
+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;
-@Mixin(RenderItem::class)
-abstract class MixinRenderItem {
- @Inject(method = ["renderItemOverlayIntoGUI"], at = [At("RETURN")])
- private fun renderItemOverlayPost(
- fr: FontRenderer,
- stack: ItemStack,
- xPosition: Int,
- yPosition: Int,
- text: String,
- ci: CallbackInfo
- ) {
- GuiRenderItemEvent.RenderOverlayEvent.Post(
- fr,
- stack,
- xPosition,
- yPosition,
- text
- ).postAndCatch()
+@Mixin(RenderItem.class)
+public abstract class MixinRenderItem {
+
+ // @Inject(method = "renderItemIntoGUI", at = @At("HEAD"))
+ // private void renderRarity(ItemStack stack, int x, int y, CallbackInfo ci) {
+ // RenderItemHookKt.renderRarity(stack, x, y, ci);
+ // }
+
+ @Inject(method = "renderItemOverlayIntoGUI", at = @At("RETURN"))
+ private void renderItemOverlayPost(FontRenderer fr, ItemStack stack, int xPosition, int yPosition, String text, CallbackInfo ci) {
+ RenderItemHookKt.renderItemOverlayPost(fr, stack, xPosition, yPosition, text, ci);
}
- @Inject(method = ["renderEffect"], at = [At("HEAD")], cancellable = true)
- fun onRenderEffect(ci: CallbackInfo) {
- ci.cancel()
+ // @Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V", at = @At(value = "INVOKE", target = "net/minecraft/client/renderer/GlStateManager.scale(FFF)V", shift = At.Shift.AFTER))
+ // private void renderItemPre(ItemStack stack, IBakedModel model, CallbackInfo ci) {
+ // RenderItemHookKt.renderItemPre(stack, model, ci);
+ // }
+ //
+ // @Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/RenderItem;renderEffect(Lnet/minecraft/client/resources/model/IBakedModel;)V", shift = At.Shift.BEFORE), cancellable = true)
+ // private void modifyGlintRendering(ItemStack stack, IBakedModel model, CallbackInfo ci) {
+ // RenderItemHookKt.modifyGlintRendering(stack, model, ci);
+ // }
+
+ @Inject(method = "renderEffect", at = @At("HEAD"), cancellable = true)
+ public void onRenderEffect(CallbackInfo ci) {
+ if (RenderItemHookKt.getSkipGlint()) {
+ ci.cancel();
+ }
}
- @Inject(method = ["renderItemIntoGUI"], at = [At("RETURN")])
- fun renderItemReturn(stack: ItemStack?, x: Int, y: Int, ci: CallbackInfo?) {
- RenderRealOverlayEvent(stack, x, y).postAndCatch()
+ @Inject(method = "renderItemIntoGUI", at = @At("RETURN"))
+ public void renderItemReturn(ItemStack stack, int x, int y, CallbackInfo ci) {
+ RenderItemHookKt.renderItemReturn(stack, x, y, ci);
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.kt b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.kt
index 710e79565..e36b87195 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.kt
@@ -1,25 +1,19 @@
-package at.hannibal2.skyhanni.mixins.transformers
+package at.hannibal2.skyhanni.mixins.transformers;
-import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
-import net.minecraft.client.renderer.culling.ICamera
-import net.minecraft.client.renderer.entity.RenderManager
-import net.minecraft.entity.Entity
-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 at.hannibal2.skyhanni.mixins.hooks.RenderManagerHookKt;
+import net.minecraft.client.renderer.culling.ICamera;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.entity.Entity;
+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;
-@Mixin(RenderManager::class)
-class MixinRenderManager {
- @Inject(method = ["shouldRender"], at = [At("HEAD")], cancellable = true)
- private fun shouldRender(
- entityIn: Entity,
- camera: ICamera,
- camX: Double,
- camY: Double,
- camZ: Double,
- cir: CallbackInfoReturnable<Boolean>
- ) {
- if (CheckRenderEntityEvent(entityIn, camera, camX, camY, camZ).postAndCatch()) cir.returnValue = false
+@Mixin(RenderManager.class)
+public class MixinRenderManager {
+
+ @Inject(method = "shouldRender", at = @At("HEAD"), cancellable = true)
+ private void shouldRender(Entity entityIn, ICamera camera, double camX, double camY, double camZ, CallbackInfoReturnable<Boolean> cir) {
+ RenderManagerHookKt.shouldRender(entityIn, camera, camX, camY, camZ, cir);
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinBlockRendererDispatcher.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinBlockRendererDispatcher.java
index 32324ce7f..26c9ab76f 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinBlockRendererDispatcher.java
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinBlockRendererDispatcher.java
@@ -1,6 +1,6 @@
package at.hannibal2.skyhanni.mixins.transformers.renderer;
-import at.hannibal2.skyhanni.mixins.hooks.render.BlockRendererDispatcherHookKt;
+import at.hannibal2.skyhanni.mixinhooks.render.BlockRendererDispatcherHookKt;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.BlockRendererDispatcher;
import net.minecraft.client.resources.IResourceManagerReloadListener;
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinRendererLivingEntity.kt b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinRendererLivingEntity.kt
index fdeb6c9cb..657636e87 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinRendererLivingEntity.kt
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/renderer/MixinRendererLivingEntity.kt
@@ -1,44 +1,35 @@
-package at.hannibal2.skyhanni.mixins.transformers.renderer
+package at.hannibal2.skyhanni.mixins.transformers.renderer;
-import at.hannibal2.skyhanni.events.RenderMobColoredEvent
-import at.hannibal2.skyhanni.events.ResetEntityHurtEvent
-import net.minecraft.client.renderer.entity.Render
-import net.minecraft.client.renderer.entity.RenderManager
-import net.minecraft.client.renderer.entity.RendererLivingEntity
-import net.minecraft.entity.EntityLivingBase
-import org.objectweb.asm.Opcodes
-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.Redirect
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable
+import at.hannibal2.skyhanni.events.RenderMobColoredEvent;
+import at.hannibal2.skyhanni.events.ResetEntityHurtEvent;
+import net.minecraft.client.renderer.entity.Render;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.entity.RendererLivingEntity;
+import net.minecraft.entity.EntityLivingBase;
+import org.objectweb.asm.Opcodes;
+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.Redirect;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-@Mixin(RendererLivingEntity::class)
-abstract class MixinRendererLivingEntity<T : EntityLivingBase?> protected constructor(renderManager: RenderManager?) :
- Render<T>(renderManager) {
- @Inject(method = ["getColorMultiplier"], at = [At("HEAD")], cancellable = true)
- private fun setColorMultiplier(
- entity: T,
- lightBrightness: Float,
- partialTickTime: Float,
- cir: CallbackInfoReturnable<Int>
- ) {
- val event = RenderMobColoredEvent(entity as EntityLivingBase, 0)
- event.postAndCatch()
- cir.returnValue = event.color
+@Mixin(RendererLivingEntity.class)
+public abstract class MixinRendererLivingEntity<T extends EntityLivingBase> extends Render<T> {
+ protected MixinRendererLivingEntity(RenderManager renderManager) {
+ super(renderManager);
}
- @Redirect(
- method = ["setBrightness"],
- at = At(
- value = "FIELD",
- target = "Lnet/minecraft/entity/EntityLivingBase;hurtTime:I",
- opcode = Opcodes.GETFIELD
- )
- )
- private fun changeHurtTime(entity: EntityLivingBase): Int {
- val event = ResetEntityHurtEvent(entity, false)
- event.postAndCatch()
- return if (event.shouldReset) 0 else entity.hurtTime
+ @Inject(method = "getColorMultiplier", at = @At("HEAD"), cancellable = true)
+ private void setColorMultiplier(T entity, float lightBrightness, float partialTickTime, CallbackInfoReturnable<Integer> cir) {
+ RenderMobColoredEvent event = new RenderMobColoredEvent(entity, 0);
+ event.postAndCatch();
+ cir.setReturnValue(event.getColor());
+ }
+
+ @Redirect(method = "setBrightness", at = @At(value = "FIELD", target = "Lnet/minecraft/entity/EntityLivingBase;hurtTime:I", opcode = Opcodes.GETFIELD))
+ private int changeHurtTime(EntityLivingBase entity) {
+ ResetEntityHurtEvent event = new ResetEntityHurtEvent(entity, false);
+ event.postAndCatch();
+ return event.getShouldReset() ? 0 : entity.hurtTime;
}
} \ No newline at end of file