MCPcopy
hub / github.com/mruniquehacker/Knightbot-MD / sudoCommand

Function sudoCommand

commands/sudo.js:14–65  ·  view source on GitHub ↗
(sock, chatId, message)

Source from the content-addressed store, hash-verified

12}
13
14async function sudoCommand(sock, chatId, message) {
15 const senderJid = message.key.participant || message.key.remoteJid;
16 const isOwner = message.key.fromMe || await isOwnerOrSudo(senderJid, sock, chatId);
17
18 const rawText = message.message?.conversation || message.message?.extendedTextMessage?.text || '';
19 const args = rawText.trim().split(' ').slice(1);
20 const sub = (args[0] || '').toLowerCase();
21
22 if (!sub || !['add', 'del', 'remove', 'list'].includes(sub)) {
23 await sock.sendMessage(chatId, { text: 'Usage:\n.sudo add <@user|number>\n.sudo del <@user|number>\n.sudo list' },{quoted :message});
24 return;
25 }
26
27 if (sub === 'list') {
28 const list = await getSudoList();
29 if (list.length === 0) {
30 await sock.sendMessage(chatId, { text: 'No sudo users set.' },{quoted :message});
31 return;
32 }
33 const text = list.map((j, i) => `${i + 1}. ${j}`).join('\n');
34 await sock.sendMessage(chatId, { text: `Sudo users:\n${text}` },{quoted :message});
35 return;
36 }
37
38 if (!isOwner) {
39 await sock.sendMessage(chatId, { text: '❌ Only owner can add/remove sudo users. Use .sudo list to view.' },{quoted :message});
40 return;
41 }
42
43 const targetJid = extractMentionedJid(message);
44 if (!targetJid) {
45 await sock.sendMessage(chatId, { text: 'Please mention a user or provide a number.' },{quoted :message});
46 return;
47 }
48
49 if (sub === 'add') {
50 const ok = await addSudo(targetJid);
51 await sock.sendMessage(chatId, { text: ok ? `✅ Added sudo: ${targetJid}` : '❌ Failed to add sudo' },{quoted :message});
52 return;
53 }
54
55 if (sub === 'del' || sub === 'remove') {
56 const ownerJid = settings.ownerNumber + '@s.whatsapp.net';
57 if (targetJid === ownerJid) {
58 await sock.sendMessage(chatId, { text: 'Owner cannot be removed.' },{quoted :message});
59 return;
60 }
61 const ok = await removeSudo(targetJid);
62 await sock.sendMessage(chatId, { text: ok ? `✅ Removed sudo: ${targetJid}` : '❌ Failed to remove sudo' },{quoted :message});
63 return;
64 }
65}
66
67module.exports = sudoCommand;
68

Callers 1

handleMessagesFunction · 0.85

Calls 5

isOwnerOrSudoFunction · 0.85
getSudoListFunction · 0.85
extractMentionedJidFunction · 0.85
addSudoFunction · 0.85
removeSudoFunction · 0.85

Tested by

no test coverage detected