Dylan K. Taylor
5e68858ebf
Merge branch 'release/3.2' into release/3.3
2018-10-21 18:16:59 +01:00
Dylan K. Taylor
45c9caa38c
Fixup some formatting issues
2018-10-21 18:15:25 +01:00
Dylan K. Taylor
8ac1b18b17
Level: add API method isInLoadedTerrain()
2018-10-20 19:09:53 +01:00
Dylan K. Taylor
43426a4c5c
Level: Add API method getViewersForPosition()
...
This returns all players who have the given position within their view radius.
2018-10-20 16:25:56 +01:00
Dylan K. Taylor
9f8a2dc61a
Make use of new API method getChunkAtPosition()
2018-10-20 15:58:29 +01:00
Dylan K. Taylor
d9ebe6f321
Level: Added API method getChunkAtPosition()
...
This returns the chunk containing the given vector.
2018-10-20 15:54:13 +01:00
Dylan K. Taylor
cb1eb1ee09
Level: Rename addGlobalPacket() to broadcastGlobalPacket()
...
this name makes the intention more clear and consistent with other functions.
2018-10-20 15:24:33 +01:00
Dylan K. Taylor
d563b9e31b
Level: Added API method broadcastPacketToViewers()
...
This supersedes addChunkPacket() in most cases, and has a more clear name. It broadcasts the given packet to every player who has the target position within their chunk load radius.
2018-10-20 15:14:41 +01:00
Dylan K. Taylor
7c44eea625
Merge branch 'release/3.3' into release/3.4
2018-10-19 18:53:18 +01:00
Dylan K. Taylor
d749f19c73
Merge branch 'release/3.2' into release/3.3
2018-10-19 18:53:12 +01:00
Dylan K. Taylor
41fd03f329
LightUpdate: fixed double-updated nodes not getting light propagated appropriately
...
This can happen when a light source is removed and later encountering another light source to fill the gap. A higher light level may get set and then not propagated. This bug is difficult to explain, but fairly easy to reproduce.
2018-10-19 18:53:04 +01:00
Dylan K. Taylor
646c8970b8
Merge branch 'release/3.3' into release/3.4
2018-10-19 15:56:01 +01:00
Dylan K. Taylor
58067b2ad1
Merge branch 'release/3.2' into release/3.3
2018-10-19 15:55:53 +01:00
Dylan K. Taylor
0c9946621c
Level: Do not tick chunks which have unloaded adjacent chunks
...
Grass can cause issues here by requesting blocks randomly offset away from itself, which can cause silent chunk loading on chunk ticking. It also causes crashes if chunk autoloading is taken away, which is obviously undesired.
It was also noticed that player chunkloaders cause chunks to start getting ticked as soon as they load their first chunk, which is before the entity is visible to everyone else on the server. This is probably undesired behaviour.
2018-10-19 15:48:46 +01:00
Dylan K. Taylor
4221e274d6
Merge branch 'release/3.3' into release/3.4
2018-10-16 18:20:14 +01:00
Dylan K. Taylor
839d5eab7b
Protocol changes for 1.7
...
there's also some new cases in stats, but we don't care about those anyway.
2018-10-16 17:13:52 +01:00
Dylan K. Taylor
1dd6591ac1
Migrate a bunch of PluginManager->callEvent() usages to Event->call
...
This has the triple bonus effect of a) making a lot of code easier to read, b) reducing Server::getInstance() usages, and c) removing a whole bunch of Server dependencies.
The network and block namespaces are untouched by this commit due to potential for merge conflicts. These should be dealt with separately on master.
2018-10-05 17:30:06 +01:00
Dylan K. Taylor
c065cfbeda
Merge branch 'release/3.2' into release/3.3
2018-10-04 16:41:03 +01:00
Dylan K. Taylor
722924a779
Merge branch 'release/3.1' into release/3.2
2018-10-04 16:40:55 +01:00
Dylan K. Taylor
60e1b29462
RegionLoader: Remove incorrect size cap
...
This assumes that the region is properly garbage-collected and packed, but if the file contains uncollected garbage this may not be the case, resulting in a region larger than a gigabyte.
2018-10-04 16:40:45 +01:00
Dylan K. Taylor
5eeaeb6c3e
Level: Bail on trying to unload a level during level tick ( #2435 )
2018-09-22 13:40:50 +01:00
Dylan K. Taylor
5e94d20d79
Merge branch 'release/3.2' into release/3.3
2018-09-19 16:17:00 +01:00
Dylan K. Taylor
a0bb747d6d
Merge branch 'release/3.1' into release/3.2
2018-09-19 16:16:18 +01:00
Dylan K. Taylor
4bc0d850b1
Added Block->getRuntimeId(), clean up some mess
2018-09-19 16:16:10 +01:00
Dylan K. Taylor
22077c1fdd
Merge branch 'release/3.2' into release/3.3
2018-09-14 16:18:19 +01:00
Dylan K. Taylor
7d54d18732
Merge branch 'release/3.1' into release/3.2
2018-09-14 16:18:12 +01:00
Dylan K. Taylor
bfbc845efa
Remove impossible uses of PlayerInteractEvent CLICK_AIR constants
2018-09-14 16:17:55 +01:00
Dylan K. Taylor
09dea035d4
Level: Batch light updates at the end of the tick to amortize CPU cost ( #2429 )
...
this produces a 5x performance improvement for lighting updates during water flow, and 25% improvement for lava flow.
2018-09-12 10:33:28 +01:00
Dylan K. Taylor
0aa63d269a
Merge branch 'release/3.2' into release/3.3
2018-09-11 11:35:46 +01:00
Dylan K. Taylor
53a76c0d14
Merge branch 'release/3.1' into release/3.2
2018-09-11 11:35:38 +01:00
Dylan K. Taylor
69500fe183
LightUpdate: Remove garbage left over from dab73d8950
2018-09-11 11:35:31 +01:00
Dylan K. Taylor
191f0038b8
LightUpdate: Allow a single position to be set more than once before executing
...
This is needed for batched lighting updates to work. It also reduces the overhead involved with simply preparing a lighting update and moves the pain to the execute() instead.
2018-09-11 11:33:57 +01:00
Dylan K. Taylor
fe6d546190
Merge branch 'release/3.1' into release/3.2
2018-08-25 17:49:21 +01:00
Dylan K. Taylor
c7af1cf785
Merge branch 'release/3.0' into release/3.1
2018-08-25 17:49:14 +01:00
Dylan K. Taylor
7dd53f2397
Replace unnecessary strlen > 0 calls with !== "" checks
2018-08-25 16:07:49 +01:00
Dylan K. Taylor
2eda8cfad3
Merge branch 'release/3.1' into release/3.2
2018-08-19 16:01:47 +01:00
Dylan K. Taylor
91be5aba0c
Merge branch 'release/3.0' into release/3.1
2018-08-19 16:00:25 +01:00
Dylan K. Taylor
5df601c817
Add @see docs so PhpStorm can see dynamic constructor usages
...
PhpStorm can't see constructor usages when the class name is dynamic. This causes maintenance problems because cross-referencing constructors called like this doesn't show up dynamic calls.
2018-08-19 16:00:15 +01:00
Dylan K. Taylor
09dadc72bc
Merge branch 'release/3.1' into release/3.2
2018-08-06 18:45:08 +01:00
Dylan K. Taylor
e33d1279fa
Merge branch 'release/3.0' into release/3.1
2018-08-06 18:45:01 +01:00
Dylan K. Taylor
9e1fa453ad
Level: Fixed leak of global packets when no players are online
...
If a global packet was broadcasted when no players were online, it would be held in memory indefinitely (until a player joined).
2018-08-06 18:44:53 +01:00
Dylan K. Taylor
334caaaa34
Merge branch 'release/3.1' into release/3.2
2018-08-03 18:24:44 +01:00
Dylan K. Taylor
89cf76363f
Merge branch 'release/3.0' into release/3.1
2018-08-03 18:24:36 +01:00
Dylan K. Taylor
9ff5c65fb6
Level: Make async chunk sending aware of faults
...
Previously any random error could occur during an AsyncTask preparing a chunk, and the Level would never know about it and thus never send the chunk.
I don't know how many invisible-chunk bug cases this fixes, but I expect it's quite a lot.
2018-08-03 18:23:32 +01:00
Dylan K. Taylor
1532b0ef6d
Level: Remove chunks from chunk send queue on unload
...
When a chunk request task crashes, these can get stuck and never get removed. This allows using /gc to collect the bad chunk in order to fix the bug.
2018-08-03 18:04:56 +01:00
Dylan K. Taylor
24f11779f2
Level: don't try to unregister generators from non-live workers
...
this was causing garbage-collected workers to get restarted on shutdown if they previously had the generator registered for that level.
2018-07-25 18:52:17 +01:00
Dylan K. Taylor
527d8e9374
Merge branch 'release/3.1' into release/3.2
2018-07-17 18:35:16 +01:00
Dylan K. Taylor
93a2f397c6
Merge branch 'mc-broken-ed-1.5' into release/3.1
2018-07-17 18:13:06 +01:00
Dylan K. Taylor
ad1cf38c21
LevelProviderManager: tighten up checks on registering
2018-07-17 12:02:08 +01:00
Dylan K. Taylor
5d769147ca
LevelProviderManager: make addProvider() throw InvalidArgumentException instead of LevelException
...
LevelException is not useful because it's too generic.
2018-07-17 12:02:08 +01:00