PaperMC/Spigot-API-Patches
Minecrell 16869992a8 Call PaperServerListPingEvent for legacy pings (#1057)
* Make the legacy ping handler more reliable

The Minecraft server often fails to respond to old ("legacy") pings
from old Minecraft versions using the protocol used before the switch
to Netty in Minecraft 1.7.

Due to packet fragmentation[1], we might not have all needed bytes
available when the LegacyPingHandler is called. In this case, it will
run into an error, remove the handler and continue using the modern
protocol.

This is unlikely to happen for the first two revisions of the legacy
ping protocol (used in Minecraft 1.5.x and older) since the request
consists of only one or two bytes, but happens frequently for the
last/third revision introduced in Minecraft 1.6.

It has much larger, variable packet sizes due to the inclusion of
the virtual host (the hostname/port used to connect to the server).

The solution[2] is simple: If we find more than two matching bytes,
we buffer the remaining bytes until we have enough to fully read and
respond to the request.

[1]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h3-11
[2]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h4-13

* Add legacy ping support to PaperServerListPingEvent

Add a new method to StatusClient check if the client is a legacy
client that does not support all of the features provided in the
event.
2018-03-30 13:00:01 -04:00
..
0001-POM-changes.patch Update upstream B/CB/S 2017-12-27 22:45:33 -06:00
0002-add-Trove-and-FastUtil-to-Bukkit.patch Fix NPE when getting location from players EnderChest (fixes #1041) 2018-03-10 13:26:49 +00:00
0003-Timings-v2.patch Update upstream B/CB/S 2017-12-27 22:45:33 -06:00
0004-Player-affects-spawning-API.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0005-Add-getTPS-method.patch Update API patches to MC 1.12pre2 2017-05-14 08:46:44 -05:00
0006-Add-async-chunk-load-API.patch Fix NPE when getting location from players EnderChest (fixes #1041) 2018-03-10 13:26:49 +00:00
0007-Entity-Origin-API.patch Update B/CB/S 2017-11-08 16:13:57 +00:00
0008-Check-Paper-versions.patch Update upstream CB, reduce version cache time 2017-02-07 16:29:26 -06:00
0009-Add-PlayerLocaleChangeEvent.patch Update upstream B/CB/S 2017-05-27 23:25:17 -05:00
0010-Add-player-view-distance-API.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0011-Add-BeaconEffectEvent.patch Cleanup obfuscation helper comment format 2016-07-28 19:09:54 -05:00
0012-Add-PlayerInitialSpawnEvent.patch Make UseItem rate limiting stricter, configurable 2016-09-10 23:27:07 -05:00
0013-Made-EntityDismountEvent-Cancellable.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0014-Automatically-disable-plugins-that-fail-to-load.patch Make UseItem rate limiting stricter, configurable 2016-09-10 23:27:07 -05:00
0015-Expose-server-CommandMap.patch Update upstream B/CB/S 2017-05-15 11:25:20 -05:00
0016-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0017-Player-Tab-List-and-Title-APIs.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0018-Add-exception-reporting-event.patch Update B/CB/S 2017-11-08 16:13:57 +00:00
0019-Fix-ServerListPingEvent-flagging-as-Async.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0020-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0021-Add-methods-for-working-with-arrows-stuck-in-living-.patch Update to 1.12.1 2017-08-03 17:27:54 +02:00
0022-Complete-resource-pack-API.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0023-Use-ASM-for-event-executors.patch Cache generated EventExecutors (fixes #786) 2017-09-14 14:57:50 +01:00
0024-Add-a-call-helper-to-Event.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0025-Add-sender-name-to-commands.yml-replacement.patch Update B/CB/S 2017-11-08 16:13:57 +00:00
0026-Add-command-to-reload-permissions.yml-and-require-co.patch Update B/CB/S 2017-11-10 17:31:39 -05:00
0027-Custom-replacement-for-eaten-items.patch Properly fix JavaDoc linting issues 2017-06-10 17:12:48 -05:00
0028-Access-items-by-EquipmentSlot.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0029-Entity-AddTo-RemoveFrom-World-Events.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0030-EntityPathfindEvent.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0031-Reduce-thread-synchronization-in-MetadataStoreBase.patch Update upstream B/CB/S 2016-08-27 18:41:58 -05:00
0032-Add-MetadataStoreBase.removeAll-Plugin.patch Fix NPE when getting location from players EnderChest (fixes #1041) 2018-03-10 13:26:49 +00:00
0033-Add-PlayerUseUnknownEntityEvent.patch Remove Ignore invalid Marker Icon ID's in maps 2017-04-22 15:52:56 +01:00
0034-Add-handshake-event-to-allow-plugins-to-handle-clien.patch Add OBFHELPER - InventoryEnderChest#getTileEntity 2018-03-10 17:11:51 +00:00
0035-Arrow-pickup-rule-API.patch Fix javadoc warnings 2017-07-03 19:54:40 +01:00
0036-EntityRegainHealthEvent-isFastRegen-API.patch Fix javadoc warnings 2017-07-03 19:54:40 +01:00
0037-LootTable-API.patch Update B/CB/S 2017-08-06 00:08:21 +01:00
0038-Add-EntityZapEvent.patch Remove Ignore invalid Marker Icon ID's in maps 2017-04-22 15:52:56 +01:00
0039-Misc-Utils.patch Remove Ignore invalid Marker Icon ID's in maps 2017-04-22 15:52:56 +01:00
0040-Allow-Reloading-of-Command-Aliases.patch Update B/CB/S 2017-11-10 17:31:39 -05:00
0041-Add-source-to-PlayerExpChangeEvent.patch Fix NPE when getting location from players EnderChest (fixes #1041) 2018-03-10 13:26:49 +00:00
0042-Add-ProjectileCollideEvent.patch Remove Ignore invalid Marker Icon ID's in maps 2017-04-22 15:52:56 +01:00
0043-Add-String-based-Action-Bar-API.patch Update B/CB/S 2017-12-05 01:34:10 +00:00
0044-Add-API-methods-to-control-if-armour-stands-can-move.patch Remove Ignore invalid Marker Icon ID's in maps 2017-04-22 15:52:56 +01:00
0045-IllegalPacketEvent.patch Remove Ignore invalid Marker Icon ID's in maps 2017-04-22 15:52:56 +01:00
0046-Fireworks-API-s.patch Update upstream B/CB 2017-01-06 15:45:59 -06:00
0047-PlayerTeleportEndGatewayEvent.patch Properly fix JavaDoc linting issues 2017-06-10 17:12:48 -05:00
0048-Provide-E-TE-Chunk-count-stat-methods.patch Add World.getPlayerCount 2017-01-13 23:00:33 +11:00
0049-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch ExperienceOrbs API for Reason/Source/Triggering player 2017-12-19 16:46:27 -05:00
0050-Expose-WorldBorder-isInBounds-Location-check.patch Update upstream B/CB/S 2017-01-25 22:27:42 -06:00
0051-Add-configuration-option-to-prevent-player-names-fro.patch Properly fix JavaDoc linting issues 2017-06-10 17:12:48 -05:00
0052-Fix-upstream-javadoc-warnings-and-errors.patch Update B/CB 2018-02-12 17:37:33 +00:00
0053-Item-canEntityPickup.patch Renumber patches, fix conflicts, update for 1.12 2017-06-11 20:02:57 -05:00
0054-PlayerPickupItemEvent-setFlyAtPlayer.patch Update Upstream 2017-07-30 18:41:08 -04:00
0055-PlayerAttemptPickupItemEvent.patch PlayerAttemptPickupItemEvent additions 2017-11-10 22:49:53 -05:00
0056-Add-UnknownCommandEvent.patch Update B/CB 2017-07-28 15:51:46 +01:00
0057-Basic-PlayerProfile-API.patch Add Setters for ID/Name and add completeByCache for Profile API 2018-03-25 21:50:46 -04:00
0058-Shoulder-Entities-Release-API.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0059-Profile-Lookup-Events.patch Move ProfileWhitelistVerifyEvent to use new PlayerProfile API 2018-01-19 00:12:03 -05:00
0060-Entity-fromMobSpawner.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0061-Allow-Changing-of-Player-Sample-in-ServerListPingEve.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0062-Improve-the-Saddle-API-for-Horses.patch Update B/CB 2018-02-12 17:37:33 +00:00
0063-ensureServerConversions-API.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0064-Add-getI18NDisplayName-API.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0065-ProfileWhitelistVerifyEvent.patch Move ProfileWhitelistVerifyEvent to use new PlayerProfile API 2018-01-19 00:12:03 -05:00
0066-Make-plugins-list-alphabetical.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0067-LivingEntity-setKiller.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0068-Handle-plugin-prefixes-in-implementation-logging-con.patch [CI-SKIP] Add Minecrell to MIT list (#1035) 2018-03-08 07:08:21 -08:00
0069-Allow-plugins-to-use-SLF4J-for-logging.patch [CI-SKIP] Add Minecrell to MIT list (#1035) 2018-03-08 07:08:21 -08:00
0070-Add-workaround-for-plugins-modifying-the-parent-of-t.patch [CI-SKIP] Add Minecrell to MIT list (#1035) 2018-03-08 07:08:21 -08:00
0071-Add-PlayerJumpEvent.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0072-Expose-client-protocol-version-and-virtual-host.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0073-Add-PlayerArmorChangeEvent.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0074-API-to-get-a-BlockState-without-a-snapshot.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0075-AsyncTabCompleteEvent.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0076-Display-warning-on-deprecated-recipe-API.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0077-Add-World-createExplosion-Location-float-boolean-boo.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0078-PlayerPickupExperienceEvent.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0079-ExperienceOrbMergeEvent.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0080-Ability-to-apply-mending-to-XP-API.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0081-PreCreatureSpawnEvent.patch Remove warning for custom entities in precreaturespawn, add note to event 2018-01-28 22:50:35 -05:00
0082-PlayerNaturallySpawnCreaturesEvent.patch Add PlayerProfile API to replace GameProfile 2018-01-18 23:19:30 -05:00
0083-Add-SkullMeta.setPlayerProfile-API.patch Add SkullMeta.setPlayerProfile API 2018-01-19 00:38:49 -05:00
0084-Fill-Profile-Property-Events.patch Properly flag profile events as async as needed 2018-02-01 23:24:27 -05:00
0085-PlayerAdvancementCriterionGrantEvent.patch PlayerAdvancementCriterionGrantEvent (#978) 2018-01-21 13:23:34 -05:00
0086-Add-ArmorStand-Item-Meta.patch Add ArmorStand Item Meta 2018-01-27 20:40:42 -05:00
0087-Optimize-Hoppers.patch Optimize Hoppers 2018-02-12 23:26:02 -05:00
0088-Tameable-getOwnerUniqueId-API.patch Rename getOwnerUUID to Tameable#getOwnerUniqueId for consistency 2018-02-24 01:17:05 -05:00
0089-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch Ability to change PlayerProfile in AsyncPreLoginEvent 2018-03-18 11:46:14 -04:00
0090-Add-extended-PaperServerListPingEvent.patch Use copies for PlayerProfile in PaperServerList and SkullMeta 2018-03-22 23:32:55 -04:00
0091-Implement-deprecated-player-sample-API.patch Improve backward compatibility of deprecated player sample API (#1065) 2018-03-26 17:45:18 -04:00
0092-Player.setPlayerProfile-API.patch Use copies for PlayerProfile in PaperServerList and SkullMeta 2018-03-22 23:32:55 -04:00
0093-getPlayerUniqueId-API.patch Use copies for PlayerProfile in PaperServerList and SkullMeta 2018-03-22 23:32:55 -04:00
0094-Add-legacy-ping-support-to-PaperServerListPingEvent.patch Call PaperServerListPingEvent for legacy pings (#1057) 2018-03-30 13:00:01 -04:00