Dylan K. Taylor
62815f6c9b
Furnace: get rid of entirely unnecessary ItemFactory usage
2020-07-10 21:38:29 +01:00
Dylan K. Taylor
9b52af62b6
Item: skip a step when decoding PC itemstacks
2020-07-10 21:32:39 +01:00
Dylan K. Taylor
279abb871d
Remove all usages of CompoundTag->hasTag()
...
in pretty much every case, these usages really wanted to read the tag's contents anyway, which can be combined with a getTag() and instanceof call for more concise and static analysis friendly code.
In the few cases where the tag contents wasn't needed, it still wanted to check the type, which, again, can be done in a more static analysis friendly way by just using getTag() and instanceof.
2020-07-10 21:01:43 +01:00
Dylan K. Taylor
2b1a0e1e72
PlayerRespawnEvent: harden setRespawnPosition()
...
apparently plugins like to pass around positions which have null worlds, which aside from being quite stupid, also breaks a lot of stuff and makes it look like PM is to blame when it's just trying to make everything work the way it's supposed to ...
2020-07-10 20:37:45 +01:00
Dylan K. Taylor
91b028c208
WorldManager: use ChunkSelector to find stuff to pre-generate
2020-07-10 20:06:26 +01:00
Dylan K. Taylor
cd022f1592
EmotePacket: make FLAG_SERVER constant public
2020-07-10 20:02:32 +01:00
Dylan K. Taylor
c762ec1319
Entity: removed unused field
2020-07-09 14:10:56 +01:00
Frago9876543210
c1a815a458
Sign (block): added setText() ( #3100 )
2020-07-09 13:43:42 +01:00
Dylan K. Taylor
600ef033ab
PlayerSkinPacket: added ::create()
2020-07-09 13:24:31 +01:00
Dylan K. Taylor
b22cc4875e
Player: Accept NBT data in constructor, instead of asking for it from the server directly
...
this allows custom implementations to provide custom data to the constructor (or none at all).
2020-07-09 13:09:46 +01:00
Dylan K. Taylor
f2cf453cd0
World: remove one more unnecessary vector3 field mutation
2020-07-09 12:53:16 +01:00
Dylan K. Taylor
9e1d9768f0
Merge branch 'stable'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/Player.php
2020-07-09 12:37:50 +01:00
Dylan K. Taylor
874fec0a35
Switch back to PM3 spawn-chunk handling, fix pre-spawn death bug caused by 939dfd9269df0feaff5b96d0dd628055b9706b95, close #3513 (properly this time)
2020-07-09 12:35:45 +01:00
Dylan K. Taylor
4ae3fd7734
Player: Reset spawn chunk send count if teleporting pre-spawn
2020-07-09 12:17:19 +01:00
Dylan K. Taylor
36727aabf7
Extracted a ChunkSelector unit from Player
...
if anyone asks me why not use a static method, it's because I want to make this more dynamic going forward, and statics are anything but.
2020-07-09 11:42:12 +01:00
Dylan K. Taylor
a5d77d5106
LevelDB: remove unused function
2020-07-08 23:24:54 +01:00
Dylan K. Taylor
31fd427710
Entity: remove usages of Chunk->getX()/getZ()
2020-07-08 20:29:30 +01:00
Dylan K. Taylor
92f6967665
Command: validate permissions, require permission registration in advance of commands using them
...
this fixes #3200 .
This causes permissions to be registered before plugin load, which changes some behaviour, but after discussions on #internals-dev we couldn't see any reason to keep the behaviour the way it was, and several reasons to change it to be something like this.
2020-07-08 13:50:38 +01:00
Dylan K. Taylor
6bca38999d
scheduler: removing task IDs
...
These no longer serve any purpose that can't be replaced with a structure like Ds\Set, SplObjectStorage, or just using spl_object_id().
2020-07-08 12:01:48 +01:00
Dylan K. Taylor
d738504e24
TaskScheduler: use a Ds\Set to index tasks internally
...
this removes all remaining use-cases for taskID.
2020-07-08 11:57:48 +01:00
Dylan K. Taylor
dca4bf424e
TaskHandler: change isQueued() to accept TaskHandler instead of int
2020-07-08 11:53:47 +01:00
Dylan K. Taylor
a71b111b50
TaskScheduler: get rid of cancelTask()
...
developers should be using TaskHandler->cancel() instead.
2020-07-08 11:49:43 +01:00
Dylan K. Taylor
da798817b5
Merge branch 'stable'
...
# Conflicts:
# changelogs/3.14.md
# resources/vanilla
# src/VersionInfo.php
# src/entity/Attribute.php
2020-07-08 11:46:02 +01:00
Dylan K. Taylor
b2249f93c0
TaskHandler: bail if given a task that already has a handler
...
This fixes undefined behaviour when scheduling the same task twice. This is usually accidental and almost never desirable.
Note that this still allows a task to be scheduled again after it has
been cancelled; it only disallows scheduling a task multiple times
concurrently.
This commit will probably break MyPlot and other plugins that have
self-scheduling tasks, but as far as I can tell those use-cases should
be replaced with self-cancelling repeating tasks anyway.
2020-07-08 11:02:33 +01:00
Dylan K. Taylor
303344783a
CheckTestCompletionTask: use TaskHandler->cancel()
2020-07-08 10:57:20 +01:00
Dylan K. Taylor
75e0844ff5
MainLogger: log stack traces with CRITICAL level
...
maybe this will get people to send the whole thing instead of just the error message? ...
2020-07-08 10:45:15 +01:00
Dylan K. Taylor
18fabf5466
3.14.2 is next
2020-07-08 10:32:07 +01:00
Dylan K. Taylor
2751c59979
Release 3.14.1
3.14.1
2020-07-08 10:32:07 +01:00
Dylan K. Taylor
d99ffbd66c
Attribute: register lava_movement attribute
...
this is purely to fix crashes when decoding net packets
2020-07-08 10:21:20 +01:00
Dylan K. Taylor
b79aa04530
remove unused FileWriteTask
2020-07-07 21:21:13 +01:00
Dylan K. Taylor
7106ff575c
End abuse of PluginCommand by making it final
...
PluginCommand should be better-named CommandExecutorCommand or perhaps CallbackCommand. It's not supposed to be extended by plugins.
2020-07-07 19:42:47 +01:00
Dylan K. Taylor
909f3f39de
Block: get rid of getRuntimeId()
...
the runtime ID mapping should be non-global in case of multiple protocols.
2020-07-06 11:18:29 +01:00
Dylan K. Taylor
ad99dc5884
ChunkSerializer micro optimisation: reduce indirections when writing runtime IDs
2020-07-05 22:00:42 +01:00
Dylan K. Taylor
0188323d74
fixed a bunch of NBT-related phpstan level 8 errors
2020-07-05 21:01:13 +01:00
Dylan K. Taylor
68c408268c
Separate dye colour ID management from DyeColor enum
2020-07-05 19:04:22 +01:00
Dylan K. Taylor
bf5da596f7
Get rid of WALL metadata mapping
2020-07-05 18:27:10 +01:00
Dylan K. Taylor
79d8bf898a
Moved glazed-terracotta ID-mapping table to BlockLegacyIdHelper
2020-07-05 18:20:41 +01:00
Dylan K. Taylor
eddb2b7fdd
Moved some legacyID mapping code to a separate BlockLegacyIdHelper
...
this makes the code more reusable and will facilitate getting rid of legacy IDs from within the core code.
2020-07-05 16:52:42 +01:00
Dylan K. Taylor
2219f61ea0
BlockLegacyMetadata: added constants for chemistry table variants
2020-07-05 11:13:29 +01:00
Dylan K. Taylor
ae179e5039
fix interacting with anvil & enchanting table inventories
2020-07-04 23:46:26 +01:00
Dylan K. Taylor
d840e8c4d4
Merge commit 'a34f3261c'
...
# Conflicts:
# resources/vanilla
# src/event/entity/EntityExplodeEvent.php
# src/pocketmine/event/block/SignChangeEvent.php
# src/utils/Utils.php
2020-07-04 22:39:40 +01:00
Dylan K. Taylor
c35a596079
Merge commit '8ce0022de'
...
# Conflicts:
# resources/vanilla
# src/network/mcpe/protocol/types/inventory/NetworkInventoryAction.php
2020-07-04 22:34:01 +01:00
Dylan K. Taylor
991abe8864
Merge commit 'fb6491dde'
...
# Conflicts:
# resources/vanilla
2020-07-04 22:25:56 +01:00
Dylan K. Taylor
5cf74fc16b
Merge commit '3b961d0e5'
...
# Conflicts:
# resources/vanilla
2020-07-04 22:25:23 +01:00
Dylan K. Taylor
76cf3b7aa5
Merge commit 'a60fc4cc2'
...
# Conflicts:
# resources/vanilla
2020-07-04 22:24:33 +01:00
Dylan K. Taylor
373783d99b
Merge commit 'b747899fd'
...
# Conflicts:
# resources/vanilla
2020-07-04 22:23:26 +01:00
Dylan K. Taylor
740ed2013f
Merge commit '57b6451e1'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/block/Ladder.php
2020-07-04 22:22:22 +01:00
Dylan K. Taylor
172830fc44
Merge commit '8cf025a2d'
...
# Conflicts:
# resources/vanilla
2020-07-04 22:20:42 +01:00
Dylan K. Taylor
e9eadd3a26
Merge commit '8480ee82e'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/Player.php
# src/pocketmine/block/CraftingTable.php
2020-07-04 22:19:43 +01:00
Dylan K. Taylor
a34f3261cb
event: harden APIs that accept arrays
...
plugin devs can't be relied on to pass the proper types to these APIs, and when the wrong types get passed it makes type errors appear from inside the internals.
2020-07-04 21:55:23 +01:00