Completed
Pull Request — master (#120)
by De Cramer
02:35
created

ChatCommandItem   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 4
dl 0
loc 54
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 13 1
A execute() 0 10 1
1
<?php
2
3
namespace eXpansion\Bundle\Menu\Model\Menu;
4
5
use eXpansion\Framework\AdminGroups\Helpers\AdminGroups;
6
use eXpansion\Framework\Core\DataProviders\ChatCommandDataProvider;
7
use eXpansion\Framework\Core\Model\Gui\ManialinkInterface;
8
use eXpansion\Framework\Core\Plugins\Gui\ManialinkFactory;
9
10
/**
11
 * Class ChatCommandItem
12
 *
13
 * @author    de Cramer Oliver<[email protected]>
14
 * @copyright 2017 Smile
15
 * @package eXpansion\Bundle\Menu\Model\Menu
16
 */
17
class ChatCommandItem extends AbstractItem
18
{
19
    /** @var string */
20
    protected $chatCommand;
21
22
    /** @var ChatCommandDataProvider */
23
    protected $chatCommandProvider;
24
25
    /**
26
     * ChatCommandItem constructor.
27
     *
28
     * @param ChatCommandDataProvider $chatCommandDataProvider
29
     * @param                         $chatCommand
30
     * @param string                  $id
31
     * @param string                  $path
32
     * @param string                  $labelId
33
     * @param AdminGroups             $adminGroups
34
     * @param null                    $permission
35
     */
36
    public function __construct(
37
        ChatCommandDataProvider $chatCommandDataProvider,
38
        $chatCommand,
39
        $id,
40
        $path,
41
        $labelId,
42
        AdminGroups $adminGroups,
43
        $permission = null
44
    ) {
45
        parent::__construct($id, $path, $labelId, $adminGroups, $permission);
46
        $this->chatCommand = $chatCommand;
47
        $this->chatCommandProvider = $chatCommandDataProvider;
48
    }
49
50
51
    /**
52
     * @param ManialinkFactory $manialinkFactory
53
     * @param ManialinkInterface $manialink
54
     * @param $login
55
     * @param $answerValues
56
     * @param $args
57
     *
58
     * @return mixed
59
     */
60
    public function execute(ManialinkFactory $manialinkFactory, ManialinkInterface $manialink, $login, $answerValues, $args)
61
    {
62
        $manialinkFactory->destroy($manialink->getUserGroup());
63
        $this->chatCommandProvider->onPlayerChat(
64
            $login,
65
            $login,
66
            $this->chatCommand,
67
            true
68
        );
69
    }
70
}
71