alvin-pm-pl / GroupsAPI

Yet another asynchronous permission management plugin for PocketMine-MP.
MIT License
21 stars 2 forks source link

Crash if u remove all the groups whit /deletegroup #17

Open MrBlasyMSK opened 2 years ago

MrBlasyMSK commented 2 years ago

Maybe you should add an "if" if you try to remove all the groups, when only 1 group was missing when using the remove command this happened

PocketMine-MP Crash Dump Wed Apr 20 19:20:48 UTC 2022

PocketMine-MP version: 4.3.0 [Protocol 503]
Git commit: e4ce467c0ba22e8e9f0300bd5d375a0728369813
PHP version: 8.0.17
OS: Linux, linux

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: GroupsAPI

Error: alvin0319\GroupsAPI\GroupsAPI::getChatFormat(): Argument #1 ($group) must be of type string, null given, called in phar:///home/container/plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/user/Member.php on line 248
File: plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/GroupsAPI
Line: 249
Type: TypeError
Backtrace:
#0 plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/user/Member(248): alvin0319\GroupsAPI\GroupsAPI->getChatFormat(NULL )
#1 plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/user/Member(239): alvin0319\GroupsAPI\user\Member->buildFormat()
#2 plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/user/Member(217): alvin0319\GroupsAPI\user\Member->updateGroups()
#3 plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/user/Member(263): alvin0319\GroupsAPI\user\Member->removeGroup(object alvin0319\GroupsAPI\group\Group#583950)
#4 plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/group/GroupManager(78): alvin0319\GroupsAPI\user\Member->onGroupRemoved(object alvin0319\GroupsAPI\group\Group#583950)
#5 plugins/GroupsAPI_dev-16.phar/src/alvin0319/GroupsAPI/command/DeleteGroupCommand(75): alvin0319\GroupsAPI\group\GroupManager->unregisterGroup(object alvin0319\GroupsAPI\group\Group#583950, true)
#6 pmsrc/src/command/SimpleCommandMap(220): alvin0319\GroupsAPI\command\DeleteGroupCommand->execute(object ipad54\netherblocks\player\Player#28469, string[11] deletegroup, array[0])
#7 pmsrc/src/Server(1409): pocketmine\command\SimpleCommandMap->dispatch(object ipad54\netherblocks\player\Player#28469, string[18] deletegroup Member)
#8 pmsrc/src/player/Player(1402): pocketmine\Server->dispatchCommand(object ipad54\netherblocks\player\Player#28469, string[18] deletegroup Member)
#9 pmsrc/src/network/mcpe/handler/InGamePacketHandler(164): pocketmine\player\Player->chat(string[20] ./deletegroup Member)
#10 pmsrc/vendor/pocketmine/bedrock-protocol/src/TextPacket(167): pocketmine\network\mcpe\handler\InGamePacketHandler->handleText(object pocketmine\network\mcpe\protocol\TextPacket#628733)
#11 pmsrc/src/network/mcpe/NetworkSession(398): pocketmine\network\mcpe\protocol\TextPacket->handle(object CLADevs\VanillaX\network\InGamePacketHandlerX#612512)
#12 pmsrc/src/network/mcpe/NetworkSession(361): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\TextPacket#628733, string[53] ....MrBlasyMSK../deletegroup Member.2535473460645696.)
#13 pmsrc/src/network/mcpe/raklib/RakLibInterface(192): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[56] 3.dd..-r.I,.......OI.I-IM/./-P.M.MJ-.02565176130315.4c..)
#14 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(42): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(integer 0, string[65] .../e.;(.(.<...........o....$...t...o.EV5..v(.......l.H.]0......^)
#15 pmsrc/src/network/mcpe/raklib/RakLibInterface(122): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#27783)
#16 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib\{closure}()
#17 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
#18 pmsrc/src/Server(1661): pocketmine\snooze\SleeperHandler->sleepUntil(double 1650482448.9971)
#19 pmsrc/src/Server(1047): pocketmine\Server->tickProcessor()
#20 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[16] /home/container/, string[24] /home/container/plugins/)
#21 pmsrc/src/PocketMine(327): pocketmine\server()
#22 pmsrc(11): require(string[60] phar:///home/container/PocketMine-MP.phar/src/PocketMine.php)
alvin0319 commented 2 years ago

Simple note: I was intend to let the members to have at least one group, and i added check for thrm, but for some reason it seems this doesn't work.