Commit graph

3894 commits

Author SHA1 Message Date
Aikar
eb39758848 missed a spot for pickupDelay fix 2019-03-24 18:15:39 -04:00
Aikar
644e1d4f8f don't go below 0 for pickupDelay, breaks picking up items
vanilla checks for == 0

Fixes #1911
2019-03-24 18:12:56 -04:00
Aikar
310ae5b900 update metadata refresh approach
same fix, less work needed to do it
2019-03-24 17:48:22 -04:00
Aikar
a76d462eae Timings Improvements
use a better stack for managing timing tree relationships
remove unnecessary synchronization (i forgot HANDLERS is only touched on main)

this should hopefully resolve any data integrity concerns
2019-03-24 17:47:23 -04:00
Aikar
3f35065cd3 include chunk gen mobs in natural counting, fix some spawn reasons 2019-03-24 13:55:27 -04:00
Joel Paulien
3216b19a10 Add PlayerPostRespawnEvent (#1622) 2019-03-24 10:50:42 -07:00
Mark Vainomaa
6b534b0a0e Add GS4 query event (#1906) 2019-03-24 19:01:31 +02:00
Johnny Cao
7ac68eb046 Fixes issues with player interaction preventing metadata from being updated for other players (#1896) 2019-03-24 10:00:42 -07:00
Aikar
5b0b2630b1 Add a config for mob spawn change, really shouldn't use it
turning this to true allows 1 player to deny other players the ability
to have mobs spawn. It really is a bad idea and reverts back to iffy
mob spawn limits where mob farms in the world stops natural spawns
from occuring.

Really recommend resorting to different solutions than ever using this config.
2019-03-24 12:46:52 -04:00
Aikar
6e81645df1 Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
451bd74e Use gson for decoding version command

CraftBukkit Changes:
51100db8 SPIGOT-4678: Fix placing signs in certain circumstances
2019-03-24 12:33:39 -04:00
Zach Brown
66ac2b2606 Restore lost player cooldown APIs
Accidentally removed in a7ba5db3de
2019-03-24 13:16:59 -04:00
Aikar
669007b2f6 Only count Natural Spawned mobs towards natural spawn mob limit
This resolves the super common complaint about mobs not spawning.

This was ultimately a flaw in the vanilla count algorithim that allows
spawners and other misc mobs to count against the mob limit, which are
not bounded, and can prevent the entire world from spawning new.

I believe Bukkits changes around persistence may of actually made it
worse than vanilla.

This should fully solve all of the issues around it so that only natural
influences natural spawns.
2019-03-24 01:05:07 -04:00
Aikar
603ab21457 Entity#getEntitySpawnReason
Allows you to return the SpawnReason for why an Entity Spawned

Pre existing entities will return NATURAL if it was a non
persistenting Living Entity, SPAWNER for spawners,
or DEFAULT since data was not stored.
2019-03-24 01:00:55 -04:00
Aikar
2651356bc9 Fix a case where mob spawning could load/gen chunks 2019-03-24 00:59:45 -04:00
Automated
252420097a [Auto] Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
d65a2576 SPIGOT-4674: Allow spawning hanging on top/bottom of block
2019-03-22 05:36:44 -04:00
Automated
d80e635e91 [Auto] Updated Upstream (Bukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
0eaf10f1 Add getObject methods to ConfigurationSection
2019-03-21 06:21:43 -04:00
Riley Park
c752d3a80d Use proper max length when serialising BungeeCord text component 2019-03-20 21:20:56 -07:00
Shane Freeder
7e331bdc72 Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Developers!: You will need to clean up your work/Minecraft/1.13.2 folder
for this

Also, restore a patch that was dropped in the last upstream

Bukkit Changes:
279eeab3 Fix command description not being set
96e2bb18 Remove debug print from SyntheticEventTest

CraftBukkit Changes:
d3ed1516 Fix dangerously threaded beacons
217a293d Don't relocate joptsimple to allow --help to work.
1be05a21 Prepare for imminent Java 12 release
a49270b2 Mappings Update
5259d80c SPIGOT-4669: Fix PlayerTeleportEvent coordinates for relative teleports

Spigot Changes:
e6eb36f2 Rebuild patches
2019-03-20 01:46:00 +00:00
Shane Freeder
a7ba5db3de Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Please note that this build includes changes to meet upstreams
requirements for nullability annotations. While we aim for a level of
accuracy, these might not be 100% correct, if there are any issues,
please speak to us on discord, or open an issue on the tracker to
discuss.

Bukkit Changes:
9a6a1de3 Remove nullability annotations from enum constructors
3f0591ea SPIGOT-2540: Add nullability annotations to entire Bukkit API

CraftBukkit Changes:
8d8475fc SPIGOT-4666: Force parameter in HumanEntity#sleep
8b1588e2 Fix ExplosionPrimeEvent#setFire not working with EnderCrystals
39a287b7 Don't ignore newlines in PlayerListHeader/Footer

Spigot Changes:
cf694d87 Add nullability annotations
2019-03-20 00:28:15 +00:00
Zach Brown
2b722719b3 Stop loading entity bounding boxes from NBT
This may be creating more issues than it's solving
cc GH-1806
2019-03-15 23:25:32 -04:00
Mark Vainomaa
acdbefc146 Add WhitelistToggleEvent (#1899) 2019-03-13 22:51:42 +02:00
Automated
4fab1deb13 [Auto] Updated Upstream (Bukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
f802d0a5 Use TestPlugin for ConversationTest
2019-03-08 23:16:44 -05:00
Automated
fd3df8fbd0 [Auto] Updated Upstream (Bukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
77cbdc61 SPIGOT-4651: MerchantRecipe.setIngredients() allows more than 2 ingredients
2019-03-07 12:36:43 -05:00
Shane Freeder
ab0e7dd082 Revert "Don't update snapshot blockstates" (Fixes #1882)
CraftBukkit already checks that we're not trying to copy data
back to the same snapshot, reverting this fixes the ability to
properly update non-snapshot blockstates
2019-03-07 17:16:39 +00:00
Zach Brown
a663d0d550 Update upstream B/CB
--- work/Bukkit
Submodule work/Bukkit 96e09e50..0b95b68f:
  > SPIGOT-4650: Charging API for Vex

--- work/CraftBukkit
Submodule work/CraftBukkit f102d882..77ca7ca0:
  > Rebuild patches
  > Improve damage handling of dead entities
  > SPIGOT-4646: Test + fix InventoryWrapper.getContents
  > SPIGOT-4650: Charging API for Vex
2019-03-06 00:46:21 -05:00
Zach Brown
bf3ce069c8 [dev] Make init script use different author names
Lets us differentiate whats Vanilla and whats from CB at a glance in IJ.
2019-03-06 00:14:07 -05:00
Phoenix616
1067c20909 Improve damage handling of dead entities
Manually applied because of upstream patch file issues.
Upstream 73597ed865
2019-03-06 00:00:34 -05:00
Automated
ba4cb3003e [Auto] Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
f102d882 SPIGOT-4647: Properly cancel VehicleDamageEvent
ec17d07d Use getBukkitEntity for ExplosionPrimeEvent instead of creating new one
2019-03-05 00:46:37 -05:00
Zach Brown
99c3cd2a02 Set Zombie lastTick at start of drowned conversion
Fixes GH-1887

Prior to this change, the lastTick value for zombies would be set to
their initial spawn tick. This caused the drowned conversion process to
immediately occur rather than observing the vanilla delay.

Easy fix, just make sure its set again when the process actually starts.

And no, this change has absolutely nothing to do with the other thing.
That's been fixed and remains fixed.
2019-03-04 02:25:22 -05:00
Zach Brown
46a38257b0 Fire PlayerArmorChangeEvent for more cases 2019-03-03 15:21:51 -05:00
Aikar
51e360c648 Fix crops not popping when no plugin listens to physics 2019-03-03 12:22:24 -05:00
Spottedleaf
e98c779a36 Fix World#getChunkAtAsync(Location) variants incorectly calculating chunk x
The blockX needs to be floored before converted to int, as float -> integer
operations are truncation. (i.e -0.5 -> 0, we want -0.5 -> -1)
2019-03-02 15:45:42 -08:00
Aikar
7af07de57b Remove left over debug from entity slices 2019-03-02 18:52:16 -05:00
Aikar
301af1e293 MC-145260: Fix Whitelist On/Off inconsistency - Fixes #1880
Mojang stored whitelist state in 2 places (Whitelist Object, PlayerList)

some things checked PlayerList, some checked object. This moves
everything to the Whitelist object.
2019-03-02 16:23:06 -05:00
Aikar
81f54a7fa4 Add config to disable light recalculation optimizations
I really don't know how this could break things with light, but wanted to
let it be an option so we can try turning it off to fix some light bug reports
2019-03-02 16:22:01 -05:00
Aikar
a447688e18 Handle Excessive Signs in Chunks creating too large of packets
Also adds a limit to stop sending Sign data to client after 500
signs per chunk to limit client lag.

Use -DPaper.excessiveSignsLimit=500 to configure that limit, or -1
to disable the limit and let your players be abused.

fixes #1878
2019-03-02 15:29:46 -05:00
Aikar
553eb93afa don't check convert signs boolean every sign save
that lookup isn't "cheap", and synchronizes so cache it to a boolean instead
2019-03-02 15:29:09 -05:00
Aikar
79756ed64c Remove outbound string length limits on signs, improve codepoint logic
now 80 chars counts multi sized code points the same so 80 chinese
characters would be allowed too.

Removed outbound limit as it doesn't solve the chunk oversize problem.

proper fix for chunk sending in another patch next.
2019-03-02 15:28:04 -05:00
Zach Brown
f464c99d4a Remove unnecessary set init I missed in last 2019-02-28 20:04:14 -05:00
Zach Brown
ba6cf29d6a Fix CanDestroy CanPlaceOn on untagged items 2019-02-28 19:52:12 -05:00
Shane Freeder
245e2d1061 Apply sign limits to signs text content 2019-02-28 18:07:14 +00:00
Aikar
8c3f760f3c Fix incorrect check on vehicle for auto dismount
This fixes an issue where players are dismounted from their horse on logout.
2019-02-28 02:43:38 -05:00
Aikar
f81fb06341 Fix BlockState hashCode optimization patch performance bug
we missed something in updating this patch and accidently left
hashCode as a 0 value. This caused a pretty nasty performance hit
for BlockStateEnum instances as they would be all a hash collision.

This update fixes that and also promotes the optimizations to cover
ALL cases of Block States, not just enums.

While mojang cached hashCode in 1.13, we can still just use a simple
large prime based hashCode that auto increments guaranteeing no overlap.

Additionally, replace all equals with an identity check.
2019-02-28 01:35:06 -05:00
Aikar
f8ae2f889d Fix a sign memory leak 2019-02-28 00:47:57 -05:00
Aikar
98a42ce6d0 Strip extra Sign data to/from client - Fixes #1876
modified clients can send abnormally large data from the client
to the server and it would get stored on the sign as sent.

the client can barely render around 16 characters as-is, but formatting
codes can get it to be more than 16 actual length.

Set a limit of 80 which should give an average of 16 characters 2
sets of legacy formatting codes which should be plenty for all uses.

This does not strip any existing data from the NBT as plugins
may use this for storing data out of the rendered area.

it only impacts data sent to and from the client.

Set -DPaper.maxSignLength=XX to change limit or -1 to disable
2019-02-28 00:05:33 -05:00
Aikar
62ba4fbc95 Improve reliability of Shapeless Recipe logic
per feedback from @liach about a bug with vanillas previous logic
that we essentially just reverted to. complex recipes could run into
cases where a recipe that does have enough items can be unsatisfied
if the items are in certain orders, making them not truely shapeless.

this scenario doesn't occur in vanilla, but users can load custom recipes.

this improves the logic to do some sorting on the lists to improve
chances of matching the recipes harder ingredients before the easier
to satisfy ingredients.

the likelyhood of someone adding a recipe that still fails this is too
extreme to care about. i doubt mojangs implementation is perfect either.

we can improve this logic more later if we actually get bug reports on it.
2019-02-28 00:02:20 -05:00
Automated
0aa65d90c1 [Auto] Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
96e09e50 Add love mode API to Animals

CraftBukkit Changes:
0f708cbf Add love mode API to Animals
2019-02-28 00:36:39 -05:00
Aikar
4d1ecb4426 Fix Custom Shapeless Custom Crafting Recipes
Mojang implemented Shapeless different than Shaped

This made the Bukkit RecipeChoice API not work for Shapeless.

This reimplements vanilla logic using the same test logic as Shaped
2019-02-27 21:06:04 -05:00
Automated
c65c951209 [Auto] Updated Upstream (Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Spigot Changes:
3cb9dcb5 SPIGOT-4640: Add debug stick permissions
2019-02-26 05:16:39 -05:00
Aikar
5a1067ece6 Revert "Fix Custom Shapeless Crafting Recipes"
This reverts commit 77745dfa37.
2019-02-26 01:25:27 -05:00