Commit Graph

19423 Commits

Author SHA1 Message Date
2277
dd3e099c9c Move player to spawn point if spawn in unloaded world
If the playerdata contains an invalid world (missing, unloaded, invalid,
etc.), spawn the player at the spawn point of the main world.

Co-authored-by: Wyatt Childers <wchilders@nearce.com>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2020-03-31 10:33:55 +01:00
Aikar
d7f24e6729 Fire PlayerJoinEvent when Player is actually ready
For years, plugin developers have had to delay many things they do
inside of the PlayerJoinEvent by 1 tick to make it actually work.

This all boiled down to 1 reason why: The event fired before the
player was fully ready and joined to the world!

Additionally, if that player logged out on a vehicle, the event
fired before the vehicle was even loaded, so that plugins had no
access to the vehicle during this event either.

This change finally fixes this issue, fully preparing the player
into the world as a fully ready entity, vehicle included.

There should be no plugins that break because of this change, but might
improve consistency with other plugins instead.

For example, if 2 plugins listens to this event, and the first one
teleported the player in the event, then the 2nd plugin actually
would be getting a valid player!

This was very non deterministic. This change will ensure every plugin
receives a deterministic result, and should no longer require 1 tick
delays anymore.

== AT ==
public net.minecraft.server.level.ChunkMap addEntity(Lnet/minecraft/world/entity/Entity;)V
2020-04-19 00:05:46 -04:00
Aikar
b7898433d0 Don't crash if player is attempted to be removed from untracked chunk.
I suspect it deals with teleporting as it uses players current x/y/z
2020-04-18 15:59:41 -04:00
MiniDigger | Martin
57802a490d Implement Player Client Options API
== AT ==
public net.minecraft.world.entity.player.Player DATA_PLAYER_MODE_CUSTOMISATION
public net.minecraft.server.level.ServerPlayer particleStatus
2020-01-20 21:38:15 +01:00
Spottedleaf
3d63d68ecb Don't run entity collision code if not needed
Will not run if:
Max entity cramming is disabled and the max collisions per entity is less than or equal to 0.
Entity#isPushable() returns false, meaning all entities will not be able to collide with this
entity anyways.
The entity's current team collision rule causes them to NEVER collide.

Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
2020-04-15 17:56:07 -07:00
Shane Freeder
6b7013458d Prevent opening inventories when frozen 2020-04-13 07:31:44 +01:00
Spottedleaf
ee1fd0844d Reduce memory footprint of CompoundTag
Fastutil maps are going to have a lower memory footprint - which
is important because we clone chunk data after reading it for safety.
So, reduce the impact of the clone on GC.
2020-04-06 17:39:25 -07:00
Spottedleaf
60c674b750 Reduce Either Optional allocation
In order to get chunk values, we shouldn't need to create
an optional each time.
2020-04-06 18:35:09 -07:00
Aikar
ba0a4c75bd Only send Dragon/Wither Death sounds to same world
Also fix view distance lookup
2016-05-31 23:56:19 -04:00
Aikar
a9ec7b3a75 Fix skeleton horse spawn chance ignoring difficulty modifier if custom set
Also reduce diff
2016-05-30 12:50:57 -04:00
Zach Brown
44857e00e2 Merge pull request #310 from MyPlayPlanet/server-name-param
Add server-name as server parameter
2016-05-29 18:35:03 -05:00
Zach Brown
6c11d95680 Update upstreams 2016-05-29 18:32:21 -05:00
Zach Brown
a618f33267 Stop relocating jopt-simple
Workaround for GH-189
Relocation breaks the lookup of a resource bundle, and this is easier than forking and maintaining our own version
 AFAIK this should be fine to do. Guess we'll see
2016-05-29 18:26:35 -05:00
Martin Panzer
805e5c6be7 Add server-name as server parameter 2016-05-28 12:02:57 +02:00
Aikar
d9971432c2 re-add timing that spigot missed 2016-05-27 22:29:09 -04:00
Aikar
e9c7cca230 Ensure chunks never load async
Force operation to main thread if it occurs async
2016-05-27 22:28:23 -04:00
Zach Brown
ff2c1ee38e Update upstreams 2016-05-27 21:22:18 -05:00
Aikar
cac7bbc139 Remove unneeded mob spawn cap patch - Fixes #235
I misread the code and thought the code kept looping until the mob spawn cap was hit.

Upon furthur review, this is not true, so this patch doesn't do anything sane.
2016-05-27 21:35:28 -04:00
Aikar
45aa7db5c4 Update Upstream 2016-05-25 12:37:17 -04:00
Martin Panzer
bd2fb5d530 Optimize Redstone torch list removal 2016-05-24 20:08:40 -05:00
Zach Brown
50277c2ceb Remove comment and fix build }}}}} 2016-05-22 21:20:15 -05:00
Zach Brown
4e74c43218 Re-add some method synchronization and move to a SingleThreadedExecutor in MCUtils 2016-05-22 21:14:17 -05:00
Zach Brown
87366c4f4d Temporarily remove synchronization from UserCache optimizations
In regards to GH-301
2016-05-22 21:07:40 -05:00
Zach Brown
5f6f6c6321 Update old TNT cannon mechanics patch to 1.9.4
Behavior may be buggy or otherwise broken, testing with the option is needed.
`fix-cannons` has been removed in favor of `enable-old-tnt-cannon-behaviors`
2016-05-22 20:26:15 -05:00
Zach Brown
32ea7542d2 Update upstream CB
Closes GH-303
2016-05-21 22:07:14 -05:00
Zach Brown
143ab568d4 Update B/CB/S
Closes GH-288
2016-05-20 17:32:50 -05:00
Aikar
8bee892ded Avoid blocking on Network Manager creation
Fixes #294

Use a pending list to handle new connections so that the netty threads
do not block waiting for the main thread to finish ticking
2016-05-16 23:21:26 -04:00
Aikar
c623104ffa MC-99914 - ensure EntityItem loads before EntityPotion 2016-05-16 22:54:48 -04:00
Aikar
4bead5b898 bump the default maxMobSpawns default to 250, and add support for unlimited
Use -1 to represent vanilla/unlimited.
Updated PaperWorldConfig to also update the individual worlds limit if it was set
to the new default value.

Should hopefully help #235
2016-05-16 22:07:12 -04:00
Aikar
478f246490 Optimize UserCache / Thread Safe
Because Techable keeps complaining about how this isn't thread safe,
easier to do this than replace the entire thing.

Additionally, move Saving of the User cache to be done async, incase
the user never changed the default setting for Spigot's save on stop only.
2016-05-16 21:14:28 -04:00
Aikar
1a5414bc4e Add Async Helper method to MCUtil 2016-05-16 20:50:09 -04:00
Zach Brown
af4db4ddea [16:55:31] *mibby pokes upstream 2016-05-16 17:00:53 -05:00
Aikar
e4c179e827 Refactor Lighting Queue System
may help #284

Cleans up the lighting queue system, reducing diff and improving implementation.

We no longer stop chunk unloads due to lighting updates, and instead simply flush the lighting queue.
The cost of forcing the chunk (and its neighbors!) to stay loaded waiting for its
lighting work to finish is much greater than simply taking the hit and doing the work.

This change also helps reduce the diff and avoid bugs with missed diffs by removing
duplicated logic.

Also switches to a more effecient data structure (ArrayDeque instead of LinkedList) for the queue itself.
2016-05-15 18:48:39 -04:00
Aikar
8e62fb709b Timings v2: Start methods return self for use in try-with-resources
try (Timing ignored = timing) {
  // Code to time
}
// auto stops timing, even if you return in 42 other places in the block
2016-05-15 17:34:26 -04:00
Zach Brown
b9c321ff21 TileEntityLootable can call processRefill with a null player
Seems specific to EntityMinecartChest
Fixes GH-290
2016-05-15 01:41:36 -05:00
Aikar
0c78971552 More cases of avoiding marking active for chunks, to stop potential leaks 2016-05-13 22:27:20 -04:00
Aikar
016dca3390 Bring back an EAR optimization from 1.9.2 2016-05-13 01:39:03 -04:00
Aikar
b6d0dd32c6 Fix chunk leak issue with queued light updates 2016-05-13 01:34:37 -04:00
Zach Brown
f623f903cd Move bad command registration workaround into SMP#dispatch
Fixes GH-274
2016-05-13 00:13:38 -05:00
Zach Brown
f30c245be2 Make watchdoge disabler its own patch file
Change implementation, smaller diff, less NPE
2016-05-12 23:04:49 -05:00
Aikar
6025355569 clean up spigot working files out of our Paper folder 2016-05-12 22:11:11 -04:00
Aikar
5d952ffa7e Use a more reliable fixed width sequence for rebuild patches 2016-05-12 21:37:14 -04:00
Aikar
9bba4a53e5 Be more targetted with patch deletion 2016-05-12 21:24:19 -04:00
Zach Brown
3b4f1c9497 Merge pull request #279 from DemonWav/tmux
Add tmux support to Paper test and add test to paper command help.
2016-05-12 13:09:51 -05:00
BlackHole
b2087ca1af Override BlockPosition.MutableBlockPosition.isValidLocation()
Fixes GH-281
2016-05-12 12:56:48 -05:00
Aikar
4e3d8a41ee Fix T/TE removal list bug
Thanks @Cat6363
2016-05-12 08:55:35 -04:00
Aikar
1850ae22cf unmark chunk as unloading when unload is cancelled
no obviousy bugs caused by this at the moment, but we may need to clean up process to be like
how I use to have it before vanilla did it, and we shouldn't leave this boolean in an invalid state.
2016-05-12 02:07:39 -04:00
Aikar
a1916005e1 Fix chunk unload leak issues due to neighbor updates 2016-05-12 01:55:53 -04:00
DemonWav
2f8b09e1bd Add tmux support to Paper test and add test to paper command help. 2016-05-11 21:59:07 -05:00
Aikar
34fcd8ccc2 Paper 1.9.4 Update 2016-05-11 22:07:46 -04:00