1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

registerPacket was removed?

Discussion in 'Development' started by rektpixel, Oct 7, 2017.

  1. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
    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_IDBossEventPacket::class);
            
    $this->getServer()->getNetwork()->registerPacket(UpdateAttributesPacket::NETWORK_IDUpdateAttributesPacket::class);
            
    $this->getServer()->getNetwork()->registerPacket(SetEntityDataPacket::NETWORK_IDSetEntityDataPacket::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?
     
  2. themestl

    themestl Spider Jockey

    Messages:
    39
    GitHub:
    themestl
    PacketPool::registerPacket(Packet $packet);
     
    rektpixel likes this.
  3. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
    so like..
    PHP:
    $this->PacketPool::registerPacket(BossEventPacket $BossEventPacket::class);
    ?
     
  4. Kyd

    Kyd Zombie Pigman

    Messages:
    678
    GitHub:
    boi1216
    PHP:
    PacketPool::registerPacket(BossEventPacket::class);
     
    jasonwynn10 and rektpixel like this.
  5. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    jasonwynn10 and rektpixel like this.
  6. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
    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)
    
     
  7. SalmonDE

    SalmonDE Zombie Pigman

    Messages:
    739
    GitHub:
    SalmonDE
    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->
     
    Last edited: Oct 7, 2017
    jasonwynn10 likes this.
  8. themestl

    themestl Spider Jockey

    Messages:
    39
    GitHub:
    themestl
    firstly:
    Code:
    use pocketmine\network\protocol\mcpe\PacketPool;
    secondly:
    Code:
    PacketPool::registerPacket(new BossEventPacket());
     
  9. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    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.
     
    jasonwynn10 likes this.
  10. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
    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:
    <?php

    namespace 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);
        }
    }
     
  11. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    You have to implement BossEventPacket::handle() function. But of all the packets, why are you registering a packet that's already available?
     
    jasonwynn10, SalmonDE and Sandertv like this.
  12. themestl

    themestl Spider Jockey

    Messages:
    39
    GitHub:
    themestl
  13. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
  14. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
    oh how would this be done? :eek:
     
  15. themestl

    themestl Spider Jockey

    Messages:
    39
    GitHub:
    themestl
    You must use normal IDE and know PHP for fix it by yourself.
    Also BossEventPacket already in PMMP. Replace everywhere plugin imports to pocketmine
     
    rektpixel likes this.
  16. rektpixel

    rektpixel Baby Zombie

    Messages:
    186
    I will learn.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.