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
AwayFromKeyboardEvent
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;
12
13/**
14 * Represents an event triggered after the client dont do anything for a while
15 */
16final class AwayFromKeyboardEvent implements EventInterface
17{
18    /**
19     * @return ?AwayFromKeyboardEvent
20     */
21    #[Override]
22    public static function from(MessageInterface $message): ?EventInterface
23    {
24        if ($message instanceof DelimitedMessage && $message->type === DelimitedMessageType::Server) {
25            if ($message->data[0] === 'Your status is now Away From Keyboard (AFK).') {
26                return new self();
27            }
28        }
29
30        return null;
31    }
32}