Commit Graph

3557 Commits

Author SHA1 Message Date
Aikar
aea67db7a0
make dupe uuid saferegen delete range configurable
also ensure we never process already valid entities. this shouldnt be possible as of recent
commits as we made the entity slice array safer, but doesn't hurt for this logic to be safe too
incase that patch got dropped in a future version by accident/necessarily
2018-08-04 00:26:56 -04:00
Aikar
444ce86194
Entity add to world fixes - #1223
1) Chunk Registration might kill an entity, don't add it to the world if it did!

2) By default, entities are added to the world per slice iteration.
This opens risk of the slices being manipulated during chunk add if an
EntityAddToWorldEvent spawns an entity into this chunk.
Fix this by differing entity add to world for all entities at the same time

3) If a duplicate entity is attempted to add to the world of an entity, and
the original entity is dead, overwrite it as the logic does for unloaod queued entities.

Should hopefully finish up issues with #1223
2018-08-03 23:02:44 -04:00
Aikar
7fe0b31e5f
remove PotionEffect color API as it was removed upstream
appears that value was never even used anyways
2018-08-03 21:23:57 -04:00
Aikar
177ec197a7
Merge branch 'master' into pre/1.13
* master:
  Fix logic bug in negative XP bug fix - Closes #1169
2018-08-03 21:20:57 -04:00
Aikar
b3eb265ab5
Fix logic bug in negative XP bug fix - Closes #1169 2018-08-03 20:59:35 -04:00
Aikar
eabe735a12
update upstream 2018-08-03 20:31:44 -04:00
Aikar
dbc4c29d6c
Merge branch 'master' into pre/1.13
* master:
  Fix "MC-135506: Experience should save as Integers" still saving as short" (#1301)
2018-08-03 09:27:01 -04:00
Mark Vainomaa
22b2bf6270 Fix "MC-135506: Experience should save as Integers" still saving as short" (#1301) 2018-08-03 09:25:21 -04:00
Aikar
3c61083c72
fix missing | on dupe uuid patch 2018-08-03 08:51:29 -04:00
Aikar
dc3dc77245
fix missing | on dupe uuid patch 2018-08-03 08:51:04 -04:00
Zach Brown
03028e52a3
Use correct update flag and blockdata for portals
Fixes GH-1286
2018-08-03 03:26:10 -05:00
Aikar
751317f21b
Merge branch 'master' into pre/1.13
* master:
  fix missed break statement and enum check on dupe uuid resolve
2018-08-03 01:33:34 -04:00
Aikar
f4f8a3be2d
fix missed break statement and enum check on dupe uuid resolve 2018-08-03 01:32:00 -04:00
Aikar
0f479b740d
Merge branch 'master' into pre/1.13
* master:
  MC-135506: Experience should save as Integers
  Fix EXP orb merging causing values to go negative - Closes #1169
  Add "Safe Regen" Duplicate UUID resolver and make default
2018-08-03 01:29:20 -04:00
Aikar
6b00d856be
Upstream update 2018-08-03 01:04:28 -04:00
Aikar
38af7610e3
MC-135506: Experience should save as Integers
A large orb will lose its EXP value if it went over 32k due to short truncation.
2018-08-03 00:07:02 -04:00
Aikar
56b92ff216
Fix EXP orb merging causing values to go negative - Closes #1169 2018-08-03 00:06:20 -04:00
Aikar
17dca0a0fe
Add "Safe Regen" Duplicate UUID resolver and make default
After witnessing behavior of the regeneration logs, its clear that Vanilla
has had bugs with saving duplicate entities for a while....

Some entities are saved in multiple chunks, and now we are bringing those duplicates
out that use to never surface.

This mode will analyze if the entity appears to be a duplicate (near the other dupe uuid)
and delete the entity instead.

This should reduce regenerations to entities that are nowhere near each other, and
therefore more likely to be subject to real UUID collisions due to our
previous bug, and therefor should survive the chunk load.
2018-08-02 23:25:37 -04:00
Zach Brown
dbde9e6332
Update upstream B/CB 2018-08-02 18:29:34 -05:00
Zach Brown
376140dfd1
Update upstream B/CB 2018-08-02 18:12:29 -05:00
Aikar
1abd4d51c1
Update upstream 2018-08-01 22:49:47 -04:00
Zach Brown
6a48a4529b
Make portal teleportation adjustment math more accurate
Fixes GH-1295

Non-standard sized portals exacerbate a flaw in the vanilla
portal teleportation adjustment logic.
As a result, an entity can end up slightly inside of the surrounding
portal blocks. In vanilla, this issue is minor and you are adjusted out
as if it never happened. In CraftBukkit and derivatives, the
anti-suffocation behavior activates and players end up teleported on top
of their portals.

This improves the offset so as to keep the issue from ever occurring in
the first place.

Special thanks to CarpetMod who appears to have had this fixed for some
time, and has licensed their code such that we can use it as needed.
2018-07-31 20:13:40 -05:00
Zach Brown
9939390df7
Add decompile fix for ChunkSection 2018-07-31 16:55:57 -05:00
Zach Brown
9355f325cd
Update upstream CB 2018-07-31 16:45:04 -05:00
Zach Brown
db81205dd7
Merge branch 'master' into pre/1.13 2018-07-31 16:44:46 -05:00
Zach Brown
2a5c62f3fc
[CI-SKIP] Add paper comment to last patch edit 2018-07-31 16:41:33 -05:00
Zach Brown
ef1242fc36
Ensure players are not marked to be removed after re-add 2018-07-31 16:39:15 -05:00
Zach Brown
e8eb4bfee5
Re-add GH-1286 fix for portals
Accidentally removed in 5311679c74

Also added to End Portals
2018-07-31 15:16:12 -05:00
Shane Freeder
6ea611dc68
Fixup keepalive logic (closes #1274) 2018-07-31 16:39:08 +01:00
Shane Freeder
806cafd070
Fix misapplied line in keepalive changes 2018-07-31 15:19:18 +01:00
Shane Freeder
5311679c74
Cleanup PortalCreateEvent patch 2018-07-31 15:14:54 +01:00
Shane Freeder
810a2f24bf
Merge branch 'fix-portal-create-event' of https://github.com/prplz/Paper into pre/1.13 2018-07-31 15:07:41 +01:00
Shane Freeder
c63396fe6b
Merge branch 'master' into pre/1.13 2018-07-31 14:50:40 +01:00
Michael Himing
acf5b98565 Fix nether portals (#1286) 2018-07-31 23:33:30 +10:00
Shane Freeder
81806abef6
Break up and make tab spam limits configurable
Due to the changes in 1.13, clients will send a tab completion request
for all bukkit commands in order to factor in the lack of support for
brigadier and provide backwards support in the API.

Craftbukkit, however; has moved the chat spam limiter to also interact
with the tab completion request, which while good for avoiding abuse,
causes 1.13 clients to easilly be kicked from a server in bukkit due
to this. Removing the spam limit could cause issues for servers, however,
there is no way for servers to manipulate this without blindly cancelling
kick events, which only causes additional complications. This also causes
issues in that the tab spam limit and chat share the same field but different
limits, meaning that a player having typed a long command may be kicked from
the server.

Splitting the field up and making it configurable allows for server owners
to take the burden of this into their own hand without having to rely on
plugins doing unsafe things.

This patch has been applied to 1.12.2 in order to allow people using
plugins which allow clients of newer versions to connect, this is
not a common practice, however is being done as a level of nicety
given the current status of 1.13
2018-07-31 13:53:49 +01:00
Aikar
4be4037e3d
Merge pull request #1214
b854308c Add TNTPrimeEvent (Mark Vainomaa)

* pull/1214/head:
  Add TNTPrimeEvent
2018-07-31 02:01:27 -04:00
Aikar
42730c41bb
Merge branch 'master' into pre/1.13
* master:
  PlayerProfile.complete shouldn't throw NPE
2018-07-31 01:44:11 -04:00
Aikar
a3db62f3c2
PlayerProfile.complete shouldn't throw NPE
We have a result boolean for this already, and this
method was meant to be "Try from cache, if that fails, look it up"

So NPE'ing there just wasn't correct.
2018-07-31 01:41:43 -04:00
willies952002
30caec4d94 World EntityHuman Lookup Optimizations (#1291)
Fixes #1290
2018-07-31 00:27:45 -04:00
Zach Brown
96ce4bd9fd
Update upstream B/CB 2018-07-30 20:19:41 -05:00
Aikar
cae5a06b92
[CI-SKIP] Merge branch 'master' into pre/1.13
* master:
  Properly forward exit 1 code from the paper root command
2018-07-30 17:41:05 -04:00
Aikar
d54ce6c17f
Properly forward exit 1 code from the paper root command
This is so the CI server can pick up when applying patches fails,
and mark the build as a failure.
2018-07-30 17:37:24 -04:00
Zach Brown
12f9b10e44
Fix i18n String API
In 1.13 the method previously used now returns translatable keys.
`block.minecraft.cobblestone` instead of `Cobblestone`

We just need to make sure we're translating those keys.
2018-07-30 16:12:47 -05:00
Aikar
76e1e4d79f
Update Upstream
Removed my ChunkLoadEvent patch as upstream fixed it
2018-07-30 01:08:59 -04:00
Aikar
75d71a2f14
Merge branch 'master' into pre/1.13
* master:
  clear current chunk and entity slice on chunk unload
2018-07-30 01:06:39 -04:00
Aikar
e7a59cde75
clear current chunk and entity slice on chunk unload
ideally this should of never mattered, as it will only
be hit if you teleport out of an unloaded chunk...

But apparently some people are triggering this.

See #1223
2018-07-30 00:51:58 -04:00
Aikar
c7dcc8ce89
Merge pull request #1244
3e19de0c Rebuild Patches (BillyGalbreath)
8e5db995 AnvilDamageEvent (BillyGalbreath)

* pull/1244/head:
  Rebuild Patches
  AnvilDamageEvent
2018-07-30 00:12:03 -04:00
Anthony MacAllister
4fa289b8ba EntityTransformedEvent (#1281) 2018-07-29 23:54:13 -04:00
willies952002
4fb5e0fe14 Expand ArmorStand API (#1277)
Add the following:
- Add proper methods for getting and setting items in both hands. Deprecates old methods
- Enable/Disable slot interactions
2018-07-29 23:53:59 -04:00
Aikar
e356cd3989
Fix last patch for 1.13, pulled the push button too quickly... 2018-07-29 23:05:35 -04:00