|
18 | 18 | use pmmp\thread\Thread as NativeThread;
|
19 | 19 | use pmmp\thread\ThreadSafeArray;
|
20 | 20 | use pocketmine\network\mcpe\convert\TypeConverter;
|
| 21 | +use pocketmine\network\mcpe\EntityEventBroadcaster; |
21 | 22 | use pocketmine\network\mcpe\NetworkSession;
|
| 23 | +use pocketmine\network\mcpe\PacketBroadcaster; |
22 | 24 | use pocketmine\network\mcpe\protocol\PacketPool;
|
| 25 | +use pocketmine\network\mcpe\protocol\serializer\PacketSerializerContext; |
23 | 26 | use pocketmine\network\mcpe\raklib\PthreadsChannelReader;
|
24 | 27 | use pocketmine\network\mcpe\raklib\PthreadsChannelWriter;
|
25 | 28 | use pocketmine\network\NetworkInterface;
|
@@ -67,6 +70,13 @@ final class ProxyNetworkInterface implements NetworkInterface
|
67 | 70 | /** @var PthreadsChannelReader */
|
68 | 71 | private PthreadsChannelReader $threadToMainReader;
|
69 | 72 |
|
| 73 | + /** @var PacketSerializerContext */ |
| 74 | + private PacketSerializerContext $packetSerializerContext; |
| 75 | + /** @var PacketBroadcaster */ |
| 76 | + private PacketBroadcaster $packetBroadcaster; |
| 77 | + /** @var EntityEventBroadcaster */ |
| 78 | + private EntityEventBroadcaster $entityEventBroadcaster; |
| 79 | + |
70 | 80 | /** @var int */
|
71 | 81 | private int $receiveBytes = 0;
|
72 | 82 | /** @var int */
|
@@ -119,6 +129,10 @@ public function __construct(PluginBase $plugin, int $port, ?string $composerPath
|
119 | 129 | $this->mainToThreadWriter = new PthreadsChannelWriter($mainToThreadBuffer);
|
120 | 130 | $this->threadToMainReader = new PthreadsChannelReader($threadToMainBuffer);
|
121 | 131 |
|
| 132 | + $this->packetSerializerContext = PMUtils::getPacketSerializerContext($server); |
| 133 | + $this->packetBroadcaster = PMUtils::getPacketBroadcaster($server); |
| 134 | + $this->entityEventBroadcaster = PMUtils::getEntityEventBroadcaster($server); |
| 135 | + |
122 | 136 | PacketPool::getInstance()->registerPacket(new TickSyncPacket());
|
123 | 137 |
|
124 | 138 | $bandwidthTracker = $plugin->getServer()->getNetwork()->getBandwidthTracker();
|
@@ -273,19 +287,14 @@ public function putPacket(int $socketId, ProxyPacket $pk): void
|
273 | 287 |
|
274 | 288 | public function createSession(int $socketId, string $ip, int $port): NetworkSession
|
275 | 289 | {
|
276 |
| - $typeConverter = TypeConverter::getInstance(); |
277 |
| - $packetSerializerContext = $this->server->getPacketSerializerContext($typeConverter); |
278 |
| - $packetBroadcaster = $this->server->getPacketBroadcaster($packetSerializerContext); |
279 |
| - $entityEventBroadcaster = $this->server->getEntityEventBroadcaster($packetBroadcaster, $typeConverter); |
280 |
| - |
281 | 290 | $session = new NetworkSession(
|
282 | 291 | $this->server,
|
283 | 292 | $this->server->getNetwork()->getSessionManager(),
|
284 | 293 | PacketPool::getInstance(),
|
285 |
| - $packetSerializerContext, |
| 294 | + $this->packetSerializerContext, |
286 | 295 | new ProxyPacketSender($socketId, $this),
|
287 |
| - $packetBroadcaster, |
288 |
| - $entityEventBroadcaster, |
| 296 | + $this->packetBroadcaster, |
| 297 | + $this->entityEventBroadcaster, |
289 | 298 | MultiCompressor::getInstance(),
|
290 | 299 | TypeConverter::getInstance(),
|
291 | 300 | $ip,
|
|
0 commit comments