10012 Commits

Author SHA1 Message Date
Dylan K. Taylor
3b5df90b0b BossEventPacket: add some functions to ease creation 2019-06-05 15:14:37 +01:00
Dylan K. Taylor
287c8c2dd4 Added static create() functions for many packets
There are a few motivations here:
1) Less boilerplate code (this can be written inline)
2) It's possible to provide multiple constructors for different packet variations to reduce the chance of errors.
3) It makes things catch fire on updates in ways that static analysers can understand.
2019-06-05 15:00:08 +01:00
Dylan K. Taylor
09afb8e772 Living: don't create MobEffectPacket directly 2019-06-04 19:53:08 +01:00
Dylan K. Taylor
cda565ba8c Merge branch 'stable'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/inventory/ArmorInventory.php
2019-06-04 18:19:47 +01:00
Dylan K. Taylor
80f8a27094 Fixed implicit dependency on MobArmorEquipmentPacket field ordering
the order of the slots is entirely dependent on Mojang whims, so we shouldn't let our internals rely on it.
2019-06-04 18:16:56 +01:00
Dylan K. Taylor
6f29fe063f move PlayerListPacket sending responsibility to NetworkSession 2019-06-04 18:02:36 +01:00
Dylan K. Taylor
89d4f596bd World: add and use a prefixed logger in some places 2019-06-04 14:23:40 +01:00
Dylan K. Taylor
3c3e5a9850 ConsoleCommandSender: Do not hard-depend on MainLogger
this dependency makes it impossible to swap out.
2019-06-04 14:06:45 +01:00
Dylan K. Taylor
5d16a48361 FormatConverter: Follow the standard format for log prefix 2019-06-04 14:04:29 +01:00
Dylan K. Taylor
0ae3c734ea RakLibInterface: remove unused variable 2019-06-04 14:00:01 +01:00
Dylan K. Taylor
f5b149a022 RakLibInterface: Use the session's own logger to report handling errors 2019-06-04 13:56:52 +01:00
Dylan K. Taylor
6743234461 AutoUpdater: add a prefixed logger 2019-06-04 13:51:17 +01:00
Dylan K. Taylor
e69ab60034 MemoryManager: use prefixed loggers 2019-06-04 13:49:07 +01:00
Dylan K. Taylor
3569f8dfbe QueryHandler: move to a prefixed logger 2019-06-04 13:44:35 +01:00
Dylan K. Taylor
df0acea2f4 Player: add a prefixed logger 2019-06-03 19:30:26 +01:00
Dylan K. Taylor
56a4e8c032 Hopper: add more boilerplate code to fix inventory leak 2019-06-03 19:17:13 +01:00
Dylan K. Taylor
7a05c46ff6 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
2019-06-03 18:21:49 +01:00
Dylan K. Taylor
341c480e13 ContainerSetDataPacket: added missing furnace property ID 2019-06-03 18:21:29 +01:00
Dylan K. Taylor
8e24e5655a Merge branch 'stable'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/entity/Attribute.php
2019-06-03 17:45:25 +01:00
Dylan K. Taylor
971ad04299 Attribute: add more things
i got tired of commenting out exceptions in packets, so this is the quickest way to fix the problem.
2019-06-03 17:37:18 +01:00
Dylan K. Taylor
087df45a3c added some effect ID constants 2019-06-03 16:17:36 +01:00
Dylan K. Taylor
9d42bc3c0c updated consistency check for ad79e6cd8e121ae3db02a10b7e86bc1bba8287f7 2019-06-01 12:12:55 +01:00
Dylan K. Taylor
ad79e6cd8e partial implementation of hopper (just enough to load/save all data) 2019-05-31 19:32:19 +01:00
Dylan K. Taylor
e091cfe1de interface Container extends InventoryHolder 2019-05-31 18:59:18 +01:00
Dylan K. Taylor
df8db3b8e3 Merge branch 'stable' 2019-05-31 17:13:13 +01:00
Dylan T
025b72e2f2
Randomize the order of plugins retrieved from disk, fixes #2945 (#2948)
On most filesystems, plugins are loaded in lexical order because that's how the filesystem gives the files to us. This is a problem because it can hide bugs with dependency resolution on specific platforms with this behaviour, while inexplicably breaking on other platforms where the load order is different or undefined.

This change prevents plugins depending on any file yield order by randomizing the order in which plugin files are checked for loadability.
2019-05-31 17:11:20 +01:00
Dylan K. Taylor
efe30ffb07 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
2019-05-31 15:31:32 +01:00
Dylan K. Taylor
cf538afb84 LevelEventPacket: added two extra IDs 2019-05-31 15:31:03 +01:00
Dylan K. Taylor
1049ffecc9 Sound->encode() now accepts Vector3|null
this will be needed for proper no-relative sound support.
2019-05-30 19:51:27 +01:00
Dylan K. Taylor
77ace57985 BlockEventPacket: added a ::create() method 2019-05-30 19:44:29 +01:00
Dylan K. Taylor
790c2cd4b7 added missing Monster Spawner tile 2019-05-30 19:26:16 +01:00
Dylan K. Taylor
1bf5c74053 added missing DaylightSensor tile 2019-05-30 19:00:38 +01:00
Dylan K. Taylor
f18da8d879 Added missing tile for Note Block
this doesn't come with a full impl because that requires some further changes like adding materials, which is out of the scope of this commit. This is here to prevent additional data loss in imported worlds.
2019-05-30 18:53:20 +01:00
Dylan K. Taylor
ece4d99c1e fix crash on invalid NBT during itemstack decoding 2019-05-30 09:53:20 +01:00
Dylan K. Taylor
3d8cd54f16 Update composer dependencies 2019-05-30 04:26:06 -04:00
Dylan K. Taylor
f3daf612ee Merge branch 'stable' 2019-05-27 19:12:29 +01:00
Dylan K. Taylor
7ff91337ad 3.8.4 is next 2019-05-27 19:01:06 +01:00
Dylan K. Taylor
63e5867727 Release 3.8.3 3.8.3 2019-05-27 18:59:56 +01:00
Dylan K. Taylor
c38779f1fd Block: fixed use of full meta as variant in several cases
fixes #2940

now I need to go to the bathroom and wash this off my hands ... I'd forgotten how nasty this code is
2019-05-27 18:04:25 +01:00
Dylan K. Taylor
bcff124953 BaseRail: move reconnect attempt to post-place hook 2019-05-27 17:55:19 +01:00
Dylan K. Taylor
28f3322337 Block: add onPostPlace() hook 2019-05-27 17:30:57 +01:00
Dylan K. Taylor
11d21448fc Utils: remove dead function 2019-05-27 17:12:33 +01:00
Dylan K. Taylor
7eb8d8e366 Require Closures in more places instead of callable
Non-closure callables have strange context-dependent behaviour and are slower to call than a closure. It's possible to use Closure::fromCallable() in the origin scope, which guarantees that the callable will remain callable no matter where it's used.
2019-05-27 17:11:35 +01:00
Dylan K. Taylor
2720ff9607 Skin: debloat geometry in constructor directly 2019-05-27 16:45:55 +01:00
Dylan K. Taylor
89242543b9 Clean up Skin error handling, close #2926
Skin->__construct() now does all the validation.
2019-05-27 16:20:46 +01:00
Dylan K. Taylor
0a891f5408 Move some things out of LoginPacket and into the handler 2019-05-27 16:06:53 +01:00
SOFe
3902a3c28c Require opting into receiving cancelled events instead of opting out (#2906)
Warning for plugin developers: This is a silent BC break. It won't raise any errors.

This alters the default behaviour of event handlers to **not** receive cancelled events by default.
It is now required to opt into receiving cancelled events by using the @handleCancelled directive (or the handleCancelled parameter where it's appropriate).

The ambiguous @ignoreCancelled directive is now ignored.

Ramifications:
- The majority of handlers with `if($event->isCancelled()) return;` no longer need such checks.
- Handlers with `@ignoreCancelled true` or `@ignoreCancelled` annotations can have them removed.
- Handlers which want to receive cancelled events need to use `@handleCancelled`.
2019-05-27 15:47:58 +01:00
Dylan T
14bae72dd5
Create FUNDING.yml 2019-05-27 14:14:09 +01:00
Dylan K. Taylor
2eb498b84c ItemFactory: add getAllRegistered() 2019-05-26 19:45:47 +01:00
Dylan K. Taylor
c1a7d86670 leveldb: more historical versions 2019-05-26 19:35:18 +01:00