goat
command
tag
No description
0
views
0
likes
0
installs
raw source
module.exports = {
config: {
name: "tag",
category: "box chat",
role: 0,
author: "EryXenX",
countDown: 3,
description: {
en: "Tag members by name, reply or everyone"
},
guide: {
en: "{p}tag [name] [msg]\n{p}tag all [msg]\nReply + {p}tag [msg]"
}
},
onStart: async ({ api, event, usersData, threadsData, args }) => {
const { threadID, messageID, messageReply } = event;
try {
const threadData = await threadsData.get(threadID);
const members = threadData.members
.filter(member => member.inGroup)
.map(member => ({
name: member.name,
id: member.userID
}));
let tagUsers = [];
let text = "";
if (messageReply) {
const uid = messageReply.senderID;
const name = await usersData.getName(uid);
tagUsers.push({
name,
id: uid
});
text = args.join(" ");
}
else if (
args[0] &&
["all", "everyone", "cdi"].includes(args[0].toLowerCase())
) {
tagUsers = members;
text = args.slice(1).join(" ");
}
else {
if (!args[0]) {
return api.sendMessage(
"⚠️ | Reply, name or all use korun.",
threadID,
messageID
);
}
const searchName = args[0].toLowerCase();
text = args.slice(1).join(" ");
tagUsers = members.filter(member =>
member.name.toLowerCase().includes(searchName)
);
if (tagUsers.length === 0) {
return api.sendMessage(
"❌ | User Not Found.",
threadID,
messageID
);
}
}
const mentions = tagUsers.map(user => ({
tag: user.name,
id: user.id
}));
const namesText = tagUsers
.map(user => `• ${user.name}`)
.join("\n");
const body = text
? `╭─ Tag Notice\n${namesText}\n├──────────\n💬 ${text}\n╰──────────`
: `╭─ Tag Notice\n${namesText}\n╰──────────`;
return api.sendMessage(
{
body,
mentions
},
threadID,
messageReply ? messageReply.messageID : messageID
);
} catch (error) {
return api.sendMessage(
`❌ | Error: ${error.message}`,
threadID,
messageID
);
}
}
};