SPIGOT-7602: Allow opening in-world horse and related inventories
This commit is contained in:
parent
ffd15611c7
commit
0398930fc7
@ -41,6 +41,7 @@ import org.bukkit.craftbukkit.entity.memory.CraftMemoryMapper;
|
|||||||
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftContainer;
|
import org.bukkit.craftbukkit.inventory.CraftContainer;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftInventory;
|
import org.bukkit.craftbukkit.inventory.CraftInventory;
|
||||||
|
import org.bukkit.craftbukkit.inventory.CraftInventoryAbstractHorse;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftInventoryDoubleChest;
|
import org.bukkit.craftbukkit.inventory.CraftInventoryDoubleChest;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftInventoryLectern;
|
import org.bukkit.craftbukkit.inventory.CraftInventoryLectern;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
|
import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
|
||||||
@ -278,31 +279,33 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
|||||||
EntityPlayer player = (EntityPlayer) getHandle();
|
EntityPlayer player = (EntityPlayer) getHandle();
|
||||||
Container formerContainer = getHandle().containerMenu;
|
Container formerContainer = getHandle().containerMenu;
|
||||||
|
|
||||||
ITileInventory iinventory = null;
|
ITileInventory tileInventory = null;
|
||||||
if (inventory instanceof CraftInventoryDoubleChest) {
|
if (inventory instanceof CraftInventoryDoubleChest) {
|
||||||
iinventory = ((CraftInventoryDoubleChest) inventory).tile;
|
tileInventory = ((CraftInventoryDoubleChest) inventory).tile;
|
||||||
} else if (inventory instanceof CraftInventoryLectern) {
|
} else if (inventory instanceof CraftInventoryLectern) {
|
||||||
iinventory = ((CraftInventoryLectern) inventory).tile;
|
tileInventory = ((CraftInventoryLectern) inventory).tile;
|
||||||
} else if (inventory instanceof CraftInventory) {
|
} else if (inventory instanceof CraftInventory) {
|
||||||
CraftInventory craft = (CraftInventory) inventory;
|
CraftInventory craft = (CraftInventory) inventory;
|
||||||
if (craft.getInventory() instanceof ITileInventory) {
|
if (craft.getInventory() instanceof ITileInventory) {
|
||||||
iinventory = (ITileInventory) craft.getInventory();
|
tileInventory = (ITileInventory) craft.getInventory();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iinventory instanceof ITileInventory) {
|
if (tileInventory instanceof ITileInventory) {
|
||||||
if (iinventory instanceof TileEntity) {
|
if (tileInventory instanceof TileEntity) {
|
||||||
TileEntity te = (TileEntity) iinventory;
|
TileEntity te = (TileEntity) tileInventory;
|
||||||
if (!te.hasLevel()) {
|
if (!te.hasLevel()) {
|
||||||
te.setLevel(getHandle().level());
|
te.setLevel(getHandle().level());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Containers<?> container = CraftContainer.getNotchInventoryType(inventory);
|
if (tileInventory instanceof ITileInventory) {
|
||||||
if (iinventory instanceof ITileInventory) {
|
getHandle().openMenu(tileInventory);
|
||||||
getHandle().openMenu(iinventory);
|
} else if (inventory instanceof CraftInventoryAbstractHorse craft && craft.getInventory().getOwner() instanceof CraftAbstractHorse horse) {
|
||||||
|
getHandle().openHorseInventory(horse.getHandle(), craft.getInventory());
|
||||||
} else {
|
} else {
|
||||||
|
Containers<?> container = CraftContainer.getNotchInventoryType(inventory);
|
||||||
openCustomInventory(inventory, player, container);
|
openCustomInventory(inventory, player, container);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user