Hey I'm trying to get BossBar plugin to work with PocketMine API 3.0.0-ALPHHA9 it gives me this error: Code: [13:44:29] [Server thread/CRITICAL]: Error: "Call to undefined method pocketmine\network\Network::registerPacket()" (EXCEPTION) in "BossBarAPI-master/src/PocketEssential/BossBarAPI/BossBarAPI" at line 57 [13:44:29] [Server thread/DEBUG]: #0 src/pocketmine/plugin/PluginBase(90): PocketEssential\BossBarAPI\BossBarAPI->onEnable() [13:44:29] [Server thread/DEBUG]: #1 DevTools.phar/src/FolderPluginLoader/FolderPluginLoader(125): pocketmine\plugin\PluginBase->setEnabled(boolean 1) [13:44:29] [Server thread/DEBUG]: #2 src/pocketmine/plugin/PluginManager(610): FolderPluginLoader\FolderPluginLoader->enablePlugin(PocketEssential\BossBarAPI\BossBarAPI object) [13:44:29] [Server thread/DEBUG]: #3 src/pocketmine/Server(1944): pocketmine\plugin\PluginManager->enablePlugin(PocketEssential\BossBarAPI\BossBarAPI object) [13:44:29] [Server thread/DEBUG]: #4 src/pocketmine/Server(1930): pocketmine\Server->enablePlugin(PocketEssential\BossBarAPI\BossBarAPI object) [13:44:29] [Server thread/DEBUG]: #5 src/pocketmine/Server(1716): pocketmine\Server->enablePlugins(integer 1) [13:44:29] [Server thread/DEBUG]: #6 src/pocketmine/PocketMine(556): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string phar://C:/Users/Admin/Creative Cloud Files/Desktop/PrymePE Test Server/PocketMine-MP.phar/, string C:\Users\Admin\Creative Cloud Files\Desktop\PrymePE Test Server\, string C:\Users\Admin\Creative Cloud Files\Desktop\PrymePE Test Server\plugins\) [13:44:29] [Server thread/DEBUG]: #7 C:/Users/Admin/Creative Cloud Files/Desktop/PrymePE Test Server/PocketMine-MP.phar(1): require(string phar://C:/Users/Admin/Creative Cloud Files/Desktop/PrymePE Test Server/PocketMine-MP.phar/src/pocketmine/PocketMine.php) this is the code where the error is at: PHP: public function onEnable(){ @mkdir($this->getDataFolder()); $this->saveDefaultConfig(); $this->getServer()->getNetwork()->registerPacket(BossEventPacket::NETWORK_ID, BossEventPacket::class); $this->getServer()->getNetwork()->registerPacket(UpdateAttributesPacket::NETWORK_ID, UpdateAttributesPacket::class); $this->getServer()->getNetwork()->registerPacket(SetEntityDataPacket::NETWORK_ID, SetEntityDataPacket::class); $this->getServer()->getPluginManager()->registerEvents($this, $this); $this->getServer()->getScheduler()->scheduleRepeatingTask(new SendTask($this), 20); } I had a look at PocketMine source code and realised that registerPacket does not even exist. Would I need to implemt it to my own version or is there a better way around this?
Try this: PHP: PacketPool::registerPacket(new BossEventPacket()); https://github.com/pmmp/PocketMine-...ine/network/mcpe/protocol/PacketPool.php#L107
I just got this error: Code: [19:06:39] [Server thread/CRITICAL]: ErrorException: "Undefined property: PocketEssential\BossBarAPI\BossBarAPI::$PacketPool" (EXCEPTION) in "BossBarAPI-master/src/PocketEssential/BossBarAPI/BossBarAPI" at line 59 [19:06:39] [Server thread/DEBUG]: #0 BossBarAPI-master/src/PocketEssential/BossBarAPI/BossBarAPI(59): pocketmine\error_handler(integer 8, string Undefined property: PocketEssential\BossBarAPI\BossBarAPI::$PacketPool, string C:\Users\Admin\Creative Cloud Files\Desktop\PrymePE Test Server\plugins\BossBarAPI-master\src\PocketEssential\BossBarAPI\BossBarAPI.php, integer 59, array Array()) [19:06:39] [Server thread/DEBUG]: #1 src/pocketmine/plugin/PluginBase(90): PocketEssential\BossBarAPI\BossBarAPI->onEnable() [19:06:39] [Server thread/DEBUG]: #2 DevTools.phar/src/FolderPluginLoader/FolderPluginLoader(125): pocketmine\plugin\PluginBase->setEnabled(boolean 1) [19:06:39] [Server thread/DEBUG]: #3 src/pocketmine/plugin/PluginManager(610): FolderPluginLoader\FolderPluginLoader->enablePlugin(PocketEssential\BossBarAPI\BossBarAPI object) [19:06:39] [Server thread/DEBUG]: #4 src/pocketmine/Server(1944): pocketmine\plugin\PluginManager->enablePlugin(PocketEssential\BossBarAPI\BossBarAPI object) [19:06:39] [Server thread/DEBUG]: #5 src/pocketmine/Server(1930): pocketmine\Server->enablePlugin(PocketEssential\BossBarAPI\BossBarAPI object) [19:06:39] [Server thread/DEBUG]: #6 src/pocketmine/Server(1716): pocketmine\Server->enablePlugins(integer 1) [19:06:39] [Server thread/DEBUG]: #7 src/pocketmine/PocketMine(556): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string phar://C:/Users/Admin/Creative Cloud Files/Desktop/PrymePE Test Server/PocketMine-MP.phar/, string C:\Users\Admin\Creative Cloud Files\Desktop\PrymePE Test Server\, string C:\Users\Admin\Creative Cloud Files\Desktop\PrymePE Test Server\plugins\) [19:06:39] [Server thread/DEBUG]: #8 C:/Users/Admin/Creative Cloud Files/Desktop/PrymePE Test Server/PocketMine-MP.phar(1): require(string phar://C:/Users/Admin/Creative Cloud Files/Desktop/PrymePE Test Server/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
May you show me the code? Edit: After seeing this: I guess you didn't really read what the previous users wrote. It should look like this: PHP: PacketPool::registerPacket(new BossEventPacket()); tl;dr Get rid of $this->
firstly: Code: use pocketmine\network\protocol\mcpe\PacketPool; secondly: Code: PacketPool::registerPacket(new BossEventPacket());
PacketPool::registerPacket() is a static function just like Server::getInstance() and Item::get(), you don't necessarily need to create a new instance of their classes to call those functions.
I think that worked but now I have an error in BossEventPacket ;-: Code: Fatal error: Class PocketEssential\BossBarAPI\BossEventPacket contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (pocketmine\network\mcpe\protocol\DataPacket::handle) in C:\Users\Admin\Creative Cloud Files\Desktop\PrymePE Test Server\plugins\BossBarAPI-master\src\PocketEssential\BossBarAPI\BossEventPacket.php on line 28 Code: PHP: <?phpnamespace PocketEssential\BossBarAPI;use pocketmine\network\mcpe\protocol\DataPacket;class BossEventPacket extends DataPacket{ const NETWORK_ID = 0x4a; public $eid; public $state; public function decode(){ $this->eid = $this->getUUID(); $this->state = $this->getUnsignedVarInt(); // $this->ka2 = $this->getString(); // $this->ka3 = $this->getFloat(); // $this->ka4 = $this->getShort(); // $this->ka5 = $this->getUnsignedVarInt(); // print $ka2 . '|' . $ka3 . '|' . $ka4 . '|' . $ka5 . '\n'; print '|' . $this->eid . '|' . $this->state . '\n'; } public function encode(){ $this->reset(); $this->putEntityId($this->eid); $this->putUnsignedVarInt($this->state); }}
You have to implement BossEventPacket::handle() function. But of all the packets, why are you registering a packet that's already available?
You must use normal IDE and know PHP for fix it by yourself. Also BossEventPacket already in PMMP. Replace everywhere plugin imports to pocketmine