net.minecraft.network.play.client.CPacketCloseWindow Java Examples

The following examples show how to use net.minecraft.network.play.client.CPacketCloseWindow. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CraftEventFactory.java    From Kettle with GNU General Public License v3.0 6 votes vote down vote up
public static Container callInventoryOpenEvent(EntityPlayerMP player, Container container, boolean cancelled) {
    if (player.openContainer != player.inventoryContainer) { // fire INVENTORY_CLOSE if one already open
        player.connection.processCloseWindow(new CPacketCloseWindow(player.openContainer.windowId));
    }

    CraftServer server = player.world.getServer();
    CraftPlayer craftPlayer = player.getBukkitEntity();
    player.openContainer.transferTo(container, craftPlayer);

    InventoryOpenEvent event = new InventoryOpenEvent(container.getBukkitView());
    event.setCancelled(cancelled);
    server.getPluginManager().callEvent(event);

    if (event.isCancelled()) {
        container.transferTo(player.openContainer, craftPlayer);
        return null;
    }

    return container;
}
 
Example #2
Source File: MoreInvModule.java    From seppuku with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void onDisable() {
    super.onDisable();
    if (Minecraft.getMinecraft().world != null) {
        Minecraft.getMinecraft().player.connection.sendPacket(new CPacketCloseWindow(Minecraft.getMinecraft().player.inventoryContainer.windowId));
    }
}
 
Example #3
Source File: MoreInvModule.java    From seppuku with GNU General Public License v3.0 5 votes vote down vote up
@Listener
public void sendPacket(EventSendPacket event) {
    if (event.getStage() == EventStageable.EventStage.PRE) {
        if (event.getPacket() instanceof CPacketCloseWindow) {
            final CPacketCloseWindow packet = (CPacketCloseWindow) event.getPacket();
            if (packet.windowId == Minecraft.getMinecraft().player.inventoryContainer.windowId) {
                event.setCanceled(true);
            }
        }
    }
}
 
Example #4
Source File: CraftHumanEntity.java    From Kettle with GNU General Public License v3.0 5 votes vote down vote up
public void openInventory(InventoryView inventory) {
    if (!(getHandle() instanceof EntityPlayerMP)) return; // TODO: NPC support?
    if (((EntityPlayerMP) getHandle()).connection == null) return;
    if (getHandle().inventoryContainer != getHandle().inventoryContainer) {
        // fire INVENTORY_CLOSE if one already open
        ((EntityPlayerMP) getHandle()).connection.processCloseWindow(new CPacketCloseWindow(getHandle().inventoryContainer.windowId));
    }
    EntityPlayerMP player = (EntityPlayerMP) getHandle();
    Container container;
    if (inventory instanceof CraftInventoryView) {
        container = ((CraftInventoryView) inventory).getHandle();
    } else {
        container = new CraftContainer(inventory, this.getHandle(), player.getNextWindowIdCB());
    }

    // Trigger an INVENTORY_OPEN event
    container = CraftEventFactory.callInventoryOpenEvent(player, container);
    if (container == null) {
        return;
    }

    // Now open the window
    InventoryType type = inventory.getType();
    String windowType = CraftContainer.getNotchInventoryType(type);
    String title = inventory.getTitle();
    int size = inventory.getTopInventory().getSize();
    player.connection.sendPacket(new SPacketOpenWindow(container.windowId, windowType, new TextComponentString(title), size));
    player.inventoryContainer = container;
    player.inventoryContainer.addListener(player);
}