Passed
Push — dev ( 59981f...f2247e )
by Janko
47:08
created

TrojanHorseNotifier::informUsersAboutTrojanHorse()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 24
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 14
nc 3
nop 3
dl 0
loc 24
ccs 0
cts 16
cp 0
crap 12
rs 9.7998
c 1
b 0
f 0
1
<?php
2
3
namespace Stu\Module\Ship\Lib\Battle\AlertDetection;
4
5
use Doctrine\Common\Collections\Collection;
6
use RuntimeException;
7
use Stu\Module\Message\Lib\PrivateMessageSenderInterface;
8
use Stu\Module\PlayerSetting\Lib\UserEnum;
9
use Stu\Orm\Entity\ShipInterface;
10
11
class TrojanHorseNotifier implements TrojanHorseNotifierInterface
12
{
13
    public function __construct(
14
        private PrivateMessageSenderInterface $privateMessageSender
15
    ) {
16
    }
17
18
    public function informUsersAboutTrojanHorse(
19
        ShipInterface $incomingShip,
20
        ?ShipInterface $tractoringShip,
21
        Collection $users
22
    ): void {
23
24
        if ($tractoringShip === null) {
25
            throw new RuntimeException('this should not happen');
26
        }
27
28
        $txt = sprintf(
29
            _('Die %s von Spieler %s ist in Sektor %s eingeflogen und hat dabei die %s von Spieler %s gezogen'),
30
            $tractoringShip->getName(),
31
            $tractoringShip->getUser()->getName(),
32
            $tractoringShip->getSectorString(),
33
            $incomingShip->getName(),
34
            $incomingShip->getUser()->getName()
35
        );
36
37
        foreach ($users as $user) {
38
            $this->privateMessageSender->send(
39
                UserEnum::USER_NOONE,
40
                $user->getId(),
41
                $txt
42
            );
43
        }
44
    }
45
}
46