Pocketmine-mp: Emotes are not implemented

Created on 27 Jun 2020  路  8Comments  路  Source: pmmp/PocketMine-MP

Issue description

if you use emotion, other players will not see it

  • Expected result: if you use emotion, other players will see it
  • Actual result: if you use emotion, other players will not see it

Steps to reproduce the issue

  1. Use emotion

OS and versions

  • PocketMine-MP: 3.14.0
  • PHP: 7.3
  • Server OS: Ubuntu
  • Game version: PE/Win10

Plugins


None

Crashdump, backtrace or other files



None

Gameplay Not Implemented

Most helpful comment

Use this:

    public function onData(\pocketmine\event\server\DataPacketReceiveEvent $event): void{
        $pk = $event->getPacket();
        if ($pk instanceof \pocketmine\network\mcpe\protocol\EmotePacket) {
            var_dump($event->getPlayer()->getId());
            var_dump($pk->getEmoteId());
            var_dump($pk->getFlags());
            \pocketmine\Server::getInstance()->broadcastPacket(\pocketmine\Server::getInstance()->getOnlinePlayers(), \pocketmine\network\mcpe\protocol\EmotePacket::create($event->getPlayer()->getId(), $pk->getEmoteId(), 1 << 0));
        }
    }

All 8 comments

It is not a bug, they are not implemented. If you want emotes, you just have to redirect the EmotePacket with the flag FLAG_SERVER to all viewers then they will work.

Need broadcast EmotePacket

Use this:

    public function onData(\pocketmine\event\server\DataPacketReceiveEvent $event): void{
        $pk = $event->getPacket();
        if ($pk instanceof \pocketmine\network\mcpe\protocol\EmotePacket) {
            var_dump($event->getPlayer()->getId());
            var_dump($pk->getEmoteId());
            var_dump($pk->getFlags());
            \pocketmine\Server::getInstance()->broadcastPacket(\pocketmine\Server::getInstance()->getOnlinePlayers(), \pocketmine\network\mcpe\protocol\EmotePacket::create($event->getPlayer()->getId(), $pk->getEmoteId(), 1 << 0));
        }
    }

@xxAROX i tryed to make a plugin with this but it didnt work...

<?php

declare(strict_types=1);

namespace LolgonHDYT\test;

use pocketmine\plugin\PluginBase;
use pocketmine\network\mcpe\protocol\EmotePacket;

class Main extends PluginBase{

    public function onData(\pocketmine\event\server\DataPacketReceiveEvent $event): void{
        $pk = $event->getPacket();
        if ($pk instanceof \pocketmine\network\mcpe\protocol\EmotePacket) {
            var_dump($event->getPlayer()->getId());
            var_dump($pk->getEmoteId());
            var_dump($pk->getFlags());
            \pocketmine\Server::getInstance()->broadcastPacket(\pocketmine\Server::getInstance()->getOnlinePlayers(), \pocketmine\network\mcpe\protocol\EmotePacket::create($event->getPlayer()->getId(), $pk->getEmoteId(), 1 << 0));
        }
    }
}

This isn't a plugin support forum.

Sorry...

Until this implemented to pmmp, you can use this plugin instead.
https://poggit.pmmp.io/p/DoEmote

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dktapps picture dktapps  路  3Comments

Hugheth picture Hugheth  路  3Comments

nmo0ory picture nmo0ory  路  3Comments

JoshuaACasey picture JoshuaACasey  路  3Comments

MisteFr picture MisteFr  路  3Comments