2024-08-28 12:07:32 +00:00
|
|
|
const { error } = require('console');
|
|
|
|
const { Client, Message, MessageAttachment } = require('discord.js-selfbot-v13');
|
|
|
|
const axios = require('axios');
|
2024-08-28 12:20:46 +00:00
|
|
|
const config = require('./config.json');
|
2024-08-28 12:07:32 +00:00
|
|
|
const client = new Client();
|
|
|
|
|
|
|
|
client.on('ready', async () => {
|
|
|
|
console.log(`${client.user.username} is ready!`);
|
|
|
|
})
|
|
|
|
|
|
|
|
let savedMessage;
|
|
|
|
let count = 0;
|
|
|
|
|
|
|
|
function isAllowedUser(id) {
|
2024-08-28 12:20:46 +00:00
|
|
|
if (config.ALLOWED_IDS.find(string => string == id)) return true;
|
2024-08-28 12:07:32 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function getMessageContent(message) {
|
|
|
|
if (message.attachments.size > 0) {
|
|
|
|
try {
|
|
|
|
const attachment = message.attachments.first();
|
|
|
|
|
|
|
|
if (!attachment.url) {
|
|
|
|
console.error('URL вложения не найден.');
|
2024-08-28 12:20:46 +00:00
|
|
|
return "Я нихуя не понял.";
|
2024-08-28 12:07:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const response = await axios.get(attachment.url, { responseType: 'arraybuffer' });
|
|
|
|
|
|
|
|
if (!response.data) {
|
|
|
|
console.error('Ошибка: response.data is undefined.');
|
2024-08-28 12:20:46 +00:00
|
|
|
return "Я нихуя не понял.";
|
2024-08-28 12:07:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const buffer = Buffer.from(response.data, 'binary');
|
|
|
|
const file = new MessageAttachment(buffer, attachment.name);
|
|
|
|
|
|
|
|
if (message.content) return { content: `${message.author.displayName}: ${message.content} `, files: [file] };
|
|
|
|
else return {files: [file]};
|
|
|
|
} catch (error) {
|
|
|
|
console.error('Ошибка при получении файла:', error.message);
|
|
|
|
return message.author.displayName + ": " + message.content + " ";
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (!message.reference) return message.author.displayName + ": " + message.content;
|
|
|
|
else {
|
|
|
|
let reply = message.channel.messages.fetch(message.reference.messageId);
|
|
|
|
return message.author.displayName + ": " + message.content + " `Ответ на: " + reply.author.displayName + ": " + reply.content + "`";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
client.on("messageCreate", async function(message){
|
|
|
|
try {
|
2024-08-28 12:26:01 +00:00
|
|
|
let shapeGuild = config.shapeGuild
|
|
|
|
if (message.author.id == config.admin && message.content.startsWith("e ")) {
|
2024-08-28 12:07:32 +00:00
|
|
|
eval(message.content.substring(1));
|
|
|
|
}
|
2024-08-28 12:26:01 +00:00
|
|
|
else if (message.guild.id != shapeGuild && (message.author.id != client.user.id && (message.mentions.users.get(client.user.id) || isAllowedUser(message.author.id) || (!isAllowedUser && count % 5 == 0) || (message.reference && message.channel.messages.cache.get(message.reference.messageId).author.id == client.user.id)))) {
|
2024-08-28 12:07:32 +00:00
|
|
|
savedMessage = message;
|
2024-08-28 12:26:01 +00:00
|
|
|
client.guilds.cache.get(shapeGuild).channels.cache.get(config.shapeChannel).send(await getMessageContent(message));
|
2024-08-28 12:07:32 +00:00
|
|
|
}
|
2024-08-28 12:26:01 +00:00
|
|
|
else if (message.guild.id == shapeGuild && message.author.bot && savedMessage) {
|
2024-08-28 12:07:32 +00:00
|
|
|
savedMessage.channel.sendTyping();
|
|
|
|
savedMessage.channel.send("<@" + savedMessage.author.id + "> " + message.content);
|
|
|
|
}
|
|
|
|
if (!isAllowedUser(message.author.id)) count++;
|
|
|
|
} catch(error) {
|
|
|
|
console.error(error);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2024-08-28 12:20:46 +00:00
|
|
|
client.login(config.token);
|