use of org.bukkit.craftbukkit.v1_16_R2.inventory.CraftContainer in project MyPet by xXKeyleXx.
the class CustomInventory method open.
@Override
public void open(Player player) {
ServerPlayer entityPlayer = ((CraftPlayer) player).getHandle();
AbstractContainerMenu container = new CraftContainer(getBukkitInventory(), entityPlayer, entityPlayer.nextContainerCounter());
container = CraftEventFactory.callInventoryOpenEvent(entityPlayer, container);
if (container != null) {
MenuType<?> customSize = MenuType.GENERIC_9x1;
switch(this.getContainerSize()) {
case 18:
customSize = MenuType.GENERIC_9x2;
break;
case 27:
customSize = MenuType.GENERIC_9x3;
break;
case 36:
customSize = MenuType.GENERIC_9x4;
break;
case 45:
customSize = MenuType.GENERIC_9x5;
break;
case 54:
customSize = MenuType.GENERIC_9x6;
break;
}
entityPlayer.connection.send(new ClientboundOpenScreenPacket(container.containerId, customSize, new TextComponent(this.getName())));
entityPlayer.containerMenu = container;
entityPlayer.initMenu(container);
}
}
use of org.bukkit.craftbukkit.v1_16_R2.inventory.CraftContainer in project Magma-1.16.x by magmafoundation.
the class CraftHumanEntity method openInventory.
@Override
public void openInventory(InventoryView inventory) {
// TODO: NPC support?
if (!(getHandle() instanceof ServerPlayerEntity))
return;
if (((ServerPlayerEntity) getHandle()).connection == null)
return;
if (getHandle().containerMenu != getHandle().inventoryMenu) {
// fire INVENTORY_CLOSE if one already open
((ServerPlayerEntity) getHandle()).connection.handleContainerClose(new CCloseWindowPacket(getHandle().containerMenu.containerId));
}
ServerPlayerEntity player = (ServerPlayerEntity) getHandle();
net.minecraft.inventory.container.Container container;
if (inventory instanceof CraftInventoryView) {
container = ((CraftInventoryView) inventory).getHandle();
} else {
container = new CraftContainer(inventory, this.getHandle(), player.nextContainerCounter());
}
// Trigger an INVENTORY_OPEN event
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) {
return;
}
// Now open the window
ContainerType<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
// String title = inventory.getTitle(); // Paper - comment
// Paper
net.kyori.adventure.text.Component adventure$title = inventory.title();
// Paper
if (adventure$title == null)
adventure$title = io.papermc.paper.adventure.PaperAdventure.LEGACY_SECTION_UXRC.deserialize(inventory.getTitle());
player.containerMenu = container;
player.containerMenu.addSlotListener(player);
}
use of org.bukkit.craftbukkit.v1_16_R2.inventory.CraftContainer in project Mohist by MohistMC.
the class CraftHumanEntity method openCustomInventory.
private static void openCustomInventory(Inventory inventory, ServerPlayer player, MenuType<?> windowType) {
if (player.connection == null)
return;
Preconditions.checkArgument(windowType != null, "Unknown windowType");
AbstractContainerMenu container = new CraftContainer(inventory, player, player.nextContainerCounterInt());
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null)
return;
String title = container.getBukkitView().getTitle();
player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.containerMenu = container;
player.initMenu(container);
}
use of org.bukkit.craftbukkit.v1_16_R2.inventory.CraftContainer in project Mohist by MohistMC.
the class CraftHumanEntity method openInventory.
@Override
public void openInventory(InventoryView inventory) {
// TODO: NPC support?
if (!(getHandle() instanceof ServerPlayer))
return;
if (((ServerPlayer) getHandle()).connection == null)
return;
if (getHandle().containerMenu != getHandle().inventoryMenu) {
// fire INVENTORY_CLOSE if one already open
((ServerPlayer) getHandle()).connection.handleContainerClose(new ServerboundContainerClosePacket(getHandle().containerMenu.containerId));
}
ServerPlayer player = (ServerPlayer) getHandle();
AbstractContainerMenu container;
if (inventory instanceof CraftInventoryView) {
container = ((CraftInventoryView) inventory).getHandle();
} else {
container = new CraftContainer(inventory, this.getHandle(), player.nextContainerCounterInt());
}
// Trigger an INVENTORY_OPEN event
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) {
return;
}
// Now open the window
MenuType<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
String title = inventory.getTitle();
player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.containerMenu = container;
player.initMenu(container);
}
use of org.bukkit.craftbukkit.v1_16_R2.inventory.CraftContainer in project MyPet by MyPetORG.
the class CustomInventory method open.
@Override
public void open(Player player) {
EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();
Container container = new CraftContainer(getBukkitInventory(), entityPlayer, entityPlayer.nextContainerCounter());
container = CraftEventFactory.callInventoryOpenEvent(entityPlayer, container);
if (container != null) {
Containers customSize = Containers.GENERIC_9X1;
switch(this.getSize()) {
case 18:
customSize = Containers.GENERIC_9X2;
break;
case 27:
customSize = Containers.GENERIC_9X3;
break;
case 36:
customSize = Containers.GENERIC_9X4;
break;
case 45:
customSize = Containers.GENERIC_9X5;
break;
case 54:
customSize = Containers.GENERIC_9X6;
break;
}
entityPlayer.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, customSize, new ChatComponentText(this.getName())));
entityPlayer.activeContainer = container;
entityPlayer.activeContainer.addSlotListener(entityPlayer);
}
}
Aggregations