@Override public IMessage onMessage(PortableTeleporterMessage message, MessageContext context) { EntityPlayer player = PacketHandler.getPlayer(context); ItemStack itemstack = player.getCurrentEquippedItem(); World world = player.worldObj; if (itemstack != null && itemstack.getItem() instanceof ItemPortableTeleporter) { ItemPortableTeleporter item = (ItemPortableTeleporter) itemstack.getItem(); switch (message.packetType) { case DATA_REQUEST: sendDataResponse(message.frequency, world, player, item, itemstack); break; case DATA_RESPONSE: Mekanism.proxy.handleTeleporterUpdate(message); break; case SET_FREQ: FrequencyManager manager1 = getManager( message.frequency.isPublic() ? null : player.getCommandSenderName(), world); Frequency toUse = null; for (Frequency freq : manager1.getFrequencies()) { if (freq.name.equals(message.frequency.name)) { toUse = freq; break; } } if (toUse == null) { toUse = new Frequency(message.frequency.name, player.getCommandSenderName()) .setPublic(message.frequency.isPublic()); manager1.addFrequency(toUse); } sendDataResponse(toUse, world, player, item, itemstack); break; case DEL_FREQ: FrequencyManager manager = getManager( message.frequency.isPublic() ? null : player.getCommandSenderName(), world); manager.remove(message.frequency.name, player.getCommandSenderName()); break; case TELEPORT: FrequencyManager manager2 = getManager( message.frequency.isPublic() ? null : player.getCommandSenderName(), world); Frequency found = null; for (Frequency freq : manager2.getFrequencies()) { if (message.frequency.name.equals(freq.name)) { found = freq; break; } } if (found == null) { break; } Coord4D coords = found.getClosestCoords(new Coord4D(player)); World teleWorld = FMLCommonHandler.instance() .getMinecraftServerInstance() .worldServerForDimension(coords.dimensionId); TileEntityTeleporter teleporter = (TileEntityTeleporter) coords.getTileEntity(teleWorld); if (teleporter != null) { try { teleporter.didTeleport.add(player); teleporter.teleDelay = 5; item.setEnergy( itemstack, item.getEnergy(itemstack) - item.calculateEnergyCost(player, coords)); if (player instanceof EntityPlayerMP) { MekanismUtils.setPrivateValue( ((EntityPlayerMP) player).playerNetServerHandler, 0, NetHandlerPlayServer.class, ObfuscatedNames.NetHandlerPlayServer_floatingTickCount); } player.closeScreen(); Mekanism.packetHandler.sendToAllAround( new PortalFXMessage(new Coord4D(player)), coords.getTargetPoint(40D)); TileEntityTeleporter.teleportPlayerTo((EntityPlayerMP) player, coords, teleporter); world.playSoundAtEntity(player, "mob.endermen.portal", 1.0F, 1.0F); Mekanism.packetHandler.sendToReceivers( new PortalFXMessage(coords), new Range4D(coords)); } catch (Exception e) { } } break; } } return null; }