Commit graph

5049 Commits

Autor SHA1 Nachricht Datum
Aikar
998bf84e4c
Performance & Concurrency Improvements to Permissions
Modifying of permissions was only half protected, enabling concurrency
issues to occur if permissions were modified async.

While no plugin really should be doing that, modifying operations
are not heavily called, so they are safe to add synchronization to.

Now, all modification API's will be synchronized ensuring safety.

Additionally, hasPermission was victim to a common java newbie mistake
of calling if (containsKey(k)) return get(k), resulting in 2 map lookups.

Optimized it to simply be a single get call cutting permission map
lookups in half.
2018-09-13 20:55:31 -04:00
Zach Brown
298f2a4cdf
Update branch name for GitHub version checking 2018-09-13 12:20:02 -04:00
Aikar
e0cf98b1ed
Missed a case where fish could load chunks 2018-09-12 21:58:38 -04:00
Aikar
94171733dd
Optimize Biome Mob Lookups for Mob Spawning
Uses an EnumMap as well as a Set paired List for O(1) contains calls
2018-09-12 21:50:34 -04:00
Aikar
c6409382b8
Prevent fish from loading/generating chunks 2018-09-12 21:25:02 -04:00
Aikar
6e203e64cc
Prevent mob spawning from loading chunks 2018-09-12 21:18:31 -04:00
Aikar
fd84aa5c42
Fix pathfinding NPE - Fixes #1435 2018-09-12 21:17:59 -04:00
Aikar
d59a313d6d
[CI-SKIP] Use papermc.io domain and add info for plugin devs 2018-09-11 19:50:07 -04:00
Aikar
bd4280b9ec
ensure world is set for pathfinders 2018-09-11 19:10:14 -04:00
Zach Brown
320feb400b
[CI-SKIP] Add note on 1.12.2 status to CONTRIBUTING.md 2018-09-11 18:11:28 -04:00
Zach Brown
9fe29f979c
Merge branch 'master' into pre/1.13 2018-09-11 17:48:17 -04:00
Zach Brown
b380338244
Ensure entity is always dying before Death Event
Prior to this it was possible for plugins to put the server into a never
ending recursive loop until it eventually killed itself.

Fixes GH-1432
2018-09-11 17:38:57 -04:00
Aikar
945f22e082
[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:
381fba2c SPIGOT-4314: Ability to change item in frame without playing sound

CraftBukkit Changes:
1cead628 SPIGOT-4363: Bad colours in leather armor
953e1d60 SPIGOT-4314: Ability to change item in frame without playing sound
2018-09-11 07:11:35 -04:00
Aikar
74548b6fec
[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:
b6bf6aa3 Add option to suppress normal output of 'makePatches' so it only outputs when a patch is changed or created.
2018-09-11 06:41:40 -04:00
Aikar
c563327fa2
Prevent pathfinding and zombie AI from loading chunks 2018-09-11 00:07:19 -04:00
Aikar
87d59fdab4
Prevent fluids from loading chunks - major performance boost 2018-09-10 23:38:16 -04:00
Aikar
2dd8623548
Updated Upstream (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

CraftBukkit Changes:
7033f180 Hoist out synchronisation from ChunkRegionLoader

Spigot Changes:
500ff5d4 Rebuild patches

Additional Paper changes:
Fixed Versioned World Folders to not synchronize on ChunkRegionLoader
Optimized Save Queue even more to use a Long2ObjectOpenHashmap for save map
Add World#getXIfLoaded to IWorldReader to expose it to more places
2018-09-10 23:14:02 -04:00
Aikar
cf1fe85b04
Mob Pathfinding API
Adds an API to allow plugins to instruct a Mob to Pathfind to a Location or Entity

This does not do anything to stop other AI rules from changing the location, so
it is still up to the plugin to control that or override after another goal changed
the location.
2018-09-09 21:50:12 -04:00
Aikar
b3a9fc3bf9
Rename some methods per discussion in channel 2018-09-09 21:45:54 -04:00
Aikar
dbc9a99af9
[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:
022b8c35 SPIGOT-4361: BlockFadeEvent for regular coral
2018-09-09 18:46:43 -04:00
Zach Brown
efc0babe91
Stop using transaction id in tab completions
Fixes GH-1417, GH-1424 (probably).

There are other issues in this area, including just how much a mess it
is but we will get to those when we get to those.
2018-09-09 17:52:48 -04:00
Aikar
9ba2d1befb
[CI-SKIP] adjust test server memory flags 2018-09-09 16:59:33 -04:00
Aikar
7c11dbee6d
Forgot to rebuild patches after I fixed things in upstream update 2018-09-09 15:29:22 -04:00
Aikar
6d41af029c
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

Bukkit Changes:
3e2858f6 SPIGOT-4352: MoistureChangeEvent
5466e281 Add BlockDispenseArmorEvent

CraftBukkit Changes:
3123a069 SPIGOT-4352: MoistureChangeEvent
226db0ea Add BlockDispenseArmorEvent
cd367fa4 Fix bad thread safety in ChunkRegionLoader
3f5ca5f2 SPIGOT-4355: Improve cancelling VehicleEnterEvent

Spigot Changes:
145a37ae Rebuild patches
3f2423cc Rebuild patches
2018-09-09 15:26:56 -04:00
Aikar
55afdc44c9
You can use EntityPathfindEvent to cancel new pathfinds from overriding your current 2018-09-09 14:48:32 -04:00
Rick
0305af2c14 Fix view distance API (#1419) 2018-09-09 14:38:27 -04:00
Aikar
05edb779e0
getextPointIndex was not needing to be boxed/nullable 2018-09-09 14:36:51 -04:00
Aikar
16efbae731
Mob Pathfinding API
Adds an API to allow plugins to instruct a Mob to Pathfind to a Location or Entity

This does not do anything to stop other AI rules from changing the location, so
it is still up to the plugin to control that or override after another goal changed
the location.
2018-09-09 14:31:08 -04:00
BillyGalbreath
c755f90933 Allow chests to be placed with NBT (#1425)
This restores vanilla behavior of allowing placed chests to retain any Block Entity Tag data.

Upstream added filtering to chests, breaking vanilla behavior, and preventing use of loot table chests as a reward mechanism.

Upon review, we can find no security risk in allowing players to place a chest with NBT data, as Spawn Eggs, Minecarts, command blocks etc all have their own checks.

Additionally, survival mode players, non op players can not create these items anyways. If a player has Creative or Op, they already have high levels of access.

Plus, Chests aren't the only inventory that could have free form items, so this filter was insufficient anyways.
2018-09-09 12:53:23 -04:00
Aikar
3c62f3723d
Merge branch 'master' into pre/1.13
* master:
  Remove no longer needed tests due to last change
2018-09-09 01:19:34 -04:00
Aikar
6793fee387
Remove no longer needed tests due to last change 2018-09-09 01:14:18 -04:00
Aikar
6e39ed3c6d
Merge branch 'master' into pre/1.13
* master:
  Remove deadlock risk in firing async events
2018-09-09 01:06:44 -04:00
Aikar
5228a4f24c
Remove deadlock risk in firing async events
The PluginManager incorrectly used synchronization on firing any event
that was marked as synchronous.

This synchronized did not even protect any concurrency risk as
handlers were already thread safe in terms of mutations during event
dispatch.

The way it was used, has commonly led to deadlocks on the server,
which results in a hard crash.

This change removes the synchronize and adds some protection around enable/disable
2018-09-09 01:04:59 -04:00
chickeneer
dfa6e717fb Fix invalid data types for particles and fix colors in the ParticleBuilder (#1422)
* Fix invalid data types for particles and fix colors in the ParticleBuilder
2018-09-08 19:52:56 -04:00
Zach Brown
1bce77696d
Merge branch 'master' into pre/1.13 2018-09-08 19:12:58 -04:00
Zach Brown
d40ef260de
Update again so the dumb bot stops breaking things 2018-09-07 23:51:16 -04:00
Aikar
d617f95f05
[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:
310dc809 Add ServerLoadEvent

CraftBukkit Changes:
19d654bd Add ServerLoadEvent
2018-09-07 23:49:37 -04:00
Max Lee
4e30b91d4e Improve death events (#1362)
* Improve death events

This adds the ability to cancel the events and to specify the sound.
2018-09-07 20:14:48 -04:00
Aikar
2571276390
[CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-09-07 20:06:35 -04:00
BillyGalbreath
0e749a05b2 Fix #1420 (#1421) 2018-09-07 20:03:38 -04:00
Aikar
dd22078e01
[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:
228a5cd5 Remove vanilla command ambiguity warning
2018-09-07 06:59:30 -04:00
Aikar
5c5ce4ca54
[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:
12bbe1d1 SPIGOT-4350: Expand EntityTeleportEvent to /teleport command

CraftBukkit Changes:
0ddd67b0 SPIGOT-4350: Expand EntityTeleportEvent to /teleport command
2018-09-07 06:39:38 -04:00
Aikar
62b2a5e05e
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:
632449b6 SPIGOT-4349: End portal has wrong TeleportCause
3eb8af23 SPIGOT-4348: Use online player for setting skull owner if possible
2018-09-06 22:08:35 -04:00
Zach Brown
fb9e60b238
MC-2025 - Save entity AABB to prevent fp wobble
This work is largely a result of the analysis done on the Mojang issue
tracker. See patch header for additional information.
2018-09-04 19:18:06 -04:00
Aikar
609c352624
[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:
3278a727 Add a #getLootTable() method to LootTables enum
2018-09-04 07:09:29 -04:00
Aikar
72e530be99
[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:
c88ae6b1 SPIGOT-4342: Fix PlayerMoveEvent from pitch/yaw incorrect
2018-09-04 07:04:38 -04:00
Aikar
2e8340addd
Fix yet another issue with concurrency with datafixers 2018-09-04 01:50:14 -04:00
Aikar
39042c4a36
Fix another case of concurrency issue in data fixers 2018-09-04 00:02:38 -04:00
Aikar
d01d2d8cc5
Fix concurrency issues in DataFixers
We are seeing issues with DataFixers being not thread safe in async chunks
and even in some spigot packet sending code.

There are a few more global objects that are mutated that need to
be synchronized to be safe for use over multiple threads.

There may be more cases, but these are extremely obvious ones.
2018-09-03 22:36:41 -04:00
Aikar
f90c38b8f5
[CI-SKIP] Download mojang libraries sources so we can modify them 2018-09-03 20:25:10 -04:00