Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,14 @@
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.minecraft.client.render.texture.Texture;
import net.minecraft.client.render.texture.stitcher.AtlasStitcher;
import net.minecraft.client.render.texture.stitcher.IconCoordinate;
import net.minecraft.core.util.collection.NamespaceID;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import turniplabs.halplibe.HalpLibe;

import java.awt.image.BufferedImage;
import java.util.Map;

@SuppressWarnings("SuspiciousNameCombination")
@Mixin(value = AtlasStitcher.class,remap = false)
public class AtlasStitcherMixin extends Texture {
public abstract class AtlasStitcherMixin extends Texture {

@WrapOperation(method = "init", at = @At(value = "NEW", target = "(III)Ljava/awt/image/BufferedImage;"))
public BufferedImage init(int width, int height, int imageType, Operation<BufferedImage> original){
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/turniplabs/halplibe/mixin/GameSettingsMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package turniplabs.halplibe.mixin;

import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.Minecraft;
import net.minecraft.client.option.GameSettings;
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 turniplabs.halplibe.util.OptionsInitEntrypoint;

import java.io.File;

@Mixin(value = GameSettings.class, remap = false)
public abstract class GameSettingsMixin {
@Inject(method = "<init>", at = @At(value = "NEW", target = "(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;"))
public void initOptions(Minecraft minecraft, File file, CallbackInfo ci) {
GameSettings settings = (GameSettings) (Object) this;

FabricLoader.getInstance().getEntrypoints("initOptions", OptionsInitEntrypoint.class).forEach(e -> e.initOptions(settings));
}
}
13 changes: 4 additions & 9 deletions src/main/java/turniplabs/halplibe/mixin/MinecraftMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,14 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import turniplabs.halplibe.helper.network.NetworkHandler;

import turniplabs.halplibe.util.BlockInitEntrypoint;
import turniplabs.halplibe.util.ClientStartEntrypoint;
import turniplabs.halplibe.util.GameStartEntrypoint;
import turniplabs.halplibe.util.ItemInitEntrypoint;
import turniplabs.halplibe.util.RecipeEntrypoint;
import turniplabs.halplibe.util.*;

@Mixin(
value = Minecraft.class,
remap = false
)

public class MinecraftMixin {
public abstract class MinecraftMixin {

@Inject(method = "startGame", at = @At(value = "INVOKE",target = "Lnet/minecraft/core/data/DataLoader;loadRecipesFromFile(Ljava/lang/String;)V", ordinal = 3, shift = At.Shift.AFTER))
public void recipeEntrypoint(CallbackInfo ci){
Expand All @@ -43,12 +38,12 @@ public void afterGameStartEntrypoint(CallbackInfo ci){

@Inject(method = "startGame", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/block/Blocks;init()V", shift = At.Shift.AFTER))
public void afterBlockInitEntrypoint(CallbackInfo ci) {
FabricLoader.getInstance().getEntrypoints("afterBlockInit", BlockInitEntrypoint.class).forEach(BlockInitEntrypoint::afterBlockInit);;
FabricLoader.getInstance().getEntrypoints("afterBlockInit", BlockInitEntrypoint.class).forEach(BlockInitEntrypoint::afterBlockInit);
}

@Inject(method = "startGame", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/item/Items;init()V", shift = At.Shift.AFTER))
public void afterItemInitEntrypoint(CallbackInfo ci) {
FabricLoader.getInstance().getEntrypoints("afterItemInit", ItemInitEntrypoint.class).forEach(ItemInitEntrypoint::afterItemInit);;
FabricLoader.getInstance().getEntrypoints("afterItemInit", ItemInitEntrypoint.class).forEach(ItemInitEntrypoint::afterItemInit);
}

@Inject(method = "printWrongJavaVersionInfo", at = @At("HEAD"), cancellable = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import turniplabs.halplibe.util.RecipeEntrypoint;

@Mixin(value = MinecraftServer.class, remap = false)
public class MinecraftServerMixin {
public abstract class MinecraftServerMixin {
@Shadow private static MinecraftServer instance;

@Inject(method = "startServer", at = @At(value = "INVOKE",target = "Lnet/minecraft/core/data/DataLoader;loadRecipesFromFile(Ljava/lang/String;)V", ordinal = 3, shift = At.Shift.AFTER))
Expand All @@ -38,12 +38,12 @@ public void afterGameStartEntrypoint(CallbackInfoReturnable<Boolean> cir){

@Inject(method = "startServer", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/block/Blocks;init()V", shift = At.Shift.AFTER))
public void afterBlockInitEntrypoint(CallbackInfoReturnable<Boolean> cir) {
FabricLoader.getInstance().getEntrypoints("afterBlockInit", BlockInitEntrypoint.class).forEach(BlockInitEntrypoint::afterBlockInit);;
FabricLoader.getInstance().getEntrypoints("afterBlockInit", BlockInitEntrypoint.class).forEach(BlockInitEntrypoint::afterBlockInit);
}

@Inject(method = "startServer", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/item/Items;init()V", shift = At.Shift.AFTER))
public void afterItemInitEntrypoint(CallbackInfoReturnable<Boolean> cir) {
FabricLoader.getInstance().getEntrypoints("afterItemInit", ItemInitEntrypoint.class).forEach(ItemInitEntrypoint::afterItemInit);;
FabricLoader.getInstance().getEntrypoints("afterItemInit", ItemInitEntrypoint.class).forEach(ItemInitEntrypoint::afterItemInit);
}

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import net.minecraft.core.item.ItemStack;
import net.minecraft.core.world.World;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Intrinsic;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import turniplabs.halplibe.util.RecipeEntrypoint;

@Mixin(value = PacketHandlerClient.class,remap = false)
public class PacketHandlerClientMixin {
public abstract class PacketHandlerClientMixin {
@Inject(method = "handleLogin", at = @At(value = "TAIL"))
public void handleLogin(PacketLogin packet1login, CallbackInfo ci) {
FabricLoader.getInstance().getEntrypoints("recipesReady", RecipeEntrypoint.class).forEach(RecipeEntrypoint::initNamespaces);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import turniplabs.halplibe.helper.network.NetworkHandler;

@Mixin(value = PacketHandlerLogin.class, remap = false)
public class PacketHandlerLoginMixin {
public abstract class PacketHandlerLoginMixin {
@Inject(method = "doLogin(Lnet/minecraft/core/net/packet/PacketLogin;)V", at = @At(value = "INVOKE",
target = "Lnet/minecraft/server/net/handler/PacketHandlerServer;sendPacket(Lnet/minecraft/core/net/packet/Packet;)V",
ordinal = 0, shift = At.Shift.AFTER),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import turniplabs.halplibe.helper.network.UniversalPacket;

@Mixin(value = PacketHandlerServer.class,remap = false)
public class PacketHandlerServerMixin {
public abstract class PacketHandlerServerMixin {
@Inject(method = "handleCustomPayload", at = @At(value = "TAIL"))
public void handleCustomPayload(PacketCustomPayload customPayloadPacket, CallbackInfo ci) {
if ("HALPLIBE".equals(customPayloadPacket.channel)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,16 @@
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.render.block.color.BlockColor;
import net.minecraft.client.render.block.color.BlockColorDispatcher;
import net.minecraft.client.render.item.model.ItemModelDispatcher;
import net.minecraft.client.util.dispatch.Dispatcher;
import net.minecraft.core.block.Block;
import org.spongepowered.asm.mixin.Mixin;
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;
import turniplabs.halplibe.helper.BlockBuilder;
import turniplabs.halplibe.helper.ModelHelper;
import turniplabs.halplibe.util.ModelEntrypoint;

import java.util.Map;
import java.util.Set;
import java.util.function.Function;

@Mixin(value = BlockColorDispatcher.class, remap = false)
public abstract class BlockColorDispatcherMixin extends Dispatcher<Block<?>, BlockColor> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
package turniplabs.halplibe.mixin.models;

import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.render.block.color.BlockColorDispatcher;
import net.minecraft.client.render.block.model.BlockModel;
import net.minecraft.client.render.block.model.BlockModelDispatcher;
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;
import turniplabs.halplibe.helper.BlockBuilder;
import turniplabs.halplibe.helper.ModelHelper;
import turniplabs.halplibe.util.ModelEntrypoint;
import turniplabs.halplibe.util.RecipeEntrypoint;

@Mixin(value = BlockModelDispatcher.class, remap = false)
public abstract class BlockModelDispatcherMixin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,18 @@

import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.render.EntityRenderDispatcher;
import net.minecraft.client.render.block.color.BlockColorDispatcher;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.core.entity.Entity;
import org.spongepowered.asm.mixin.Final;
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;
import turniplabs.halplibe.helper.EntityHelper;
import turniplabs.halplibe.helper.ModelHelper;
import turniplabs.halplibe.util.ModelEntrypoint;

import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;

@Mixin(value = EntityRenderDispatcher.class, remap = false)
public abstract class EntityRenderDispatcherMixin {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package turniplabs.halplibe.mixin.models;

import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.render.item.model.ItemModel;
import net.minecraft.client.render.item.model.ItemModelDispatcher;
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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.render.TileEntityRenderDispatcher;
import net.minecraft.client.render.item.model.ItemModelDispatcher;
import net.minecraft.client.render.tileentity.TileEntityRenderer;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
Expand All @@ -17,7 +16,7 @@
import java.util.Map;

@Mixin(value = TileEntityRenderDispatcher.class, remap = false)
public class TileEntityRendererDispatcherMixin {
public abstract class TileEntityRendererDispatcherMixin {
@Shadow @Final private Map<Class<?>, TileEntityRenderer<?>> renderers;

@Unique
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package turniplabs.halplibe.util;

import net.minecraft.client.option.GameSettings;

public interface OptionsInitEntrypoint {
void initOptions(GameSettings settings);
}
3 changes: 2 additions & 1 deletion src/main/resources/halplibe.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
"accessors.BlockAccessor",
"accessors.BlocksAccessor",
"accessors.LanguageAccessor",
"accessors.PacketHandlerServerAccessor",
"accessors.WeightedRandomBagAccessor",
"accessors.WeightedRandomBagEntryAccessor"
],
"client": [
"AtlasStitcherMixin",
"GameSettingsMixin",
"MinecraftMixin",
"PacketHandlerClientMixin",
"accessors.EntityFireflyFXAccessor",
Expand All @@ -26,6 +26,7 @@
"models.TileEntityRendererDispatcherMixin"
],
"server": [
"accessors.PacketHandlerServerAccessor",
"MinecraftServerMixin",
"PacketHandlerLoginMixin",
"PacketHandlerServerMixin"
Expand Down