inxomnyaa / MagicWE

Lag free asynchronous world editor for PMMP with plenty of options
https://poggit.pmmp.io/ci/inxomnyaa/MagicWE
GNU General Public License v3.0
101 stars 83 forks source link

[Bug] #223

Closed ghost closed 3 years ago

ghost commented 3 years ago

Description

Error: Argument 1 passed to xenialdan\MagicWE2\session\Session::setUUID() must be an instance of pocketmine\uuid\UUID, instance of Ramsey\Uuid\Lazy\LazyUuidFromString given, called in phar:///root/grytic/pmmp/PocketMine-MP/server/plugins/MagicWE2_dev-452.phar/src/xenialdan/MagicWE2/session/UserSession.php on line 56 File: plugins/MagicWE2_dev-452.phar/src/xenialdan/MagicWE2/session/Session Line: 54 Type: TypeError

`Backtrace:

0 plugins/MagicWE2_dev-452.phar/src/xenialdan/MagicWE2/session/UserSession(56): xenialdan\MagicWE2\session\Session->setUUID(object Ramsey\Uuid\Lazy\LazyUuidFromString)

1 plugins/MagicWE2_dev-452.phar/src/xenialdan/MagicWE2/helper/SessionHelper(94): xenialdan\MagicWE2\session\UserSession->__construct(object pocketmine\player\Player)

2 plugins/MagicWE2_dev-452.phar/src/xenialdan/MagicWE2/EventListener(60): xenialdan\MagicWE2\helper\SessionHelper::createUserSession(object pocketmine\player\Player)

3 pmsrc/src/event/RegisteredListener(75): xenialdan\MagicWE2\EventListener->onLogin(object pocketmine\event\player\PlayerJoinEvent)

4 pmsrc/src/event/Event(62): pocketmine\event\RegisteredListener->callEvent(object pocketmine\event\player\PlayerJoinEvent)

5 pmsrc/src/player/Player(799): pocketmine\event\Event->call()

6 pmsrc/src/network/mcpe/NetworkSession(714): pocketmine\player\Player->doFirstSpawn()

7 pmsrc/src/network/mcpe/NetworkSession(707): pocketmine\network\mcpe\NetworkSession->onClientSpawnResponse()

8 pmsrc/src/network/mcpe/handler/SpawnResponsePacketHandler(44): pocketmine\network\mcpe\NetworkSession->pocketmine\network\mcpe{closure}()

9 pmsrc/src/network/mcpe/protocol/SetLocalPlayerAsInitializedPacket(45): pocketmine\network\mcpe\handler\SpawnResponsePacketHandler->handleSetLocalPlayerAsInitialized(object pocketmine\network\mcpe\protocol\SetLocalPlayerAsInitializedPacket)

10 pmsrc/src/network/mcpe/NetworkSession(398): pocketmine\network\mcpe\protocol\SetLocalPlayerAsInitializedPacket->handle(object pocketmine\network\mcpe\handler\SpawnResponsePacketHandler)

11 pmsrc/src/network/mcpe/NetworkSession(361): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\SetLocalPlayerAsInitializedPacket, string[2] q.)

12 pmsrc/src/network/mcpe/raklib/RakLibInterface(186): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[5] c*d..)

13 pmsrc/vendor/pocketmine/raklib/src/server/ipc/RakLibToUserThreadMessageReceiver(43): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(integer 0, string[14] .'...R.A7Nt...)

14 pmsrc/src/network/mcpe/raklib/RakLibInterface(121): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface)

15 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(113): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib{closure}()

16 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(75): pocketmine\snooze\SleeperHandler->processNotifications()

17 pmsrc/src/Server(1593): pocketmine\snooze\SleeperHandler->sleepUntil(double 1618992511.5301)

18 pmsrc/src/Server(1143): pocketmine\Server->tickProcessor()

19 pmsrc/src/PocketMine(276): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[39] /root/grytic/pmmp/PocketMine-MP/server/, string[47] /root/grytic/pmmp/PocketMine-MP/server/plugins/)

20 pmsrc/src/PocketMine(299): pocketmine\server()

21 pmsrc(11): require(string[83]

phar:///root/grytic/pmmp/PocketMine-MP/server/PocketMine-MP.phar/src/PocketMine.)`


MagicWE2 Information
Version 10.1.2
Plugin API Version Branch PM4 4.0.0
PMMP Protocol Version 431
PMMP Version 4.0.0
PMMP API Version 4.0.0
inxomnyaa commented 3 years ago

I already know, deserialisation of saved sessions is borked. blame dktapps

ghost commented 3 years ago

So MagicWE2 can't be used right now?

inxomnyaa commented 3 years ago

The fix should be backwards compatible with old JSON session files

inxomnyaa commented 3 years ago

I tested https://poggit.pmmp.io/ci/thebigsmileXD/MagicWE2/MagicWE2/dev:477 and everything seems to operate normally