├── .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