public static boolean hasEditPermission(@Nonnull BlockPos pos, @Nonnull EntityPlayerMP player) { if (FMLCommonHandler.instance().getMinecraftServerInstance().isBlockProtected(player.getEntityWorld(), pos, player)) return false; IBlockState block = player.getEntityWorld().getBlockState(pos); if(block.getBlockHardness(player.getEntityWorld(), pos) == -1.0F && !player.capabilities.isCreativeMode) return false; for (EnumFacing e : EnumFacing.VALUES) if (!player.canPlayerEdit(pos, e, player.getHeldItemMainhand())) return false; return true; }
@Override public IMessage onMessage(PacketTileVector message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().player; TileEntityVector tile = (TileEntityVector) player.getEntityWorld().getTileEntity(message.pos); if (tile != null) { tile.setField(message.tileFieldId, message.value); } return null; } }
@Override public void run() { EntityPlayerMP player = ctx.getServerHandler().player; World world = player.getEntityWorld(); TileEntity tile = world.getTileEntity(message.pos); if (tile != null && tile instanceof ITileStackWrapper) { ((ITileStackWrapper) tile).setStackWrapper(message.index, message.stack); } } });
public static boolean hasBreakPermission(EntityPlayerMP player, BlockPos pos) { return hasEditPermission(player, pos) && ForgeHooks.onBlockBreakEvent(player.getEntityWorld(), player.interactionManager.getGameType(), player, pos) != -1; }
@Override protected void handle(MessageSecurityManagerUpdate message, EntityPlayerMP player) { TileEntity tile = player.getEntityWorld().getTileEntity(new BlockPos(message.x, message.y, message.z)); if (tile instanceof TileSecurityManager) { ((TileSecurityManager) tile).getNode().updatePermission(message.permission, message.state); } }
private void handle(PacketGetRadiationLevel message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().player; World world = player.getEntityWorld(); float strength = RadiationMonitorItem.calculateRadiationStrength(world, message.coordinate); PacketReturnRadiation packet = new PacketReturnRadiation(strength); DRMessages.INSTANCE.sendTo(packet, ctx.getServerHandler().player); }
private void handle(PacketSendRecipe message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().player; World world = player.getEntityWorld(); // Handle tablet version ItemStack mainhand = player.getHeldItemMainhand(); if (!mainhand.isEmpty() && mainhand.getItem() == ModItems.craftingCardItem) { if (player.openContainer instanceof CraftingCardContainer) { CraftingCardContainer craftingCardContainer = (CraftingCardContainer) player.openContainer; craftingCardContainer.setGridContents(player, message.stacks); } } }
private static void doFieldInventory(final OpenInventoryMessage message, final EntityPlayerMP player) { if (checkPermissions(ColonyManager.getClosestColony(player.getEntityWorld(), message.tePos), player)) { player.openGui(MineColonies.instance, GuiHandler.ID.BUILDING_INVENTORY.ordinal(), player.getEntityWorld(), player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ()); } }
@Override public IMessage onMessage(PacketOpenGuiOnServer message, MessageContext ctx) { ctx.getServerHandler().player.openGui(ModCyclic.instance, message.guiId, ctx.getServerHandler().player.getEntityWorld(), (int) ctx.getServerHandler().player.posX, (int) ctx.getServerHandler().player.posY, (int) ctx.getServerHandler().player.posZ); return null; } }
@Override public void handle(MessageGridPatternCreate message, EntityPlayerMP player) { TileEntity tile = player.getEntityWorld().getTileEntity(new BlockPos(message.x, message.y, message.z)); if (tile instanceof TileGrid && ((TileGrid) tile).getNode().getGridType() == GridType.PATTERN) { ((TileGrid) tile).getNode().onCreatePattern(); } } }
private void handle(PacketSendKey message, MessageContext ctx) { // This code is run on the server side. So you can do server-side calculations here EntityPlayerMP playerEntity = ctx.getServerHandler().player; World world = playerEntity.getEntityWorld(); // Check if the block (chunk) is loaded to prevent abuse from a client // trying to overload a server by randomly loading chunks if (world.isBlockLoaded(message.blockPos)) { Block block = world.getBlockState(message.blockPos).getBlock(); playerEntity.sendStatusMessage(new TextComponentString(TextFormatting.GREEN + "Hit block: " + block.getRegistryName()), false); } } }
@Override protected void handle(MessageStorageDiskSizeRequest message, EntityPlayerMP player) { IStorageDisk disk = API.instance().getStorageDiskManager(player.getEntityWorld()).get(message.id); if (disk != null) { RS.INSTANCE.network.sendTo(new MessageStorageDiskSizeResponse(message.id, disk.getStored(), disk.getCapacity()), player); } }
private void handle(PacketGetCrystalInfo message, MessageContext ctx) { World world = ctx.getServerHandler().player.getEntityWorld(); TileEntity tileEntity = world.getTileEntity(message.pos); if (tileEntity instanceof ResonatingCrystalTileEntity) { ResonatingCrystalTileEntity resonatingCrystalTileEntity = (ResonatingCrystalTileEntity) tileEntity; PacketReturnCrystalInfo packet = new PacketReturnCrystalInfo(resonatingCrystalTileEntity.getRfPerTick(), resonatingCrystalTileEntity.getPower()); DRMessages.INSTANCE.sendTo(packet, ctx.getServerHandler().player); } } }
private void handle(PacketGetRemoteChannelsRouter message, MessageContext ctx) { TileEntity te = ctx.getServerHandler().player.getEntityWorld().getTileEntity(message.pos); ICommandHandler commandHandler = (ICommandHandler) te; List<ControllerChannelClientInfo> list = commandHandler.executeWithResultList(message.command, message.params, Type.create(ControllerChannelClientInfo.class)); XNetMessages.INSTANCE.sendTo(new PacketRemoteChannelsRouterReady(message.pos, TileEntityRouter.CLIENTCMD_CHANNELSREMOTEREADY, list), ctx.getServerHandler().player); } }
private void handle(PacketGetChannels message, MessageContext ctx) { TileEntity te = ctx.getServerHandler().player.getEntityWorld().getTileEntity(message.pos); ICommandHandler commandHandler = (ICommandHandler) te; List<ChannelClientInfo> list = commandHandler.executeWithResultList(message.command, message.params, Type.create(ChannelClientInfo.class)); XNetMessages.INSTANCE.sendTo(new PacketChannelsReady(message.pos, TileEntityController.CLIENTCMD_CHANNELSREADY, list), ctx.getServerHandler().player); } }
private void handle(PacketGetConnectedBlocks message, MessageContext ctx) { TileEntity te = ctx.getServerHandler().player.getEntityWorld().getTileEntity(message.pos); ICommandHandler commandHandler = (ICommandHandler) te; List<ConnectedBlockClientInfo> list = commandHandler.executeWithResultList(message.command, message.params, Type.create(ConnectedBlockClientInfo.class)); XNetMessages.INSTANCE.sendTo(new PacketConnectedBlocksReady(message.pos, TileEntityController.CLIENTCMD_CONNECTEDBLOCKSREADY, list), ctx.getServerHandler().player); } }
private void handle(PacketGetLocalChannelsRouter message, MessageContext ctx) { TileEntity te = ctx.getServerHandler().player.getEntityWorld().getTileEntity(message.pos); ICommandHandler commandHandler = (ICommandHandler) te; List<ControllerChannelClientInfo> list = commandHandler.executeWithResultList(message.command, message.params, Type.create(ControllerChannelClientInfo.class)); XNetMessages.INSTANCE.sendTo(new PacketLocalChannelsRouterReady(message.pos, TileEntityRouter.CLIENTCMD_CHANNELSREADY, list), ctx.getServerHandler().player); } }
private void handle(PacketGetTankInfo message, MessageContext ctx) { World world = ctx.getServerHandler().player.getEntityWorld(); TileEntity tileEntity = world.getTileEntity(message.pos); if (tileEntity instanceof TileTank) { TileTank tileTank = (TileTank) tileEntity; PacketReturnTankInfo packet = new PacketReturnTankInfo(tileTank.getFluidAmount(), tileTank.getCapacity(), DRFluidRegistry.getFluidName(tileTank.getFluid()), tileTank.getFluidTag()); DRMessages.INSTANCE.sendTo(packet, ctx.getServerHandler().player); } }
private static void doHutInventory(final OpenInventoryMessage message, final EntityPlayerMP player) { if (checkPermissions(ColonyManager.getClosestColony(player.getEntityWorld(), message.tePos), player)) { @NotNull final TileEntityChest chest = (TileEntityChest) BlockPosUtil.getTileEntity(CompatibilityUtils.getWorld(player), message.tePos); if (!StringUtils.isNullOrEmpty(message.name)) { chest.setCustomName(message.name); } player.openGui(MineColonies.instance, GuiHandler.ID.BUILDING_INVENTORY.ordinal(), player.world, chest.getPos().getX(), chest.getPos().getY(), chest.getPos().getZ()); } }
@Override public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { World w = getCommandSenderAsPlayer(sender).getEntityWorld(); VampirismWorldData worldData = VampirismWorldData.get(w); BlockPos dungeonPos = worldData.getRandomVampireDungeon(getCommandSenderAsPlayer(sender).getRNG()); ItemStack itemstack = ItemMap.setupNewMap(w, (double) dungeonPos.getX(), (double) dungeonPos.getZ(), (byte) 2, true, true); ItemMap.renderBiomePreviewMap(w, itemstack); MapData.addTargetDecoration(itemstack, dungeonPos, "+", MapDecoration.Type.TARGET_X); getCommandSenderAsPlayer(sender).dropItem(itemstack, false); }