diff --git a/src/main/java/com/plusls/MasaGadget/impl/feature/entityInfo/VillagerTradeEnchantedBookInfo.java b/src/main/java/com/plusls/MasaGadget/impl/feature/entityInfo/VillagerTradeEnchantedBookInfo.java index 94a42eb..6b71bd7 100644 --- a/src/main/java/com/plusls/MasaGadget/impl/feature/entityInfo/VillagerTradeEnchantedBookInfo.java +++ b/src/main/java/com/plusls/MasaGadget/impl/feature/entityInfo/VillagerTradeEnchantedBookInfo.java @@ -1,6 +1,7 @@ package com.plusls.MasaGadget.impl.feature.entityInfo; import com.google.common.collect.Lists; +import com.plusls.MasaGadget.mixin.accessor.AccessorAbstractVillager; import com.plusls.MasaGadget.util.PcaSyncProtocol; import com.plusls.MasaGadget.util.VillagerDataUtil; import org.jetbrains.annotations.NotNull; @@ -23,6 +24,7 @@ import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.trading.MerchantOffer; +import net.minecraft.world.item.trading.MerchantOffers; // CHECKSTYLE.OFF: ImportOrder //#if MC > 12006 @@ -59,8 +61,13 @@ public class VillagerTradeEnchantedBookInfo { } List ret = Lists.newArrayList(); + MerchantOffers offers = ((AccessorAbstractVillager) villager).masa_gadget_mod$getOffers(); - for (MerchantOffer tradeOffer : villager.getOffers()) { + if (offers == null) { + return ret; + } + + for (MerchantOffer tradeOffer : offers) { ItemStack sellItem = tradeOffer.getResult(); ItemStackCompat sellItemCompat = ItemStackCompat.of(sellItem); diff --git a/src/main/java/com/plusls/MasaGadget/mixin/accessor/AccessorAbstractVillager.java b/src/main/java/com/plusls/MasaGadget/mixin/accessor/AccessorAbstractVillager.java index bd82da6..c53f2ff 100644 --- a/src/main/java/com/plusls/MasaGadget/mixin/accessor/AccessorAbstractVillager.java +++ b/src/main/java/com/plusls/MasaGadget/mixin/accessor/AccessorAbstractVillager.java @@ -10,4 +10,7 @@ public interface AccessorAbstractVillager { @Accessor("offers") void masa_gadget_mod$setOffers(MerchantOffers offers); + + @Accessor("offers") + MerchantOffers masa_gadget_mod$getOffers(); } diff --git a/src/main/java/com/plusls/MasaGadget/mixin/mod_tweak/tweakeroo/inventoryPreviewSupportTradeOfferList/MixinAbstractVillager.java b/src/main/java/com/plusls/MasaGadget/mixin/mod_tweak/tweakeroo/inventoryPreviewSupportTradeOfferList/MixinAbstractVillager.java deleted file mode 100644 index b823e5d..0000000 --- a/src/main/java/com/plusls/MasaGadget/mixin/mod_tweak/tweakeroo/inventoryPreviewSupportTradeOfferList/MixinAbstractVillager.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.plusls.MasaGadget.mixin.mod_tweak.tweakeroo.inventoryPreviewSupportTradeOfferList; - -import top.hendrixshen.magiclib.api.preprocess.DummyClass; - -import org.spongepowered.asm.mixin.Mixin; - -// CHECKSTYLE.OFF: JavadocStyle -/** - *
  • mc1.14 ~ mc1.20.6: subproject 1.16.5 [dummy] (main project) <--------
  • - *
  • mc1.21+ : subproject 1.21.1
  • - */ -// CHECKSTYLE.ON: JavadocStyle -@Mixin(DummyClass.class) -public abstract class MixinAbstractVillager { -} diff --git a/src/main/java/com/plusls/MasaGadget/util/RenderUtil.java b/src/main/java/com/plusls/MasaGadget/util/RenderUtil.java index 513f387..183411c 100644 --- a/src/main/java/com/plusls/MasaGadget/util/RenderUtil.java +++ b/src/main/java/com/plusls/MasaGadget/util/RenderUtil.java @@ -79,7 +79,10 @@ public static void drawLine(Vec3 pos1, Vec3 pos2, Color4f color) { RenderUtil.beginLines(builder); //#endif //#endif - //#if MC > 12006 + //#if MC >= 1.21.11 + //$$ builder.addVertex((float) pos1.x(), (float) pos1.y(), (float) pos1.z()).setColor(color.r, color.g, color.b, color.a).setLineWidth(1.0F); + //$$ builder.addVertex((float) pos2.x(), (float) pos2.y(), (float) pos2.z()).setColor(color.r, color.g, color.b, color.a).setLineWidth(1.0F); + //#elseif MC > 12006 //$$ builder.addVertex((float) pos1.x(), (float) pos1.y(), (float) pos1.z()).setColor(color.r, color.g, color.b, color.a); //$$ builder.addVertex((float) pos2.x(), (float) pos2.y(), (float) pos2.z()).setColor(color.r, color.g, color.b, color.a); //#if MC > 12104 diff --git a/src/main/resources/masa_gadget_mod.mixins.json b/src/main/resources/masa_gadget_mod.mixins.json index a6e9377..303f956 100644 --- a/src/main/resources/masa_gadget_mod.mixins.json +++ b/src/main/resources/masa_gadget_mod.mixins.json @@ -54,17 +54,16 @@ "mod_tweak.tweakeroo.inventoryPreviewSupportSelect.MixinInGameHud", "mod_tweak.tweakeroo.inventoryPreviewSupportSelect.MixinInventoryOverlay", "mod_tweak.tweakeroo.inventoryPreviewSupportShulkerBoxItemEntity.MixinRenderUtils", - "mod_tweak.tweakeroo.inventoryPreviewSupportTradeOfferList.MixinAbstractVillager", "mod_tweak.tweakeroo.inventoryPreviewSupportTradeOfferList.MixinRenderUtils", "mod_tweak.tweakeroo.inventoryPreviewSyncDataClientOnly.MixinClientPacketListener", "mod_tweak.tweakeroo.inventoryPreviewUseCache.MixinRenderUtils" ], - "injectors": { - "defaultRequire": 1 - }, "mixins": [ "network.MixinMagicPacketRegisterCenter" ], + "injectors": { + "defaultRequire": 1 + }, "mixinextras": { "minVersion": "0.5.4" } diff --git a/versions/1.21.1-fabric/src/main/java/com/plusls/MasaGadget/mixin/mod_tweak/tweakeroo/inventoryPreviewSupportTradeOfferList/MixinAbstractVillager.java b/versions/1.21.1-fabric/src/main/java/com/plusls/MasaGadget/mixin/mod_tweak/tweakeroo/inventoryPreviewSupportTradeOfferList/MixinAbstractVillager.java deleted file mode 100644 index 92a2e36..0000000 --- a/versions/1.21.1-fabric/src/main/java/com/plusls/MasaGadget/mixin/mod_tweak/tweakeroo/inventoryPreviewSupportTradeOfferList/MixinAbstractVillager.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.plusls.MasaGadget.mixin.mod_tweak.tweakeroo.inventoryPreviewSupportTradeOfferList; - -import com.plusls.MasaGadget.game.Configs; - -// CHECKSTYLE.OFF: ImportOrder -//#if MC < 1.21.11 -import org.jetbrains.annotations.NotNull; -//#endif - -//#if MC < 1.21.10 -import org.objectweb.asm.Opcodes; -//#endif -// CHECKSTYLE.ON: ImportOrder - -import net.minecraft.world.entity.npc.AbstractVillager; - -// CHECKSTYLE.OFF: ImportOrder -//#if MC >= 1.21.11 -//$$ import net.minecraft.server.level.ServerLevel; -//#else -import net.minecraft.world.level.Level; -//#endif -// CHECKSTYLE.ON: ImportOrder - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; - -// CHECKSTYLE.OFF: ImportOrder -//#if MC >= 1.21.11 -//$$ import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.expression.Definition; -//$$ import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.expression.Expression; -//$$ import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.injector.ModifyExpressionValue; -//#else -import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -//#endif -// CHECKSTYLE.ON: ImportOrder - -// CHECKSTYLE.OFF: JavadocStyle -/** - *
  • mc1.14 ~ mc1.20.6: subproject 1.16.5 [dummy] (main project)
  • - *
  • mc1.21+ : subproject 1.21.1 <--------
  • - */ -// CHECKSTYLE.ON: JavadocStyle -@Mixin(AbstractVillager.class) -public abstract class MixinAbstractVillager { - @Unique - private static boolean masa_gadget_mod$shouldForgeInvoke() { - return Configs.inventoryPreviewSupportTradeOfferList.getBooleanValue() - || Configs.renderNextRestockTime.getBooleanValue() - || Configs.renderTradeEnchantedBook.getBooleanValue() - || Configs.renderZombieVillagerConvertTime.getBooleanValue(); - } - - //#if MC >= 1.21.11 - //$$ @SuppressWarnings("MixinAnnotationTarget") - //$$ // @Definition(id = "level", local = @Local(type = Level.class, name = "level")) - //$$ @Definition(id = "ServerLevel", type = ServerLevel.class) - //$$ @Expression("? instanceof ServerLevel") - //$$ @ModifyExpressionValue(method = "getOffers", at = @At(value = "MIXINEXTRAS:EXPRESSION")) - //$$ private boolean forgiveInvoke(final boolean original /*, @Local(name = "level") final Level level */) { - //$$ if (MixinAbstractVillager.masa_gadget_mod$shouldForgeInvoke()) { - //$$ return true; - //$$ } - //$$ - //$$ return original; - //$$ } - //#else - @WrapOperation( - method = "getOffers", - at = @At( - //#if MC >= 1.21.10 - //$$ value = "INVOKE", - //$$ target = "Lnet/minecraft/world/level/Level;isClientSide()Z" - //#else - value = "FIELD", - target = "Lnet/minecraft/world/level/Level;isClientSide:Z", - opcode = Opcodes.GETFIELD - //#endif - ) - ) - private boolean forgiveInvoke(Level instance, @NotNull Operation original) { - if (MixinAbstractVillager.masa_gadget_mod$shouldForgeInvoke()) { - return false; - } - - return original.call(instance); - } - //#endif -}