Java Code Examples for net.minecraft.world.WorldServer#getPendingBlockUpdates()
The following examples show how to use
net.minecraft.world.WorldServer#getPendingBlockUpdates() .
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: NewSpawnPlatformCommand.java From YUNoMakeGoodMap with Apache License 2.0 | 5 votes |
@Override public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { if (args.length != 2) throw new WrongUsageException(getUsage(sender)); EntityPlayer player = getPlayer(server, sender, args[1]); if (player != null) { PlacementSettings settings = new PlacementSettings(); WorldServer world = (WorldServer) sender.getEntityWorld(); int platformNumber = SpawnPlatformSavedData.get(world).addAndGetPlatformNumber(); BlockPos pos = getPositionOfPlatform(world, platformNumber); Template temp = StructureUtil.loadTemplate(new ResourceLocation(args[0]), world, true); BlockPos spawn = StructureUtil.findSpawn(temp, settings); spawn = spawn == null ? pos : spawn.add(pos); sender.sendMessage(new TextComponentString("Building \"" + args[0] + "\" at " + pos.toString())); temp.addBlocksToWorld(world, pos, settings, 2); //Push to world, with no neighbor notifications! world.getPendingBlockUpdates(new StructureBoundingBox(pos, pos.add(temp.getSize())), true); //Remove block updates, so that sand doesn't fall! if (player instanceof EntityPlayerMP) { ((EntityPlayerMP) player).setPositionAndUpdate(spawn.getX() + 0.5, spawn.getY() + 1.6, spawn.getZ() + 0.5); } player.setSpawnChunk(spawn, true, world.provider.getDimension()); } else { throw new WrongUsageException(getUsage(sender)); } }
Example 2
Source File: PlatformCommand.java From YUNoMakeGoodMap with Apache License 2.0 | 4 votes |
@Override public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { if (args.length < 1) throw new WrongUsageException(getUsage(sender)); String cmd = args[0].toLowerCase(Locale.ENGLISH); if ("list".equals(cmd)) { sender.sendMessage(new TextComponentString("Known Platforms:")); for (ResourceLocation rl : getPlatforms()) { sender.sendMessage(new TextComponentString(" " + rl.toString())); } } else if ("spawn".equals(cmd) || "preview".equals(cmd)) { if (args.length < 2) throw new WrongUsageException(getUsage(sender)); Entity ent = sender.getCommandSenderEntity(); PlacementSettings settings = new PlacementSettings(); WorldServer world = (WorldServer)sender.getEntityWorld(); if (args.length >= 3) { //TODO: Preview doesnt quite work correctly with rotations.... String rot = args[2].toLowerCase(Locale.ENGLISH); if ("0".equals(rot) || "none".equals(rot)) settings.setRotation(Rotation.NONE); else if ("90".equals(rot)) settings.setRotation(Rotation.CLOCKWISE_90); else if ("180".equals(rot)) settings.setRotation(Rotation.CLOCKWISE_180); else if ("270".equals(rot)) settings.setRotation(Rotation.COUNTERCLOCKWISE_90); else throw new WrongUsageException("Only rotations none, 0, 90, 180, and 270 allowed."); } BlockPos pos; if (args.length >= 6) pos = CommandBase.parseBlockPos(sender, args, 3, false); else if (ent != null) pos = ent.getPosition(); else throw new WrongUsageException("Must specify a position if the command sender is not an entity"); Template temp = StructureUtil.loadTemplate(new ResourceLocation(args[1]), world, true); BlockPos spawn = StructureUtil.findSpawn(temp, settings); if (spawn != null) pos = pos.subtract(spawn); if ("spawn".equals(cmd)) { sender.sendMessage(new TextComponentString("Building \"" + args[1] +"\" at " + pos.toString())); temp.addBlocksToWorld(world, pos, settings, 2); //Push to world, with no neighbor notifications! world.getPendingBlockUpdates(new StructureBoundingBox(pos, pos.add(temp.getSize())), true); //Remove block updates, so that sand doesn't fall! } else { BlockPos tpos = pos.down(); if (spawn != null) tpos = tpos.add(spawn); sender.sendMessage(new TextComponentString("Previewing \"" + args[1] +"\" at " + pos.toString())); world.setBlockState(tpos, Blocks.STRUCTURE_BLOCK.getDefaultState().withProperty(BlockStructure.MODE, TileEntityStructure.Mode.LOAD)); TileEntityStructure te = (TileEntityStructure)world.getTileEntity(tpos); if (spawn != null) te.setPosition(te.getPosition().subtract(spawn)); te.setSize(temp.getSize()); te.setMode(Mode.LOAD); te.markDirty(); } } else throw new WrongUsageException(getUsage(sender)); }