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
AreaMemberOnlyEvent
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
4
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
4
1<?php
2
3declare(strict_types=1);
4
5namespace AqwSocketClient\Events;
6
7use AqwSocketClient\Enums\DelimitedMessageType;
8use AqwSocketClient\Interfaces\EventInterface;
9use AqwSocketClient\Interfaces\MessageInterface;
10use AqwSocketClient\Messages\DelimitedMessage;
11use Override;
12use Psl\Str;
13
14/**
15 * Represents an event triggered after the client try to join a area
16 */
17final class AreaMemberOnlyEvent implements EventInterface
18{
19    /**
20     * @return ?AreaMemberOnlyEvent
21     */
22    #[Override]
23    public static function from(MessageInterface $message): ?EventInterface
24    {
25        if ($message instanceof DelimitedMessage && $message->type === DelimitedMessageType::Warning) {
26            if (Str\contains($message->data[0], 'is an Membership-Only Map.')) {
27                return new self();
28            }
29        }
30
31        return null;
32    }
33}