Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
ConnectionEstablishedEvent
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
1 / 1
 from
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3declare(strict_types=1);
4
5namespace AqwSocketClient\Events;
6
7use AqwSocketClient\Interfaces\EventInterface;
8use AqwSocketClient\Interfaces\MessageInterface;
9use AqwSocketClient\Messages\XmlMessage;
10use Override;
11
12/**
13 * Represents an event indicating that a connection to the AQW server has been established.
14 *
15 * This event is triggered when the client successfully connects to the server
16 * and is ready to send {@see AqwSocketClient\Packet} or receive further {@see AqwSocketClient\Interfaces\MessageInterface}.
17 */
18final class ConnectionEstablishedEvent implements EventInterface
19{
20    /**
21     * @return ?ConnectionEstablishedEvent
22     */
23    #[Override]
24    public static function from(MessageInterface $message): ?EventInterface
25    {
26        if ($message instanceof XmlMessage) {
27            if ($message->dom->firstChild?->nodeName === 'cross-domain-policy') {
28                return new self();
29            }
30        }
31
32        return null;
33    }
34}