Rename fields.

This commit is contained in:
IzzelAliz 2020-08-11 21:53:03 +08:00
parent cec4cfe457
commit b2c47f7473
16 changed files with 58 additions and 61 deletions

View File

@ -29,11 +29,11 @@ public abstract class AbstractFurnaceContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(Lnet/minecraft/inventory/container/ContainerType;Lnet/minecraft/item/crafting/IRecipeType;ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/IIntArray;)V", at = @At("RETURN")) @Inject(method = "<init>(Lnet/minecraft/inventory/container/ContainerType;Lnet/minecraft/item/crafting/IRecipeType;ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/IIntArray;)V", at = @At("RETURN"))
public void arclight$init(ContainerType<?> containerTypeIn, IRecipeType<? extends AbstractCookingRecipe> recipeTypeIn, int id, PlayerInventory playerInventoryIn, IInventory furnaceInventoryIn, IIntArray p_i50104_6_, CallbackInfo ci) { public void arclight$init(ContainerType<?> containerTypeIn, IRecipeType<? extends AbstractCookingRecipe> recipeTypeIn, int id, PlayerInventory playerInventoryIn, IInventory furnaceInventoryIn, IIntArray p_i50104_6_, CallbackInfo ci) {
this.player = playerInventoryIn; this.playerInventory = playerInventoryIn;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -48,7 +48,7 @@ public abstract class AbstractFurnaceContainerMixin extends ContainerMixin {
} }
CraftInventoryFurnace inventory = new CraftInventoryFurnace((AbstractFurnaceTileEntity) this.furnaceInventory); CraftInventoryFurnace inventory = new CraftInventoryFurnace((AbstractFurnaceTileEntity) this.furnaceInventory);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -27,11 +27,11 @@ public abstract class BeaconContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/inventory/IInventory;Lnet/minecraft/util/IIntArray;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/inventory/IInventory;Lnet/minecraft/util/IIntArray;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN"))
public void arclight$init(int p_i50100_1_, IInventory inventory, IIntArray p_i50100_3_, IWorldPosCallable p_i50100_4_, CallbackInfo ci) { public void arclight$init(int p_i50100_1_, IInventory inventory, IIntArray p_i50100_3_, IWorldPosCallable p_i50100_4_, CallbackInfo ci) {
this.player = (PlayerInventory) inventory; this.playerInventory = (PlayerInventory) inventory;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -46,7 +46,7 @@ public abstract class BeaconContainerMixin extends ContainerMixin {
} }
CraftInventory inventory = new CraftInventoryBeacon(this.tileBeacon); CraftInventory inventory = new CraftInventoryBeacon(this.tileBeacon);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -25,11 +25,11 @@ public abstract class BrewingStandContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/IIntArray;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/IIntArray;)V", at = @At("RETURN"))
public void arclight$init(int p_i50096_1_, PlayerInventory playerInventory, IInventory p_i50096_3_, IIntArray p_i50096_4_, CallbackInfo ci) { public void arclight$init(int p_i50096_1_, PlayerInventory playerInventory, IInventory p_i50096_3_, IIntArray p_i50096_4_, CallbackInfo ci) {
this.player = playerInventory; this.playerInventory = playerInventory;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -44,7 +44,7 @@ public abstract class BrewingStandContainerMixin extends ContainerMixin {
} }
CraftInventoryBrewer inventory = new CraftInventoryBrewer(this.tileBrewingStand); CraftInventoryBrewer inventory = new CraftInventoryBrewer(this.tileBrewingStand);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -28,11 +28,11 @@ public abstract class ChestContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(Lnet/minecraft/inventory/container/ContainerType;ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;I)V", at = @At("RETURN")) @Inject(method = "<init>(Lnet/minecraft/inventory/container/ContainerType;ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;I)V", at = @At("RETURN"))
public void arclight$init(ContainerType<?> type, int id, PlayerInventory playerInventoryIn, IInventory p_i50092_4_, int rows, CallbackInfo ci) { public void arclight$init(ContainerType<?> type, int id, PlayerInventory playerInventoryIn, IInventory p_i50092_4_, int rows, CallbackInfo ci) {
this.player = playerInventoryIn; this.playerInventory = playerInventoryIn;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -55,7 +55,7 @@ public abstract class ChestContainerMixin extends ContainerMixin {
inventory = new CraftInventory(this.lowerChestInventory); inventory = new CraftInventory(this.lowerChestInventory);
} }
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -24,11 +24,11 @@ public abstract class DispenserContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;)V", at = @At("RETURN"))
public void arclight$init(int p_i50088_1_, PlayerInventory playerInventory, IInventory p_i50088_3_, CallbackInfo ci) { public void arclight$init(int p_i50088_1_, PlayerInventory playerInventory, IInventory p_i50088_3_, CallbackInfo ci) {
this.player = playerInventory; this.playerInventory = playerInventory;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -43,7 +43,7 @@ public abstract class DispenserContainerMixin extends ContainerMixin {
} }
CraftInventory inventory = new CraftInventory(this.dispenserInventory); CraftInventory inventory = new CraftInventory(this.dispenserInventory);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -1,6 +1,7 @@
package io.izzel.arclight.common.mixin.core.inventory.container; package io.izzel.arclight.common.mixin.core.inventory.container;
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge; import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge;
import io.izzel.arclight.common.bridge.inventory.container.EnchantmentContainerBridge; import io.izzel.arclight.common.bridge.inventory.container.EnchantmentContainerBridge;
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge; import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.advancements.CriteriaTriggers;
@ -65,11 +66,11 @@ public abstract class EnchantmentContainerMixin extends ContainerMixin implement
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private Player player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN"))
public void arclight$init(int p_i50086_1_, PlayerInventory playerInventory, IWorldPosCallable p_i50086_3_, CallbackInfo ci) { public void arclight$init(int p_i50086_1_, PlayerInventory playerInventory, IWorldPosCallable p_i50086_3_, CallbackInfo ci) {
this.player = (Player) ((PlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(); this.playerInventory = playerInventory;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -136,7 +137,7 @@ public abstract class EnchantmentContainerMixin extends ContainerMixin implement
offers[j] = (enchantment != null) ? new EnchantmentOffer(enchantment, this.worldClue[j], this.enchantLevels[j]) : null; offers[j] = (enchantment != null) ? new EnchantmentOffer(enchantment, this.worldClue[j], this.enchantLevels[j]) : null;
} }
PrepareItemEnchantEvent event = new PrepareItemEnchantEvent(player, this.getBukkitView(), ((IWorldPosCallableBridge) this.worldPosCallable).bridge$getLocation().getBlock(), item, offers, (int) power); PrepareItemEnchantEvent event = new PrepareItemEnchantEvent(((ServerPlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), this.getBukkitView(), ((IWorldPosCallableBridge) this.worldPosCallable).bridge$getLocation().getBlock(), item, offers, (int) power);
event.setCancelled(!itemstack.isEnchantable()); event.setCancelled(!itemstack.isEnchantable());
Bukkit.getPluginManager().callEvent(event); Bukkit.getPluginManager().callEvent(event);
@ -265,7 +266,7 @@ public abstract class EnchantmentContainerMixin extends ContainerMixin implement
} }
CraftInventoryEnchanting inventory = new CraftInventoryEnchanting(this.tableInventory); CraftInventoryEnchanting inventory = new CraftInventoryEnchanting(this.tableInventory);
bukkitEntity = new CraftInventoryView(this.player, inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }

View File

@ -1,6 +1,7 @@
package io.izzel.arclight.common.mixin.core.inventory.container; package io.izzel.arclight.common.mixin.core.inventory.container;
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge; import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
import io.izzel.arclight.common.bridge.inventory.container.GrindstoneContainerBridge;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.Container; import net.minecraft.inventory.container.Container;
@ -8,14 +9,12 @@ import net.minecraft.inventory.container.GrindstoneContainer;
import net.minecraft.util.IWorldPosCallable; import net.minecraft.util.IWorldPosCallable;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryGrindstone; import org.bukkit.craftbukkit.v.inventory.CraftInventoryGrindstone;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryView; import org.bukkit.craftbukkit.v.inventory.CraftInventoryView;
import org.bukkit.entity.Player;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import io.izzel.arclight.common.bridge.inventory.container.GrindstoneContainerBridge;
@Mixin(GrindstoneContainer.class) @Mixin(GrindstoneContainer.class)
public abstract class GrindstoneContainerMixin extends ContainerMixin implements GrindstoneContainerBridge { public abstract class GrindstoneContainerMixin extends ContainerMixin implements GrindstoneContainerBridge {
@ -24,11 +23,11 @@ public abstract class GrindstoneContainerMixin extends ContainerMixin implements
@Shadow @Final private IInventory outputInventory; @Shadow @Final private IInventory outputInventory;
@Shadow @Final private IWorldPosCallable worldPosCallable; @Shadow @Final private IWorldPosCallable worldPosCallable;
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private Player player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN"))
public void arclight$init(int windowIdIn, PlayerInventory playerInventory, IWorldPosCallable worldPosCallableIn, CallbackInfo ci) { public void arclight$init(int windowIdIn, PlayerInventory playerInventory, IWorldPosCallable worldPosCallableIn, CallbackInfo ci) {
this.player = (Player) ((PlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(); this.playerInventory = playerInventory;
} }
@Override @Override
@ -38,7 +37,7 @@ public abstract class GrindstoneContainerMixin extends ContainerMixin implements
} }
CraftInventoryGrindstone inventory = new CraftInventoryGrindstone(this.inputInventory, this.outputInventory); CraftInventoryGrindstone inventory = new CraftInventoryGrindstone(this.inputInventory, this.outputInventory);
bukkitEntity = new CraftInventoryView(this.player, inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }

View File

@ -24,11 +24,11 @@ public abstract class HopperContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;)V", at = @At("RETURN"))
public void arclight$init(int p_i50079_1_, PlayerInventory playerInventory, IInventory p_i50079_3_, CallbackInfo ci) { public void arclight$init(int p_i50079_1_, PlayerInventory playerInventory, IInventory p_i50079_3_, CallbackInfo ci) {
this.player = playerInventory; this.playerInventory = playerInventory;
} }
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
@ -42,7 +42,7 @@ public abstract class HopperContainerMixin extends ContainerMixin {
return bukkitEntity; return bukkitEntity;
} }
CraftInventory inventory = new CraftInventory(this.hopperInventory); CraftInventory inventory = new CraftInventory(this.hopperInventory);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -24,11 +24,11 @@ public abstract class HorseInventoryContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
CraftInventoryView bukkitEntity; CraftInventoryView bukkitEntity;
PlayerInventory player; PlayerInventory playerInventory;
@Inject(method = "<init>", at = @At("RETURN")) @Inject(method = "<init>", at = @At("RETURN"))
public void arclight$init(int p_i50077_1_, PlayerInventory playerInventory, IInventory p_i50077_3_, AbstractHorseEntity p_i50077_4_, CallbackInfo ci) { public void arclight$init(int p_i50077_1_, PlayerInventory playerInventory, IInventory p_i50077_3_, AbstractHorseEntity p_i50077_4_, CallbackInfo ci) {
this.player = playerInventory; this.playerInventory = playerInventory;
} }
@Override @Override
@ -36,7 +36,7 @@ public abstract class HorseInventoryContainerMixin extends ContainerMixin {
if (bukkitEntity != null) { if (bukkitEntity != null) {
return bukkitEntity; return bukkitEntity;
} }
return bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) player.player).bridge$getBukkitEntity(), return bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(),
((IInventoryBridge) this.horseInventory).getOwner().getInventory(), (Container) (Object) this); ((IInventoryBridge) this.horseInventory).getOwner().getInventory(), (Container) (Object) this);
} }
} }

View File

@ -11,7 +11,6 @@ import net.minecraft.util.IIntArray;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryLectern; import org.bukkit.craftbukkit.v.inventory.CraftInventoryLectern;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryView; import org.bukkit.craftbukkit.v.inventory.CraftInventoryView;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTakeLecternBookEvent; import org.bukkit.event.player.PlayerTakeLecternBookEvent;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@ -28,7 +27,7 @@ public abstract class LecternContainerMixin extends ContainerMixin implements Le
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private Player player; private PlayerInventory playerInventory;
public void arclight$constructor(int i) { public void arclight$constructor(int i) {
throw new RuntimeException(); throw new RuntimeException();
@ -40,17 +39,17 @@ public abstract class LecternContainerMixin extends ContainerMixin implements Le
public void arclight$constructor(int i, PlayerInventory playerInventory) { public void arclight$constructor(int i, PlayerInventory playerInventory) {
arclight$constructor(i); arclight$constructor(i);
this.player = ((ServerPlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(); this.playerInventory = playerInventory;
} }
public void arclight$constructor(int i, IInventory inventory, IIntArray intArray, PlayerInventory playerInventory) { public void arclight$constructor(int i, IInventory inventory, IIntArray intArray, PlayerInventory playerInventory) {
arclight$constructor(i, inventory, intArray); arclight$constructor(i, inventory, intArray);
this.player = ((ServerPlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(); this.playerInventory = playerInventory;
} }
@Inject(method = "enchantItem", cancellable = true, at = @At(value = "INVOKE", target = "Lnet/minecraft/inventory/IInventory;removeStackFromSlot(I)Lnet/minecraft/item/ItemStack;")) @Inject(method = "enchantItem", cancellable = true, at = @At(value = "INVOKE", target = "Lnet/minecraft/inventory/IInventory;removeStackFromSlot(I)Lnet/minecraft/item/ItemStack;"))
public void arclight$takeBook(PlayerEntity playerIn, int id, CallbackInfoReturnable<Boolean> cir) { public void arclight$takeBook(PlayerEntity playerIn, int id, CallbackInfoReturnable<Boolean> cir) {
PlayerTakeLecternBookEvent event = new PlayerTakeLecternBookEvent(player, ((CraftInventoryLectern) getBukkitView().getTopInventory()).getHolder()); PlayerTakeLecternBookEvent event = new PlayerTakeLecternBookEvent(((ServerPlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), ((CraftInventoryLectern) getBukkitView().getTopInventory()).getHolder());
Bukkit.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
cir.setReturnValue(false); cir.setReturnValue(false);
@ -68,12 +67,12 @@ public abstract class LecternContainerMixin extends ContainerMixin implements Le
return bukkitEntity; return bukkitEntity;
} }
CraftInventoryLectern inventory = new CraftInventoryLectern(this.lecternInventory); CraftInventoryLectern inventory = new CraftInventoryLectern(this.lecternInventory);
bukkitEntity = new CraftInventoryView(this.player, inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((ServerPlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
@Override @Override
public void bridge$setPlayerInventory(PlayerInventory playerInventory) { public void bridge$setPlayerInventory(PlayerInventory playerInventory) {
this.player = ((ServerPlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(); this.playerInventory = playerInventory;
} }
} }

View File

@ -1,6 +1,7 @@
package io.izzel.arclight.common.mixin.core.inventory.container; package io.izzel.arclight.common.mixin.core.inventory.container;
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge; import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
import io.izzel.arclight.common.bridge.inventory.container.LoomContainerBridge;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
@ -9,7 +10,6 @@ import net.minecraft.inventory.container.LoomContainer;
import net.minecraft.util.IWorldPosCallable; import net.minecraft.util.IWorldPosCallable;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryLoom; import org.bukkit.craftbukkit.v.inventory.CraftInventoryLoom;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryView; import org.bukkit.craftbukkit.v.inventory.CraftInventoryView;
import org.bukkit.entity.Player;
import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.InventoryView;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@ -18,7 +18,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import io.izzel.arclight.common.bridge.inventory.container.LoomContainerBridge;
@Mixin(LoomContainer.class) @Mixin(LoomContainer.class)
public abstract class LoomContainerMixin extends ContainerMixin implements LoomContainerBridge { public abstract class LoomContainerMixin extends ContainerMixin implements LoomContainerBridge {
@ -30,11 +29,11 @@ public abstract class LoomContainerMixin extends ContainerMixin implements LoomC
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private Player player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN"))
public void arclight$init(int p_i50074_1_, PlayerInventory playerInventory, IWorldPosCallable p_i50074_3_, CallbackInfo ci) { public void arclight$init(int p_i50074_1_, PlayerInventory playerInventory, IWorldPosCallable p_i50074_3_, CallbackInfo ci) {
this.player = (Player) ((PlayerEntityBridge) playerInventory.player).bridge$getBukkitEntity(); this.playerInventory = playerInventory;
} }
@Inject(method = "canInteractWith", at = @At("HEAD")) @Inject(method = "canInteractWith", at = @At("HEAD"))
@ -51,7 +50,7 @@ public abstract class LoomContainerMixin extends ContainerMixin implements LoomC
} }
CraftInventoryLoom inventory = new CraftInventoryLoom(this.inputInventory, this.outputInventory); CraftInventoryLoom inventory = new CraftInventoryLoom(this.inputInventory, this.outputInventory);
bukkitEntity = new CraftInventoryView(this.player, inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }

View File

@ -26,11 +26,11 @@ public abstract class MerchantContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/entity/merchant/IMerchant;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/entity/merchant/IMerchant;)V", at = @At("RETURN"))
public void arclight$init(int id, PlayerInventory playerInventoryIn, IMerchant merchantIn, CallbackInfo ci) { public void arclight$init(int id, PlayerInventory playerInventoryIn, IMerchant merchantIn, CallbackInfo ci) {
this.player = playerInventoryIn; this.playerInventory = playerInventoryIn;
} }
@Inject(method = "playMerchantYesSound", cancellable = true, at = @At("HEAD")) @Inject(method = "playMerchantYesSound", cancellable = true, at = @At("HEAD"))
@ -43,7 +43,7 @@ public abstract class MerchantContainerMixin extends ContainerMixin {
@Override @Override
public InventoryView getBukkitView() { public InventoryView getBukkitView() {
if (bukkitEntity == null) { if (bukkitEntity == null) {
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), new CraftInventoryMerchant(this.merchant, this.merchantInventory), (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), new CraftInventoryMerchant(this.merchant, this.merchantInventory), (Container) (Object) this);
} }
return bukkitEntity; return bukkitEntity;
} }

View File

@ -30,11 +30,11 @@ public abstract class PlayerContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>", at = @At("RETURN")) @Inject(method = "<init>", at = @At("RETURN"))
public void arclight$init(PlayerInventory playerInventory, boolean localWorld, PlayerEntity playerIn, CallbackInfo ci) { public void arclight$init(PlayerInventory playerInventory, boolean localWorld, PlayerEntity playerIn, CallbackInfo ci) {
this.player = playerInventory; this.playerInventory = playerInventory;
((CraftingInventoryBridge) this.craftMatrix).bridge$setOwner(playerInventory.player); ((CraftingInventoryBridge) this.craftMatrix).bridge$setOwner(playerInventory.player);
((CraftingInventoryBridge) this.craftMatrix).bridge$setResultInventory(this.craftResult); ((CraftingInventoryBridge) this.craftMatrix).bridge$setResultInventory(this.craftResult);
this.setTitle(new TranslationTextComponent("container.crafting")); this.setTitle(new TranslationTextComponent("container.crafting"));
@ -52,7 +52,7 @@ public abstract class PlayerContainerMixin extends ContainerMixin {
} }
CraftInventoryCrafting inventory = new CraftInventoryCrafting(this.craftMatrix, this.craftResult); CraftInventoryCrafting inventory = new CraftInventoryCrafting(this.craftMatrix, this.craftResult);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -23,11 +23,11 @@ public abstract class ShulkerBoxContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/inventory/IInventory;)V", at = @At("RETURN"))
public void arclight$init(int p_i50066_1_, PlayerInventory playerInventory, IInventory p_i50066_3_, CallbackInfo ci) { public void arclight$init(int p_i50066_1_, PlayerInventory playerInventory, IInventory p_i50066_3_, CallbackInfo ci) {
this.player = playerInventory; this.playerInventory = playerInventory;
} }
@Override @Override
@ -36,7 +36,7 @@ public abstract class ShulkerBoxContainerMixin extends ContainerMixin {
return bukkitEntity; return bukkitEntity;
} }
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), new CraftInventory(this.inventory), (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), new CraftInventory(this.inventory), (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -1,6 +1,6 @@
package io.izzel.arclight.common.mixin.core.inventory.container; package io.izzel.arclight.common.mixin.core.inventory.container;
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge; import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.CraftResultInventory; import net.minecraft.inventory.CraftResultInventory;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
@ -9,7 +9,6 @@ import net.minecraft.inventory.container.StonecutterContainer;
import net.minecraft.util.IWorldPosCallable; import net.minecraft.util.IWorldPosCallable;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryStonecutter; import org.bukkit.craftbukkit.v.inventory.CraftInventoryStonecutter;
import org.bukkit.craftbukkit.v.inventory.CraftInventoryView; import org.bukkit.craftbukkit.v.inventory.CraftInventoryView;
import org.bukkit.entity.Player;
import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.InventoryView;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@ -27,11 +26,11 @@ public abstract class StonecutterContainerMixin extends ContainerMixin {
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity = null; private CraftInventoryView bukkitEntity = null;
private Player player; private PlayerInventory playerInventory;
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN")) @Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/util/IWorldPosCallable;)V", at = @At("RETURN"))
public void arclight$init(int windowIdIn, PlayerInventory playerInventoryIn, IWorldPosCallable worldPosCallableIn, CallbackInfo ci) { public void arclight$init(int windowIdIn, PlayerInventory playerInventoryIn, IWorldPosCallable worldPosCallableIn, CallbackInfo ci) {
this.player = ((ServerPlayerEntityBridge) playerInventoryIn.player).bridge$getBukkitEntity(); this.playerInventory = playerInventoryIn;
} }
@Override @Override
@ -41,7 +40,7 @@ public abstract class StonecutterContainerMixin extends ContainerMixin {
} }
CraftInventoryStonecutter inventory = new CraftInventoryStonecutter(this.inputInventory, this.inventory); CraftInventoryStonecutter inventory = new CraftInventoryStonecutter(this.inputInventory, this.inventory);
bukkitEntity = new CraftInventoryView(this.player, inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }

View File

@ -1,8 +1,10 @@
package io.izzel.arclight.common.mixin.core.inventory.container; package io.izzel.arclight.common.mixin.core.inventory.container;
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge; import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
import io.izzel.arclight.common.bridge.inventory.CraftingInventoryBridge;
import io.izzel.arclight.common.bridge.inventory.container.ContainerBridge; import io.izzel.arclight.common.bridge.inventory.container.ContainerBridge;
import io.izzel.arclight.common.bridge.inventory.container.WorkbenchContainerBridge; import io.izzel.arclight.common.bridge.inventory.container.WorkbenchContainerBridge;
import io.izzel.arclight.common.mod.util.ArclightCaptures;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity;
@ -30,8 +32,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import io.izzel.arclight.common.bridge.inventory.CraftingInventoryBridge;
import io.izzel.arclight.common.mod.util.ArclightCaptures;
import java.util.Optional; import java.util.Optional;
@ -46,7 +46,7 @@ public abstract class WorkbenchContainerMixin extends ContainerMixin implements
// @formatter:on // @formatter:on
private CraftInventoryView bukkitEntity; private CraftInventoryView bukkitEntity;
private PlayerInventory player; private PlayerInventory playerInventory;
@Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD")) @Inject(method = "canInteractWith", cancellable = true, at = @At("HEAD"))
public void arclight$unreachable(PlayerEntity playerIn, CallbackInfoReturnable<Boolean> cir) { public void arclight$unreachable(PlayerEntity playerIn, CallbackInfoReturnable<Boolean> cir) {
@ -92,7 +92,7 @@ public abstract class WorkbenchContainerMixin extends ContainerMixin implements
public void arclight$init(int i, PlayerInventory playerInventory, IWorldPosCallable callable, CallbackInfo ci) { public void arclight$init(int i, PlayerInventory playerInventory, IWorldPosCallable callable, CallbackInfo ci) {
((CraftingInventoryBridge) this.craftMatrix).bridge$setOwner(playerInventory.player); ((CraftingInventoryBridge) this.craftMatrix).bridge$setOwner(playerInventory.player);
((CraftingInventoryBridge) this.craftMatrix).bridge$setResultInventory(this.craftResult); ((CraftingInventoryBridge) this.craftMatrix).bridge$setResultInventory(this.craftResult);
this.player = playerInventory; this.playerInventory = playerInventory;
} }
@Override @Override
@ -102,7 +102,7 @@ public abstract class WorkbenchContainerMixin extends ContainerMixin implements
} }
CraftInventoryCrafting inventory = new CraftInventoryCrafting(this.craftMatrix, this.craftResult); CraftInventoryCrafting inventory = new CraftInventoryCrafting(this.craftMatrix, this.craftResult);
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.player.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this); bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
return bukkitEntity; return bukkitEntity;
} }
} }