public static boolean onTravelToDimension(Entity entity, int dimension) { EntityTravelToDimensionEvent event = new EntityTravelToDimensionEvent(entity, dimension); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { // Revert variable back to true as it would have been set to false if (entity instanceof EntityMinecartContainer) { ((EntityMinecartContainer) entity).dropContentsWhenDead = true; } } return !event.isCanceled(); }
@Override public String execute(CommandSender sender, String[] params) throws CommandException { EntityPlayerMP player = getSenderAsEntity(sender.getMinecraftISender(), EntityPlayerMP.class); Entity entity = EntityUtils.traceEntity(player, 128D); if (params.length == 0 && entity instanceof AbstractChestHorse) { ((AbstractChestHorse) entity).openGUI(player); } else if (params.length == 0 && entity instanceof EntityVillager) { player.displayVillagerTradeGui((EntityVillager) entity); } else if (params.length == 0 && entity instanceof EntityMinecartContainer) { player.displayGui((EntityMinecartContainer) entity); } else { if (params.length == 0 || params.length > 2) { BlockPos trace; try {trace = params.length > 2 ? getCoordFromParams(sender.getMinecraftISender(), params, 0) : EntityUtils.traceBlock(player, 128D);} catch (NumberFormatException nfe) {throw new CommandException("command.open.NAN", sender);} if (trace == null) throw new CommandException("command.open.noBlock", sender); TileEntity te = sender.getWorld().getTileEntity(trace); Block block = WorldUtils.getBlock(sender.getWorld(), trace); if (te instanceof IInteractionObject) player.displayGui((IInteractionObject) te); else if (te instanceof IInventory) player.displayGUIChest((IInventory) te); else if (block == Blocks.ANVIL) player.displayGui(new BlockAnvil.Anvil(sender.getWorld(), trace)); else if (block == Blocks.CRAFTING_TABLE) player.displayGui(new BlockWorkbench.InterfaceCraftingTable(sender.getWorld(), trace)); else throw new CommandException("command.open.invalidBlock", sender); } else if (params.length > 0) { if (params[0].equalsIgnoreCase("enderchest")) player.displayGUIChest(player.getInventoryEnderChest()); else if (params[0].equalsIgnoreCase("enchantment_table") || (params.length > 1 && params[0].equalsIgnoreCase("enchantment") && params[1].equalsIgnoreCase("table"))) { final World w = sender.getWorld(); player.displayGui(new IInteractionObject() { @Override public boolean hasCustomName() {return false;} @Override public String getName() {return "container.enchant";} @Override public ITextComponent getDisplayName() {return new TextComponentTranslation(this.getName());} @Override public String getGuiID() {return "minecraft:enchanting_table";} @Override public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) { return new ContainerEnchantment(playerInventory, w, BlockPos.ORIGIN); } }); this.allowedInteractions.put(player, player.openContainer); } else if (params[0].equalsIgnoreCase("anvil")) { player.displayGui(new BlockAnvil.Anvil(sender.getWorld(), BlockPos.ORIGIN)); this.allowedInteractions.put(player, player.openContainer); } else if (params[0].equalsIgnoreCase("workbench") || params[0].equalsIgnoreCase("crafting_table") || (params.length > 1 && params[0].equalsIgnoreCase("crafting") && params[1].equalsIgnoreCase("table")) ) { player.displayGui(new BlockWorkbench.InterfaceCraftingTable(sender.getWorld(), BlockPos.ORIGIN)); this.allowedInteractions.put(player, player.openContainer); } else if (params[0].equalsIgnoreCase("furnace") || params[0].equalsIgnoreCase("brewing_stand") || (params.length > 1 && params[0].equalsIgnoreCase("brewing") && params[1].equalsIgnoreCase("stand"))) throw new CommandException("command.open.cantOpenTEs", sender); else throw new CommandException("command.open.invalidContainer", sender, params[0]); } else throw new CommandException("command.generic.invalidUsage", sender, this.getCommandName()); } return null; }