cn.nukkit.network.protocol.UpdateBlockPacket Java Examples
The following examples show how to use
cn.nukkit.network.protocol.UpdateBlockPacket.
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: NukkitQueue.java From FastAsyncWorldedit with GNU General Public License v3.0 | 5 votes |
@Override public void sendBlockUpdate(FaweChunk chunk, FawePlayer... players) { try { boolean watching = true; // TODO check if player can see chunk if (!watching) return; final ArrayList<Block> blocks = new ArrayList<>(); final int bx = chunk.getX() << 4; final int bz = chunk.getZ() << 4; chunk.forEachQueuedBlock(new FaweChunkVisitor() { @Override public void run(int localX, int y, int localZ, int combined) { Block block = Block.get(FaweCache.getId(combined), FaweCache.getData(combined)); block.x = bx + localX; block.y = y; block.z = bz + localZ; blocks.add(block); } }); Map<Level, List<Player>> playerMap = new HashMap<>(); for (FawePlayer player : players) { Player nukkitPlayer = ((FaweNukkitPlayer) player).parent; List<Player> list = playerMap.get(nukkitPlayer.getLevel()); if (list == null) { list = new ArrayList<>(); playerMap.put(nukkitPlayer.getLevel(), list); } list.add(nukkitPlayer); } Block[] blocksArray = blocks.toArray(new Block[blocks.size()]); for (Map.Entry<Level, List<Player>> levelListEntry : playerMap.entrySet()) { List<Player> playerList = levelListEntry.getValue(); levelListEntry.getKey().sendBlocks(playerList.toArray(new Player[playerList.size()]), blocksArray, UpdateBlockPacket.FLAG_ALL_PRIORITY); } } catch (Throwable e) { e.printStackTrace(); } }
Example #2
Source File: Network.java From Jupiter with GNU General Public License v3.0 | 4 votes |
private void registerPackets() { this.packetPool = new Class[256]; this.registerPacket(ProtocolInfo.ADD_BEHAVIOR_TREE_PACKET, AddBehaviorTreePacket.class);//new this.registerPacket(ProtocolInfo.ADD_ENTITY_PACKET, AddEntityPacket.class); this.registerPacket(ProtocolInfo.ADD_ITEM_ENTITY_PACKET, AddItemEntityPacket.class); this.registerPacket(ProtocolInfo.ADD_PAINTING_PACKET, AddPaintingPacket.class); this.registerPacket(ProtocolInfo.ADD_PLAYER_PACKET, AddPlayerPacket.class); this.registerPacket(ProtocolInfo.ADVENTURE_SETTINGS_PACKET, AdventureSettingsPacket.class); this.registerPacket(ProtocolInfo.ANIMATE_PACKET, AnimatePacket.class); this.registerPacket(ProtocolInfo.AVAILABLE_COMMANDS_PACKET, AvailableCommandsPacket.class); this.registerPacket(ProtocolInfo.BATCH_PACKET, BatchPacket.class); this.registerPacket(ProtocolInfo.BLOCK_ENTITY_DATA_PACKET, BlockEntityDataPacket.class); this.registerPacket(ProtocolInfo.BLOCK_EVENT_PACKET, BlockEventPacket.class); this.registerPacket(ProtocolInfo.BLOCK_PICK_REQUEST_PACKET, BlockPickRequestPacket.class); this.registerPacket(ProtocolInfo.BOOK_EDIT_PACKET, BookEditPacket.class);//new this.registerPacket(ProtocolInfo.BOSS_EVENT_PACKET, BossEventPacket.class); this.registerPacket(ProtocolInfo.CAMERA_PACKET, CameraPacket.class);//new this.registerPacket(ProtocolInfo.CHANGE_DIMENSION_PACKET, ChangeDimensionPacket.class); this.registerPacket(ProtocolInfo.CHUNK_RADIUS_UPDATED_PACKET, ChunkRadiusUpdatedPacket.class); this.registerPacket(ProtocolInfo.CLIENTBOUND_MAP_ITEM_DATA_PACKET, ClientboundMapItemDataPacket.class); this.registerPacket(ProtocolInfo.COMMAND_BLOCK_UPDATE_PACKET, CommandBlockUpdatePacket.class);//new this.registerPacket(ProtocolInfo.COMMAND_REQUEST_PACKET, CommandRequestPacket.class); this.registerPacket(ProtocolInfo.CONTAINER_CLOSE_PACKET, ContainerClosePacket.class); this.registerPacket(ProtocolInfo.CONTAINER_OPEN_PACKET, ContainerOpenPacket.class); this.registerPacket(ProtocolInfo.CONTAINER_SET_DATA_PACKET, ContainerSetDataPacket.class); this.registerPacket(ProtocolInfo.CRAFTING_DATA_PACKET, CraftingDataPacket.class); this.registerPacket(ProtocolInfo.CRAFTING_EVENT_PACKET, CraftingEventPacket.class); this.registerPacket(ProtocolInfo.DISCONNECT_PACKET, DisconnectPacket.class); this.registerPacket(ProtocolInfo.ENTITY_EVENT_PACKET, EntityEventPacket.class); this.registerPacket(ProtocolInfo.ENTITY_FALL_PACKET, EntityFallPacket.class); this.registerPacket(ProtocolInfo.EXPLODE_PACKET, ExplodePacket.class); this.registerPacket(ProtocolInfo.FULL_CHUNK_DATA_PACKET, FullChunkDataPacket.class); this.registerPacket(ProtocolInfo.GAME_RULES_CHANGED_PACKET, GameRulesChangedPacket.class); this.registerPacket(ProtocolInfo.GUI_DATA_PICK_ITEM_PACKET, GUIDataPickItemPacket.class);//new this.registerPacket(ProtocolInfo.HURT_ARMOR_PACKET, HurtArmorPacket.class); this.registerPacket(ProtocolInfo.INTERACT_PACKET, InteractPacket.class); this.registerPacket(ProtocolInfo.INVENTORY_CONTENT_PACKET, InventoryContentPacket.class); this.registerPacket(ProtocolInfo.INVENTORY_SLOT_PACKET, InventorySlotPacket.class); this.registerPacket(ProtocolInfo.INVENTORY_TRANSACTION_PACKET, InventoryTransactionPacket.class); this.registerPacket(ProtocolInfo.ITEM_FRAME_DROP_ITEM_PACKET, ItemFrameDropItemPacket.class); this.registerPacket(ProtocolInfo.LEVEL_EVENT_PACKET, LevelEventPacket.class); this.registerPacket(ProtocolInfo.LEVEL_SOUND_EVENT_PACKET, LevelSoundEventPacket.class); this.registerPacket(ProtocolInfo.LOGIN_PACKET, LoginPacket.class); this.registerPacket(ProtocolInfo.MAP_INFO_REQUEST_PACKET, MapInfoRequestPacket.class); this.registerPacket(ProtocolInfo.MOB_ARMOR_EQUIPMENT_PACKET, MobArmorEquipmentPacket.class); this.registerPacket(ProtocolInfo.MOB_EQUIPMENT_PACKET, MobEquipmentPacket.class); this.registerPacket(ProtocolInfo.MODAL_FORM_REQUEST_PACKET, ModalFormRequestPacket.class);//new this.registerPacket(ProtocolInfo.MODAL_FORM_RESPONSE_PACKET, ModalFormResponsePacket.class);//new this.registerPacket(ProtocolInfo.MOVE_ENTITY_PACKET, MoveEntityPacket.class); this.registerPacket(ProtocolInfo.MOVE_PLAYER_PACKET, MovePlayerPacket.class); this.registerPacket(ProtocolInfo.NPC_REQUEST_PACKET, NPCRequestPacket.class);//new this.registerPacket(ProtocolInfo.PLAYER_ACTION_PACKET, PlayerActionPacket.class); this.registerPacket(ProtocolInfo.PLAYER_HOTBAR_PACKET, PlayerListPacket.class); this.registerPacket(ProtocolInfo.PLAYER_INPUT_PACKET, PlayerInputPacket.class); this.registerPacket(ProtocolInfo.PLAYER_LIST_PACKET, PlayerListPacket.class); this.registerPacket(ProtocolInfo.PLAYER_SKIN_PACKET, PlayerSkinPacket.class);//new this.registerPacket(ProtocolInfo.PLAY_SOUND_PACKET, PlaySoundPacket.class); this.registerPacket(ProtocolInfo.PLAY_STATUS_PACKET, PlayStatusPacket.class); this.registerPacket(ProtocolInfo.REMOVE_ENTITY_PACKET, RemoveEntityPacket.class); this.registerPacket(ProtocolInfo.REQUEST_CHUNK_RADIUS_PACKET, RequestChunkRadiusPacket.class); this.registerPacket(ProtocolInfo.RESOURCE_PACK_CHUNK_DATA_PACKET, ResourcePackChunkDataPacket.class); this.registerPacket(ProtocolInfo.RESOURCE_PACK_CHUNK_REQUEST_PACKET, ResourcePackChunkRequestPacket.class); this.registerPacket(ProtocolInfo.RESOURCE_PACK_CLIENT_RESPONSE_PACKET, ResourcePackClientResponsePacket.class); this.registerPacket(ProtocolInfo.RESOURCE_PACK_DATA_INFO_PACKET, ResourcePackDataInfoPacket.class); this.registerPacket(ProtocolInfo.RESOURCE_PACKS_INFO_PACKET, ResourcePacksInfoPacket.class); this.registerPacket(ProtocolInfo.RESOURCE_PACK_STACK_PACKET, ResourcePackStackPacket.class); this.registerPacket(ProtocolInfo.RESPAWN_PACKET, RespawnPacket.class); this.registerPacket(ProtocolInfo.RIDER_JUMP_PACKET, RiderJumpPacket.class); this.registerPacket(ProtocolInfo.SERVER_SETTINGS_REQUEST_PACKET, ServerSettingsRequestPacket.class);//new this.registerPacket(ProtocolInfo.SERVER_SETTINGS_RESPONSE_PACKET, ServerSettingsResponsePacket.class);//new this.registerPacket(ProtocolInfo.SERVER_TO_CLIENT_HANDSHAKE_PACKET, ServerToClientHandshakePacket.class);//new this.registerPacket(ProtocolInfo.SET_COMMANDS_ENABLED_PACKET, SetCommandsEnabledPacket.class); this.registerPacket(ProtocolInfo.SET_DEFAULT_GAME_TYPE_PACKET, SetDefaultGameTypePacket.class); this.registerPacket(ProtocolInfo.SET_DIFFICULTY_PACKET, SetDifficultyPacket.class); this.registerPacket(ProtocolInfo.SET_ENTITY_DATA_PACKET, SetEntityDataPacket.class); this.registerPacket(ProtocolInfo.SET_ENTITY_LINK_PACKET, SetEntityLinkPacket.class); this.registerPacket(ProtocolInfo.SET_ENTITY_MOTION_PACKET, SetEntityMotionPacket.class); this.registerPacket(ProtocolInfo.SET_HEALTH_PACKET, SetHealthPacket.class); this.registerPacket(ProtocolInfo.SET_PLAYER_GAME_TYPE_PACKET, SetPlayerGameTypePacket.class); this.registerPacket(ProtocolInfo.SET_SPAWN_POSITION_PACKET, SetSpawnPositionPacket.class); this.registerPacket(ProtocolInfo.SET_TITLE_PACKET, SetTitlePacket.class); this.registerPacket(ProtocolInfo.SET_TIME_PACKET, SetTimePacket.class); this.registerPacket(ProtocolInfo.SHOW_CREDITS_PACKET, ShowCreditsPacket.class); this.registerPacket(ProtocolInfo.SHOW_PROFILE_PACKET, ShowProfilePacket.class); this.registerPacket(ProtocolInfo.SPAWN_EXPERIENCE_ORB_PACKET, SpawnExperienceOrbPacket.class); this.registerPacket(ProtocolInfo.START_GAME_PACKET, StartGamePacket.class); this.registerPacket(ProtocolInfo.STOP_SOUND_PACKET, StopSoundPacket.class);//new this.registerPacket(ProtocolInfo.STRUCTURE_BLOCK_UPDATE_PACKET, StructureBlockUpdatePacket.class);//new this.registerPacket(ProtocolInfo.SUB_CLIENT_LOGIN_PACKET, SubClientLoginPacket.class);//new this.registerPacket(ProtocolInfo.TAKE_ITEM_ENTITY_PACKET, TakeItemEntityPacket.class); this.registerPacket(ProtocolInfo.TELEMETRY_EVENT_PACKET, TelemetryEventPacket.class);//new this.registerPacket(ProtocolInfo.TEXT_PACKET, TextPacket.class); this.registerPacket(ProtocolInfo.TRANSFER_PACKET, TransferPacket.class);//new this.registerPacket(ProtocolInfo.UPDATE_ATTRIBUTES_PACKET, UpdateAttributesPacket.class);//new this.registerPacket(ProtocolInfo.UPDATE_BLOCK_PACKET, UpdateBlockPacket.class); this.registerPacket(ProtocolInfo.UPDATE_EQUIPMENT_PACKET, UpdateEquipmentPacket.class);//new this.registerPacket(ProtocolInfo.UPDATE_TRADE_PACKET, UpdateTradePacket.class); }
Example #3
Source File: Level.java From Jupiter with GNU General Public License v3.0 | 4 votes |
public void sendBlocks(Player[] target, Vector3[] blocks) { this.sendBlocks(target, blocks, UpdateBlockPacket.FLAG_NONE); }
Example #4
Source File: Level.java From Jupiter with GNU General Public License v3.0 | 4 votes |
public boolean setBlock(Vector3 pos, Block block, boolean direct, boolean update) { if (pos.y < 0 || pos.y >= 256) { return false; } if (this.getChunk((int) pos.x >> 4, (int) pos.z >> 4, true).setBlock((int) pos.x & 0x0f, (int) pos.y & 0xff, (int) pos.z & 0x0f, block.getId(), block.getDamage())) { Position position; if (!(pos instanceof Position)) { position = this.temporalPosition.setComponents(pos.x, pos.y, pos.z); } else { position = (Position) pos; } block.position(position); this.blockCache.remove(Level.blockHash((int) position.x, (int) position.y, (int) position.z)); Long index = Level.chunkHash((int) position.x >> 4, (int) position.z >> 4); if (direct) { this.sendBlocks(this.getChunkPlayers((int) position.x >> 4, (int) position.z >> 4).values().stream() .toArray(Player[]::new), new Block[]{block}, UpdateBlockPacket.FLAG_ALL_PRIORITY); this.chunkCache.remove(index); } else { addBlockChange(index, (int) block.x, (int) block.y, (int) block.z); } for (ChunkLoader loader : this.getChunkLoaders((int) position.x >> 4, (int) position.z >> 4)) { loader.onBlockChanged(block); } if (update) { this.updateAllLight(block); BlockUpdateEvent ev = new BlockUpdateEvent(block); this.server.getPluginManager().callEvent(ev); if (!ev.isCancelled()) { for (Entity entity : this.getNearbyEntities(new AxisAlignedBB(block.x - 1, block.y - 1, block.z - 1, block.x + 1, block.y + 1, block.z + 1))) { entity.scheduleUpdate(); } ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL); } this.updateAround(position); } return true; } return false; }