1: <?php
2:
3: namespace Budabot\Core\Modules;
4:
5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
17: class CommandlistController {
18:
19:
20: public $accessManager;
21:
22:
23: public $text;
24:
25:
26: public $db;
27:
28: 29: 30: 31: 32:
33: public function cmdlistCommand($message, $channel, $sender, $sendto, $args) {
34: $params = array();
35: if ($args[1] != '') {
36: $params []= $this->accessManager->getAccessLevel($args[1]);
37: $cmdSearchSql = "AND c.admin LIKE ?";
38: }
39:
40: $sql = "
41: SELECT
42: cmd,
43: cmdevent,
44: description,
45: module,
46: file,
47: admin,
48: dependson,
49: (SELECT count(*) FROM cmdcfg_<myname> t1 WHERE t1.cmd = c.cmd AND t1.type = 'guild') guild_avail,
50: (SELECT count(*) FROM cmdcfg_<myname> t2 WHERE t2.cmd = c.cmd AND t2.type = 'guild' AND t2.status = 1) guild_status,
51: (SELECT count(*) FROM cmdcfg_<myname> t3 WHERE t3.cmd = c.cmd AND t3.type ='priv') priv_avail,
52: (SELECT count(*) FROM cmdcfg_<myname> t4 WHERE t4.cmd = c.cmd AND t4.type = 'priv' AND t4.status = 1) priv_status,
53: (SELECT count(*) FROM cmdcfg_<myname> t5 WHERE t5.cmd = c.cmd AND t5.type ='msg') msg_avail,
54: (SELECT count(*) FROM cmdcfg_<myname> t6 WHERE t6.cmd = c.cmd AND t6.type = 'msg' AND t6.status = 1) msg_status
55: FROM
56: cmdcfg_<myname> c
57: WHERE
58: (c.cmdevent = 'cmd' OR c.cmdevent = 'subcmd')
59: $cmdSearchSql
60: GROUP BY
61: c.cmd, c.description, c.module
62: ORDER BY
63: cmd ASC";
64: $data = $this->db->query($sql, $params);
65: $count = count($data);
66:
67: if ($count > 0) {
68: $blob = '';
69: forEach ($data as $row) {
70: $guild = '';
71: $priv = '';
72: $msg = '';
73:
74: if ($row->cmdevent == 'subcmd') {
75: $cmd = $row->dependson;
76: } else {
77: $cmd = $row->cmd;
78: }
79:
80: if ($this->accessManager->checkAccess($sender, 'moderator')) {
81: $on = $this->text->makeChatcmd('ON', "/tell <myname> config cmd $cmd enable all");
82: $off = $this->text->makeChatcmd('OFF', "/tell <myname> config cmd $cmd disable all");
83: $adv = $this->text->makeChatcmd('Permissions', "/tell <myname> config cmd $cmd");
84: $adv_link = " ($adv) $on $off";
85: }
86:
87: if ($row->msg_avail == 0) {
88: $tell = "_";
89: } else if ($row->msg_status == 1) {
90: $tell = "<green>T<end>";
91: } else {
92: $tell = "<red>T<end>";
93: }
94:
95: if ($row->guild_avail == 0) {
96: $guild = "_";
97: } else if ($row->guild_status == 1) {
98: $guild = "<green>G<end>";
99: } else {
100: $guild = "<red>G<end>";
101: }
102:
103: if ($row->priv_avail == 0) {
104: $priv = "_";
105: } else if ($row->priv_status == 1) {
106: $priv = "<green>P<end>";
107: } else {
108: $priv = "<red>P<end>";
109: }
110:
111: $blob .= "$row->cmd ({$tell}|{$guild}|{$priv}) {$adv_link} - ($row->description)\n";
112: }
113:
114: $msg = $this->text->makeBlob("Command List ($count)", $blob);
115: } else {
116: $msg = "No commands were found.";
117: }
118: $sendto->reply($msg);
119: }
120: }
121: