Плагин CustomWingsAnimated выдает краш сервера, но не ко всем применимую. У меня работает, у другого игрока сраз крашит сервер, словно не сохраняет его скин в папку плагина. Вот ошибка:
PocketMine-MP version: 5.28.0 [Protocol 800]
Git commit: 5e830c732075d067887eaac9fb605d6a347e8115
PHP version: 8.2.17
OS: Linux, linux
THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: CustomWing
Thread: Main
Error: getimagesize(/srv/data/plugin_data/CustomWing/saveskin/ciborg.png): Failed to open stream: No such file or directory
File: plugins/CwAnimated.phar/src/CustomWing/setSkin
Line: 18
Type: ErrorException
Backtrace:
#0 (): pocketmine\errorhandler\ErrorToExceptionHandler::handle(int 2, string[116] getimagesize(/srv/data/plugin_data/CustomWing/saveskin/ciborg.png): Failed to op, string[67] phar:///srv/data/plugins/CwAnimated.phar/src/CustomWing/setSkin.php, int 18)
#1 plugins/CwAnimated.phar/src/CustomWing/setSkin(18): getimagesize(string[52] /srv/data/plugin_data/CustomWing/saveskin/ciborg.png)
#2 plugins/CwAnimated.phar/src/CustomWing/Main(343): CustomWing\setSkin->setSkin(object pocketmine\player\Player#142301, string[10] AngelWhite)
#3 plugins/FormAPI.phar/src/jojoe77777/FormAPI/Form(46): CustomWing\Main->CustomWing{closure}(object pocketmine\player\Player#142301, int 15)
#4 pmsrc/src/player/Player(2253): jojoe77777\FormAPI\Form->handleResponse(object pocketmine\player\Player#142301, int 15)
#5 pmsrc/src/network/mcpe/handler/InGamePacketHandler(972): pocketmine\player\Player->onFormSubmit(int 8, int 15)
#6 pmsrc/vendor/pocketmine/bedrock-protocol/src/ModalFormResponsePacket(63): pocketmine\network\mcpe\handler\InGamePacketHandler->handleModalFormResponse(object pocketmine\network\mcpe\protocol\ModalFormResponsePacket#229672)
#7 pmsrc/src/network/mcpe/NetworkSession(475): pocketmine\network\mcpe\protocol\ModalFormResponsePacket->handle(object pocketmine\network\mcpe\handler\InGamePacketHandler#86826)
#8 pmsrc/src/network/mcpe/NetworkSession(413): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\ModalFormResponsePacket#229672, string[8] e…15..)
#9 pmsrc/src/network/mcpe/raklib/RakLibInterface(214): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[72] ..H.d64.bH......dps..eA.S..j........$......LLL....Nu.g8u.f.J6.MX..D3...) #10 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(40): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(int 1, string[81] .aO.
.FBm.k…,O… .T....0%…v=…!.Lm..{K.gN..B.-…i…e…k{)
#11 pmsrc/src/network/mcpe/raklib/RakLibInterface(107): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#213535)
#12 pmsrc/src/TimeTrackingSleeperHandler(58): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib{closure}()
#13 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\TimeTrackingSleeperHandler->pocketmine{closure}()
#14 pmsrc/src/TimeTrackingSleeperHandler(77): pocketmine\snooze\SleeperHandler->processNotifications()
#15 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(79): pocketmine\TimeTrackingSleeperHandler->processNotifications()
#16 pmsrc/src/Server(1740): pocketmine\snooze\SleeperHandler->sleepUntil(float 1747221199.0426)
#17 pmsrc/src/Server(1104): pocketmine\Server->tickProcessor()
#18 pmsrc/src/PocketMine(360): pocketmine\Server->__construct(object pocketmine\thread\ThreadSafeClassLoader#6, object pocketmine\utils\MainLogger#2, string[10] /srv/data/, string[18] /srv/data/plugins/)
#19 pmsrc/src/PocketMine(383): pocketmine\server()
#20 pmsrc(170): require(string[72] phar:///tmp/PocketMine-MP-phar-cache.0/PMMPHuSrSh.tar/src/PocketMine.php)
Code:
[9] {
[10]
[11] public function setSkin(Player $player, string $stuffName)
[12] {
[13] $locate = “skin”;
[14] $skin = $player->getSkin();
[15] $name = $player->getName();
[16] $path = Main::$instance->getDataFolder() . “saveskin/” . $name . “.png”;
[17]
[18] $size = getimagesize($path);
[19]
[20] $path = $this->imgTricky($path, $stuffName, $locate, [$size[0], $size[1], 4]);
[21] $img = @imagecreatefrompng($path);
[22] $skinbytes = “”;
[23] for ($y = 0; $y < $size[1]; $y++) {
[24] for ($x = 0; $x < $size[0]; $x++) {
[25] $colorat = @imagecolorat($img, $x, $y);
[26] $a = ((~((int)($colorat >> 24))) << 1) & 0xff;
[27] $r = ($colorat >> 16) & 0xff;
[28] $g = ($colorat >> 8) & 0xff;