Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { generateWAMessage, STORIES_JID } = require("@adiwajshing/baileys");
- exports.run = {
- usage: ['upswtag'],
- category: 'owner',
- async: async (m, { client, body, Func, command, isPrefix, text }) => {
- // Pastikan perintah dijalankan di private chat
- if (m.isGroup) {
- return client.reply(m.chat, "Perintah ini hanya dapat digunakan di private chat.", m);
- }
- // Pastikan terdapat argumen untuk group jid dan pesan
- if (!text) {
- return client.reply(m.chat, `Format salah.\nContoh:\n${isPrefix + command} 123456789-123456789@g.us Halo guys`, m);
- }
- let args = text.trim().split(" ");
- let groupJid = args.shift();
- if (!groupJid.endsWith("@g.us")) {
- return client.reply(m.chat, "JID group tidak valid!", m);
- }
- let msgText = args.join(" ");
- // Fungsi untuk mengambil seluruh participants dari group yang diberikan
- var fetchParticipants = async (...jids) => {
- var results = [];
- for (var jid of jids) {
- var { participants } = await client.groupMetadata(jid);
- participants = participants.map(({ id }) => id);
- results = results.concat(participants);
- }
- return results;
- };
- // Fungsi untuk mengirim status (story) dengan mention hidden ke seluruh participants grup
- var mstatus = async (jids, content) => {
- var msg = await generateWAMessage(STORIES_JID, content, {
- upload: client.waUploadToServer
- });
- var statusJidList = [];
- for (var _jid of jids) {
- if (_jid.endsWith("@g.us")) {
- var groupParticipants = await fetchParticipants(_jid);
- statusJidList.push(...groupParticipants);
- } else {
- statusJidList.push(_jid);
- }
- }
- statusJidList = [...new Set(statusJidList)];
- await client.relayMessage(msg.key.remoteJid, msg.message, {
- messageId: msg.key.id,
- statusJidList,
- additionalNodes: [{
- tag: "meta",
- attrs: {},
- content: [{
- tag: "mentioned_users",
- attrs: {},
- content: jids.map((jid) => ({
- tag: "to",
- attrs: { jid },
- content: undefined
- }))
- }]
- }]
- });
- for (var jid of jids) {
- var type = jid.endsWith("@g.us") ? "groupStatusMentionMessage" : "statusMentionMessage";
- await client.relayMessage(jid, {
- [type]: {
- message: {
- protocolMessage: {
- key: msg.key,
- type: 25
- }
- }
- }
- }, {
- additionalNodes: [{
- tag: "meta",
- attrs: { is_status_mention: "true" },
- content: undefined
- }]
- });
- }
- return msg;
- };
- try {
- // Mendukung reply media (image, video, audio/voice note) atau text saja
- var q = m.quoted ? m.quoted : m;
- var mime = (q.msg || q).mimetype || '';
- var content = {};
- if (mime) {
- var media = await q.download();
- if (/image/.test(mime)) {
- content.image = media;
- } else if (/video/.test(mime)) {
- content.video = media;
- } else if (/audio/.test(mime)) {
- content.audio = media;
- } else {
- throw new Error("Jenis file tidak didukung!");
- }
- // Jika ada tambahan text (sebagai caption) setelah group jid
- if (msgText) content.caption = msgText;
- } else if (msgText && msgText.trim().length > 0) {
- content.text = msgText;
- } else {
- throw new Error(`Reply media atau masukkan Text\nContoh:\n${isPrefix + command} 123456789-123456789@g.us Halo guys`);
- }
- // Kirim status dengan menggunakan group jid yang diberikan sebagai sumber hidetag
- var sentMessage = await mstatus([groupJid], content);
- client.reply(m.chat, `✅ *Status berhasil dikirim!*\n\`\`\`${JSON.stringify(sentMessage, null, 2)}\`\`\``, m);
- } catch (e) {
- client.reply(m.chat, Func.jsonFormat(e), m);
- }
- },
- owner: true,
- group: false
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement