├── .gitattributes ├── .gitignore ├── .idea ├── .gitignore ├── ProtocolSupport.iml ├── ant.xml ├── libraries │ └── BuildProcessor.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── LICENSE ├── ProtocolSupport.iml ├── README.md ├── build.xml ├── buildprocessor └── BuildProcessor.jar ├── out └── production │ └── ProtocolSupport │ └── plugin.yml └── src ├── plugin.yml └── protocolsupport ├── ProtocolSupport.java ├── api ├── ProtocolSupportAPI.java ├── ProtocolVersion.java ├── chat │ ├── ChatAPI.java │ ├── components │ │ ├── BaseComponent.java │ │ ├── ScoreComponent.java │ │ ├── SelectorComponent.java │ │ ├── TextComponent.java │ │ └── TranslateComponent.java │ └── modifiers │ │ ├── ClickAction.java │ │ ├── HoverAction.java │ │ └── Modifier.java ├── events │ ├── ItemStackWriteEvent.java │ ├── LegacyServerPingResponseEvent.java │ ├── PlayerDisconnectEvent.java │ ├── PlayerEvent.java │ ├── PlayerLoginStartEvent.java │ ├── PlayerPropertiesResolveEvent.java │ └── ServerPingResponseEvent.java ├── remapper │ ├── BlockRemapperControl.java │ └── ItemRemapperControl.java ├── tab │ └── TabAPI.java ├── title │ └── TitleAPI.java └── utils │ ├── Any.java │ └── IconUtils.java ├── commands └── CommandHandler.java ├── injector ├── ServerInjector.java └── network │ ├── BasicInjector.java │ ├── NettyInjector.java │ ├── NonBlockingServerConnection.java │ └── ServerConnectionChannel.java ├── protocol ├── ClientBoundPacket.java ├── PacketDataSerializer.java ├── RecyclablePacketDataSerializer.java ├── ServerBoundPacket.java ├── core │ ├── ChannelHandlers.java │ ├── FakePacketListener.java │ ├── IPacketDecoder.java │ ├── IPacketEncoder.java │ ├── IPacketPrepender.java │ ├── IPacketSplitter.java │ ├── IPipeLineBuilder.java │ ├── initial │ │ ├── InitialPacketDecoder.java │ │ ├── ProtocolUtils.java │ │ └── SetProtocolTask.java │ ├── timeout │ │ ├── FirstReadTimeoutException.java │ │ ├── IntervalReadTimeoutException.java │ │ └── SimpleReadTimeoutHandler.java │ └── wrapped │ │ ├── WrappedDecoder.java │ │ ├── WrappedEncoder.java │ │ ├── WrappedPrepender.java │ │ └── WrappedSplitter.java ├── storage │ ├── LocalStorage.java │ ├── ProtocolStorage.java │ └── ThrottleTracker.java ├── transformer │ ├── handlers │ │ ├── AbstractHandshakeListener.java │ │ ├── AbstractLoginListener.java │ │ ├── LoginState.java │ │ ├── PacketCompressor.java │ │ ├── PacketDecompressor.java │ │ ├── PlayerLookupUUID.java │ │ └── StatusListener.java │ ├── middlepacket │ │ ├── ClientBoundMiddlePacket.java │ │ ├── MiddlePacket.java │ │ ├── ServerBoundMiddlePacket.java │ │ ├── clientbound │ │ │ ├── login │ │ │ │ ├── MiddleEncryptionRequest.java │ │ │ │ ├── MiddleLoginDisconnect.java │ │ │ │ └── MiddleLoginSuccess.java │ │ │ ├── play │ │ │ │ ├── MiddleAnimation.java │ │ │ │ ├── MiddleBlock.java │ │ │ │ ├── MiddleBlockAction.java │ │ │ │ ├── MiddleBlockBreakAnimation.java │ │ │ │ ├── MiddleBlockChangeMulti.java │ │ │ │ ├── MiddleBlockChangeSingle.java │ │ │ │ ├── MiddleBlockOpenSignEditor.java │ │ │ │ ├── MiddleBlockSignUpdate.java │ │ │ │ ├── MiddleBlockTileUpdate.java │ │ │ │ ├── MiddleChat.java │ │ │ │ ├── MiddleChunkMulti.java │ │ │ │ ├── MiddleChunkSingle.java │ │ │ │ ├── MiddleCollectEffect.java │ │ │ │ ├── MiddleCustomPayload.java │ │ │ │ ├── MiddleEntity.java │ │ │ │ ├── MiddleEntityAttach.java │ │ │ │ ├── MiddleEntityDestroy.java │ │ │ │ ├── MiddleEntityEffectAdd.java │ │ │ │ ├── MiddleEntityEffectRemove.java │ │ │ │ ├── MiddleEntityEquipment.java │ │ │ │ ├── MiddleEntityHeadRotation.java │ │ │ │ ├── MiddleEntityLook.java │ │ │ │ ├── MiddleEntityMetadata.java │ │ │ │ ├── MiddleEntityRelMove.java │ │ │ │ ├── MiddleEntityRelMoveLook.java │ │ │ │ ├── MiddleEntitySetAttributes.java │ │ │ │ ├── MiddleEntityStatus.java │ │ │ │ ├── MiddleEntityTeleport.java │ │ │ │ ├── MiddleEntityVelocity.java │ │ │ │ ├── MiddleExplosion.java │ │ │ │ ├── MiddleGameStateChange.java │ │ │ │ ├── MiddleHeldSlot.java │ │ │ │ ├── MiddleInventoryClose.java │ │ │ │ ├── MiddleInventoryConfirmTransaction.java │ │ │ │ ├── MiddleInventoryData.java │ │ │ │ ├── MiddleInventoryOpen.java │ │ │ │ ├── MiddleInventorySetItems.java │ │ │ │ ├── MiddleInventorySetSlot.java │ │ │ │ ├── MiddleKeepAlive.java │ │ │ │ ├── MiddleKickDisconnect.java │ │ │ │ ├── MiddleLogin.java │ │ │ │ ├── MiddleMap.java │ │ │ │ ├── MiddlePlayerAbilities.java │ │ │ │ ├── MiddlePlayerInfo.java │ │ │ │ ├── MiddlePosition.java │ │ │ │ ├── MiddleResourcePack.java │ │ │ │ ├── MiddleRespawn.java │ │ │ │ ├── MiddleScoreboardDisplay.java │ │ │ │ ├── MiddleScoreboardObjective.java │ │ │ │ ├── MiddleScoreboardScore.java │ │ │ │ ├── MiddleScoreboardTeam.java │ │ │ │ ├── MiddleSetExperience.java │ │ │ │ ├── MiddleSetHealth.java │ │ │ │ ├── MiddleSpawnExpOrb.java │ │ │ │ ├── MiddleSpawnGlobal.java │ │ │ │ ├── MiddleSpawnLiving.java │ │ │ │ ├── MiddleSpawnNamed.java │ │ │ │ ├── MiddleSpawnObject.java │ │ │ │ ├── MiddleSpawnPainting.java │ │ │ │ ├── MiddleSpawnPosition.java │ │ │ │ ├── MiddleStatistics.java │ │ │ │ ├── MiddleTabComplete.java │ │ │ │ ├── MiddleTimeUpdate.java │ │ │ │ ├── MiddleUseBed.java │ │ │ │ ├── MiddleWorldEvent.java │ │ │ │ ├── MiddleWorldParticle.java │ │ │ │ └── MiddleWorldSound.java │ │ │ └── status │ │ │ │ ├── MiddlePong.java │ │ │ │ └── MiddleServerInfo.java │ │ └── serverbound │ │ │ ├── handshake │ │ │ └── MiddleSetProtocol.java │ │ │ ├── login │ │ │ ├── MiddleEncryptionResponse.java │ │ │ └── MiddleLoginStart.java │ │ │ ├── play │ │ │ ├── MiddleAnimation.java │ │ │ ├── MiddleBlockDig.java │ │ │ ├── MiddleBlockPlace.java │ │ │ ├── MiddleChat.java │ │ │ ├── MiddleClientCommand.java │ │ │ ├── MiddleClientSettings.java │ │ │ ├── MiddleCreativeSetSlot.java │ │ │ ├── MiddleCustomPayload.java │ │ │ ├── MiddleEntityAction.java │ │ │ ├── MiddleFlying.java │ │ │ ├── MiddleHeldSlot.java │ │ │ ├── MiddleInventoryClick.java │ │ │ ├── MiddleInventoryClose.java │ │ │ ├── MiddleInventoryEnchant.java │ │ │ ├── MiddleInventoryTransaction.java │ │ │ ├── MiddleKeepAlive.java │ │ │ ├── MiddleLook.java │ │ │ ├── MiddlePlayerAbilities.java │ │ │ ├── MiddlePosition.java │ │ │ ├── MiddlePositionLook.java │ │ │ ├── MiddleSteerVehicle.java │ │ │ ├── MiddleTabComplete.java │ │ │ ├── MiddleUpdateSign.java │ │ │ └── MiddleUseEntity.java │ │ │ └── status │ │ │ ├── MiddlePing.java │ │ │ └── MiddleServerInfoRequest.java │ ├── middlepacketimpl │ │ ├── PacketCreator.java │ │ ├── PacketData.java │ │ ├── clientbound │ │ │ ├── login │ │ │ │ ├── v_1_4_1_5_1_6 │ │ │ │ │ └── LoginDisconnect.java │ │ │ │ ├── v_1_4_1_5_1_6_1_7 │ │ │ │ │ └── EncryptionRequest.java │ │ │ │ └── v_1_7 │ │ │ │ │ ├── LoginDisconnect.java │ │ │ │ │ └── LoginSuccess.java │ │ │ ├── play │ │ │ │ ├── v_1_4 │ │ │ │ │ └── InventoryOpen.java │ │ │ │ ├── v_1_4_1_5 │ │ │ │ │ ├── Chat.java │ │ │ │ │ ├── EntityAttach.java │ │ │ │ │ ├── PlayerAbilities.java │ │ │ │ │ ├── Position.java │ │ │ │ │ └── SetHealth.java │ │ │ │ ├── v_1_4_1_5_1_6 │ │ │ │ │ ├── Animation.java │ │ │ │ │ ├── BlockAction.java │ │ │ │ │ ├── BlockBreakAnimation.java │ │ │ │ │ ├── BlockChangeSingle.java │ │ │ │ │ ├── EntityTeleport.java │ │ │ │ │ ├── Explosion.java │ │ │ │ │ ├── GameStateChange.java │ │ │ │ │ ├── HeldSlot.java │ │ │ │ │ ├── KickDisconnect.java │ │ │ │ │ ├── Login.java │ │ │ │ │ ├── Map.java │ │ │ │ │ ├── Respawn.java │ │ │ │ │ ├── SpawnExpOrb.java │ │ │ │ │ ├── SpawnGlobal.java │ │ │ │ │ ├── SpawnLiving.java │ │ │ │ │ ├── SpawnNamed.java │ │ │ │ │ ├── SpawnObject.java │ │ │ │ │ ├── SpawnPainting.java │ │ │ │ │ ├── SpawnPosition.java │ │ │ │ │ ├── TabComplete.java │ │ │ │ │ ├── UseBed.java │ │ │ │ │ └── WorldSound.java │ │ │ │ ├── v_1_4_1_5_1_6_1_7 │ │ │ │ │ ├── BlockChangeMulti.java │ │ │ │ │ ├── BlockSignUpdate.java │ │ │ │ │ ├── BlockTileUpdate.java │ │ │ │ │ ├── ChunkMulti.java │ │ │ │ │ ├── ChunkSingle.java │ │ │ │ │ ├── CollectEffect.java │ │ │ │ │ ├── CustomPayload.java │ │ │ │ │ ├── Entity.java │ │ │ │ │ ├── EntityDestroy.java │ │ │ │ │ ├── EntityEffectAdd.java │ │ │ │ │ ├── EntityEffectRemove.java │ │ │ │ │ ├── EntityEquipment.java │ │ │ │ │ ├── EntityHeadRotation.java │ │ │ │ │ ├── EntityLook.java │ │ │ │ │ ├── EntityMetadata.java │ │ │ │ │ ├── EntityRelMove.java │ │ │ │ │ ├── EntityRelMoveLook.java │ │ │ │ │ ├── EntityStatus.java │ │ │ │ │ ├── EntityVelocity.java │ │ │ │ │ ├── InventoryClose.java │ │ │ │ │ ├── InventoryConfirmTransaction.java │ │ │ │ │ ├── InventoryData.java │ │ │ │ │ ├── InventorySetItems.java │ │ │ │ │ ├── InventorySetSlot.java │ │ │ │ │ ├── KeepAlive.java │ │ │ │ │ ├── PlayerInfo.java │ │ │ │ │ ├── ScoreboardDisplay.java │ │ │ │ │ ├── SetExperience.java │ │ │ │ │ ├── TimeUpdate.java │ │ │ │ │ └── WorldEvent.java │ │ │ │ ├── v_1_5_1_6_1_7 │ │ │ │ │ ├── InventoryOpen.java │ │ │ │ │ ├── ScoreboardObjective.java │ │ │ │ │ ├── ScoreboardScore.java │ │ │ │ │ ├── ScoreboardTeam.java │ │ │ │ │ └── WorldParticle.java │ │ │ │ ├── v_1_6 │ │ │ │ │ ├── BlockOpenSignEditor.java │ │ │ │ │ ├── Chat.java │ │ │ │ │ └── Position.java │ │ │ │ ├── v_1_6_1_7 │ │ │ │ │ ├── EntityAttach.java │ │ │ │ │ ├── EntitySetAttributes.java │ │ │ │ │ ├── PlayerAbilities.java │ │ │ │ │ └── SetHealth.java │ │ │ │ └── v_1_7 │ │ │ │ │ ├── Animation.java │ │ │ │ │ ├── BlockAction.java │ │ │ │ │ ├── BlockBreakAnimation.java │ │ │ │ │ ├── BlockChangeSingle.java │ │ │ │ │ ├── BlockOpenSignEditor.java │ │ │ │ │ ├── Chat.java │ │ │ │ │ ├── EntityTeleport.java │ │ │ │ │ ├── Explosion.java │ │ │ │ │ ├── GameStateChange.java │ │ │ │ │ ├── HeldSlot.java │ │ │ │ │ ├── KickDisconnect.java │ │ │ │ │ ├── Login.java │ │ │ │ │ ├── Map.java │ │ │ │ │ ├── Position.java │ │ │ │ │ ├── ResourcePack.java │ │ │ │ │ ├── Respawn.java │ │ │ │ │ ├── SpawnExpOrb.java │ │ │ │ │ ├── SpawnGlobal.java │ │ │ │ │ ├── SpawnLiving.java │ │ │ │ │ ├── SpawnNamed.java │ │ │ │ │ ├── SpawnObject.java │ │ │ │ │ ├── SpawnPainting.java │ │ │ │ │ ├── SpawnPosition.java │ │ │ │ │ ├── Statistics.java │ │ │ │ │ ├── TabComplete.java │ │ │ │ │ ├── UseBed.java │ │ │ │ │ └── WorldSound.java │ │ │ └── status │ │ │ │ ├── v_1_5_1_6 │ │ │ │ └── ServerInfo.java │ │ │ │ └── v_1_7 │ │ │ │ ├── Pong.java │ │ │ │ └── ServerInfo.java │ │ └── serverbound │ │ │ ├── handshake │ │ │ ├── v_1_4_1_5_1_6 │ │ │ │ └── ClientLogin.java │ │ │ ├── v_1_5 │ │ │ │ └── Ping.java │ │ │ ├── v_1_6 │ │ │ │ └── Ping.java │ │ │ └── v_1_7 │ │ │ │ └── SetProtocol.java │ │ │ ├── login │ │ │ ├── v_1_4_1_5_1_6_1_7 │ │ │ │ └── EncryptionResponse.java │ │ │ └── v_1_7 │ │ │ │ └── LoginStart.java │ │ │ ├── play │ │ │ ├── v_1_4_1_5 │ │ │ │ ├── EntityAction.java │ │ │ │ ├── PlayerAbilities.java │ │ │ │ └── PositionLook.java │ │ │ ├── v_1_4_1_5_1_6 │ │ │ │ ├── ClientCommand.java │ │ │ │ ├── ClientSettings.java │ │ │ │ ├── CustomPayload.java │ │ │ │ ├── KickDisconnect.java │ │ │ │ └── UseEntity.java │ │ │ ├── v_1_4_1_5_1_6_1_7 │ │ │ │ ├── Animation.java │ │ │ │ ├── BlockDig.java │ │ │ │ ├── BlockPlace.java │ │ │ │ ├── Chat.java │ │ │ │ ├── CreativeSetSlot.java │ │ │ │ ├── Flying.java │ │ │ │ ├── HeldSlot.java │ │ │ │ ├── InventoryClick.java │ │ │ │ ├── InventoryClose.java │ │ │ │ ├── InventoryEnchant.java │ │ │ │ ├── InventoryTransaction.java │ │ │ │ ├── KeepAlive.java │ │ │ │ ├── Look.java │ │ │ │ ├── Position.java │ │ │ │ ├── TabComplete.java │ │ │ │ └── UpdateSign.java │ │ │ ├── v_1_6_1_7 │ │ │ │ ├── EntityAction.java │ │ │ │ ├── PlayerAbilities.java │ │ │ │ ├── PositionLook.java │ │ │ │ └── SteerVehicle.java │ │ │ └── v_1_7 │ │ │ │ ├── ClientCommand.java │ │ │ │ ├── ClientSettings.java │ │ │ │ ├── CustomPayload.java │ │ │ │ └── UseEntity.java │ │ │ └── status │ │ │ └── v_1_7 │ │ │ ├── Ping.java │ │ │ └── ServerInfoRequest.java │ ├── utils │ │ ├── ChunkTransformer.java │ │ ├── LegacyUtils.java │ │ ├── MapTransformer.java │ │ ├── ServerPingSerializers.java │ │ └── registry │ │ │ ├── MiddleTransformerRegistry.java │ │ │ └── PacketIdTransformerRegistry.java │ ├── v_1_4 │ │ ├── HandshakeListener.java │ │ ├── LoginListener.java │ │ ├── PacketDecoder.java │ │ ├── PacketDecrypter.java │ │ ├── PacketEncoder.java │ │ ├── PacketPrepender.java │ │ ├── PacketSplitter.java │ │ └── PipeLineBuilder.java │ ├── v_1_5 │ │ ├── HandshakeListener.java │ │ ├── LoginListener.java │ │ ├── PacketDecoder.java │ │ ├── PacketDecrypter.java │ │ ├── PacketEncoder.java │ │ ├── PacketPrepender.java │ │ ├── PacketSplitter.java │ │ └── PipeLineBuilder.java │ ├── v_1_6 │ │ ├── HandshakeListener.java │ │ ├── LoginListener.java │ │ ├── PacketDecoder.java │ │ ├── PacketDecrypter.java │ │ ├── PacketEncoder.java │ │ ├── PacketPrepender.java │ │ ├── PacketSplitter.java │ │ ├── PipeLineBuilder.java │ │ └── utils │ │ │ └── ChatEncoder.java │ ├── v_1_7 │ │ ├── HandshakeListener.java │ │ ├── LoginListener.java │ │ ├── PacketDecoder.java │ │ ├── PacketEncoder.java │ │ ├── PacketPrepender.java │ │ ├── PacketSplitter.java │ │ ├── PipeLineBuilder.java │ │ └── utils │ │ │ └── ChatJsonConverter.java │ ├── v_1_8 │ │ ├── HandshakeListener.java │ │ ├── LoginListener.java │ │ ├── PacketDecoder.java │ │ ├── PacketEncoder.java │ │ ├── PacketPrepender.java │ │ ├── PacketSplitter.java │ │ └── PipeLineBuilder.java │ └── v_legacy │ │ ├── LegacyLoginAndPingHandler.java │ │ └── PipeLineBuilder.java ├── typeremapper │ ├── id │ │ ├── IdRemapper.java │ │ ├── RemappingRegistry.java │ │ └── RemappingTable.java │ ├── nbt │ │ ├── custompayload │ │ │ ├── CustomPayloadSerializer.java │ │ │ └── MerchantData.java │ │ └── tileupdate │ │ │ ├── SpecificTransformer.java │ │ │ └── TileNBTTransformer.java │ └── watchedentity │ │ ├── WatchedDataRemapper.java │ │ ├── remapper │ │ ├── RemappingEntry.java │ │ ├── SpecificType.java │ │ └── value │ │ │ ├── ValueRemapper.java │ │ │ ├── ValueRemapperStringClamp.java │ │ │ ├── ValueRemapperToByte.java │ │ │ └── ValueRemapperToInt.java │ │ └── types │ │ ├── WatchedEntity.java │ │ ├── WatchedLiving.java │ │ ├── WatchedObject.java │ │ └── WatchedPlayer.java └── typeskipper │ └── id │ ├── IdSkipper.java │ ├── SkippingRegistry.java │ └── SkippingTable.java ├── server ├── block │ ├── BlockAnvil.java │ ├── BlockCarpet.java │ ├── BlockEnchantTable.java │ └── BlockSnow.java ├── container │ ├── ContainerAnvil.java │ └── ContainerEnchantTable.java ├── item │ └── ItemSnow.java ├── listeners │ └── PlayerListener.java └── tileentity │ ├── TileEntityContainerAnvil.java │ └── TileEntityEnchantTable.java └── utils ├── DataWatcherObject.java ├── DataWatcherSerializer.java ├── JsonUtils.java ├── ProtocolVersionsHelper.java ├── ReflectionUtils.java.txt ├── Utils.java ├── chat ├── ClickActionSerializer.java ├── ComponentSerializer.java ├── HoverActionSerializer.java └── ModifierSerializer.java ├── netty ├── Allocator.java ├── ChannelUtils.java ├── Compressor.java ├── ReplayingDecoderBuffer.java └── WrappingBuffer.java └── recyclable ├── RecyclableArrayList.java ├── RecyclableCollection.java ├── RecyclableEmptyList.java └── RecyclableSingletonList.java /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Build Folders # 2 | bin/ 3 | build/ 4 | target/ 5 | libs/ 6 | out/ 7 | .externalToolBuilders/ 8 | # Eclipse Files # 9 | *.project 10 | *.classpath 11 | *.prefs 12 | /.apt_generated/ 13 | *.factorypath 14 | /.idea 15 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # 默认忽略的文件 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/ProtocolSupport.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/ant.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/libraries/BuildProcessor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ProtocolSupport.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is an Unoffical fork of ProtocolSupport 1.8.8 with Mappings fixes and old April Fools versions support 2 | =============== 3 | 4 | This fork of ProtocolSupport 1.8.8 supports all 1.7.10-1.4.6 and 15w14a, 2.0 April Fools versions, with some mappings fixes to fix 1.4.6-1.6.4 crashes. Please use **TacoSpigot & Forks** instead of paper to avoid problem with 1.7.X clients. 5 | 6 | Known issues: 7 | * [15w14a] Carrot on a stick crashes client 8 | * [1.7/1.7.1] Random kick 9 | * [1.6.4 and earlier] Stats are not sent - won't be fixed 10 | * [1.5.2 and earlier] Can't control vehicle - won't be fixed, probably impossible to do this properly 11 | * [1.4.7 and earlier] Online mode likely unable to connect 12 | * [1.4.5 and earlier] Aren't supported yet 13 | 14 | ================ 15 | 16 | If you want improve more, Please contact on Github https://github.com/HowardZHY/ProtocolSupport 17 | 18 | ================ 19 | 20 | Licensed under the terms of GNU AGPLv3 21 | -------------------------------------------------------------------------------- /build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /buildprocessor/BuildProcessor.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HowardZHY/ProtocolSupport/049cff4dc82879fc8f687ff0c77064319a047b02/buildprocessor/BuildProcessor.jar -------------------------------------------------------------------------------- /out/production/ProtocolSupport/plugin.yml: -------------------------------------------------------------------------------- 1 | name: ProtocolSupport 2 | main: protocolsupport.ProtocolSupport 3 | version: 4.23.dev 4 | author: _Shevchik_ 5 | load: STARTUP 6 | commands: 7 | protocolsupport: 8 | description: All ProtocolSupport commands 9 | aliases: ps 10 | usage: Invalid command -------------------------------------------------------------------------------- /src/plugin.yml: -------------------------------------------------------------------------------- 1 | name: ProtocolSupport 2 | main: protocolsupport.ProtocolSupport 3 | version: 4.23.dev 4 | author: _Shevchik_ 5 | load: STARTUP 6 | commands: 7 | protocolsupport: 8 | description: All ProtocolSupport commands 9 | aliases: ps 10 | usage: Invalid command -------------------------------------------------------------------------------- /src/protocolsupport/api/ProtocolSupportAPI.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api; 2 | 3 | import java.net.SocketAddress; 4 | 5 | import org.bukkit.entity.Player; 6 | 7 | import protocolsupport.api.remapper.BlockRemapperControl; 8 | import protocolsupport.api.remapper.ItemRemapperControl; 9 | import protocolsupport.protocol.storage.ProtocolStorage; 10 | 11 | public class ProtocolSupportAPI { 12 | 13 | public static ProtocolVersion getProtocolVersion(Player player) { 14 | return ProtocolStorage.getProtocolVersion(player.getAddress()); 15 | } 16 | 17 | public static ProtocolVersion getProtocolVersion(SocketAddress address) { 18 | return ProtocolStorage.getProtocolVersion(address); 19 | } 20 | 21 | public static ItemRemapperControl getItemRemapper(ProtocolVersion version) { 22 | return new ItemRemapperControl(version); 23 | } 24 | 25 | public static BlockRemapperControl getBlockRemapper(ProtocolVersion version) { 26 | return new BlockRemapperControl(version); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/protocolsupport/api/chat/components/SelectorComponent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.chat.components; 2 | 3 | public class SelectorComponent extends BaseComponent { 4 | 5 | private String selector; 6 | 7 | public SelectorComponent(String selector) { 8 | this.selector = selector; 9 | } 10 | 11 | @Override 12 | public String getValue() { 13 | return selector; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/api/chat/components/TextComponent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.chat.components; 2 | 3 | public class TextComponent extends BaseComponent { 4 | 5 | private String text; 6 | 7 | public TextComponent(String text) { 8 | this.text = text; 9 | } 10 | 11 | @Override 12 | public String getValue() { 13 | return text; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/api/chat/components/TranslateComponent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.chat.components; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class TranslateComponent extends BaseComponent { 7 | 8 | private String translationKey; 9 | private List args = new ArrayList(); 10 | 11 | public TranslateComponent(String translationKey, Object... values) { 12 | this.translationKey = translationKey; 13 | for (Object v : values) { 14 | this.args.add(v); 15 | } 16 | } 17 | 18 | public String getTranslationKey() { 19 | return translationKey; 20 | } 21 | 22 | public List getArgs() { 23 | return args; 24 | } 25 | 26 | @Override 27 | public String getValue() { 28 | return ""; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/protocolsupport/api/chat/modifiers/ClickAction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.chat.modifiers; 2 | 3 | import java.net.MalformedURLException; 4 | import java.net.URL; 5 | 6 | public class ClickAction { 7 | 8 | private Type type; 9 | private String value; 10 | 11 | public ClickAction(Type action, String value) { 12 | this.type = action; 13 | this.value = value; 14 | } 15 | 16 | public ClickAction(URL url) { 17 | this.type = Type.OPEN_URL; 18 | this.value = url.toString(); 19 | } 20 | 21 | public Type getType() { 22 | return type; 23 | } 24 | 25 | public String getValue() { 26 | return value; 27 | } 28 | 29 | public URL getUrl() throws MalformedURLException { 30 | if (type == Type.OPEN_URL) { 31 | return new URL(value); 32 | } 33 | throw new IllegalStateException(type + " is not an " + Type.OPEN_URL); 34 | } 35 | 36 | public static enum Type { 37 | OPEN_URL, OPEN_FILE, RUN_COMMAND, TWITCH_USER_INFO, SUGGEST_COMMAND, CHANGE_PAGE; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/protocolsupport/api/events/ItemStackWriteEvent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.events; 2 | 3 | import org.bukkit.event.Event; 4 | import org.bukkit.event.HandlerList; 5 | import org.bukkit.inventory.ItemStack; 6 | 7 | import protocolsupport.api.ProtocolVersion; 8 | 9 | public abstract class ItemStackWriteEvent extends Event { 10 | 11 | private final ProtocolVersion version; 12 | private final ItemStack original; 13 | public ItemStackWriteEvent(ProtocolVersion version, ItemStack original) { 14 | this.version = version; 15 | this.original = original.clone(); 16 | } 17 | 18 | public ItemStack getOriginal() { 19 | return original.clone(); 20 | } 21 | 22 | public ProtocolVersion getVersion() { 23 | return version; 24 | } 25 | 26 | public abstract ItemStack getResult(); 27 | 28 | private static final HandlerList list = new HandlerList(); 29 | 30 | @Override 31 | public HandlerList getHandlers() { 32 | return list; 33 | } 34 | 35 | public static HandlerList getHandlerList() { 36 | return list; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/protocolsupport/api/events/LegacyServerPingResponseEvent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.events; 2 | 3 | import java.net.InetSocketAddress; 4 | 5 | @Deprecated 6 | public class LegacyServerPingResponseEvent extends ServerPingResponseEvent { 7 | 8 | public LegacyServerPingResponseEvent(InetSocketAddress address, String motd, int maxPlayers) { 9 | super(address, null, null, motd, maxPlayers, null); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/protocolsupport/api/events/PlayerDisconnectEvent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.events; 2 | 3 | import java.net.InetSocketAddress; 4 | 5 | import org.bukkit.event.HandlerList; 6 | 7 | public class PlayerDisconnectEvent extends PlayerEvent { 8 | 9 | public PlayerDisconnectEvent(InetSocketAddress address, String username) { 10 | super(address, username); 11 | } 12 | 13 | private static final HandlerList list = new HandlerList(); 14 | 15 | @Override 16 | public HandlerList getHandlers() { 17 | return list; 18 | } 19 | 20 | public static HandlerList getHandlerList() { 21 | return list; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/api/events/PlayerEvent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.events; 2 | 3 | import java.net.InetSocketAddress; 4 | 5 | import org.bukkit.event.Event; 6 | 7 | public abstract class PlayerEvent extends Event { 8 | 9 | private final InetSocketAddress address; 10 | private final String username; 11 | 12 | public PlayerEvent(InetSocketAddress address, String username) { 13 | this.address = address; 14 | this.username = username; 15 | } 16 | 17 | public InetSocketAddress getAddress() { 18 | return address; 19 | } 20 | 21 | public String getName() { 22 | return username; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/api/utils/Any.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.api.utils; 2 | 3 | public class Any { 4 | 5 | private final T1 obj1; 6 | private final T2 obj2; 7 | 8 | public Any(T1 t1, T2 t2) { 9 | this.obj1 = t1; 10 | this.obj2 = t2; 11 | } 12 | 13 | public boolean hasObj1() { 14 | return obj1 != null; 15 | } 16 | 17 | public boolean hasObj2() { 18 | return obj2 != null; 19 | } 20 | 21 | public T1 getObj1() { 22 | return obj1; 23 | } 24 | 25 | public T2 getObj2() { 26 | return obj2; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/FakePacketListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core; 2 | 3 | import net.minecraft.server.v1_8_R3.IChatBaseComponent; 4 | import net.minecraft.server.v1_8_R3.PacketListener; 5 | 6 | public class FakePacketListener implements PacketListener { 7 | 8 | @Override 9 | public void a(IChatBaseComponent chat) { 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/IPacketDecoder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core; 2 | 3 | import java.util.List; 4 | 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.channel.ChannelHandlerContext; 7 | 8 | public interface IPacketDecoder { 9 | 10 | public void decode(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/IPacketEncoder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import net.minecraft.server.v1_8_R3.Packet; 6 | import net.minecraft.server.v1_8_R3.PacketListener; 7 | 8 | public interface IPacketEncoder { 9 | 10 | public void encode(ChannelHandlerContext ctx, Packet packet, ByteBuf output) throws Exception; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/IPacketPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | 6 | public interface IPacketPrepender { 7 | 8 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/IPacketSplitter.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core; 2 | 3 | import java.util.List; 4 | 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.channel.ChannelHandlerContext; 7 | 8 | public interface IPacketSplitter { 9 | 10 | public void split(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/IPipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core; 2 | 3 | import io.netty.channel.Channel; 4 | import protocolsupport.api.ProtocolVersion; 5 | 6 | public interface IPipeLineBuilder { 7 | 8 | public void buildPipeLine(Channel channel, ProtocolVersion version); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/initial/SetProtocolTask.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core.initial; 2 | 3 | import io.netty.channel.Channel; 4 | import protocolsupport.api.ProtocolVersion; 5 | 6 | public class SetProtocolTask implements Runnable { 7 | 8 | private final InitialPacketDecoder initialDecoder; 9 | private final Channel channel; 10 | private final ProtocolVersion version; 11 | 12 | public SetProtocolTask(InitialPacketDecoder initialDecoder, Channel channel, ProtocolVersion version) { 13 | this.initialDecoder = initialDecoder; 14 | this.channel = channel; 15 | this.version = version; 16 | } 17 | 18 | @Override 19 | public void run() { 20 | try { 21 | initialDecoder.setProtocol(channel, version); 22 | } catch (Exception t) { 23 | channel.pipeline().firstContext().fireExceptionCaught(t); 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/timeout/FirstReadTimeoutException.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core.timeout; 2 | 3 | import net.minecraft.server.v1_8_R3.MinecraftServer; 4 | 5 | public class FirstReadTimeoutException extends RuntimeException { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | private static final FirstReadTimeoutException notraceinstance = new FirstReadTimeoutException(-1) { 10 | private static final long serialVersionUID = 1L; 11 | @Override 12 | public FirstReadTimeoutException fillInStackTrace() { 13 | return this; 14 | } 15 | }; 16 | 17 | public static FirstReadTimeoutException getInstance(long lastReadTime) { 18 | return MinecraftServer.getServer().isDebugging() ? new FirstReadTimeoutException(lastReadTime) : notraceinstance; 19 | } 20 | 21 | private FirstReadTimeoutException(long lastReadTime) { 22 | super(lastReadTime == -1 ? "read timed out" : "read timed out: last message recv time: "+lastReadTime); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/timeout/IntervalReadTimeoutException.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core.timeout; 2 | 3 | import net.minecraft.server.v1_8_R3.MinecraftServer; 4 | 5 | public class IntervalReadTimeoutException extends RuntimeException { 6 | 7 | public static final long serialVersionUID = 1L; 8 | 9 | public static final IntervalReadTimeoutException notraceinstance = new IntervalReadTimeoutException(-1) { 10 | public static final long serialVersionUID = 1L; 11 | @Override 12 | public IntervalReadTimeoutException fillInStackTrace() { 13 | return this; 14 | } 15 | }; 16 | 17 | public static IntervalReadTimeoutException getInstance(long lastReadTime) { 18 | return MinecraftServer.getServer().isDebugging() ? new IntervalReadTimeoutException(lastReadTime) : notraceinstance; 19 | } 20 | 21 | public IntervalReadTimeoutException(long lastReadTime) { 22 | super(lastReadTime == -1 ? "read timed out" : "read timed out: last message recv time: "+lastReadTime); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/wrapped/WrappedEncoder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core.wrapped; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import io.netty.handler.codec.MessageToByteEncoder; 6 | import net.minecraft.server.v1_8_R3.Packet; 7 | import net.minecraft.server.v1_8_R3.PacketListener; 8 | import protocolsupport.protocol.core.IPacketEncoder; 9 | 10 | public class WrappedEncoder extends MessageToByteEncoder> { 11 | 12 | public WrappedEncoder() { 13 | super(true); 14 | } 15 | 16 | private IPacketEncoder realEncoder = new IPacketEncoder() { 17 | @Override 18 | public void encode(ChannelHandlerContext ctx, Packet packet, ByteBuf output) throws Exception { 19 | } 20 | }; 21 | 22 | public void setRealEncoder(IPacketEncoder realEncoder) { 23 | this.realEncoder = realEncoder; 24 | } 25 | 26 | @Override 27 | protected void encode(ChannelHandlerContext ctx, Packet packet, ByteBuf output) throws Exception { 28 | realEncoder.encode(ctx, packet, output); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/wrapped/WrappedPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core.wrapped; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import io.netty.handler.codec.MessageToByteEncoder; 6 | import protocolsupport.protocol.core.IPacketPrepender; 7 | 8 | public class WrappedPrepender extends MessageToByteEncoder { 9 | 10 | public WrappedPrepender() { 11 | super(true); 12 | } 13 | 14 | private IPacketPrepender realPrepender = new IPacketPrepender() { 15 | @Override 16 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 17 | } 18 | }; 19 | 20 | public void setRealPrepender(IPacketPrepender realEncoder) { 21 | this.realPrepender = realEncoder; 22 | } 23 | 24 | @Override 25 | protected void encode(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 26 | if (!input.isReadable()) { 27 | return; 28 | } 29 | realPrepender.prepend(ctx, input, output); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/core/wrapped/WrappedSplitter.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.core.wrapped; 2 | 3 | import java.util.List; 4 | 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.channel.ChannelHandlerContext; 7 | import io.netty.handler.codec.ByteToMessageDecoder; 8 | import protocolsupport.protocol.core.IPacketSplitter; 9 | 10 | public class WrappedSplitter extends ByteToMessageDecoder { 11 | 12 | private IPacketSplitter realSplitter = new IPacketSplitter() { 13 | @Override 14 | public void split(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception { 15 | } 16 | }; 17 | 18 | public void setRealSplitter(IPacketSplitter realSplitter) { 19 | this.realSplitter = realSplitter; 20 | } 21 | 22 | @Override 23 | protected void decode(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception { 24 | if (!input.isReadable()) { 25 | return; 26 | } 27 | realSplitter.split(ctx, input, list); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/storage/ProtocolStorage.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.storage; 2 | 3 | import java.net.SocketAddress; 4 | import java.util.concurrent.ConcurrentHashMap; 5 | 6 | import protocolsupport.api.ProtocolVersion; 7 | 8 | public class ProtocolStorage { 9 | 10 | private static final ConcurrentHashMap versions = new ConcurrentHashMap(1000); 11 | 12 | public static final void setProtocolVersion(SocketAddress address, ProtocolVersion version) { 13 | versions.put(address, version); 14 | } 15 | 16 | public static ProtocolVersion getProtocolVersion(SocketAddress address) { 17 | ProtocolVersion version = versions.get(address); 18 | return version != null ? version : ProtocolVersion.UNKNOWN; 19 | } 20 | 21 | public static void clearData(SocketAddress socketAddress) { 22 | versions.remove(socketAddress); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/handlers/LoginState.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.handlers; 2 | 3 | public enum LoginState { 4 | HELLO, ONLINEMODERESOLVE, KEY, AUTHENTICATING, READY_TO_ACCEPT, ACCEPTED; 5 | } -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/ClientBoundMiddlePacket.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.storage.LocalStorage; 8 | 9 | public abstract class ClientBoundMiddlePacket extends MiddlePacket { 10 | 11 | protected LocalStorage storage; 12 | 13 | public void setLocalStorage(LocalStorage storage) { 14 | this.storage = storage; 15 | } 16 | 17 | public void handle() { 18 | } 19 | 20 | public abstract void readFromServerData(PacketDataSerializer serializer) throws IOException; 21 | 22 | public abstract T toData(ProtocolVersion version) throws IOException; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/MiddlePacket.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public abstract class MiddlePacket { 6 | 7 | protected Player player; 8 | 9 | public boolean needsPlayer() { 10 | return false; 11 | } 12 | 13 | public final void setPlayer(Player player) { 14 | this.player = player; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/ServerBoundMiddlePacket.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.Packet; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | 9 | public abstract class ServerBoundMiddlePacket extends MiddlePacket { 10 | 11 | public abstract void readFromClientData(PacketDataSerializer serializer) throws IOException; 12 | 13 | public abstract RecyclableCollection> toNative() throws Exception; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/login/MiddleEncryptionRequest.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.login; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleEncryptionRequest extends ClientBoundMiddlePacket { 9 | 10 | protected String serverId; 11 | protected byte[] publicKey; 12 | protected byte[] verifyToken; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | serverId = serializer.readString(Short.MAX_VALUE); 17 | publicKey = serializer.readArray(); 18 | verifyToken = serializer.readArray(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/login/MiddleLoginDisconnect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.login; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleLoginDisconnect extends ClientBoundMiddlePacket { 9 | 10 | protected String messageJson; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | messageJson = serializer.readString(Short.MAX_VALUE); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/login/MiddleLoginSuccess.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.login; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleLoginSuccess extends ClientBoundMiddlePacket { 7 | 8 | protected String uuidstring; 9 | protected String name; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) { 13 | uuidstring = serializer.readString(36); 14 | name = serializer.readString(16); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleAnimation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleAnimation extends ClientBoundMiddlePacket { 9 | 10 | protected int entityId; 11 | protected int animation; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | entityId = serializer.readVarInt(); 16 | animation = serializer.readUnsignedByte(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlock.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleBlock extends ClientBoundMiddlePacket { 10 | 11 | protected BlockPosition position; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | position = serializer.readPosition(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockAction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleBlockAction extends MiddleBlock { 8 | 9 | protected int info1; 10 | protected int info2; 11 | protected int type; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | super.readFromServerData(serializer); 16 | info1 = serializer.readUnsignedByte(); 17 | info2 = serializer.readUnsignedByte(); 18 | type = serializer.readVarInt(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockBreakAnimation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleBlockBreakAnimation extends MiddleBlock { 8 | 9 | protected int entityId; 10 | protected int stage; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | entityId = serializer.readVarInt(); 15 | super.readFromServerData(serializer); 16 | stage = serializer.readByte(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockChangeMulti.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleBlockChangeMulti extends ClientBoundMiddlePacket { 9 | 10 | protected int chunkX; 11 | protected int chunkZ; 12 | protected Record[] records; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | chunkX = serializer.readInt(); 17 | chunkZ = serializer.readInt(); 18 | records = new Record[serializer.readVarInt()]; 19 | for (int i = 0; i < records.length; i++) { 20 | Record record = new Record(); 21 | record.coord = serializer.readUnsignedShort(); 22 | record.id = serializer.readVarInt(); 23 | records[i] = record; 24 | } 25 | } 26 | 27 | protected static class Record { 28 | public int coord; 29 | public int id; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockChangeSingle.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleBlockChangeSingle extends MiddleBlock { 8 | 9 | protected int id; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 13 | super.readFromServerData(serializer); 14 | id = serializer.readVarInt(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockOpenSignEditor.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | public abstract class MiddleBlockOpenSignEditor extends MiddleBlock { 4 | } 5 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockSignUpdate.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleBlockSignUpdate extends MiddleBlock { 8 | 9 | protected String[] linesJson = new String[4]; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 13 | super.readFromServerData(serializer); 14 | for (int i = 0; i < linesJson.length; i++) { 15 | linesJson[i] = serializer.readString(Short.MAX_VALUE); 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleBlockTileUpdate.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | 8 | public abstract class MiddleBlockTileUpdate extends MiddleBlock { 9 | 10 | protected int type; 11 | protected NBTTagCompound tag; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | super.readFromServerData(serializer); 16 | type = serializer.readUnsignedByte(); 17 | tag = serializer.readTag(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleChat.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleChat extends ClientBoundMiddlePacket { 7 | 8 | protected String chatJson; 9 | 10 | @Override 11 | public void readFromServerData(PacketDataSerializer serializer) { 12 | chatJson = serializer.readString(Short.MAX_VALUE); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleChunkSingle.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleChunkSingle extends ClientBoundMiddlePacket { 9 | 10 | protected int chunkX; 11 | protected int chunkZ; 12 | protected boolean cont; 13 | protected int bitmask; 14 | protected byte[] data; 15 | 16 | @Override 17 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 18 | chunkX = serializer.readInt(); 19 | chunkZ = serializer.readInt(); 20 | cont = serializer.readBoolean(); 21 | bitmask = serializer.readUnsignedShort(); 22 | data = serializer.readArray(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleCollectEffect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleCollectEffect extends ClientBoundMiddlePacket { 7 | 8 | protected int entityId; 9 | protected int collectorId; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) { 13 | entityId = serializer.readVarInt(); 14 | collectorId = serializer.readVarInt(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleCustomPayload.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | import protocolsupport.utils.netty.ChannelUtils; 6 | 7 | public abstract class MiddleCustomPayload extends ClientBoundMiddlePacket { 8 | 9 | protected String tag; 10 | protected byte[] data; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) { 14 | tag = serializer.readString(20); 15 | data = ChannelUtils.toArray(serializer); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleEntity extends ClientBoundMiddlePacket { 9 | 10 | protected int entityId; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | entityId = serializer.readVarInt(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityAttach.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleEntityAttach extends ClientBoundMiddlePacket { 9 | 10 | protected int entityId; 11 | protected int vehicleId; 12 | protected boolean leash; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | entityId = serializer.readInt(); 17 | vehicleId = serializer.readInt(); 18 | leash = serializer.readBoolean(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityDestroy.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleEntityDestroy extends ClientBoundMiddlePacket { 7 | 8 | protected int[] entityIds; 9 | 10 | @Override 11 | public void readFromServerData(PacketDataSerializer serializer) { 12 | entityIds = new int[serializer.readVarInt()]; 13 | for (int i = 0; i < entityIds.length; i++) { 14 | entityIds[i] = serializer.readVarInt(); 15 | } 16 | } 17 | 18 | @Override 19 | public void handle() { 20 | storage.removeWatchedEntities(entityIds); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityEffectAdd.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityEffectAdd extends MiddleEntity { 8 | 9 | protected int effectId; 10 | protected int amplifier; 11 | protected int duration; 12 | protected boolean hideParticles; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | super.readFromServerData(serializer); 17 | effectId = serializer.readByte(); 18 | amplifier = serializer.readByte(); 19 | duration = serializer.readVarInt(); 20 | hideParticles = serializer.readBoolean(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityEffectRemove.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityEffectRemove extends MiddleEntity { 8 | 9 | protected int effectId; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 13 | super.readFromServerData(serializer); 14 | effectId = serializer.readByte(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityEquipment.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.ItemStack; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleEntityEquipment extends ClientBoundMiddlePacket { 10 | 11 | protected int entityId; 12 | protected int slot; 13 | protected ItemStack itemstack; 14 | 15 | @Override 16 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 17 | entityId = serializer.readVarInt(); 18 | slot = serializer.readShort(); 19 | itemstack = serializer.readItemStack(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityHeadRotation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityHeadRotation extends MiddleEntity { 8 | 9 | protected byte headRot; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 13 | super.readFromServerData(serializer); 14 | headRot = serializer.readByte(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityLook.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityLook extends MiddleEntity { 8 | 9 | protected int yaw; 10 | protected int pitch; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | super.readFromServerData(serializer); 15 | yaw = serializer.readByte(); 16 | pitch = serializer.readByte(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityMetadata.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import gnu.trove.map.TIntObjectMap; 6 | import protocolsupport.api.ProtocolVersion; 7 | import protocolsupport.protocol.PacketDataSerializer; 8 | import protocolsupport.utils.DataWatcherObject; 9 | import protocolsupport.utils.DataWatcherSerializer; 10 | import protocolsupport.utils.netty.ChannelUtils; 11 | 12 | public abstract class MiddleEntityMetadata extends MiddleEntity { 13 | 14 | protected TIntObjectMap metadata; 15 | 16 | @Override 17 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 18 | super.readFromServerData(serializer); 19 | metadata = DataWatcherSerializer.decodeData(ProtocolVersion.MINECRAFT_1_8, ChannelUtils.toArray(serializer)); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityRelMove.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityRelMove extends MiddleEntity { 8 | 9 | protected int relX; 10 | protected int relY; 11 | protected int relZ; 12 | protected boolean onGround; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | super.readFromServerData(serializer); 17 | relX = serializer.readByte(); 18 | relY = serializer.readByte(); 19 | relZ = serializer.readByte(); 20 | onGround = serializer.readBoolean(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityRelMoveLook.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityRelMoveLook extends MiddleEntity { 8 | 9 | protected int relX; 10 | protected int relY; 11 | protected int relZ; 12 | protected int yaw; 13 | protected int pitch; 14 | protected boolean onGround; 15 | 16 | @Override 17 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 18 | super.readFromServerData(serializer); 19 | relX = serializer.readByte(); 20 | relY = serializer.readByte(); 21 | relZ = serializer.readByte(); 22 | yaw = serializer.readByte(); 23 | pitch = serializer.readByte(); 24 | onGround = serializer.readBoolean(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityStatus.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleEntityStatus extends ClientBoundMiddlePacket { 9 | 10 | protected int entityId; 11 | protected int status; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | entityId = serializer.readInt(); 16 | status = serializer.readUnsignedByte(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityTeleport.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityTeleport extends MiddleEntity { 8 | 9 | protected int x; 10 | protected int y; 11 | protected int z; 12 | protected byte yaw; 13 | protected byte pitch; 14 | 15 | @Override 16 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 17 | super.readFromServerData(serializer); 18 | x = serializer.readInt(); 19 | y = serializer.readInt(); 20 | z = serializer.readInt(); 21 | yaw = serializer.readByte(); 22 | pitch = serializer.readByte(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleEntityVelocity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | 7 | public abstract class MiddleEntityVelocity extends MiddleEntity { 8 | 9 | protected int motX; 10 | protected int motY; 11 | protected int motZ; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | super.readFromServerData(serializer); 16 | motX = serializer.readShort(); 17 | motY = serializer.readShort(); 18 | motZ = serializer.readShort(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleGameStateChange.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleGameStateChange extends ClientBoundMiddlePacket { 7 | 8 | protected int type; 9 | protected float value; 10 | 11 | @Override 12 | public void readFromServerData(PacketDataSerializer serializer) { 13 | type = serializer.readByte(); 14 | value = serializer.readFloat(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleHeldSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleHeldSlot extends ClientBoundMiddlePacket { 7 | 8 | protected int slot; 9 | 10 | @Override 11 | public void readFromServerData(PacketDataSerializer serializer) { 12 | slot = serializer.readUnsignedByte(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleInventoryClose.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleInventoryClose extends ClientBoundMiddlePacket { 9 | 10 | protected int windowId; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | windowId = serializer.readUnsignedByte(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleInventoryConfirmTransaction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleInventoryConfirmTransaction extends ClientBoundMiddlePacket { 9 | 10 | protected int windowId; 11 | protected int actionNumber; 12 | protected boolean accepted; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | windowId = serializer.readUnsignedByte(); 17 | actionNumber = serializer.readShort(); 18 | accepted = serializer.readBoolean(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleInventoryData.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleInventoryData extends ClientBoundMiddlePacket { 9 | 10 | protected int windowId; 11 | protected int type; 12 | protected int value; 13 | 14 | @Override 15 | public boolean needsPlayer() { 16 | return true; 17 | } 18 | 19 | @Override 20 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 21 | windowId = serializer.readUnsignedByte(); 22 | type = serializer.readShort(); 23 | value = serializer.readShort(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleInventoryOpen.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleInventoryOpen extends ClientBoundMiddlePacket { 7 | 8 | protected int windowId; 9 | protected String invname; 10 | protected String titleJson; 11 | protected int slots; 12 | protected int horseId; 13 | 14 | @Override 15 | public boolean needsPlayer() { 16 | return true; 17 | } 18 | 19 | @Override 20 | public void readFromServerData(PacketDataSerializer serializer) { 21 | windowId = serializer.readUnsignedByte(); 22 | invname = serializer.readString(32); 23 | titleJson = serializer.readString(Short.MAX_VALUE); 24 | slots = serializer.readUnsignedByte(); 25 | if (invname.equals("EntityHorse")) { 26 | horseId = serializer.readInt(); 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleInventorySetItems.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | import java.util.ArrayList; 5 | 6 | import net.minecraft.server.v1_8_R3.ItemStack; 7 | import protocolsupport.protocol.PacketDataSerializer; 8 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 9 | 10 | public abstract class MiddleInventorySetItems extends ClientBoundMiddlePacket { 11 | 12 | protected int windowId; 13 | protected ArrayList itemstacks = new ArrayList(); 14 | 15 | @Override 16 | public boolean needsPlayer() { 17 | return true; 18 | } 19 | 20 | @Override 21 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 22 | windowId = serializer.readUnsignedByte(); 23 | int count = serializer.readShort(); 24 | itemstacks.clear(); 25 | for (int i = 0; i < count; i++) { 26 | itemstacks.add(serializer.readItemStack()); 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleInventorySetSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.ItemStack; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleInventorySetSlot extends ClientBoundMiddlePacket { 10 | 11 | protected int windowId; 12 | protected int slot; 13 | protected ItemStack itemstack; 14 | 15 | @Override 16 | public boolean needsPlayer() { 17 | return true; 18 | } 19 | 20 | @Override 21 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 22 | windowId = serializer.readUnsignedByte(); 23 | slot = serializer.readShort(); 24 | itemstack = serializer.readItemStack(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleKeepAlive.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleKeepAlive extends ClientBoundMiddlePacket { 7 | 8 | protected int keepAliveId; 9 | 10 | @Override 11 | public void readFromServerData(PacketDataSerializer serializer) { 12 | keepAliveId = serializer.readVarInt(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleKickDisconnect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleKickDisconnect extends ClientBoundMiddlePacket { 9 | 10 | protected String messageJson; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | messageJson = serializer.readString(Short.MAX_VALUE); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddlePlayerAbilities.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddlePlayerAbilities extends ClientBoundMiddlePacket { 9 | 10 | protected int flags; 11 | protected float flyspeed; 12 | protected float walkspeed; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | flags = serializer.readUnsignedByte(); 17 | flyspeed = serializer.readFloat(); 18 | walkspeed = serializer.readFloat(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleResourcePack.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleResourcePack extends ClientBoundMiddlePacket { 7 | 8 | protected String url; 9 | 10 | @Override 11 | public void readFromServerData(PacketDataSerializer serializer) { 12 | url = serializer.readString(Short.MAX_VALUE); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleRespawn.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleRespawn extends ClientBoundMiddlePacket { 7 | 8 | protected int dimension; 9 | protected int difficulty; 10 | protected int gamemode; 11 | protected String leveltype; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) { 15 | dimension = serializer.readInt(); 16 | difficulty = serializer.readByte(); 17 | gamemode = serializer.readByte(); 18 | leveltype = serializer.readString(16); 19 | } 20 | 21 | @Override 22 | public void handle() { 23 | storage.clearWatchedEntities(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleScoreboardDisplay.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleScoreboardDisplay extends ClientBoundMiddlePacket { 9 | 10 | protected int position; 11 | protected String name; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | position = serializer.readUnsignedByte(); 16 | name = serializer.readString(16); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleScoreboardObjective.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleScoreboardObjective extends ClientBoundMiddlePacket { 7 | 8 | protected String name; 9 | protected int mode; 10 | protected String value; 11 | protected String type; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) { 15 | name = serializer.readString(16); 16 | mode = serializer.readUnsignedByte(); 17 | if (mode != 1) { 18 | value = serializer.readString(32); 19 | type = serializer.readString(32); 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleScoreboardScore.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleScoreboardScore extends ClientBoundMiddlePacket { 9 | 10 | protected String name; 11 | protected int mode; 12 | protected String objectiveName; 13 | protected int value; 14 | 15 | @Override 16 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 17 | name = serializer.readString(40); 18 | mode = serializer.readUnsignedByte(); 19 | objectiveName = serializer.readString(16); 20 | if (mode != 1) { 21 | value = serializer.readVarInt(); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleSetExperience.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleSetExperience extends ClientBoundMiddlePacket { 9 | 10 | protected float exp; 11 | protected int level; 12 | protected int totalExp; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | exp = serializer.readFloat(); 17 | level = serializer.readVarInt(); 18 | totalExp = serializer.readVarInt(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleSetHealth.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleSetHealth extends ClientBoundMiddlePacket { 7 | 8 | protected float health; 9 | protected int food; 10 | protected float saturation; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) { 14 | health = serializer.readFloat(); 15 | food = serializer.readVarInt(); 16 | saturation = serializer.readFloat(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleSpawnExpOrb.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleSpawnExpOrb extends ClientBoundMiddlePacket { 7 | 8 | protected int entityId; 9 | protected int x; 10 | protected int y; 11 | protected int z; 12 | protected int count; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) { 16 | entityId = serializer.readVarInt(); 17 | x = serializer.readInt(); 18 | y = serializer.readInt(); 19 | z = serializer.readInt(); 20 | count = serializer.readShort(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleSpawnGlobal.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleSpawnGlobal extends ClientBoundMiddlePacket { 7 | 8 | protected int entityId; 9 | protected int type; 10 | protected int x; 11 | protected int y; 12 | protected int z; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) { 16 | entityId = serializer.readVarInt(); 17 | type = serializer.readUnsignedByte(); 18 | x = serializer.readInt(); 19 | y = serializer.readInt(); 20 | z = serializer.readInt(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleSpawnPainting.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleSpawnPainting extends ClientBoundMiddlePacket { 10 | 11 | protected int entityId; 12 | protected String type; 13 | protected BlockPosition position; 14 | protected int direction; 15 | 16 | @Override 17 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 18 | entityId = serializer.readVarInt(); 19 | type = serializer.readString(13); 20 | position = serializer.readPosition(); 21 | direction = serializer.readByte(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleSpawnPosition.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleSpawnPosition extends ClientBoundMiddlePacket { 10 | 11 | protected BlockPosition position; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | position = serializer.readPosition(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleStatistics.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleStatistics extends ClientBoundMiddlePacket { 9 | 10 | protected Statistic[] statistics; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | statistics = new Statistic[serializer.readVarInt()]; 15 | for (int i = 0; i < statistics.length; i++) { 16 | Statistic stat = new Statistic(); 17 | stat.name = serializer.readString(Short.MAX_VALUE); 18 | stat.value = serializer.readVarInt(); 19 | statistics[i] = stat; 20 | } 21 | } 22 | 23 | protected static class Statistic { 24 | public String name; 25 | public int value; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleTabComplete.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleTabComplete extends ClientBoundMiddlePacket { 9 | 10 | protected String[] matches; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | matches = new String[serializer.readVarInt()]; 15 | for (int i = 0; i < matches.length; i++) { 16 | matches[i] = serializer.readString(Short.MAX_VALUE); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleTimeUpdate.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddleTimeUpdate extends ClientBoundMiddlePacket { 9 | 10 | protected long worldAge; 11 | protected long timeOfDay; 12 | 13 | @Override 14 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 15 | worldAge = serializer.readLong(); 16 | timeOfDay = serializer.readLong(); 17 | } 18 | 19 | @Override 20 | public void handle() { 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleUseBed.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleUseBed extends ClientBoundMiddlePacket { 10 | 11 | protected int entityId; 12 | protected BlockPosition bed; 13 | 14 | @Override 15 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 16 | entityId = serializer.readVarInt(); 17 | bed = serializer.readPosition(); 18 | } 19 | 20 | @Override 21 | public void handle() { 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleWorldEvent.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 8 | 9 | public abstract class MiddleWorldEvent extends ClientBoundMiddlePacket { 10 | 11 | protected int effectId; 12 | protected BlockPosition position; 13 | protected int data; 14 | protected boolean disableRelative; 15 | 16 | @Override 17 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 18 | effectId = serializer.readInt(); 19 | position = serializer.readPosition(); 20 | data = serializer.readInt(); 21 | disableRelative = serializer.readBoolean(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/play/MiddleWorldSound.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.play; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleWorldSound extends ClientBoundMiddlePacket { 7 | 8 | protected String name; 9 | protected int x; 10 | protected int y; 11 | protected int z; 12 | protected float volume; 13 | protected int pitch; 14 | 15 | @Override 16 | public void readFromServerData(PacketDataSerializer serializer) { 17 | name = serializer.readString(Short.MAX_VALUE); 18 | x = serializer.readInt(); 19 | y = serializer.readInt(); 20 | z = serializer.readInt(); 21 | volume = serializer.readFloat(); 22 | pitch = serializer.readUnsignedByte(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/status/MiddlePong.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.status; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 7 | 8 | public abstract class MiddlePong extends ClientBoundMiddlePacket { 9 | 10 | protected long pingId; 11 | 12 | @Override 13 | public void readFromServerData(PacketDataSerializer serializer) throws IOException { 14 | pingId = serializer.readLong(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/clientbound/status/MiddleServerInfo.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.clientbound.status; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.ClientBoundMiddlePacket; 5 | 6 | public abstract class MiddleServerInfo extends ClientBoundMiddlePacket { 7 | 8 | protected String pingJson; 9 | 10 | @Override 11 | public void readFromServerData(PacketDataSerializer serializer) { 12 | pingJson = serializer.readString(Short.MAX_VALUE); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/login/MiddleEncryptionResponse.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.login; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleEncryptionResponse extends ServerBoundMiddlePacket { 11 | 12 | protected byte[] sharedSecret; 13 | protected byte[] verifyToken; 14 | 15 | @Override 16 | public RecyclableCollection> toNative() throws Exception { 17 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.LOGIN_ENCRYPTION_BEGIN.get()); 18 | creator.writeArray(sharedSecret); 19 | creator.writeArray(verifyToken); 20 | return RecyclableSingletonList.create(creator.create()); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/login/MiddleLoginStart.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.login; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleLoginStart extends ServerBoundMiddlePacket { 11 | 12 | protected String name; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.LOGIN_START.get()); 17 | creator.writeString(name); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleAnimation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleAnimation extends ServerBoundMiddlePacket { 11 | 12 | @Override 13 | public RecyclableCollection> toNative() throws Exception { 14 | return RecyclableSingletonList.create(PacketCreator.create(ServerBoundPacket.PLAY_ANIMATION.get()).create()); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleBlockDig.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.BlockPosition; 4 | import net.minecraft.server.v1_8_R3.Packet; 5 | import protocolsupport.protocol.ServerBoundPacket; 6 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 7 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 8 | import protocolsupport.utils.recyclable.RecyclableCollection; 9 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 10 | 11 | public abstract class MiddleBlockDig extends ServerBoundMiddlePacket { 12 | 13 | protected int status; 14 | protected BlockPosition position; 15 | protected int face; 16 | 17 | @Override 18 | public RecyclableCollection> toNative() throws Exception { 19 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_BLOCK_DIG.get()); 20 | creator.writeByte(status); 21 | creator.writePosition(position); 22 | creator.writeByte(face); 23 | return RecyclableSingletonList.create(creator.create()); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleChat.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleChat extends ServerBoundMiddlePacket { 11 | 12 | protected String message; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_CHAT.get()); 17 | creator.writeString(message); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleClientCommand.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleClientCommand extends ServerBoundMiddlePacket { 11 | 12 | protected int command; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_CLIENT_COMMAND.get()); 17 | creator.writeVarInt(command); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleCreativeSetSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.ItemStack; 4 | import net.minecraft.server.v1_8_R3.Packet; 5 | import protocolsupport.protocol.ServerBoundPacket; 6 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 7 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 8 | import protocolsupport.utils.recyclable.RecyclableCollection; 9 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 10 | 11 | public abstract class MiddleCreativeSetSlot extends ServerBoundMiddlePacket { 12 | 13 | protected int slot; 14 | protected ItemStack itemstack; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_CREATIVE_SET_SLOT.get()); 19 | creator.writeShort(slot); 20 | creator.writeItemStack(itemstack); 21 | return RecyclableSingletonList.create(creator.create()); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleCustomPayload.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleCustomPayload extends ServerBoundMiddlePacket { 11 | 12 | protected String tag; 13 | protected byte[] data; 14 | 15 | @Override 16 | public RecyclableCollection> toNative() throws Exception { 17 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_CUSTOM_PAYLOAD.get()); 18 | creator.writeString(tag); 19 | creator.writeBytes(data); 20 | return RecyclableSingletonList.create(creator.create()); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleEntityAction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleEntityAction extends ServerBoundMiddlePacket { 11 | 12 | protected int entityId; 13 | protected int actionId; 14 | protected int jumpBoost; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_ENTITY_ACTION.get()); 19 | creator.writeVarInt(entityId); 20 | creator.writeVarInt(actionId); 21 | creator.writeVarInt(jumpBoost); 22 | return RecyclableSingletonList.create(creator.create()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleFlying.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleFlying extends ServerBoundMiddlePacket { 11 | 12 | protected boolean onGround; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_PLAYER.get()); 17 | creator.writeBoolean(onGround); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleHeldSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleHeldSlot extends ServerBoundMiddlePacket { 11 | 12 | protected int slot; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_HELD_SLOT.get()); 17 | creator.writeShort(slot); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleInventoryClose.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleInventoryClose extends ServerBoundMiddlePacket { 11 | 12 | protected int windowId; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_WINDOW_CLOSE.get()); 17 | creator.writeByte(windowId); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleInventoryEnchant.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleInventoryEnchant extends ServerBoundMiddlePacket { 11 | 12 | protected int windowId; 13 | protected int enchantment; 14 | 15 | @Override 16 | public RecyclableCollection> toNative() throws Exception { 17 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_ENCHANT_SELECT.get()); 18 | creator.writeByte(windowId); 19 | creator.writeByte(enchantment); 20 | return RecyclableSingletonList.create(creator.create()); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleInventoryTransaction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleInventoryTransaction extends ServerBoundMiddlePacket { 11 | 12 | protected int windowId; 13 | protected int actionNumber; 14 | protected boolean accepted; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_WINDOW_TRANSACTION.get()); 19 | creator.writeByte(windowId); 20 | creator.writeShort(actionNumber); 21 | creator.writeBoolean(accepted); 22 | return RecyclableSingletonList.create(creator.create()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleKeepAlive.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleKeepAlive extends ServerBoundMiddlePacket { 11 | 12 | protected int keepAliveId; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_KEEP_ALIVE.get()); 17 | creator.writeVarInt(keepAliveId); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleLook.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleLook extends ServerBoundMiddlePacket { 11 | 12 | protected float yaw; 13 | protected float pitch; 14 | protected boolean onGround; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_LOOK.get()); 19 | creator.writeFloat(yaw); 20 | creator.writeFloat(pitch); 21 | creator.writeBoolean(onGround); 22 | return RecyclableSingletonList.create(creator.create()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddlePlayerAbilities.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddlePlayerAbilities extends ServerBoundMiddlePacket { 11 | 12 | protected int flags; 13 | protected float flySpeed; 14 | protected float walkSpeed; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_ABILITIES.get()); 19 | creator.writeByte(flags); 20 | creator.writeFloat(flySpeed); 21 | creator.writeFloat(walkSpeed); 22 | return RecyclableSingletonList.create(creator.create()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddlePosition.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddlePosition extends ServerBoundMiddlePacket { 11 | 12 | protected double x; 13 | protected double y; 14 | protected double z; 15 | protected boolean onGround; 16 | 17 | @Override 18 | public RecyclableCollection> toNative() throws Exception { 19 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_POSITION.get()); 20 | creator.writeDouble(x); 21 | creator.writeDouble(y); 22 | creator.writeDouble(z); 23 | creator.writeBoolean(onGround); 24 | return RecyclableSingletonList.create(creator.create()); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleSteerVehicle.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleSteerVehicle extends ServerBoundMiddlePacket { 11 | 12 | protected float sideForce; 13 | protected float forwardForce; 14 | protected int flags; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_STEER_VEHICLE.get()); 19 | creator.writeFloat(sideForce); 20 | creator.writeFloat(forwardForce); 21 | creator.writeByte(flags); 22 | return RecyclableSingletonList.create(creator.create()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/play/MiddleUseEntity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.play; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity; 5 | import protocolsupport.protocol.ServerBoundPacket; 6 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 7 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 8 | import protocolsupport.utils.recyclable.RecyclableCollection; 9 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 10 | 11 | public abstract class MiddleUseEntity extends ServerBoundMiddlePacket { 12 | 13 | protected int entityId; 14 | protected int action; 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.PLAY_USE_ENTITY.get()); 19 | creator.writeVarInt(entityId); 20 | creator.writeVarInt(action % PacketPlayInUseEntity.EnumEntityUseAction.values().length); 21 | return RecyclableSingletonList.create(creator.create()); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/status/MiddlePing.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.status; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddlePing extends ServerBoundMiddlePacket { 11 | 12 | protected long pingId; 13 | 14 | @Override 15 | public RecyclableCollection> toNative() throws Exception { 16 | PacketCreator creator = PacketCreator.create(ServerBoundPacket.STATUS_PING.get()); 17 | creator.writeLong(pingId); 18 | return RecyclableSingletonList.create(creator.create()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacket/serverbound/status/MiddleServerInfoRequest.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacket.serverbound.status; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.ServerBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketCreator; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public abstract class MiddleServerInfoRequest extends ServerBoundMiddlePacket { 11 | 12 | @Override 13 | public RecyclableCollection> toNative() throws Exception { 14 | return RecyclableSingletonList.create(PacketCreator.create(ServerBoundPacket.STATUS_REQUEST.get()).create()); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/login/v_1_7/LoginDisconnect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.login.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.login.MiddleLoginDisconnect; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class LoginDisconnect extends MiddleLoginDisconnect> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.LOGIN_DISCONNECT_ID, version); 17 | serializer.writeString(messageJson); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5/Chat.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5; 2 | 3 | import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer; 4 | import protocolsupport.api.ProtocolVersion; 5 | import protocolsupport.protocol.ClientBoundPacket; 6 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleChat; 7 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 8 | import protocolsupport.protocol.transformer.utils.LegacyUtils; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class Chat extends MiddleChat> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_CHAT_ID, version); 17 | serializer.writeString(LegacyUtils.toText(ChatSerializer.a(chatJson))); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5/PlayerAbilities.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddlePlayerAbilities; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class PlayerAbilities extends MiddlePlayerAbilities> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ABILITIES_ID, version); 17 | serializer.writeByte(flags); 18 | serializer.writeByte((int) (flyspeed * 255.0F)); 19 | serializer.writeByte((int) (walkspeed * 255.0F)); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5/SetHealth.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5; 2 | 3 | import net.minecraft.server.v1_8_R3.MathHelper; 4 | import protocolsupport.api.ProtocolVersion; 5 | import protocolsupport.protocol.ClientBoundPacket; 6 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSetHealth; 7 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 8 | import protocolsupport.utils.recyclable.RecyclableCollection; 9 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 10 | 11 | public class SetHealth extends MiddleSetHealth> { 12 | 13 | @Override 14 | public RecyclableCollection toData(ProtocolVersion version) { 15 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_UPDATE_HEALTH_ID, version); 16 | serializer.writeShort(MathHelper.f(health)); 17 | serializer.writeShort(food); 18 | serializer.writeFloat(saturation); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/Animation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleAnimation; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class Animation extends MiddleAnimation> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ANIMATION_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeByte(animation + 1); 17 | return RecyclableSingletonList.create(serializer); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/HeldSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleHeldSlot; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class HeldSlot extends MiddleHeldSlot> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_HELD_SLOT_ID, version); 15 | serializer.writeShort(slot); 16 | return RecyclableSingletonList.create(serializer); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/Respawn.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleRespawn; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class Respawn extends MiddleRespawn> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_RESPAWN_ID, version); 15 | serializer.writeInt(dimension); 16 | serializer.writeByte(difficulty); 17 | serializer.writeByte(gamemode); 18 | serializer.writeShort(256); 19 | serializer.writeString(leveltype); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/SpawnExpOrb.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSpawnExpOrb; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SpawnExpOrb extends MiddleSpawnExpOrb> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SPAWN_EXP_ORB_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeInt(x); 17 | serializer.writeInt(y); 18 | serializer.writeInt(z); 19 | serializer.writeShort(count); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/SpawnGlobal.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSpawnGlobal; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SpawnGlobal extends MiddleSpawnGlobal> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SPAWN_WEATHER_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeByte(type); 17 | serializer.writeInt(x); 18 | serializer.writeInt(y); 19 | serializer.writeInt(z); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/SpawnPosition.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSpawnPosition; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SpawnPosition extends MiddleSpawnPosition> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SPAWN_POSITION_ID, version); 15 | serializer.writeInt(position.getX()); 16 | serializer.writeInt(position.getY() + 1); 17 | serializer.writeInt(position.getZ()); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6/UseBed.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleUseBed; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class UseBed extends MiddleUseBed> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_BED_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeByte(0); 17 | serializer.writeInt(bed.getX()); 18 | serializer.writeByte(bed.getY()); 19 | serializer.writeInt(bed.getZ()); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/CollectEffect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleCollectEffect; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class CollectEffect extends MiddleCollectEffect> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_COLLECT_EFFECT_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeInt(collectorId); 17 | return RecyclableSingletonList.create(serializer); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/Entity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntity; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class Entity extends MiddleEntity> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_ID, version); 15 | serializer.writeInt(entityId); 16 | return RecyclableSingletonList.create(serializer); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/EntityEquipment.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityEquipment; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class EntityEquipment extends MiddleEntityEquipment> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_EQUIPMENT_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeShort(slot); 17 | serializer.writeItemStack(itemstack); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/EntityHeadRotation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityHeadRotation; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class EntityHeadRotation extends MiddleEntityHeadRotation> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_HEAD_ROTATION_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeByte(headRot); 17 | return RecyclableSingletonList.create(serializer); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/EntityLook.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityLook; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class EntityLook extends MiddleEntityLook> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_LOOK_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeByte(yaw); 17 | serializer.writeByte(pitch); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/EntityRelMove.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityRelMove; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class EntityRelMove extends MiddleEntityRelMove> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_REL_MOVE_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeByte(relX); 17 | serializer.writeByte(relY); 18 | serializer.writeByte(relZ); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/EntityStatus.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityStatus; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class EntityStatus extends MiddleEntityStatus> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_STATUS_ID, version); 17 | serializer.writeInt(entityId); 18 | serializer.writeByte(status); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/EntityVelocity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityVelocity; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class EntityVelocity extends MiddleEntityVelocity> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_VELOCITY_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeShort(motX); 17 | serializer.writeShort(motY); 18 | serializer.writeShort(motZ); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/InventoryClose.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleInventoryClose; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class InventoryClose extends MiddleInventoryClose> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_WINDOW_CLOSE_ID, version); 17 | serializer.writeByte(windowId); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/KeepAlive.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleKeepAlive; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class KeepAlive extends MiddleKeepAlive> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_KEEP_ALIVE_ID, version); 15 | serializer.writeInt(keepAliveId); 16 | return RecyclableSingletonList.create(serializer); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/ScoreboardDisplay.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleScoreboardDisplay; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class ScoreboardDisplay extends MiddleScoreboardDisplay> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SCOREBOARD_DISPLAY_SLOT_ID, version); 15 | serializer.writeByte(position); 16 | serializer.writeString(name); 17 | return RecyclableSingletonList.create(serializer); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/SetExperience.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSetExperience; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SetExperience extends MiddleSetExperience> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_EXPERIENCE_ID, version); 15 | serializer.writeFloat(exp); 16 | serializer.writeShort(level); 17 | serializer.writeShort(totalExp); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_4_1_5_1_6_1_7/TimeUpdate.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleTimeUpdate; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class TimeUpdate extends MiddleTimeUpdate> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_UPDATE_TIME_ID, version); 17 | serializer.writeLong(worldAge); 18 | serializer.writeLong(timeOfDay); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_5_1_6_1_7/ScoreboardObjective.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_5_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleScoreboardObjective; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class ScoreboardObjective extends MiddleScoreboardObjective> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SCOREBOARD_OBJECTIVE_ID, version); 15 | serializer.writeString(name); 16 | serializer.writeString(mode == 1 ? "" : value); 17 | serializer.writeByte(mode); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_6_1_7/EntityAttach.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleEntityAttach; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class EntityAttach extends MiddleEntityAttach> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ENTITY_ATTACH_ID, version); 17 | serializer.writeInt(entityId); 18 | serializer.writeInt(vehicleId); 19 | serializer.writeBoolean(leash); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_6_1_7/PlayerAbilities.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddlePlayerAbilities; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class PlayerAbilities extends MiddlePlayerAbilities> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ABILITIES_ID, version); 17 | serializer.writeByte(flags); 18 | serializer.writeFloat(flyspeed); 19 | serializer.writeFloat(walkspeed); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_6_1_7/SetHealth.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_6_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSetHealth; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SetHealth extends MiddleSetHealth> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_UPDATE_HEALTH_ID, version); 15 | serializer.writeFloat(health); 16 | serializer.writeShort(food); 17 | serializer.writeFloat(saturation); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/Animation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleAnimation; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class Animation extends MiddleAnimation> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_ANIMATION_ID, version); 17 | serializer.writeVarInt(entityId); 18 | serializer.writeByte(animation); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/BlockOpenSignEditor.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleBlockOpenSignEditor; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class BlockOpenSignEditor extends MiddleBlockOpenSignEditor> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SIGN_EDITOR_ID, version); 15 | serializer.writeInt(position.getX()); 16 | serializer.writeInt(position.getY()); 17 | serializer.writeInt(position.getZ()); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/Chat.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleChat; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.protocol.transformer.v_1_7.utils.ChatJsonConverter; 8 | import protocolsupport.utils.recyclable.RecyclableCollection; 9 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 10 | 11 | public class Chat extends MiddleChat> { 12 | 13 | @Override 14 | public RecyclableCollection toData(ProtocolVersion version) { 15 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_CHAT_ID, version); 16 | serializer.writeString(ChatJsonConverter.convert(chatJson)); 17 | return RecyclableSingletonList.create(serializer); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/GameStateChange.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleGameStateChange; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class GameStateChange extends MiddleGameStateChange> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_GAME_STATE_CHANGE_ID, version); 17 | serializer.writeByte(type); 18 | serializer.writeFloat(value); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/HeldSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleHeldSlot; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class HeldSlot extends MiddleHeldSlot> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_HELD_SLOT_ID, version); 15 | serializer.writeByte(slot); 16 | return RecyclableSingletonList.create(serializer); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/KickDisconnect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleKickDisconnect; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class KickDisconnect extends MiddleKickDisconnect> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_KICK_DISCONNECT_ID, version); 17 | serializer.writeString(messageJson); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/Position.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddlePosition; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class Position extends MiddlePosition> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_POSITION_ID, version); 15 | serializer.writeDouble(x); 16 | serializer.writeDouble(y + 1.6200000047683716D); 17 | serializer.writeDouble(z); 18 | serializer.writeFloat(yaw); 19 | serializer.writeFloat(pitch); 20 | serializer.writeBoolean(false); 21 | return RecyclableSingletonList.create(serializer); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/ResourcePack.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import java.nio.charset.StandardCharsets; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleResourcePack; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class ResourcePack extends MiddleResourcePack> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_CUSTOM_PAYLOAD_ID, version); 17 | serializer.writeString("MC|RPack"); 18 | serializer.writeArray(url.getBytes(StandardCharsets.UTF_8)); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/Respawn.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleRespawn; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class Respawn extends MiddleRespawn> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_RESPAWN_ID, version); 15 | serializer.writeInt(dimension); 16 | serializer.writeByte(difficulty); 17 | serializer.writeByte(gamemode); 18 | serializer.writeString(leveltype); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/SpawnGlobal.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSpawnGlobal; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SpawnGlobal extends MiddleSpawnGlobal> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SPAWN_WEATHER_ID, version); 15 | serializer.writeVarInt(entityId); 16 | serializer.writeByte(type); 17 | serializer.writeInt(x); 18 | serializer.writeInt(y); 19 | serializer.writeInt(z); 20 | return RecyclableSingletonList.create(serializer); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/SpawnPosition.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleSpawnPosition; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class SpawnPosition extends MiddleSpawnPosition> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_SPAWN_POSITION_ID, version); 15 | serializer.writeInt(position.getX()); 16 | serializer.writeInt(position.getY()); 17 | serializer.writeInt(position.getZ()); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/TabComplete.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleTabComplete; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class TabComplete extends MiddleTabComplete> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_TAB_COMPLETE_ID, version); 15 | serializer.writeVarInt(matches.length); 16 | for (String match : matches) { 17 | serializer.writeString(match); 18 | } 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/UseBed.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleUseBed; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class UseBed extends MiddleUseBed> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_BED_ID, version); 15 | serializer.writeInt(entityId); 16 | serializer.writeInt(bed.getX()); 17 | serializer.writeByte(bed.getY()); 18 | serializer.writeInt(bed.getZ()); 19 | return RecyclableSingletonList.create(serializer); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/play/v_1_7/WorldSound.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.play.v_1_7; 2 | 3 | import protocolsupport.api.ProtocolVersion; 4 | import protocolsupport.protocol.ClientBoundPacket; 5 | import protocolsupport.protocol.transformer.middlepacket.clientbound.play.MiddleWorldSound; 6 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 7 | import protocolsupport.utils.recyclable.RecyclableCollection; 8 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 9 | 10 | public class WorldSound extends MiddleWorldSound> { 11 | 12 | @Override 13 | public RecyclableCollection toData(ProtocolVersion version) { 14 | PacketData serializer = PacketData.create(ClientBoundPacket.PLAY_WORLD_SOUND_ID, version); 15 | serializer.writeString(name); 16 | serializer.writeInt(x); 17 | serializer.writeInt(y); 18 | serializer.writeInt(z); 19 | serializer.writeFloat(volume); 20 | serializer.writeByte(pitch); 21 | return RecyclableSingletonList.create(serializer); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/clientbound/status/v_1_7/Pong.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.clientbound.status.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | import protocolsupport.protocol.ClientBoundPacket; 7 | import protocolsupport.protocol.transformer.middlepacket.clientbound.status.MiddlePong; 8 | import protocolsupport.protocol.transformer.middlepacketimpl.PacketData; 9 | import protocolsupport.utils.recyclable.RecyclableCollection; 10 | import protocolsupport.utils.recyclable.RecyclableSingletonList; 11 | 12 | public class Pong extends MiddlePong> { 13 | 14 | @Override 15 | public RecyclableCollection toData(ProtocolVersion version) throws IOException { 16 | PacketData serializer = PacketData.create(ClientBoundPacket.STATUS_PONG_ID, version); 17 | serializer.writeLong(pingId); 18 | return RecyclableSingletonList.create(serializer); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/handshake/v_1_7/SetProtocol.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.handshake.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.handshake.MiddleSetProtocol; 7 | 8 | public class SetProtocol extends MiddleSetProtocol { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | serializer.readVarInt(); 13 | hostname = serializer.readString(Short.MAX_VALUE); 14 | port = serializer.readUnsignedShort(); 15 | nextState = serializer.readVarInt(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/login/v_1_4_1_5_1_6_1_7/EncryptionResponse.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.login.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.login.MiddleEncryptionResponse; 7 | 8 | public class EncryptionResponse extends MiddleEncryptionResponse { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | sharedSecret = serializer.readArray(); 13 | verifyToken = serializer.readArray(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/login/v_1_7/LoginStart.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.login.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.login.MiddleLoginStart; 7 | 8 | public class LoginStart extends MiddleLoginStart { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | name = serializer.readString(16); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5/EntityAction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleEntityAction; 5 | 6 | public class EntityAction extends MiddleEntityAction { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | entityId = serializer.readInt(); 11 | actionId = serializer.readByte() - 1; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5/PlayerAbilities.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddlePlayerAbilities; 7 | 8 | public class PlayerAbilities extends MiddlePlayerAbilities { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | flags = serializer.readUnsignedByte(); 13 | flySpeed = serializer.readUnsignedByte() / 255.0F; 14 | walkSpeed = serializer.readUnsignedByte() / 255.0F; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6/ClientCommand.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleClientCommand; 5 | 6 | public class ClientCommand extends MiddleClientCommand { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | serializer.readByte(); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6/ClientSettings.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleClientSettings; 5 | 6 | public class ClientSettings extends MiddleClientSettings { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | locale = serializer.readString(7); 11 | viewDist = serializer.readByte(); 12 | int chatState = serializer.readByte(); 13 | chatMode = chatState & 7; 14 | chatColors = (chatState & 8) == 8; 15 | serializer.readByte(); 16 | serializer.readBoolean(); 17 | skinFlags = 255; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6/KickDisconnect.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6; 2 | 3 | import net.minecraft.server.v1_8_R3.Packet; 4 | import protocolsupport.protocol.PacketDataSerializer; 5 | import protocolsupport.protocol.transformer.middlepacket.ServerBoundMiddlePacket; 6 | import protocolsupport.utils.recyclable.RecyclableCollection; 7 | import protocolsupport.utils.recyclable.RecyclableEmptyList; 8 | 9 | public class KickDisconnect extends ServerBoundMiddlePacket { 10 | 11 | @Override 12 | public void readFromClientData(PacketDataSerializer serializer) { 13 | serializer.readString(Short.MAX_VALUE); 14 | } 15 | 16 | @Override 17 | public RecyclableCollection> toNative() throws Exception { 18 | return RecyclableEmptyList.get(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6/UseEntity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleUseEntity; 5 | 6 | public class UseEntity extends MiddleUseEntity { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | serializer.readInt(); 11 | entityId = serializer.readInt(); 12 | action = serializer.readBoolean() ? 1 : 0; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/Animation.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleAnimation; 5 | 6 | public class Animation extends MiddleAnimation { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | serializer.readInt(); 11 | serializer.readByte(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/BlockDig.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleBlockDig; 8 | 9 | public class BlockDig extends MiddleBlockDig { 10 | 11 | @Override 12 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 13 | status = serializer.readUnsignedByte(); 14 | position = new BlockPosition(serializer.readInt(), serializer.readUnsignedByte(), serializer.readInt()); 15 | face = serializer.readUnsignedByte(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/BlockPlace.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleBlockPlace; 8 | 9 | public class BlockPlace extends MiddleBlockPlace { 10 | 11 | @Override 12 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 13 | position = new BlockPosition(serializer.readInt(), serializer.readUnsignedByte(), serializer.readInt()); 14 | face = serializer.readUnsignedByte(); 15 | itemstack = serializer.readItemStack(); 16 | cX = serializer.readUnsignedByte(); 17 | cY = serializer.readUnsignedByte(); 18 | cZ = serializer.readUnsignedByte(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/Chat.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleChat; 7 | 8 | public class Chat extends MiddleChat { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | message = serializer.readString(Short.MAX_VALUE); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/CreativeSetSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleCreativeSetSlot; 7 | 8 | public class CreativeSetSlot extends MiddleCreativeSetSlot { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | slot = serializer.readShort(); 13 | itemstack = serializer.readItemStack(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/Flying.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleFlying; 7 | 8 | public class Flying extends MiddleFlying { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | onGround = serializer.readBoolean(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/HeldSlot.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleHeldSlot; 7 | 8 | public class HeldSlot extends MiddleHeldSlot { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | slot = serializer.readShort(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/InventoryClick.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import org.bukkit.event.inventory.InventoryType; 6 | 7 | import protocolsupport.protocol.PacketDataSerializer; 8 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleInventoryClick; 9 | 10 | public class InventoryClick extends MiddleInventoryClick { 11 | 12 | @Override 13 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 14 | windowId = serializer.readUnsignedByte(); 15 | slot = serializer.readShort(); 16 | if (player.getOpenInventory().getType() == InventoryType.ENCHANTING) { 17 | if (slot > 0) { 18 | slot++; 19 | } 20 | } 21 | button = serializer.readUnsignedByte(); 22 | actionNumber = serializer.readShort(); 23 | mode = serializer.readUnsignedByte(); 24 | itemstack = serializer.readItemStack(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/InventoryClose.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleInventoryClose; 7 | 8 | public class InventoryClose extends MiddleInventoryClose { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | windowId = serializer.readUnsignedByte(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/InventoryEnchant.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleInventoryEnchant; 7 | 8 | public class InventoryEnchant extends MiddleInventoryEnchant { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | windowId = serializer.readUnsignedByte(); 13 | enchantment = serializer.readUnsignedByte(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/InventoryTransaction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleInventoryTransaction; 7 | 8 | public class InventoryTransaction extends MiddleInventoryTransaction { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | windowId = serializer.readUnsignedByte(); 13 | actionNumber = serializer.readShort(); 14 | accepted = serializer.readBoolean(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/KeepAlive.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleKeepAlive; 5 | 6 | public class KeepAlive extends MiddleKeepAlive { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | keepAliveId = serializer.readInt(); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/Look.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleLook; 7 | 8 | public class Look extends MiddleLook { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | yaw = serializer.readFloat(); 13 | pitch = serializer.readFloat(); 14 | onGround = serializer.readBoolean(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/Position.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddlePosition; 5 | 6 | public class Position extends MiddlePosition { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | x = serializer.readDouble(); 11 | y = serializer.readDouble(); 12 | serializer.readDouble(); 13 | z = serializer.readDouble(); 14 | onGround = serializer.readBoolean(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/TabComplete.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleTabComplete; 5 | 6 | public class TabComplete extends MiddleTabComplete { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | string = serializer.readString(Short.MAX_VALUE); 11 | position = null; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_4_1_5_1_6_1_7/UpdateSign.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_4_1_5_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import protocolsupport.protocol.PacketDataSerializer; 7 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleUpdateSign; 8 | 9 | public class UpdateSign extends MiddleUpdateSign { 10 | 11 | @Override 12 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 13 | position = new BlockPosition(serializer.readInt(), serializer.readShort(), serializer.readInt()); 14 | for (int i = 0; i < 4; i++) { 15 | lines[i] = serializer.readString(15); 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_6_1_7/EntityAction.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleEntityAction; 5 | 6 | public class EntityAction extends MiddleEntityAction { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | entityId = serializer.readInt(); 11 | actionId = serializer.readByte() - 1; 12 | jumpBoost = serializer.readInt(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_6_1_7/PlayerAbilities.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_6_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddlePlayerAbilities; 7 | 8 | public class PlayerAbilities extends MiddlePlayerAbilities { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | flags = serializer.readUnsignedByte(); 13 | flySpeed = serializer.readFloat(); 14 | walkSpeed = serializer.readFloat(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_6_1_7/PositionLook.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddlePositionLook; 5 | 6 | public class PositionLook extends MiddlePositionLook { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | x = serializer.readDouble(); 11 | y = serializer.readDouble(); 12 | serializer.readDouble(); 13 | z = serializer.readDouble(); 14 | yaw = serializer.readFloat(); 15 | pitch = serializer.readFloat(); 16 | onGround = serializer.readBoolean(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_6_1_7/SteerVehicle.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_6_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleSteerVehicle; 5 | 6 | public class SteerVehicle extends MiddleSteerVehicle { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | sideForce = serializer.readFloat(); 11 | forwardForce = serializer.readFloat(); 12 | flags = (serializer.readBoolean() ? 1 : 0) + (serializer.readBoolean() ? 1 << 1 : 0); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_7/ClientCommand.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleClientCommand; 7 | 8 | public class ClientCommand extends MiddleClientCommand { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | command = serializer.readVarInt(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_7/ClientSettings.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleClientSettings; 5 | 6 | public class ClientSettings extends MiddleClientSettings { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | locale = serializer.readString(7); 11 | viewDist = serializer.readByte(); 12 | chatMode = serializer.readByte(); 13 | chatColors = serializer.readBoolean(); 14 | serializer.readByte(); 15 | serializer.readBoolean(); 16 | skinFlags = 255; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/play/v_1_7/UseEntity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.play.v_1_7; 2 | 3 | import protocolsupport.protocol.PacketDataSerializer; 4 | import protocolsupport.protocol.transformer.middlepacket.serverbound.play.MiddleUseEntity; 5 | 6 | public class UseEntity extends MiddleUseEntity { 7 | 8 | @Override 9 | public void readFromClientData(PacketDataSerializer serializer) { 10 | entityId = serializer.readInt(); 11 | action = serializer.readByte(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/status/v_1_7/Ping.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.status.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.status.MiddlePing; 7 | 8 | public class Ping extends MiddlePing { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | pingId = serializer.readLong(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/middlepacketimpl/serverbound/status/v_1_7/ServerInfoRequest.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.middlepacketimpl.serverbound.status.v_1_7; 2 | 3 | import java.io.IOException; 4 | 5 | import protocolsupport.protocol.PacketDataSerializer; 6 | import protocolsupport.protocol.transformer.middlepacket.serverbound.status.MiddleServerInfoRequest; 7 | 8 | public class ServerInfoRequest extends MiddleServerInfoRequest { 9 | 10 | @Override 11 | public void readFromClientData(PacketDataSerializer serializer) throws IOException { 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/utils/registry/PacketIdTransformerRegistry.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.utils.registry; 2 | 3 | import java.util.Arrays; 4 | import java.util.EnumMap; 5 | 6 | import net.minecraft.server.v1_8_R3.EnumProtocol; 7 | 8 | public class PacketIdTransformerRegistry { 9 | 10 | private final EnumMap registry = new EnumMap<>(EnumProtocol.class); 11 | { 12 | for (EnumProtocol protocol : EnumProtocol.values()) { 13 | int[] newIds = new int[256]; 14 | Arrays.fill(newIds, -1); 15 | registry.put(protocol, newIds); 16 | } 17 | } 18 | 19 | public void register(EnumProtocol protocol, int packetId, int newPacketId) { 20 | registry.get(protocol)[packetId] = newPacketId; 21 | } 22 | 23 | public int getNewPacketId(EnumProtocol protocol, int packetId) { 24 | int[] newIds = registry.get(protocol); 25 | if (newIds == null) { 26 | return -1; 27 | } 28 | return newIds[packetId]; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_4/HandshakeListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_4; 2 | 3 | import net.minecraft.server.v1_8_R3.NetworkManager; 4 | import protocolsupport.protocol.transformer.handlers.AbstractHandshakeListener; 5 | 6 | public class HandshakeListener extends AbstractHandshakeListener { 7 | 8 | public HandshakeListener(NetworkManager networkmanager) { 9 | super(networkmanager); 10 | } 11 | 12 | @Override 13 | public LoginListener getLoginListener(NetworkManager networkManager) { 14 | return new LoginListener(networkManager); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_4/LoginListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_4; 2 | 3 | import javax.crypto.SecretKey; 4 | 5 | import net.minecraft.server.v1_8_R3.MinecraftEncryption; 6 | import net.minecraft.server.v1_8_R3.NetworkManager; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.transformer.handlers.AbstractLoginListener; 9 | 10 | public class LoginListener extends AbstractLoginListener { 11 | 12 | public LoginListener(NetworkManager networkmanager) { 13 | super(networkmanager); 14 | } 15 | 16 | @Override 17 | protected boolean hasCompression() { 18 | return false; 19 | } 20 | 21 | @Override 22 | protected void enableEncryption(SecretKey key) { 23 | networkManager.channel.pipeline().addBefore(ChannelHandlers.SPLITTER, ChannelHandlers.DECRYPT, new PacketDecrypter(MinecraftEncryption.a(2, loginKey))); 24 | } 25 | 26 | 27 | } -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_4/PacketPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_4; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import protocolsupport.protocol.core.IPacketPrepender; 6 | 7 | public class PacketPrepender implements IPacketPrepender { 8 | 9 | @Override 10 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 11 | int readableBytes = input.readableBytes(); 12 | output.ensureWritable(readableBytes); 13 | output.writeBytes(input, input.readerIndex(), readableBytes); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_4/PacketSplitter.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_4; 2 | 3 | import java.util.List; 4 | 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.channel.ChannelHandlerContext; 7 | import protocolsupport.protocol.core.IPacketSplitter; 8 | 9 | public class PacketSplitter implements IPacketSplitter { 10 | 11 | @Override 12 | public void split(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception { 13 | list.add(input.readBytes(input.readableBytes())); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_4/PipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_4; 2 | 3 | import io.netty.channel.Channel; 4 | import io.netty.channel.ChannelPipeline; 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.api.ProtocolVersion; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.core.IPipeLineBuilder; 9 | 10 | public class PipeLineBuilder implements IPipeLineBuilder { 11 | 12 | @Override 13 | public void buildPipeLine(Channel channel, ProtocolVersion version) { 14 | ChannelPipeline pipeline = channel.pipeline(); 15 | NetworkManager networkmanager = (NetworkManager) pipeline.get(ChannelHandlers.NETWORK_MANAGER); 16 | networkmanager.a(new HandshakeListener(networkmanager)); 17 | ChannelHandlers.getSplitter(pipeline).setRealSplitter(new PacketSplitter()); 18 | ChannelHandlers.getPrepender(pipeline).setRealPrepender(new PacketPrepender()); 19 | ChannelHandlers.getDecoder(pipeline).setRealDecoder(new PacketDecoder()); 20 | ChannelHandlers.getEncoder(pipeline).setRealEncoder(new PacketEncoder(version)); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_5/HandshakeListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_5; 2 | 3 | import net.minecraft.server.v1_8_R3.NetworkManager; 4 | import protocolsupport.protocol.transformer.handlers.AbstractHandshakeListener; 5 | 6 | public class HandshakeListener extends AbstractHandshakeListener { 7 | 8 | public HandshakeListener(NetworkManager networkmanager) { 9 | super(networkmanager); 10 | } 11 | 12 | @Override 13 | public LoginListener getLoginListener(NetworkManager networkManager) { 14 | return new LoginListener(networkManager); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_5/LoginListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_5; 2 | 3 | import javax.crypto.SecretKey; 4 | 5 | import net.minecraft.server.v1_8_R3.MinecraftEncryption; 6 | import net.minecraft.server.v1_8_R3.NetworkManager; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.transformer.handlers.AbstractLoginListener; 9 | 10 | public class LoginListener extends AbstractLoginListener { 11 | 12 | public LoginListener(NetworkManager networkmanager) { 13 | super(networkmanager); 14 | } 15 | 16 | @Override 17 | protected boolean hasCompression() { 18 | return false; 19 | } 20 | 21 | @Override 22 | protected void enableEncryption(SecretKey key) { 23 | networkManager.channel.pipeline().addBefore(ChannelHandlers.SPLITTER, ChannelHandlers.DECRYPT, new PacketDecrypter(MinecraftEncryption.a(2, loginKey))); 24 | } 25 | 26 | 27 | } -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_5/PacketPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_5; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import protocolsupport.protocol.core.IPacketPrepender; 6 | 7 | public class PacketPrepender implements IPacketPrepender { 8 | 9 | @Override 10 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 11 | int readableBytes = input.readableBytes(); 12 | output.ensureWritable(readableBytes); 13 | output.writeBytes(input, input.readerIndex(), readableBytes); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_5/PacketSplitter.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_5; 2 | 3 | import java.util.List; 4 | 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.channel.ChannelHandlerContext; 7 | import protocolsupport.protocol.core.IPacketSplitter; 8 | 9 | public class PacketSplitter implements IPacketSplitter { 10 | 11 | @Override 12 | public void split(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception { 13 | list.add(input.readBytes(input.readableBytes())); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_5/PipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_5; 2 | 3 | import io.netty.channel.Channel; 4 | import io.netty.channel.ChannelPipeline; 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.api.ProtocolVersion; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.core.IPipeLineBuilder; 9 | 10 | public class PipeLineBuilder implements IPipeLineBuilder { 11 | 12 | @Override 13 | public void buildPipeLine(Channel channel, ProtocolVersion version) { 14 | ChannelPipeline pipeline = channel.pipeline(); 15 | NetworkManager networkmanager = (NetworkManager) pipeline.get(ChannelHandlers.NETWORK_MANAGER); 16 | networkmanager.a(new HandshakeListener(networkmanager)); 17 | ChannelHandlers.getSplitter(pipeline).setRealSplitter(new PacketSplitter()); 18 | ChannelHandlers.getPrepender(pipeline).setRealPrepender(new PacketPrepender()); 19 | ChannelHandlers.getDecoder(pipeline).setRealDecoder(new PacketDecoder(version)); 20 | ChannelHandlers.getEncoder(pipeline).setRealEncoder(new PacketEncoder(version)); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_6/HandshakeListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_6; 2 | 3 | import net.minecraft.server.v1_8_R3.NetworkManager; 4 | import protocolsupport.protocol.transformer.handlers.AbstractHandshakeListener; 5 | 6 | public class HandshakeListener extends AbstractHandshakeListener { 7 | 8 | public HandshakeListener(NetworkManager networkmanager) { 9 | super(networkmanager); 10 | } 11 | 12 | @Override 13 | public LoginListener getLoginListener(NetworkManager networkManager) { 14 | return new LoginListener(networkManager); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_6/LoginListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_6; 2 | 3 | import javax.crypto.SecretKey; 4 | 5 | import net.minecraft.server.v1_8_R3.MinecraftEncryption; 6 | import net.minecraft.server.v1_8_R3.NetworkManager; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.transformer.handlers.AbstractLoginListener; 9 | 10 | public class LoginListener extends AbstractLoginListener { 11 | 12 | public LoginListener(NetworkManager networkmanager) { 13 | super(networkmanager); 14 | } 15 | 16 | @Override 17 | protected boolean hasCompression() { 18 | return false; 19 | } 20 | 21 | @Override 22 | protected void enableEncryption(SecretKey key) { 23 | networkManager.channel.pipeline().addBefore(ChannelHandlers.SPLITTER, ChannelHandlers.DECRYPT, new PacketDecrypter(MinecraftEncryption.a(2, loginKey))); 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_6/PacketPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_6; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import protocolsupport.protocol.core.IPacketPrepender; 6 | 7 | public class PacketPrepender implements IPacketPrepender { 8 | 9 | @Override 10 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 11 | int readableBytes = input.readableBytes(); 12 | output.ensureWritable(readableBytes); 13 | output.writeBytes(input, input.readerIndex(), readableBytes); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_6/PacketSplitter.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_6; 2 | 3 | import java.util.List; 4 | 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.channel.ChannelHandlerContext; 7 | import protocolsupport.protocol.core.IPacketSplitter; 8 | 9 | public class PacketSplitter implements IPacketSplitter { 10 | 11 | @Override 12 | public void split(ChannelHandlerContext ctx, ByteBuf input, List list) throws Exception { 13 | list.add(input.readBytes(input.readableBytes())); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_6/PipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_6; 2 | 3 | import io.netty.channel.Channel; 4 | import io.netty.channel.ChannelPipeline; 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.api.ProtocolVersion; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.core.IPipeLineBuilder; 9 | 10 | public class PipeLineBuilder implements IPipeLineBuilder { 11 | 12 | @Override 13 | public void buildPipeLine(Channel channel, ProtocolVersion version) { 14 | ChannelPipeline pipeline = channel.pipeline(); 15 | NetworkManager networkmanager = (NetworkManager) pipeline.get(ChannelHandlers.NETWORK_MANAGER); 16 | networkmanager.a(new HandshakeListener(networkmanager)); 17 | ChannelHandlers.getSplitter(pipeline).setRealSplitter(new PacketSplitter()); 18 | ChannelHandlers.getPrepender(pipeline).setRealPrepender(new PacketPrepender()); 19 | ChannelHandlers.getDecoder(pipeline).setRealDecoder(new PacketDecoder(version)); 20 | ChannelHandlers.getEncoder(pipeline).setRealEncoder(new PacketEncoder(version)); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_6/utils/ChatEncoder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_6.utils; 2 | 3 | import com.google.gson.Gson; 4 | import com.google.gson.GsonBuilder; 5 | import com.google.gson.JsonObject; 6 | 7 | public class ChatEncoder { 8 | 9 | private static final Gson gson = new GsonBuilder().create(); 10 | 11 | public static String encode(String message) { 12 | JsonObject jsonObject = new JsonObject(); 13 | jsonObject.addProperty("text", message); 14 | return gson.toJson(jsonObject); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_7/HandshakeListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_7; 2 | 3 | import net.minecraft.server.v1_8_R3.NetworkManager; 4 | import protocolsupport.protocol.transformer.handlers.AbstractHandshakeListener; 5 | 6 | public class HandshakeListener extends AbstractHandshakeListener { 7 | 8 | public HandshakeListener(NetworkManager networkmanager) { 9 | super(networkmanager); 10 | } 11 | 12 | @Override 13 | public LoginListener getLoginListener(NetworkManager networkManager) { 14 | return new LoginListener(networkManager); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_7/LoginListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_7; 2 | 3 | import javax.crypto.SecretKey; 4 | 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.protocol.transformer.handlers.AbstractLoginListener; 7 | 8 | public class LoginListener extends AbstractLoginListener { 9 | 10 | public LoginListener(NetworkManager networkmanager) { 11 | super(networkmanager); 12 | } 13 | 14 | @Override 15 | protected boolean hasCompression() { 16 | return false; 17 | } 18 | 19 | @Override 20 | protected void enableEncryption(SecretKey key) { 21 | networkManager.a(loginKey); 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_7/PacketPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_7; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import protocolsupport.protocol.core.IPacketPrepender; 6 | import protocolsupport.utils.netty.ChannelUtils; 7 | 8 | public class PacketPrepender implements IPacketPrepender { 9 | 10 | @Override 11 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 12 | int readableBytes = input.readableBytes(); 13 | int varIntLength = net.minecraft.server.v1_8_R3.PacketDataSerializer.a(readableBytes); 14 | if (varIntLength > 3) { 15 | throw new IllegalArgumentException("unable to fit " + readableBytes + " into " + 3); 16 | } 17 | output.ensureWritable(varIntLength + readableBytes); 18 | ChannelUtils.writeVarInt(output, readableBytes); 19 | output.writeBytes(input, input.readerIndex(), readableBytes); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_7/PipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_7; 2 | 3 | import io.netty.channel.Channel; 4 | import io.netty.channel.ChannelPipeline; 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.api.ProtocolVersion; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.core.IPipeLineBuilder; 9 | 10 | public class PipeLineBuilder implements IPipeLineBuilder { 11 | 12 | @Override 13 | public void buildPipeLine(Channel channel, ProtocolVersion version) { 14 | ChannelPipeline pipeline = channel.pipeline(); 15 | NetworkManager networkmanager = (NetworkManager) pipeline.get(ChannelHandlers.NETWORK_MANAGER); 16 | networkmanager.a(new HandshakeListener(networkmanager)); 17 | ChannelHandlers.getSplitter(pipeline).setRealSplitter(new PacketSplitter()); 18 | ChannelHandlers.getPrepender(pipeline).setRealPrepender(new PacketPrepender()); 19 | ChannelHandlers.getDecoder(pipeline).setRealDecoder(new PacketDecoder(version)); 20 | ChannelHandlers.getEncoder(pipeline).setRealEncoder(new PacketEncoder(version)); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_8/HandshakeListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_8; 2 | 3 | import net.minecraft.server.v1_8_R3.NetworkManager; 4 | import protocolsupport.protocol.transformer.handlers.AbstractHandshakeListener; 5 | 6 | public class HandshakeListener extends AbstractHandshakeListener { 7 | 8 | public HandshakeListener(NetworkManager networkmanager) { 9 | super(networkmanager); 10 | } 11 | 12 | @Override 13 | public LoginListener getLoginListener(NetworkManager networkManager) { 14 | return new LoginListener(networkManager); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_8/LoginListener.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_8; 2 | 3 | import javax.crypto.SecretKey; 4 | 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.protocol.transformer.handlers.AbstractLoginListener; 7 | 8 | public class LoginListener extends AbstractLoginListener { 9 | 10 | public LoginListener(NetworkManager networkmanager) { 11 | super(networkmanager); 12 | } 13 | 14 | @Override 15 | protected boolean hasCompression() { 16 | return true; 17 | } 18 | 19 | @Override 20 | protected void enableEncryption(SecretKey key) { 21 | networkManager.a(loginKey); 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_8/PacketPrepender.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_8; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import protocolsupport.protocol.core.IPacketPrepender; 6 | import protocolsupport.utils.netty.ChannelUtils; 7 | 8 | public class PacketPrepender implements IPacketPrepender { 9 | 10 | @Override 11 | public void prepend(ChannelHandlerContext ctx, ByteBuf input, ByteBuf output) throws Exception { 12 | final int readableBytes = input.readableBytes(); 13 | final int varIntLength = net.minecraft.server.v1_8_R3.PacketDataSerializer.a(readableBytes); 14 | if (varIntLength > 3) { 15 | throw new IllegalArgumentException("unable to fit " + readableBytes + " into " + 3); 16 | } 17 | output.ensureWritable(varIntLength + readableBytes); 18 | ChannelUtils.writeVarInt(output, readableBytes); 19 | output.writeBytes(input, input.readerIndex(), readableBytes); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_1_8/PipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_1_8; 2 | 3 | import io.netty.channel.Channel; 4 | import io.netty.channel.ChannelPipeline; 5 | import net.minecraft.server.v1_8_R3.NetworkManager; 6 | import protocolsupport.api.ProtocolVersion; 7 | import protocolsupport.protocol.core.ChannelHandlers; 8 | import protocolsupport.protocol.core.IPipeLineBuilder; 9 | 10 | public class PipeLineBuilder implements IPipeLineBuilder { 11 | 12 | @Override 13 | public void buildPipeLine(Channel channel, ProtocolVersion version) { 14 | ChannelPipeline pipeline = channel.pipeline(); 15 | NetworkManager networkmanager = (NetworkManager) pipeline.get(ChannelHandlers.NETWORK_MANAGER); 16 | networkmanager.a(new HandshakeListener(networkmanager)); 17 | ChannelHandlers.getSplitter(pipeline).setRealSplitter(new PacketSplitter()); 18 | ChannelHandlers.getPrepender(pipeline).setRealPrepender(new PacketPrepender()); 19 | ChannelHandlers.getDecoder(pipeline).setRealDecoder(new PacketDecoder()); 20 | ChannelHandlers.getEncoder(pipeline).setRealEncoder(new PacketEncoder()); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/transformer/v_legacy/PipeLineBuilder.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.transformer.v_legacy; 2 | 3 | import io.netty.channel.Channel; 4 | import protocolsupport.api.ProtocolVersion; 5 | import protocolsupport.protocol.core.ChannelHandlers; 6 | import protocolsupport.protocol.core.IPipeLineBuilder; 7 | 8 | public class PipeLineBuilder implements IPipeLineBuilder { 9 | 10 | private static final LegacyLoginAndPingHandler legacyHandler = new LegacyLoginAndPingHandler(); 11 | 12 | @Override 13 | public void buildPipeLine(Channel channel, ProtocolVersion version) { 14 | channel.pipeline().addAfter(ChannelHandlers.TIMEOUT, ChannelHandlers.LEGACY_KICK, legacyHandler); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/id/RemappingRegistry.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.id; 2 | 3 | import java.util.EnumMap; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | 7 | public abstract class RemappingRegistry { 8 | 9 | private final EnumMap remappings = new EnumMap<>(ProtocolVersion.class); 10 | 11 | public RemappingRegistry() { 12 | for (ProtocolVersion version : ProtocolVersion.values()) { 13 | remappings.put(version, createTable()); 14 | } 15 | } 16 | 17 | public RemappingTable getTable(ProtocolVersion version) { 18 | return remappings.get(version); 19 | } 20 | 21 | protected void copy(RemappingRegistry other) { 22 | remappings.clear(); 23 | remappings.putAll(other.remappings); 24 | } 25 | 26 | protected abstract RemappingTable createTable(); 27 | 28 | protected void registerRemapEntry(int from, int to, ProtocolVersion... versions) { 29 | for (ProtocolVersion version : versions) { 30 | remappings.get(version).setRemap(from, to); 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/id/RemappingTable.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.id; 2 | 3 | public class RemappingTable { 4 | 5 | protected final int[] table; 6 | public RemappingTable(int size) { 7 | table = new int[size]; 8 | for (int i = 0; i < table.length; i++) { 9 | table[i] = i; 10 | } 11 | } 12 | 13 | public void setRemap(int from, int to) { 14 | table[from] = to; 15 | } 16 | 17 | public int getRemap(int id) { 18 | return table[id]; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/nbt/tileupdate/SpecificTransformer.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.nbt.tileupdate; 2 | 3 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 4 | 5 | public interface SpecificTransformer { 6 | 7 | public NBTTagCompound transform(NBTTagCompound input); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/remapper/value/ValueRemapper.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.remapper.value; 2 | 3 | import protocolsupport.utils.DataWatcherObject; 4 | 5 | public interface ValueRemapper { 6 | 7 | public static final ValueRemapper NO_OP = new ValueRemapper() { 8 | @Override 9 | public DataWatcherObject remap(DataWatcherObject object) { 10 | return object; 11 | } 12 | }; 13 | 14 | public DataWatcherObject remap(DataWatcherObject object); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/remapper/value/ValueRemapperStringClamp.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.remapper.value; 2 | 3 | import protocolsupport.utils.DataWatcherObject; 4 | import protocolsupport.utils.Utils; 5 | 6 | public class ValueRemapperStringClamp implements ValueRemapper { 7 | 8 | private int limit; 9 | public ValueRemapperStringClamp(int limit) { 10 | this.limit = limit; 11 | } 12 | 13 | @Override 14 | public DataWatcherObject remap(DataWatcherObject object) { 15 | object.value = Utils.clampString((String) object.value, limit); 16 | return object; 17 | } 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/remapper/value/ValueRemapperToByte.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.remapper.value; 2 | 3 | import protocolsupport.utils.DataWatcherObject; 4 | 5 | public class ValueRemapperToByte implements ValueRemapper { 6 | 7 | @Override 8 | public DataWatcherObject remap(DataWatcherObject object) { 9 | object.toByte(); 10 | return object; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/remapper/value/ValueRemapperToInt.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.remapper.value; 2 | 3 | import protocolsupport.utils.DataWatcherObject; 4 | 5 | public class ValueRemapperToInt implements ValueRemapper { 6 | 7 | @Override 8 | public DataWatcherObject remap(DataWatcherObject object) { 9 | object.toInt(); 10 | return object; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/types/WatchedEntity.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.types; 2 | 3 | import protocolsupport.protocol.typeremapper.watchedentity.remapper.SpecificType; 4 | 5 | public abstract class WatchedEntity { 6 | 7 | private int id; 8 | 9 | public WatchedEntity(int id) { 10 | this.id = id; 11 | } 12 | 13 | public int getId() { 14 | return id; 15 | } 16 | 17 | public abstract SpecificType getType(); 18 | 19 | @Override 20 | public String toString() { 21 | return new StringBuilder(100) 22 | .append("Id: ").append(getId()).append(", ") 23 | .append("Type: ").append(getType()) 24 | .toString(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/types/WatchedLiving.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.types; 2 | 3 | import protocolsupport.protocol.typeremapper.watchedentity.remapper.SpecificType; 4 | 5 | 6 | public class WatchedLiving extends WatchedEntity { 7 | 8 | private final SpecificType stype; 9 | 10 | public WatchedLiving(int id, int type) { 11 | super(id); 12 | stype = SpecificType.getMobByTypeId(type); 13 | } 14 | 15 | @Override 16 | public SpecificType getType() { 17 | return stype; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/types/WatchedObject.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.types; 2 | 3 | import protocolsupport.protocol.typeremapper.watchedentity.remapper.SpecificType; 4 | 5 | 6 | public class WatchedObject extends WatchedEntity { 7 | 8 | private final SpecificType stype; 9 | 10 | public WatchedObject(int id, int type) { 11 | super(id); 12 | stype = SpecificType.getObjectByTypeId(type); 13 | } 14 | 15 | @Override 16 | public SpecificType getType() { 17 | return stype; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeremapper/watchedentity/types/WatchedPlayer.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeremapper.watchedentity.types; 2 | 3 | import protocolsupport.protocol.typeremapper.watchedentity.remapper.SpecificType; 4 | 5 | 6 | public class WatchedPlayer extends WatchedEntity { 7 | 8 | public WatchedPlayer(int id) { 9 | super(id); 10 | } 11 | 12 | @Override 13 | public SpecificType getType() { 14 | return SpecificType.PLAYER; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeskipper/id/SkippingRegistry.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeskipper.id; 2 | 3 | import java.util.EnumMap; 4 | 5 | import protocolsupport.api.ProtocolVersion; 6 | 7 | public abstract class SkippingRegistry { 8 | 9 | private final EnumMap registry = new EnumMap(ProtocolVersion.class); 10 | 11 | public SkippingRegistry() { 12 | for (ProtocolVersion version : ProtocolVersion.values()) { 13 | registry.put(version, createTable()); 14 | } 15 | } 16 | 17 | public SkippingTable getTable(ProtocolVersion version) { 18 | return registry.get(version); 19 | } 20 | 21 | protected abstract SkippingTable createTable(); 22 | 23 | protected void registerSkipEntry(int id, ProtocolVersion... versions) { 24 | for (ProtocolVersion version : versions) { 25 | registry.get(version).setSkip(id); 26 | } 27 | } 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/protocolsupport/protocol/typeskipper/id/SkippingTable.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.protocol.typeskipper.id; 2 | 3 | public class SkippingTable { 4 | 5 | protected final boolean[] table; 6 | public SkippingTable(int size) { 7 | table = new boolean[size]; 8 | for (int i = 0; i < table.length; i++) { 9 | table[i] = false; 10 | } 11 | } 12 | 13 | public void setSkip(int id) { 14 | table[id] = true; 15 | } 16 | 17 | public boolean shouldSkip(int id) { 18 | return table[id]; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/server/block/BlockAnvil.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.block; 2 | 3 | import net.minecraft.server.v1_8_R3.Block; 4 | import net.minecraft.server.v1_8_R3.BlockPosition; 5 | import net.minecraft.server.v1_8_R3.EntityHuman; 6 | import net.minecraft.server.v1_8_R3.EnumDirection; 7 | import net.minecraft.server.v1_8_R3.IBlockData; 8 | import net.minecraft.server.v1_8_R3.World; 9 | 10 | public class BlockAnvil extends net.minecraft.server.v1_8_R3.BlockAnvil { 11 | 12 | public BlockAnvil() { 13 | super(); 14 | c(5.0f); 15 | a(Block.p); 16 | b(2000.0f); 17 | c("anvil"); 18 | } 19 | 20 | @Override 21 | public boolean interact(final World world, final BlockPosition blockposition, final IBlockData iblockdata, final EntityHuman entityhuman, final EnumDirection enumdirection, final float f, final float f1, final float f2) { 22 | entityhuman.openTileEntity(new protocolsupport.server.tileentity.TileEntityContainerAnvil(world, blockposition)); 23 | return true; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/protocolsupport/server/block/BlockCarpet.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.block; 2 | 3 | import net.minecraft.server.v1_8_R3.AxisAlignedBB; 4 | import net.minecraft.server.v1_8_R3.Block; 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import net.minecraft.server.v1_8_R3.IBlockData; 7 | import net.minecraft.server.v1_8_R3.World; 8 | 9 | public class BlockCarpet extends net.minecraft.server.v1_8_R3.BlockCarpet { 10 | 11 | public BlockCarpet() { 12 | c(0.1f); 13 | a(Block.l); 14 | c("woolCarpet"); 15 | e(0); 16 | } 17 | 18 | @Override 19 | public AxisAlignedBB a(final World world, final BlockPosition blockposition, final IBlockData iblockdata) { 20 | return null; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/server/block/BlockEnchantTable.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.block; 2 | 3 | import net.minecraft.server.v1_8_R3.TileEntity; 4 | import net.minecraft.server.v1_8_R3.World; 5 | import protocolsupport.server.tileentity.TileEntityEnchantTable; 6 | 7 | public class BlockEnchantTable extends net.minecraft.server.v1_8_R3.BlockEnchantmentTable { 8 | 9 | public BlockEnchantTable() { 10 | super(); 11 | c(5.0f); 12 | b(2000.0f); 13 | c("enchantmentTable"); 14 | } 15 | 16 | @Override 17 | public TileEntity a(final World world, final int n) { 18 | return new TileEntityEnchantTable(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/protocolsupport/server/block/BlockSnow.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.block; 2 | 3 | import net.minecraft.server.v1_8_R3.AxisAlignedBB; 4 | import net.minecraft.server.v1_8_R3.Block; 5 | import net.minecraft.server.v1_8_R3.BlockPosition; 6 | import net.minecraft.server.v1_8_R3.IBlockData; 7 | import net.minecraft.server.v1_8_R3.World; 8 | 9 | public class BlockSnow extends net.minecraft.server.v1_8_R3.BlockSnow { 10 | 11 | public BlockSnow() { 12 | c(0.1f); 13 | a(Block.n); 14 | c("snow"); 15 | e(0); 16 | } 17 | 18 | @Override 19 | public AxisAlignedBB a(final World world, final BlockPosition blockposition, final IBlockData iblockdata) { 20 | return null; 21 | } 22 | 23 | public AxisAlignedBB getRealBB(final World world, final BlockPosition blockposition, final IBlockData iblockdata) { 24 | return super.a(world, blockposition, iblockdata); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/protocolsupport/server/container/ContainerAnvil.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.container; 2 | 3 | import net.minecraft.server.v1_8_R3.BlockPosition; 4 | import net.minecraft.server.v1_8_R3.EntityHuman; 5 | import net.minecraft.server.v1_8_R3.ICrafting; 6 | import net.minecraft.server.v1_8_R3.PlayerInventory; 7 | import net.minecraft.server.v1_8_R3.World; 8 | 9 | public class ContainerAnvil extends net.minecraft.server.v1_8_R3.ContainerAnvil { 10 | 11 | public ContainerAnvil(final PlayerInventory playerinventory, final World world, final BlockPosition blockposition, final EntityHuman entityhuman) { 12 | super(playerinventory, world, blockposition, entityhuman); 13 | } 14 | 15 | @Override 16 | public void b() { 17 | super.b(); 18 | for (ICrafting listener : listeners) { 19 | listener.setContainerData(this, 0, a); 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/protocolsupport/server/tileentity/TileEntityContainerAnvil.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.tileentity; 2 | 3 | import net.minecraft.server.v1_8_R3.BlockPosition; 4 | import net.minecraft.server.v1_8_R3.Container; 5 | import net.minecraft.server.v1_8_R3.EntityHuman; 6 | import net.minecraft.server.v1_8_R3.PlayerInventory; 7 | import net.minecraft.server.v1_8_R3.World; 8 | import protocolsupport.server.container.ContainerAnvil; 9 | 10 | public class TileEntityContainerAnvil extends net.minecraft.server.v1_8_R3.BlockAnvil.TileEntityContainerAnvil { 11 | 12 | private final World world; 13 | private final BlockPosition position; 14 | 15 | public TileEntityContainerAnvil(final World world, final BlockPosition position) { 16 | super(world, position); 17 | this.world = world; 18 | this.position = position; 19 | } 20 | 21 | @Override 22 | public Container createContainer(final PlayerInventory playerinventory, final EntityHuman entityhuman) { 23 | return new ContainerAnvil(playerinventory, world, position, entityhuman); 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/protocolsupport/server/tileentity/TileEntityEnchantTable.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.server.tileentity; 2 | 3 | import net.minecraft.server.v1_8_R3.Container; 4 | import net.minecraft.server.v1_8_R3.EntityHuman; 5 | import net.minecraft.server.v1_8_R3.PlayerInventory; 6 | import protocolsupport.server.container.ContainerEnchantTable; 7 | 8 | public class TileEntityEnchantTable extends net.minecraft.server.v1_8_R3.TileEntityEnchantTable { 9 | 10 | @Override 11 | public void c() { 12 | } 13 | 14 | @Override 15 | public Container createContainer(final PlayerInventory playerinventory, final EntityHuman entityHuman) { 16 | return new ContainerEnchantTable(playerinventory, world, position); 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /src/protocolsupport/utils/recyclable/RecyclableArrayList.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.utils.recyclable; 2 | 3 | import java.util.ArrayList; 4 | 5 | import io.netty.util.Recycler; 6 | 7 | public class RecyclableArrayList extends ArrayList implements RecyclableCollection { 8 | private static final long serialVersionUID = 1L; 9 | 10 | @SuppressWarnings("rawtypes") 11 | private static final Recycler RECYCLER = new Recycler() { 12 | @Override 13 | protected RecyclableArrayList newObject(Recycler.Handle handle) { 14 | return new RecyclableArrayList(handle); 15 | } 16 | }; 17 | 18 | @SuppressWarnings("unchecked") 19 | public static RecyclableArrayList create() { 20 | return RECYCLER.get(); 21 | } 22 | 23 | private final Recycler.Handle handle; 24 | private RecyclableArrayList(Recycler.Handle handle) { 25 | this.handle = handle; 26 | } 27 | 28 | @Override 29 | public void recycle() { 30 | clear(); 31 | RECYCLER.recycle(this, handle); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/protocolsupport/utils/recyclable/RecyclableCollection.java: -------------------------------------------------------------------------------- 1 | package protocolsupport.utils.recyclable; 2 | 3 | import java.util.Collection; 4 | 5 | public interface RecyclableCollection extends Collection { 6 | 7 | public void recycle(); 8 | 9 | } 10 | --------------------------------------------------------------------------------