|
if (!fs.existsSync('./data')) fs.mkdirSync('./data'); |
|
if (!fs.existsSync('./data/mocked.json')) fs.appendFileSync('./data/mocked.json', '[]'); |
|
if (!fs.existsSync('./data/sudo.json')) fs.appendFileSync('./data/sudo.json', '[]'); |
|
|
|
import * as self from 'discord.js-selfbot-v13'; |
|
import fs from 'fs'; |
|
|
|
let client = new self.Client({ |
|
checkUpdate: false |
|
}); |
|
|
|
let paused = false; |
|
|
|
let toMock = JSON.parse(fs.readFileSync('./data/mocked.json', 'utf-8')); |
|
let sudo = JSON.parse(fs.readFileSync('./data/sudo.json', 'utf-8')); |
|
|
|
let mock = (input) => { |
|
let output = ''; |
|
for (let i = 0; i < input.length; i++) output += i % 2 ? input[i].toUpperCase() : input[i].toLowerCase(); |
|
return output; |
|
}; |
|
|
|
let chunk = (array, chunkSize) => { |
|
const result = []; |
|
for (let i = 0; i < array.length; i += chunkSize) { |
|
const chunk = array.slice(i, i + chunkSize); |
|
result.push(chunk); |
|
}; |
|
return result; |
|
}; |
|
|
|
client.on('ready', () => console.log('Logged in as ' + client.user.tag + '!')); |
|
|
|
client.on('messageCreate', (m) => { |
|
if (paused) return; |
|
if (toMock.includes(m.author.id)) m.channel.send(mock(m.content)).catch(e => {}); |
|
|
|
if (!sudo.includes(m.author.id)) return; |
|
if (!m.content.startsWith('pls ')) return; |
|
|
|
let cmd = m.content.split(' ')[1]; |
|
|
|
switch(cmd) { |
|
case 'pause': |
|
paused = true; |
|
break; |
|
case 'unpause': |
|
paused = false; |
|
break; |
|
case 'mock': |
|
if (!m.mentions.users.first()) return; |
|
if (m.mentions.users.first().id === client.user.id) return; |
|
toMock.push(m.mentions.users.first().id); |
|
fs.writeFileSync('./data/mocked.json', JSON.stringify(toMock, null, 4)); |
|
break; |
|
case 'ignore': |
|
if (!m.mentions.users.first()) return; |
|
toMock = toMock.filter(id => id !== m.mentions.users.first().id); |
|
fs.writeFileSync('./data/mocked.json', JSON.stringify(toMock, null, 4)); |
|
break; |
|
case 'list': |
|
m.channel.send(`**mocking:**`); |
|
chunk(toMock, 4).forEach(chunk => m.channel.send(`- <@${chunk.join('> \n- <@')}>`)); |
|
m.channel.send(`**sudo:** <@${sudo.join('>, <@')}>`); |
|
break; |
|
case 'sudo': |
|
if (!m.mentions.users.first()) return; |
|
sudo.push(m.mentions.users.first().id); |
|
fs.writeFileSync('./data/sudo.json', JSON.stringify(sudo, null, 4)); |
|
break; |
|
case 'kill': |
|
if (!m.mentions.users.first()) return; |
|
sudo = sudo.filter(id => id !== m.mentions.users.first().id); |
|
fs.writeFileSync('./data/sudo.json', JSON.stringify(sudo, null, 4)); |
|
break; |
|
case 'leave': |
|
m.guild.leave(); |
|
break; |
|
}; |
|
}); |
|
|
|
client.login(fs.readFileSync('token.txt', 'utf-8')); |