Skip to content

Commit

Permalink
Add support for pmmp 4.18.4
Browse files Browse the repository at this point in the history
  • Loading branch information
Muqsit committed Apr 7, 2023
1 parent 75db53d commit a95d4d1
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
4 changes: 2 additions & 2 deletions plugin.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: FakePlayer
main: muqsit\fakeplayer\Loader
api: 4.16.0
version: 0.2.2
api: 4.18.4
version: 0.2.3

permissions:
fakeplayer.command.fakeplayer:
Expand Down
10 changes: 8 additions & 2 deletions src/muqsit/fakeplayer/Loader.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
use pocketmine\network\mcpe\protocol\types\DeviceOS;
use pocketmine\network\mcpe\protocol\types\InputMode;
use pocketmine\network\mcpe\protocol\types\login\ClientData;
use pocketmine\network\mcpe\StandardEntityEventBroadcaster;
use pocketmine\network\mcpe\StandardPacketBroadcaster;
use pocketmine\player\Player;
use pocketmine\player\XboxLivePlayerInfo;
Expand Down Expand Up @@ -136,14 +137,19 @@ public function getFakePlayer(Player $player) : ?FakePlayer{
public function addPlayer(FakePlayerInfo $info) : Promise{
$server = $this->getServer();
$network = $server->getNetwork();
$packet_serializer_context = new PacketSerializerContext(GlobalItemTypeDictionary::getInstance()->getDictionary());
$packet_broadcaster = new StandardPacketBroadcaster($this->getServer(), $packet_serializer_context);
$entity_event_broadcaster = new StandardEntityEventBroadcaster($packet_broadcaster);

$internal_resolver = new PromiseResolver();
$session = new FakePlayerNetworkSession(
$server,
$network->getSessionManager(),
PacketPool::getInstance(),
$packet_serializer_context,
new FakePacketSender(),
new StandardPacketBroadcaster($server),
$packet_broadcaster,
$entity_event_broadcaster,
ZlibCompressor::getInstance(),
$server->getIp(),
$server->getPort(),
Expand All @@ -160,7 +166,7 @@ public function addPlayer(FakePlayerInfo $info) : Promise{
$rp->invoke($session);

$packet = ResourcePackClientResponsePacket::create(ResourcePackClientResponsePacket::STATUS_COMPLETED, []);
$serializer = PacketSerializer::encoder(new PacketSerializerContext(GlobalItemTypeDictionary::getInstance()->getDictionary()));
$serializer = PacketSerializer::encoder($packet_serializer_context);
$packet->encode($serializer);
$session->handleDataPacket($packet, $serializer->getBuffer());

Expand Down
8 changes: 7 additions & 1 deletion src/muqsit/fakeplayer/network/FakePlayerNetworkSession.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
use muqsit\fakeplayer\network\listener\FakePlayerPacketListener;
use muqsit\fakeplayer\network\listener\FakePlayerSpecificPacketListener;
use pocketmine\network\mcpe\compression\Compressor;
use pocketmine\network\mcpe\EntityEventBroadcaster;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\PacketBroadcaster;
use pocketmine\network\mcpe\PacketSender;
use pocketmine\network\mcpe\protocol\PacketPool;
use pocketmine\network\mcpe\protocol\serializer\PacketSerializer;
use pocketmine\network\mcpe\protocol\serializer\PacketSerializerContext;
use pocketmine\network\NetworkSessionManager;
use pocketmine\player\Player;
use pocketmine\promise\PromiseResolver;
Expand All @@ -33,8 +35,10 @@ class FakePlayerNetworkSession extends NetworkSession{
* @param Server $server
* @param NetworkSessionManager $manager
* @param PacketPool $packetPool
* @param PacketSerializerContext $packetSerializerContext
* @param PacketSender $sender
* @param PacketBroadcaster $broadcaster
* @param EntityEventBroadcaster $entityEventBroadcaster
* @param Compressor $compressor
* @param string $ip
* @param int $port
Expand All @@ -44,14 +48,16 @@ public function __construct(
Server $server,
NetworkSessionManager $manager,
PacketPool $packetPool,
PacketSerializerContext $packetSerializerContext,
PacketSender $sender,
PacketBroadcaster $broadcaster,
EntityEventBroadcaster $entityEventBroadcaster,
Compressor $compressor,
string $ip,
int $port,
PromiseResolver $player_add_resolver
){
parent::__construct($server, $manager, $packetPool, $sender, $broadcaster, $compressor, $ip, $port);
parent::__construct($server, $manager, $packetPool, $packetSerializerContext, $sender, $broadcaster, $entityEventBroadcaster, $compressor, $ip, $port);
$this->player_add_resolver = $player_add_resolver;

// do not store the resolver eternally
Expand Down

0 comments on commit a95d4d1

Please sign in to comment.