8005 Commits

Author SHA1 Message Date
Dylan K. Taylor
b3ffce9729 back to dev 2018-07-11 09:14:38 +01:00
Dylan K. Taylor
ce9f18c6b4 disable dev flag 3.0.6 2018-07-10 17:38:40 +01:00
Dylan K. Taylor
9610c55b19
PluginManager: Skip methods not declared by instanceof Listener when registering handlers (#2293)
This is quite an interesting bug. If you have
```php
class A{
    public function onMove(PlayerMoveEvent $event){} //shouldn't be a handler because this class isn't a Listener
}

class B extends A implements Listener{}
```
then
```php
registerEvents(new B, $plugin);
```

then `A::onMove()` will be registered as an event handler even though `A` is not an instanceof `Listener`.

This was observed by noting that plugins which do something like `extends PluginBase implements Listener` causes `registerEvents()` to try and register `PluginBase` methods as event handlers, which could lead to astonishing behaviour.


then A::onMove() will be registered as an event handler even though A is not an instanceof Listener.

This was observed by noting that plugins which do something like "extends PluginBase implements Listener" causes registerEvents() to try and register PluginBase methods as event handlers, which could lead to astonishing behaviour.
2018-07-10 16:59:33 +01:00
Dylan K. Taylor
eb8eac42b8 Merge branch 'release/3.1' 2018-07-10 12:48:14 +01:00
Dylan K. Taylor
1087212d75 Merge branch 'release/3.0' into release/3.1 2018-07-10 12:48:02 +01:00
Dylan K. Taylor
b01b477a2a Properly fixed newline issues when parsing doc comments
fixes #2110 properly

fixed @notHandler and such not being detected when CRLF is used
2018-07-10 12:46:20 +01:00
Dylan K. Taylor
80ebc0bc5f Merge branch 'release/3.1' 2018-07-09 18:44:55 +01:00
TheNewHEROBRINEX
0c350f2f57 Add quitMessage parameter to Player::kick() 2018-07-09 18:40:30 +01:00
TheNewHEROBRINEX
bfcef2ab6b Add setReason() method to PlayerKickEvent 2018-07-09 18:36:19 +01:00
Dylan K. Taylor
46ea0186e4 Merge branch 'release/3.1' 2018-07-09 10:06:44 +01:00
Dylan K. Taylor
2994d0f3ae Merge branch 'release/3.0' into release/3.1 2018-07-09 10:06:28 +01:00
Dylan K. Taylor
2d454ae56f PluginManager: fixed bug in YML commands permission type checking 2018-07-08 16:19:46 +01:00
Dylan K. Taylor
066c9d4fd4 PluginManager: simplify isPluginEnabled() 2018-07-08 16:16:39 +01:00
Dylan K. Taylor
23829952c3 PermissibleBase: removed nonsensical code
it's not possible for this to be null, unless a child class doesn't call the constructor, and anything could break in that case anyway.
2018-07-08 13:04:51 +01:00
Dylan K. Taylor
9c80e349ce Merge branch 'release/3.1' 2018-07-08 12:17:18 +01:00
Dylan K. Taylor
57cc0ebe75 Merge branch 'release/3.0' into release/3.1 2018-07-08 12:17:06 +01:00
Dylan K. Taylor
7ee98ff139 Config: fixed whitespace between key and = being invalid
it tolerates whitespace everywhere except here already ^.^
2018-07-08 11:54:06 +01:00
Dylan K. Taylor
f1cab91ac9 Config: fixed interpreting invalid keys as empty strings
these should just be ignored completely.
2018-07-08 11:50:17 +01:00
Dylan K. Taylor
258b4f9dde ChunkRequestTask: add docs and typehints 2018-07-07 19:35:40 +01:00
Dylan K. Taylor
78d27dc3e4 Move ChunkRequestTask to pocketmine\network\mcpe namespace
it has a lot to do with network and little to do with world I/O (load/save).
2018-07-07 19:34:11 +01:00
Dylan K. Taylor
7e7cd6c995 Merge branch 'release/3.1' 2018-07-07 19:22:51 +01:00
Dylan K. Taylor
7554d9a370 Empty merge 2018-07-07 19:22:30 +01:00
Dylan K. Taylor
e0bc9c5e96 back to dev 2018-07-07 19:20:55 +01:00
Dylan K. Taylor
32574118ea
Implemented Mending enchantment (#2257) 2018-07-06 13:28:33 +01:00
Dylan K. Taylor
b23c947060 Merge branch 'release/3.1' 2018-07-06 13:12:22 +01:00
Dylan K. Taylor
5a3135659b Merge branch 'release/3.0' into release/3.1 2018-07-06 13:12:13 +01:00
Dylan K. Taylor
70caa00266 disable dev flag for release 3.0.5 2018-07-06 12:59:02 +01:00
Dylan K. Taylor
ee7c838040 LoginPacket: barf on finding extraData multiple times
this fixes a potential exploit where clients could append JWTs signed with their own keys to the end of the chain containing fake XUID/UUID/username which would then overwrite the legitimate ones in earlier links.
This stems from the fact that the final link of the vanilla chain contains the client's own pubkey, so the client is able to append its own data to the end of the chain.
2018-07-06 12:54:43 +01:00
Dylan K. Taylor
34e9e93210 PluginBase: fixed crashing on getConfig() when data dir doesn't exist
I considered making this instead save the default config instead of creating an empty config file, but that would be (albeit minor) a behavioural change which therefore belongs in 3.1.
2018-07-05 19:59:08 +01:00
Dylan K. Taylor
4ccbb8b21a Merge branch 'release/3.1' 2018-07-05 17:43:19 +01:00
Dylan K. Taylor
b90d7d1839 Merge branch 'release/3.0' into release/3.1 2018-07-05 17:43:11 +01:00
Dylan K. Taylor
5dbb0d177e
Fixed double chest inventory desync issues, closes #2261 (#2279)
chest pairing really needs rewriting... this code really sucks
2018-07-05 17:42:30 +01:00
Dylan K. Taylor
670b940837 PocketMine.php: clean up on platform dependency checks 2018-07-05 17:32:13 +01:00
Dylan K. Taylor
120eb8e362 CompressBatchedTask: move to pocketmine\network\mcpe namespace 2018-07-05 13:38:33 +01:00
Dylan K. Taylor
2907de81ad Apply typehints to more general pocketmine\network namespace 2018-07-05 13:36:23 +01:00
Dylan K. Taylor
950465d283 as always, missed one - I blame PhpStorm 2018-07-05 13:35:04 +01:00
Dylan K. Taylor
2bba3a0805 Apply typehints to pocketmine\network\mcpe\protocol namespace
this is pulled from network-nuke in order to reduce the size of the diff.
2018-07-05 13:19:15 +01:00
Dylan K. Taylor
fbd4f4a849 Merge branch 'release/3.1' 2018-07-05 12:11:26 +01:00
Dylan K. Taylor
6cad7be3ef Merge branch 'release/3.0' into release/3.1 2018-07-05 12:11:12 +01:00
Dylan K. Taylor
28a72a93b4 Chunk: Use an SplFixedArray for heightmap
this goes on 3.1 because it changes the behaviour of chunk cloning, which might possibly break some plugins, and this isn't a bug fix.

This should see no change in behaviour other than a minor performance improvement and slight reduction in memory usage.
2018-07-05 11:58:20 +01:00
Dylan K. Taylor
58f0ad3e3e Command: remove unnecessary getPermission() calls 2018-07-05 10:38:31 +01:00
Dylan K. Taylor
0df3585c81 TellCommand: remove useless strtolower() and temp variable 2018-07-05 09:12:21 +01:00
Dylan K. Taylor
697723b551 DoubleChestInventory: remove redundant clear() override
this calls setItem() which deals with the necessary logic anyway.
2018-07-04 20:06:42 +01:00
Dylan K. Taylor
5926d80525 DoubleChestInventory: fixed wrong logic for setting items into the right-hand side 2018-07-04 20:04:40 +01:00
Dylan K. Taylor
399870bf31 Merge branch 'release/3.1' 2018-07-02 16:58:22 +01:00
Dylan K. Taylor
0f0d12bebc Merge branch 'release/3.0' into release/3.1 2018-07-02 16:58:15 +01:00
Dylan K. Taylor
2252f7498d Merge branch 'release/3.1' 2018-07-02 16:57:01 +01:00
Dylan K. Taylor
dfc11abf2d Level: fixed sendBlocks() documentation 2018-07-02 16:53:48 +01:00
Dylan K. Taylor
17eef9f902 Level: stricten type checks on sendBlocks()
because people are morons
2018-07-02 16:53:00 +01:00
Dylan K. Taylor
5dc4e17a96 Updated TesterPlugin submodule 2018-06-29 20:11:32 +01:00