chomens-bot-js/index.js

654 lines
27 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* eslint-disable no-var */
/* eslint-disable prefer-rest-params */
/* eslint-disable no-tabs */
/* eslint-disable max-len */
/* eslint-disable no-undef */
const mc = require('minecraft-protocol');
const config = require('./config');
const crypto = require('crypto');
const colorConvert = require('color-convert');
const {containsIllegalCharacters} = require('./util/containsIllegalCharacters');
const generateEaglerUsername = require('./util/generateEaglerUsername');
const {EventEmitter} = require('events');
const fs = require('fs');
const path = require('path');
const uuid = require('uuid-by-string');
const readline = require('node:readline');
const {stdin: input, stdout: output} = require('node:process');
const rl = readline.createInterface({input, output});
const moment = require('moment-timezone');
const cowsay = require('cowsay2');
const cows = require('cowsay2/cows');
const util = require('node:util');
const {escapeMarkdown} = require('./util/escapeMarkdown');
const {VM} = require('vm2');
const randomstring = require('randomstring');
const mineflayer = require('mineflayer');
// readline > fix on console.log
const log = console.log;
console.log = function() {
rl.output.write('\x1b[2K\r');
log.apply(console, Array.prototype.slice.call(arguments));
rl._refreshLine();
};
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
// Load discord.js
const {
Client,
Intents,
} = require('discord.js');
// Create Discord intentions, required in v13
const intents = new Intents(['GUILDS', 'GUILD_MESSAGES']);
// Create Discord client
const dcclient = new Client({
intents,
});
const ayunboomchannel = config.discord.servers['sus.shhnowisnottheti.me:25565'];
const dinboomchannel = config.discord.servers['129.159.58.114:25565'];
const kaboomchannel = config.discord.servers['kaboom.pw:25565'];
const localclonechannel = config.discord.servers['192.168.1.103:25565'];
const kitsunechannel = config.discord.servers['kitsune.icu:25565'];
const chomensserverchannel = config.discord.servers['mc.chomens41793.ga:25565'];
let chomenschannel = '969773424387981356';
const hashchannel = '980438368422871151';
const ownerhashchannel = '980786390247833620';
/**
* Error
* @param {*} err
*/
// async function onerror(err) {
// try {
// console.log(`INFO: Disconnected: ${err}`);
// fs.appendFileSync('./logs.txt', `INFO: Disconnected: ${err}\r\n`);
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle(`${err.message ?? 'Disconnected'}`)
// .setDescription(`\`\`\`text\n${err}\`\`\``);
// channel.send({embeds: [Embed]});
// if (err.includes('issued "end" command')) {
// bot.chat('Restarting...');
// }
// await sleep(1000);
// bot.end();
// bot._client = mc.createClient(bot.options);
// } catch (e) {
// return;
// }
// }
/**
* empty function for discord message
* @return {String}
*/
function dcmsg() {
return 'this does nothing...';
}
function botThings() {
bot = new EventEmitter();
bot.options = {
username: process.argv[2] === 'mc.chomens41793.ga' ? 'ChomeNS_Bot' : randomstring.generate(16),
host: process.argv[2],
port: process.argv[3] ? Number(process.argv[3]) : 25565,
version: config.version,
checkTimeoutInterval: '30000',
keepAlive: false,
hideErrors: true,
};
bot._client = mc.createClient(bot.options);
bot.version = bot._client.version;
bot.queue = [];
bot.write = (name, data) => bot._client.write(name, data);
bot.end = (reason = 'end') => {
bot.emit('end', reason);
bot.removeAllListeners();
bot._client.end();
bot._client.removeAllListeners();
};
bot.visibility = false;
bot.command_handler = function() {
return;
};
bot.command_handler.commands = {};
bot.getplayerusername = {};
// allink's plugin loader
const plugins = []; // NOTE: DO NOT CHANGE, PLUGINS ARE LOADED AUTOMATICALLY
fs.readdirSync(
path.join(__dirname, 'plugins'),
).forEach(function(file) { // populate plugins array
if (file.endsWith('.js')) {
plugins.push(path.join(__dirname, 'plugins', file));
}
});
plugins.forEach(function(plugin) { // load plugins
let name = plugin.split('/');
name = name[name.length - 1];
try {
const plug = require(plugin);
plug.inject(bot, dcclient, config);
} catch (e) {
console.log(`Plugin loader: Plugin ${name} is having exception loading the plugin:`);
console.log(util.inspect(e));
}
});
}
let messageloggingEnabled = true;
/**
* Main bot function
*/
function main() {
// allink's chat queue
chatQueue = setInterval(function() {
try {
if (bot.queue[0] || bot.queue[0]==='') {
try {
if (containsIllegalCharacters(bot.queue[0])) {
bot.queue.shift();
return;
};
bot.write('chat', {message: bot.queue[0].substring(0, 256)});
bot.queue.shift();
} catch (e) {
console.log(e.message);
}
}
} catch (e) {
return;
}
}, 450);
module.exports = function() {
return bot;
};
dcmsg.queue = '';
consoleQueue = [];
bot.playersAddedPlayers = {};
bot.getplayerusername = {};
bot.hash = '';
sleep = (time) => new Promise((a)=>setTimeout(a, time)),
bot.chat = (message) => {
bot.queue.push(String(message));
};
// fixCmdBlocksOnlyCore=(core)=>{
// const cmd = `/minecraft:fill ${Math.floor(bot.position.x)} 0 ${Math.floor(bot.position.z)} ${Math.floor(bot.position.x + 15)} 63 ${Math.floor(bot.position.z + 15)} command_block{CustomName: '{"text":"ChomeNS Bot Core","color":"yellow"}'} replace`;
// if (core===true) {
// bot.core.run(cmd);
// } else {
// bot.chat(cmd);
// }
// };
// fixCmdBlocks=()=>{
// bot.chat('/essentials:world world');
// fixCmdBlocksOnlyCore();
// };
discordQueue = setInterval(function() {
if (dcmsg.queue!='') {
channel.send('```ansi\n' + dcmsg.queue.substring(0, 1986) + '\n```');
dcmsg.queue = '';
}
}, 1500);
consoleQueueInterval = setInterval(function() {
if (!messageloggingEnabled) return;
if (consoleQueue.length > 50) consoleQueue = [];
if (consoleQueue[0] || consoleQueue[0]==='') {
console.log(bot.options.host + ': ' + consoleQueue[0].substring(0, 10000)/* message.toAnsi() + '\u001b[0m'*/);
consoleQueue.shift();
}
}, 100);
bot.once('end', (reason, event) => {
console.log(`Disconnected from ${bot.options.host} (${event} event): ${util.inspect(reason)}`);
channel.send(`Disconnected: \`${util.inspect(reason)}\``);
const timeout = config.reconnectTimeout;
try {
if (reason.text) {
if (reason.text === 'Wait 5 seconds before connecting, thanks! :)') timeout = 1000 * 6;
if (reason.text === 'You are logging in too fast, try again later.') timeout = 1000 * 6;
}
} catch (e) {}
try {
clearInterval(notonline);
clearInterval(discordQueue);
clearInterval(chatQueue);
clearInterval(consoleQueueInterval);
} catch (e) {}
setTimeout(() => {
bot.end();
botThings();
main();
}, timeout);
});
console.log(`Connecting to: ${bot.options.host}:${bot.options.port}...`);
// fs.appendFileSync('./logs.txt', `\r\Connecting to: ${bot.options.host}:${bot.options.port}...\r\n`);
channel.send(`Connecting to: \`${bot.options.host}:${bot.options.port}\`...`);
bot._client.on('login', async function(data) {
bot.entityId = data.entityId;
bot.uuid = bot._client.uuid;
bot.username = bot._client.username;
chatMessage = require('prismarine-chat')(bot.version);
const mcData = require('minecraft-data')(bot.version);
console.log(`Successfully logged in to: ${bot.options.host}:${bot.options.port}`);
// fs.appendFileSync('./logs.txt', `\r\nSuccessfully logged in to: ${bot.options.host}:${bot.options.port}\r\n`);
channel.send(`Successfully logged in to: \`${bot.options.host}:${bot.options.port}\``);
previusMessage = undefined;
loginfinish = false;
started = false;
bot.eaglercrashstarted = false;
await sleep(1500);
bot.createCore();
bot.vmoptions = {
timeout: 2000,
sandbox: {
run: function(cmd) {
bot.core.run(cmd);
},
mc,
mineflayer,
chat: bot.chat,
moment,
randomstring,
uuid,
chatMessage,
crypto,
colorConvert,
bruhifyText: function(message) {
if (typeof message!=='string') throw new SyntaxError('message must be a string');
bot.bruhifyText = message.substring(0, 1000);
},
generateEaglerUsername,
cowsay,
cows,
mcData,
},
// require: {
// mock: {
// run: run,
// randomchar: randomchar,
// chat: bot.chat,
// mineflayer: mineflayer
// }
// }
};
bot.vm = new VM(bot.vmoptions);
loginfinish = true;
await sleep(1400);
bot.core.run('minecraft:tellraw @a ' + JSON.stringify([{text: 'ChomeNS Bot', color: 'yellow'}, {text: ' - ', color: 'dark_gray'}, {text: 'made by ', color: 'gray'}, {text: 'chayapak', color: 'gold'}]));
});
bot.on('parsed_chat', async function(message, data) {
// try catch prevents hi % exploit (it uses prismarine-chat) and json parse error
try {
if (previusMessage===message.toString()) return;
previusMessage = message.toString();
const parsedMessage = JSON.parse(data.message);
if (parsedMessage.translate==='translation.test.invalid') return;
// down here it prevents command set message
if (parsedMessage.translate==='advMode.setCommand.success') return;
if (parsedMessage.extra!==undefined) {
if (parsedMessage.extra[0].text==='Command set: ') return;
}
// prevent braille cuz it CRASHES THE ENTIRE LAPTOP
if (message.toString().includes('⣿')) return;
const cleanMessage = escapeMarkdown(message.toAnsi(), true);
discordMsg = /* '_ _ ' + */cleanMessage.replaceAll('@', '@\u200b\u200b\u200b\u200b\u200b').replaceAll('http', 'http\u200b\u200b\u200b\u200b\u200b').replaceAll('\u001b[9', '\u001b[3');// .replace(/[\r\n]/gm, '\n')
consoleQueue.push(message.toAnsi());
// fs.appendFileSync('./logs.txt', `${bot.options.host}: ${message.toMotd()}\r\n`);
// if (discordMsg)return channel.send(`${discordMsg.substring(0, 2000)}`)
if (message.toMotd().startsWith('§8[§eChomeNS §9Discord§8] §c')) return;
dcmsg.queue += '\n' + discordMsg;
} catch (e) {
return;
}
});
// bot.on('message', async function(username, message, sender) {
// try {
// const usernameraw = username;
// // let username = usernameraw.replace(/§[a-f0-9rlonmk]/g, "").replace(/§/g, "");
// const messageraw = message;
// var username = getplayerusername[sender];
// var message = messageraw.replace(/§[a-f0-9rlonmk]/g, '').replace(/§/g, '');
// // if (username===bot.username)return
// // console.log(username + ': ' + message);
// allCommands(username, message, usernameraw, sender);
// } catch (e) {
// console.log(e);
// }
// });
// bot.on('cspy', async function(username, message) {
// // eslint-disable-next-line no-redeclare
// var username = username.replace(/§[a-f0-9rlonmk]/g, '').replace(/§/g, '');
// // eslint-disable-next-line no-redeclare
// var message = message.replace(/§[a-f0-9rlonmk]/g, '').replace(/§/g, '');
// const args = message.substring(5).trim().split(' ');
// args[0] = args[0].toLowerCase();
// try {
// allCommands(username, message, username, '00000000-0000-0000-0000-000000000000');
// } catch (e) {
// bot.core.run('minecraft:tellraw @a ' + JSON.stringify({text: String(e), color: 'red'}));
// }
// });
bot.on('player_added', (player) => {
bot.playersAddedPlayers[player.name] = player.UUID;
bot.getplayerusername[player.UUID] = player.name;
});
bot._client.on('end', function(reason) {
bot.emit('end', reason, 'end');
// onerror('end event: ' + util.inspect(reason).replaceAll('runner', 'chayapak1'));
});
bot._client.on('keep_alive', (packet) => bot.write('keep_alive', {keepAliveId: packet.keepAliveId}));
// bot._client.on('tab_complete', (packet) => bot.tabcompleteplayers = packet.matches);
bot._client.on('kick_disconnect', function(data) {
const parsed = JSON.parse(data.reason);
bot.emit('end', parsed, 'kick_disconnect');
// onerror('kick_disconnect event: ' + util.inspect(reason));
});
bot._client.on('disconnect', function(data) {
const parsed = JSON.parse(data.reason);
bot.emit('end', parsed, 'disconnect');
});
bot._client.on('error', function() {
// console.log('Error: ' + util.inspect(error));
// channel.send('Error: ' + util.inspect(error));
// onerror('error event: ' + util.inspect(err).replaceAll('runner', 'chayapak1'));
});
process.on('uncaughtException', (error) => {
console.log('uncaught ' + util.inspect(error));
channel.send('uncaught ```\n' + util.inspect(error) + '\n```');
bot.emit('end', 'uncaughtException', 'process: uncaughtException');
});
}
dcclient.on('ready', async () => {
botThings();
// Find the Discord channel messages will be sent to
if (process.argv[2]==='sus.shhnowisnottheti.me') {
channel = dcclient.channels.cache.get(ayunboomchannel);
bot.channel = dcclient.channels.cache.get(ayunboomchannel);
}
if (process.argv[2]==='129.159.58.114') {
channel = dcclient.channels.cache.get(dinboomchannel);
bot.channel = dcclient.channels.cache.get(dinboomchannel);
}
if (process.argv[2]==='kaboom.pw') {
channel = dcclient.channels.cache.get(kaboomchannel);
bot.channel = dcclient.channels.cache.get(kaboomchannel);
}
if (process.argv[2]==='192.168.1.103') {
channel = dcclient.channels.cache.get(localclonechannel);
bot.channel = dcclient.channels.cache.get(localclonechannel);
}
if (process.argv[2]==='kitsune.icu') {
channel = dcclient.channels.cache.get(kitsunechannel);
bot.channel = dcclient.channels.cache.get(kitsunechannel);
}
if (process.argv[2]==='mc.chomens41793.ga') {
channel = dcclient.channels.cache.get(chomensserverchannel);
bot.channel = dcclient.channels.cache.get(chomensserverchannel);
}
await sleep(200);
main();
chomenschannel = dcclient.channels.cache.get(chomenschannel);
bot.hashchannel = dcclient.channels.cache.get(hashchannel);
bot.ownerhashchannel = dcclient.channels.cache.get(ownerhashchannel);
bot.channelId = channel.id;
attachmentlink = '';
// Console COMMANDS
rl.on('line', function(line) {
try {
if (line.toLowerCase()==='' || line.toLowerCase().startsWith(' ')) return;
if (line.toLowerCase()==='.exit' || line.toLowerCase()==='.end') {
bot.emit('end', 'end command');
// onerror('Console issued "end" command, rebooting bot...');
return;
}
if (line.toLowerCase().startsWith('.servereval ')) {
try {
bot.core.run('minecraft:tellraw @a ' + JSON.stringify({text: `${util.inspect(eval(`${line.substring(12)}`))}`, color: 'green'}));
return;
} catch (err) {
bot.core.run('minecraft:tellraw @a ' + JSON.stringify({text: `${util.inspect(err)}`, color: 'red'}));
return;
}
}
if (line==='.clearconsolequeue') {
consoleQueue = [];
return;
}
if (line==='.messagelogging on') {
messageloggingEnabled = true;
return;
}
if (line==='.messagelogging off') {
messageloggingEnabled = false;
return;
}
if (line==='.kill') process.exit();
// if (line.startsWith("."))return console.log('command not found')
if (line.startsWith('.')) return bot.command_handler.run('Console', '§a§lConsole§r', '*' + line.substring(1), 'c0ns0le-uuid');
bot.core.run('minecraft:tellraw @a ' + JSON.stringify(['', {'text': '[', 'color': 'dark_gray'}, {'text': `${bot.username} Console`, 'color': 'gray'}, {'text': '] ', 'color': 'dark_gray'}, {'text': 'chayapak ', 'color': 'green'}, {'text': ' ', 'color': 'dark_gray'}, chatMessage.MessageBuilder.fromString('&7' + line)]));
} catch (e) {
console.log(e);
}
});
});
// Redirect Discord messages to in-game chat
dcclient.on('messageCreate', async (message) => {
// Ignore messages from the bot itself
if (message.author.id === dcclient.user.id) return;
// if (message.content.toLowerCase().startsWith('!chomensmsg ')) {
// bot.core.run(`minecraft:tellraw @a ["",{"text":"[","color":"dark_gray"},{"text":"ChomeNS ","color":"yellow","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"Discord","color":"blue","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":" (ChomeNS Channel)","color":"gray"},{"text":"] ","color":"dark_gray"},{"text":"${message.member.displayName}","color":"red","clickEvent":{"action":"copy_to_clipboard","value":"${message.author.username}#${message.author.discriminator}"},"hoverEvent":{"action":"show_text","value":{"text":"${message.author.username}§7#${message.author.discriminator}"} }},{"text":" ","color":"white"},` + MessageBuilder.fromString('&7' + message.content.substring(12)) + ']');
// return;
// }
// Only handle messages in specified channel
if (message.channel.id != channel.id) return;
if (message.content.startsWith(config.discord.prefix)) return;
// try {
// if (message.content.toLowerCase()==='!test') {
// const Embed = new MessageEmbed()
// .setColor('#FFFF00')
// .setTitle('Hello!')
// .setDescription('This is the first command to be discordified!');
// channeldc.send({embeds: [Embed]});
// return;
// }
// if (message.content.toLowerCase()==='!help') {
// const Embed = new MessageEmbed()
// .setColor('#FFFF00')
// .setTitle('Commands')
// .setDescription('help echo cb eval stopserver end ayunsudo playerlist');
// channeldc.send({embeds: [Embed]});
// return;
// }
// if (message.content.toLowerCase().startsWith('!echo ')) {
// channeldc.send(`${message.author.username}, sending "${message.content.toLowerCase().substring(6)}"`);
// bot.chat(message.content.substring(6));
// return;
// }
// if (message.content.toLowerCase().startsWith('!cb ')) {
// channeldc.send(`${message.author.username}, executing "${message.content.toLowerCase().substring(4)}"`);
// bot.core.run(message.content.substring(4));
// return;
// }
// if (message.content.toLowerCase().startsWith('!eval run ')) {
// try {
// const Embed = new MessageEmbed()
// .setColor('#FFFF00')
// .setTitle('Output')
// .setDescription(`\`\`\`js\n${escapeMarkdown(util.inspect(vm.run(message.content.substring(10))))}\`\`\``.substring(0, 1900));
// channeldc.send({embeds: [Embed]});
// } catch (err) {
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription(`\`\`\`text\n${escapeMarkdown(util.inspect(err).replaceAll('runner', 'chayapak1'))}\`\`\``.substring(0, 1900));
// channeldc.send({embeds: [Embed]});
// }
// return;
// }
// if (message.content.toLowerCase()==='!eval reset') {
// vm = new VM(vmoptions);
// return;
// }
// if (message.content.toLowerCase().startsWith('!eval server ')) {
// axios
// .post('http://192.168.1.105:4445/', querystring.stringify({
// html: false,
// showErrorMsg: true,
// code: message.content.substring(13),
// })).then((res) => {
// const Embed = new MessageEmbed()
// .setColor('#FFFF00')
// .setTitle('Output')
// .setDescription(`\`\`\`js\n${res.data}\`\`\``.substring(0, 1900));
// channeldc.send({embeds: [Embed]});
// }).catch((e) => {
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription(`\`\`\`text\n${e}\`\`\``.substring(0, 1900));
// channeldc.send({embeds: [Embed]});
// });
// return;
// }
// if (message.content.toLowerCase().startsWith('!eval dineval ')) {
// axios
// .get('https://eval.dinhero21.repl.co', {
// headers: {
// data: message.content.substring(14),
// },
// }).then((res) => {
// const Embed = new MessageEmbed()
// .setColor('#FFFF00')
// .setTitle('Output')
// .setDescription(`\`\`\`js\n${res.data}\`\`\``.substring(0, 1900));
// channeldc.send({embeds: [Embed]});
// }).catch((e) => {
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription(`\`\`\`text\n${e}\`\`\``.substring(0, 1900));
// channeldc.send({embeds: [Embed]});
// });
// return;
// }
// if (message.content.toLowerCase()==='!stopserver') {
// if (message.member._roles.at(0)==='981159334299983953' || message.member._roles.at(0)==='974590495563075594') {
// bot.core.run('minecraft:execute unless entity @s[name= run ] run stop');
// } else {
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription('You\'re not in the trusted role!');
// channeldc.send({embeds: [Embed]});
// }
// return;
// }
// if (message.content.toLowerCase()==='!end') {
// if (message.member._roles.at(0)==='981159334299983953' || message.member._roles.at(0)==='974590495563075594') {
// bot.emit('end', 'end command');
// // onerror(`${message.member.displayName} issued "end" command, rebooting bot...`);
// } else {
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription('You\'re not in the trusted role!');
// channeldc.send({embeds: [Embed]});
// }
// return;
// }
// if (message.content.toLowerCase().startsWith('!ayunsudo ')) {
// if (message.member._roles.at(0)==='981159334299983953' || message.member._roles.at(0)==='974590495563075594') {
// for (const property of bot.players.list) {
// bot.core.run('sudo ' + property.UUID + ' ' + message.content.toLowerCase().substring(10));
// }
// } else {
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription('You\'re not in the trusted role!');
// channeldc.send({embeds: [Embed]});
// }
// return;
// }
// if (message.content.toLowerCase()==='!playerlist' || message.content.toLowerCase()==='!list') {
// var allplayers = '';
// for (const property of bot.tabcompleteplayers) {
// if (property.match.startsWith('@')) continue;
// // eslint-disable-next-line no-redeclare
// var allplayers = allplayers + '\n`' + property.match + '` > `' + bot.players.getPlayer(property.match).UUID + '`';
// }
// const Embed = new MessageEmbed()
// .setColor('#FFFF00')
// .setTitle('Players')
// .setDescription(allplayers);
// channeldc.send({embeds: [Embed]});
// return;
// }
//
// if (message.content.toLowerCase().startsWith('!')) {
// const args = message.content.toLowerCase().substring(1).trim().split(' ');
// const Embed = new MessageEmbed()
// .setColor('#FF0000')
// .setTitle('Error')
// .setDescription(`Unknown command or incomplete command: "${args.at(0)}"`);
// channeldc.send({embeds: [Embed]});
// return;
// }
// } catch (e) {
// console.log(e);
// }
try {
const attachment = message.attachments.at(0);
if (attachment!=undefined) {
if (message.content.toLowerCase()==='') {
bot.core.run(`minecraft:tellraw @a ["",{"text":"[","color":"dark_gray"},{"text":"ChomeNS ","color":"yellow","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"Discord","color":"blue","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"] ","color":"dark_gray"},{"text":"${message.member.displayName}","color":"red","clickEvent":{"action":"copy_to_clipboard","value":"${message.author.username}#${message.author.discriminator}"},"hoverEvent":{"action":"show_text","value":{"text":"${message.author.username}§7#${message.author.discriminator}"} }},{"text":" ","color":"dark_gray"},` + `{"text":"[Attachment]","clickEvent":{"action":"open_url","value":"${attachment.proxyURL}"},"color":"green"}` + ']');
} else {
bot.core.run(`minecraft:tellraw @a ["",{"text":"[","color":"dark_gray"},{"text":"ChomeNS ","color":"yellow","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"Discord","color":"blue","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"] ","color":"dark_gray"},{"text":"${message.member.displayName}","color":"red","clickEvent":{"action":"copy_to_clipboard","value":"${message.author.username}#${message.author.discriminator}"},"hoverEvent":{"action":"show_text","value":{"text":"${message.author.username}§7#${message.author.discriminator}"} }},{"text":" ","color":"dark_gray"},` + chatMessage.MessageBuilder.fromString('&7' + message.content) + `,{"text":" [Attachment]","clickEvent":{"action":"open_url","value":"${attachment.proxyURL}"},"color":"green"}` + ']');
}
} else {
bot.core.run(`minecraft:tellraw @a ["",{"text":"[","color":"dark_gray"},{"text":"ChomeNS ","color":"yellow","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"Discord","color":"blue","clickEvent":{"action":"open_url","value":"https://discord.gg/xdgCkUyaA4"},"hoverEvent":{"action":"show_text","contents":[{"text":"https://discord.gg/xdgCkUyaA4 ","color":"blue"},{"text":"<-- join now","color":"red"}]}},{"text":"] ","color":"dark_gray"},{"text":"${message.member.displayName}","color":"red","clickEvent":{"action":"copy_to_clipboard","value":"${message.author.username}#${message.author.discriminator}"},"hoverEvent":{"action":"show_text","value":{"text":"${message.author.username}§7#${message.author.discriminator}"} }},{"text":" ","color":"dark_gray"},` + chatMessage.MessageBuilder.fromString('&7' + message.content) + ']');
}
} catch (e) {
return;
}
});
dcclient.login(config.discord.token);