diff --git a/.gitignore b/.gitignore index b3c9f6c..b3663b0 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ config.yml amog src/commands/kick.js src/modules/exploits.js -old src/commands/kick.js prototyping-crap/java/build/ prototying-crap/java/.gradle/ diff --git a/src/evaljs.js b/old/evaljs.js similarity index 100% rename from src/evaljs.js rename to old/evaljs.js diff --git a/src/logger.js b/old/logger.js similarity index 100% rename from src/logger.js rename to old/logger.js diff --git a/src/bot.js b/src/bot.js index b7d81b1..6cfd9ea 100644 --- a/src/bot.js +++ b/src/bot.js @@ -31,21 +31,14 @@ function createBot(options = {}) { bot.uuid = client.uuid; bot.username = client.username; bot.port = bot.options.port; - bot.version = bot.options.version; - if (bot.options.isSavage) { - await bot.chatDelay(500) - bot.command(`register ${bot.savage.password} ${bot.savage.password}`) - bot.command(`login ${bot.savage.password}`) - } + bot.version = bot.options.version; if (bot.options.isCreayun) { } var day = new Date().getDay() if (day === 5) { bot.chat("Gettin' freaky on a Friday Night!") - } else if (bot.options.debug.enabled) { - bot.chat(`${bot.getMessageAsPrismarine(process.env.buildstring)?.toMotd().replaceAll('§','&')}}&6Debug`) } else { - bot.chat(`${bot.getMessageAsPrismarine(process.env.buildstring)?.toMotd().replaceAll('§','&')}`) + bot.chat(`&5FNF&bBoyfriend&4Bot &f- &4Parker&02991`) } timer; if (bot.options.useChat) { @@ -93,7 +86,8 @@ function createBot(options = {}) { client.on("error", (error) => { bot?.discord?.channel?.send('Disconnected: ' + '``' + JSON.stringify(error.toString()) + '``') - bot.emit("error", error) + bot.console.warn(error.toString()) +// bot.emit("error", error) }) }); diff --git a/src/chat/savage.js b/src/chat/savage.js index dd2b5f1..fbbb255 100644 --- a/src/chat/savage.js +++ b/src/chat/savage.js @@ -35,8 +35,13 @@ function savage (message, data) { } function isSeparatorAt (children, start) { - return (children[start]?.text === '»' || children[start]?.text === '\xa71»') && children[start + 1]?.text === ' ' + return (children[start]?.text === '»' || children[start]?.text === '\xa79»\xa7r') && children[start + 1]?.text === ' ' } - -module.exports = savage +// [prefix]&r [name] [suffix] &9»&r +// {DISPLAYNAME} &9»&r {MESSAGE} +/* + {"extra":[{"text":"e e"},{"text":" "},{"color":"dark_red","text":"Parker"},{"color":"black","text":"2991"},{"text":" "}, +{"color":"blue","text":"»"},{"text":" "},{"color":"white","text":"duping fucking rank"}],"text":""} +*/ +module.exports = savage; diff --git a/src/commands/bots.js b/src/commands/bots.js index fe0dd58..19fe633 100644 --- a/src/commands/bots.js +++ b/src/commands/bots.js @@ -7,6 +7,20 @@ const bots = [ foundation: "java/mcprotocollib", prefixes: ["#"], }, + { + name: { text: "CddehhBot", color: "red", bold: false }, + authors: ["CaydennO1","spyingcreeper09"], + exclaimer: "WHAT IS THIS GOOFY AAAH FUCKING BOT", + foundation: "nodejs/mineflayer", + prefixes: [","], + }, + { + name: { text: "TurtleBot", color: "green", bold: false }, + authors: ["TurtleKid"], + exclaimer: "nmp when?", + foundation: "nodejs/mineflayer", + prefixes: ["\\"], + }, { name: { text: "NothingBot", color: "dark_red", bold: false }, authors: ["Yaode_owo"], @@ -157,7 +171,7 @@ const bots = [ { name: { text: "ChomeNS Bot Java", color: "yellow", bold: false }, authors: ["chayapak"], - exclaimer: "wow its my bot !! ! 4374621q43567%^&#%67868-- chayapak", + exclaimer: "wow its my bot !! ! 4374621q43567%^&#%67868-- chayapak \n rip ChomeNS bot i wonder what chayapak is currently doing -- Parker2991", foundation: "Java/MCProtocolLib", prefixes: ["*", "cbot ", "/cbot "], }, diff --git a/src/commands/changelog.js b/src/commands/changelog.js index f44ffe1..680c580 100644 --- a/src/commands/changelog.js +++ b/src/commands/changelog.js @@ -77,6 +77,12 @@ const bots = [ foundation: '5/1/24', exclaimer:'added discord execute, redone the website command, added attachments for discord ported the urban package to the bot added ping', }, + {// + name: { text: 'v5.0.8', color: 'dark_red', bold:false }, + authors: ['Censory Overload'], + foundation: '6/4/24', + exclaimer:'rewritten the urban command to use undici removed the music command changed the colors for the help command and more', + }, ]// //back diff --git a/src/commands/cmdtest.js b/src/commands/cmdtest.js index 31da2a2..54a9fd8 100644 --- a/src/commands/cmdtest.js +++ b/src/commands/cmdtest.js @@ -20,59 +20,25 @@ module.exports = { switch (args[0]) { case "message": case 'msg': -const component = { - translate: '[%s] %s %s %s %s %s', - with: [ - { - translate: '%s%s%s', - bold:false, - with: [ - { - text: 'FNF', - bold: true, - color: 'dark_purple' - - }, - { - text: 'Boyfriend', - bold: true, - color: 'aqua' - }, - { - text: 'Bot', - bold: true, - color: 'dark_red' - }, - ], - clickEvent: bot.options.Core.customName ? { action: 'open_url', value: bot.options.Core.customName } : undefined, - hoverEvent: { action: 'show_text', contents: `idfk what to put here` } - }, - { - text:'Hello, World!,' - },{ - text:'Player:' - }, - - -context?.source?.player?.displayName ?? context?.source?.player?.profile?.name, - { - text:`, uuid: ${uuid ?? context?.source?.player?.uuid } , ` - }, - //entry.displayName - {text:`Argument: ${args.slice(1).join(' ')}`} - ]//command.split(' ')[0] - }//context.source.player.displayName ?? context.source.player.profile.name - - //ChatMessage.fromNotch(`${process.env["buildstring"]}`).toMotd().replaceAll('§', '&') - - if (bot.options.isCreayun || bot.options.useChat) { - bot.chat(`Hello, World!, Player: ${bot.getMessageAsPrismarine(context.source.player.displayName ?? context.source.player.profile.name).toMotd().replaceAll('§', '&')}, uuid: ${context.source.player.uuid}, Argument: ${args.slice(1).join(' ')}`) - + if (bot.options.isCreayun || bot.options.useChat || bot.options.isSavage) { + bot.chat(`Hello, World!, Player: ${bot.getMessageAsPrismarine(context.source.player.displayName ?? context.source.player.profile.name).toMotd().replaceAll('§', '&')}, uuid: ${context.source.player.uuid}, Argument: ${args.slice(1).join(' ')}`) } else { - bot.tellraw([component]) + bot.tellraw([ + { + text: `Hello, World!, Player: ${bot.getMessageAsPrismarine(context.source.player.displayName ?? context.source.player.profile.name)?.toMotd()}§r`, + color: 'gray', + bold: false + }, + { + text: ` Args: ${args.slice(1).join(' ')}`, + color: 'gray', + bold: false, + } + ]) } break case 'error': + case 'err': throw new Error(args.slice(1).join(' ')) break default: diff --git a/src/commands/echo.js b/src/commands/echo.js index b81d46a..18bee28 100644 --- a/src/commands/echo.js +++ b/src/commands/echo.js @@ -2,7 +2,7 @@ const CommandError = require('../CommandModules/command_error'); module.exports = { name: 'echo', description:['make me say something in chat'], - aliases:['chatsay'], + aliases:['chatsay', 'say', 'botsay'], trustLevel: 0, usage:[ "", @@ -31,4 +31,4 @@ module.exports = { bot.chat(message) } -} +} \ No newline at end of file diff --git a/src/commands/eval.js b/src/commands/eval.js index 162ffba..085414d 100644 --- a/src/commands/eval.js +++ b/src/commands/eval.js @@ -9,7 +9,7 @@ module.exports = { name: 'eval', description:['run code via isolated vm, exclaimer: amcforum members had a shitfit over this command'], aliases:['ivm'], - trustLevel: 0, + trustLevel: -1, usage:[ "", ], diff --git a/src/commands/help.js b/src/commands/help.js index 932174d..12a347f 100644 --- a/src/commands/help.js +++ b/src/commands/help.js @@ -39,40 +39,34 @@ module.exports = { const command = bot.commandManager.commandlist[commands] - if (args[0].toLowerCase() === command.name) - - - - { - function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -}//bot.getMessageAsPrismarine([cmd, 'Commands (', length, ') ', category, ...pub_lick, t_rust, own_her, cons_ole])?.toAnsi() + if (args[0].toLowerCase() === command.name) { +//}//bot.getMessageAsPrismarine([cmd, 'Commands (', length, ') ', category, ...pub_lick, t_rust, own_her, cons_ole])?.toAnsi() valid = true if (bot.options.useChat && !bot.options.isCreayun) { - bot.sendFeedback([{text:`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`,color:'dark_purple'}]) + bot.sendFeedback([{text:`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`,color:`${bot.Commands.colors.help.t_rustedColor}`}]) await bot.chatDelay(100) - bot.sendFeedback({text: `${bot.Commands.prefixes[0]}${command.name} `,color:'#00ffff'}) + bot.sendFeedback({text: `${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.pub_lickColor}`}) await bot.chatDelay(100) - bot.sendFeedback({text:`Aliases`,color:'dark_purple'}) + bot.sendFeedback({text:`Aliases`,color:`${bot.Commands.colors.help.t_rustedColor}`}) await bot.chatDelay(100) - bot.sendFeedback({text:`${command.aliases}`,color:'dark_purple'}) + bot.sendFeedback({text:`${command.aliases}`,color:`${bot.Commands.colors.help.t_rustedColor}`}) await bot.chatDelay(100) bot.sendFeedback({text:`${command.description}`}) await bot.chatDelay(100) - bot.sendFeedback([{text:`Trust Level: `,color:'#00ffff'},{text:`${command.trustLevel}`,color:'dark_purple'}]) + bot.sendFeedback([{text:`Trust Level: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${command.trustLevel}`,color:`${bot.Commands.colors.help.t_rustedColor}`}]) await bot.chatDelay(100) if (command.trustLevel === 2) { await bot.chatDelay(100) - bot.sendFeedback([{text:`Usage: `,color:'#00ffff'},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:'dark_purple'},{text:`${command.usage}`,color:'dark_red'}]) + bot.sendFeedback([{text:`Usage: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${bot.Commands.colors.help.own_herColor}`}]) await bot.chatDelay(100) } else if (command.trustLevel === 1) { await bot.chatDelay(100) - bot.sendFeedback([{text:`Usage: `,color:'#00ffff'},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:'dark_purple'},{text:`${command.usage}`,color:'dark_red'}]) + bot.sendFeedback([{text:`Usage: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${bot.Commands.colors.help.own_herColor}`}]) await bot.chatDelay(100) } else { await bot.chatDelay(100) - bot.sendFeedback([{text:`Usage: `,color:'#00ffff'},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:'dark_purple'},{text:`${command.usage}`,color:'dark_red'}]) + bot.sendFeedback([{text:`Usage: `,color:`${bot.Commands.colors.help.pub_lickTheme}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${bot.Commands.colors.help.own_herColor}`}]) await bot.chatDelay(100) } @@ -101,16 +95,16 @@ const command = bot.commandManager.commandlist[commands] await bot.chatDelay(2000) } } else { - bot.sendFeedback([cmd,{text:`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`,color:'dark_purple'}]) - bot.sendFeedback([cmd, {text:`${bot.Commands.prefixes[0]}${command.name} `,color:'#00ffff'},{text:`(Aliases: ${command.aliases}) › ${command.description}`,color:'dark_purple'}]) - bot.sendFeedback([cmd,{text:`Trust Level: `,color:'#00ffff'},{text:`${command.trustLevel}`,color:'dark_purple'}]) + bot.sendFeedback([cmd,{text:`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`,color:`${bot.Commands.colors.help.t_rustedColor}`}]) + bot.sendFeedback([cmd, {text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`(Aliases: ${command.aliases}) › ${command.description}`,color:`${bot.Commands.colors.help.t_rustedColor}`}]) + bot.sendFeedback([cmd,{text:`Trust Level: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${command.trustLevel}`,color:`${bot.Commands.colors.help.t_rustedColor}`}]) if (command.trustLevel === 2) { - bot.sendFeedback([cmd,{text:`Usage: `,color:'#00ffff'},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:'dark_purple'},{text:`${command.usage}`,color:'dark_red'}]) + bot.sendFeedback([cmd,{text:`Usage: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${bot.Commands.colors.help.own_herColor}`}]) } else if (command.trustLevel === 1) { - bot.sendFeedback([cmd,{text:`Usage: `,color:'#00ffff'},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:'dark_purple'},{text:`${command.usage}`,color:'dark_red'}]) + bot.sendFeedback([cmd,{text:`Usage: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${bot.Commands.colors.help.own_herColor}`}]) } else { - bot.sendFeedback([cmd,{text:`Usage: `,color:'#00ffff'},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:'dark_purple'},{text:`${command.usage}`,color:'dark_red'}]) + bot.sendFeedback([cmd,{text:`Usage: `,color:`${bot.Commands.colors.help.pub_lickColor}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${bot.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${bot.Commands.colors.help.own_herColor}`}]) } } break @@ -287,11 +281,11 @@ bot.console.info([cmd, 'Commands (', JSON.stringify(CommandManager.commandlist.l const length = context.bot.commandManager.commandlist.filter(c => c.trustLevel != 3).length bot.chat('&8Commands &3(&6' + JSON.stringify(length) + '&3) (&bPublic &f| &5Trusted &f| &4Owner&f)') - await bot.chatDelay(100) + await bot.chatDelay(200) bot.chat(`${bot.getMessageAsPrismarine(pub_lick)?.toMotd().replaceAll(',','')}`) - await bot.chatDelay(100) + await bot.chatDelay(200) bot.chat(`${bot.getMessageAsPrismarine(t_rust)?.toMotd().replaceAll(',','')}`) - await bot.chatDelay(100) + await bot.chatDelay(200) bot.chat(`${bot.getMessageAsPrismarine(own_her)?.toMotd().replaceAll(',','')}`) @@ -428,5 +422,4 @@ throw new CommandError(`Unknown command ${args[0]}. type "${bot.Discord.commandP bot?.discord?.Message.react('♋') } } -} - +} \ No newline at end of file diff --git a/src/commands/info.js b/src/commands/info.js index 1ca2358..dcf8ded 100644 --- a/src/commands/info.js +++ b/src/commands/info.js @@ -65,32 +65,32 @@ switch(args.join(' ').toLowerCase()) { bot.chat(`Discord ${bot.discord.invite}`) await bot.chatDelay(1500) } else { - bot.sendFeedback({ text: 'Discord Invite', color: "dark_gray", translate: "", hoverEvent: { action: "show_text", value: [ { text: "click here to join!", color: "gray", }, ], }, clickEvent: { action: "open_url", value: `${bot.discord.invite}`, }, }); + bot.sendFeedback({ text: 'Discord Invite', color: "gray", translate: "", hoverEvent: { action: "show_text", value: [ { text: "click here to join!", color: "gray", }, ], }, clickEvent: { action: "open_url", value: `${bot.discord.invite}`, }, }); } break case 'server': if (bot.options.useChat && !bot.options.isCreayun) { - bot.sendFeedback({ color: "dark_gray", text: `Hostname \u203a ${os.hostname()}`, }) + bot.sendFeedback({ color: "gray", text: `Hostname \u203a ${os.hostname()}`, }) await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text: `Working Directory \u203a ${process.mainModule.path}`, }); + bot.sendFeedback({ color: "gray", text: `Working Directory \u203a ${process.mainModule.path}`, }); await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text: `${os.arch()}`}) + bot.sendFeedback({ color: "gray", text: `${os.arch()}`}) await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text:`OS \u203a ${os.platform()}`}) + bot.sendFeedback({ color: "gray", text:`OS \u203a ${os.platform()}`}) await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text: `OS Version/distro \u203a ${os.version()}`, }); + bot.sendFeedback({ color: "gray", text: `OS Version/distro \u203a ${os.version()}`, }); await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text: `Kernal Version \u203a ${os.release()}`, }); + bot.sendFeedback({ color: "gray", text: `Kernal Version \u203a ${os.release()}`, }); await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text: `cores \u203a ${os.cpus().length}`, }); + bot.sendFeedback({ color: "gray", text: `cores \u203a ${os.cpus().length}`, }); await bot.chatDelay(100) - bot.sendFeedback({ color: "dark_gray", text: `CPU \u203a ${os.cpus()[0].model}`, }); + bot.sendFeedback({ color: "gray", text: `CPU \u203a ${os.cpus()[0].model}`, }); await bot.chatDelay(100) - bot.sendFeedback([{text:`Server Free memory `, color:'dark_gray'},{text:`${Math.floor( os.freemem() / 1048576, )} `,color:'dark_gray'},{text: `MiB / ${Math.floor(os.totalmem() / 1048576)} MiB`, color:'dark_gray'}]); + bot.sendFeedback([{text:`Server Free memory `, color:'gray'},{text:`${Math.floor( os.freemem() / 1048576, )} `,color:'gray'},{text: `MiB / ${Math.floor(os.totalmem() / 1048576)} MiB`, color:'gray'}]); await bot.chatDelay(100) - bot.sendFeedback({text:`Device uptime \u203a ${format(os.uptime())}`,color:'dark_gray'}) + bot.sendFeedback({text:`Device uptime \u203a ${format(os.uptime())}`,color:'gray'}) await bot.chatDelay(100) - bot.sendFeedback({text:`Node version \u203a ${process.version}`,color:'dark_gray'}) + bot.sendFeedback({text:`Node version \u203a ${process.version}`,color:'gray'}) } else if (bot.options.isCreayun) { bot.chat(`Host \u203a ${os.hostname()}`) await bot.chatDelay(1500) @@ -114,17 +114,17 @@ switch(args.join(' ').toLowerCase()) { await bot.chatDelay(1500) bot.chat(`Node version \u203a ${process.version}`) } else { - bot.sendFeedback({ color: "dark_gray", text: `Hostname \u203a ${os.hostname()}`, }); - bot.sendFeedback({ color: "dark_gray", text: `Working Directory \u203a ${process.mainModule.path}`, }); - bot.sendFeedback({ color: "dark_gray", text: `${os.arch()}`}) - bot.sendFeedback({ color: "dark_gray", text:`OS \u203a ${os.platform()}`}) - bot.sendFeedback({ color: "dark_gray", text: `OS Version/distro \u203a ${os.version()}`, }); - bot.sendFeedback({ color: "dark_gray", text: `Kernal Version \u203a ${os.release()}`, }); - bot.sendFeedback({ color: "dark_gray", text: `cores \u203a ${os.cpus().length}`, }); - bot.sendFeedback({ color: "dark_gray", text: `CPU \u203a ${os.cpus()[0].model}`, }); - bot.sendFeedback([{text:`Server Free memory `, color:'dark_gray'},{text:`${Math.floor( os.freemem() / 1048576, )} `,color:'dark_gray'},{text: `MiB / ${Math.floor(os.totalmem() / 1048576)} MiB`, color:'dark_gray'}]); - bot.sendFeedback({text:`Device uptime \u203a ${format(os.uptime())}`,color:'dark_gray'}) - bot.sendFeedback({text:`Node version \u203a ${process.version}`,color:'dark_gray'}) + bot.sendFeedback({ color: "gray", text: `Hostname \u203a ${os.hostname()}`, }); + bot.sendFeedback({ color: "gray", text: `Working Directory \u203a ${process.mainModule.path}`, }); + bot.sendFeedback({ color: "gray", text: `${os.arch()}`}) + bot.sendFeedback({ color: "gray", text:`OS \u203a ${os.platform()}`}) + bot.sendFeedback({ color: "gray", text: `OS Version/distro \u203a ${os.version()}`, }); + bot.sendFeedback({ color: "gray", text: `Kernal Version \u203a ${os.release()}`, }); + bot.sendFeedback({ color: "gray", text: `cores \u203a ${os.cpus().length}`, }); + bot.sendFeedback({ color: "gray", text: `CPU \u203a ${os.cpus()[0].model}`, }); + bot.sendFeedback([{text:`Server Free memory `, color:'gray'},{text:`${Math.floor( os.freemem() / 1048576, )} `,color:'gray'},{text: `MiB / ${Math.floor(os.totalmem() / 1048576)} MiB`, color:'gray'}]); + bot.sendFeedback({text:`Device uptime \u203a ${format(os.uptime())}`,color:'gray'}) + bot.sendFeedback({text:`Node version \u203a ${process.version}`,color:'gray'}) } break case 'loaded': @@ -143,17 +143,17 @@ switch(args.join(' ').toLowerCase()) { // lazy file count :shrug: -// source.sendFeedback([{text:'Package Count \u203a ',color:'dark_gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}]) +// source.sendFeedback([{text:'Package Count \u203a ',color:'gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}]) if (bot.options.useChat && !bot.options.isCreayun) { - bot.sendFeedback([{text:'Package Count \u203a ', color:'dark_gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}]) + bot.sendFeedback([{text:'Package Count \u203a ', color:'gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}]) } else if (bot.options.isCreayun) { bot.chat(`Package Count \u203a ${Object.keys(packageJSON.dependencies).length}`) await bot.chatDelay(1500) bot.chat(`File Could \u203a (${FileCount})`) } else { -// bot.sendFeedback([{text:'Packages \u203a ',color:'dark_gray'},{text:`${Object.entries(packageJSON.dependencies).map((key, value) => key + ' ' + value).join(' ')}`}]) - bot.sendFeedback([{text:'Package Count \u203a ', color:'dark_gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}]) - bot.sendFeedback([{text:'File count ',color:'dark_gray'},{text:'(',color:'dark_blue'},{text:`${FileCount}`,color:'gold'},{text:')',color:'dark_blue'}]) +// bot.sendFeedback([{text:'Packages \u203a ',color:'gray'},{text:`${Object.entries(packageJSON.dependencies).map((key, value) => key + ' ' + value).join(' ')}`}]) + bot.sendFeedback([{text:'Package Count \u203a ', color:'gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}]) + bot.sendFeedback([{text:'File count ',color:'gray'},{text:'(',color:'dark_blue'},{text:`${FileCount}`,color:'gold'},{text:')',color:'dark_blue'}]) } break case 'time': @@ -165,62 +165,62 @@ if (bot.options.isCreayun) { break case 'login': if (bot.options.useChat) { - bot.sendFeedback({text:`Minecraft Username \u203a ${bot.options.username}`,color:'dark_gray'}) + bot.sendFeedback({text:`Minecraft Username \u203a ${bot.options.username}`,color:'gray'}) await bot.chatDelay(150) - bot.sendFeedback({text: `uuid \u203a ${bot.uuid}`,color:'dark_gray'}) + bot.sendFeedback({text: `uuid \u203a ${bot.uuid}`,color:'gray'}) await bot.chatDelay(150) /*if(bot.discord === undefined){ bot.sendFeedback({text:'Currently not logged into discord',color:'dark_red'}) await bot.chatDelay(150) }else{ -bot.sendFeedback({text:`Discord Username \u203a ${bot.discord.client.user.username + '#' + bot.discord.client.user.discriminator}`,color:'dark_gray'}) +bot.sendFeedback({text:`Discord Username \u203a ${bot.discord.client.user.username + '#' + bot.discord.client.user.discriminator}`,color:'gray'}) await bot.chatDelay(150) } */ await bot.chatDelay(150) await bot.chatDelay(150) - bot.sendFeedback({text:`Server \u203a ${bot.options.serverName}`,color:'dark_gray'}) + bot.sendFeedback({text:`Server \u203a ${bot.options.serverName}`,color:'gray'}) await bot.chatDelay(150) - bot.sendFeedback({text:`Server IP \u203a ${bot.options.host + ':' + bot.options.port}`,color:'dark_gray'}) + bot.sendFeedback({text:`Server IP \u203a ${bot.options.host + ':' + bot.options.port}`,color:'gray'}) await bot.chatDelay(150) - source.sendFeedback({text:`Version \u203a ${bot.options.version}`,color:'dark_gray'}) + source.sendFeedback({text:`Version \u203a ${bot.options.version}`,color:'gray'}) } else { - bot.sendFeedback({text:`Minecraft Username \u203a ${bot.options.username}`,color:'dark_gray'}) - bot.sendFeedback({text: `uuid \u203a ${bot.uuid}`,color:'dark_gray'}) - bot.sendFeedback({text:`Server \u203a ${bot.options.serverName}`,color:'dark_gray'}) - bot.sendFeedback({text:`Server IP \u203a ${bot.options.host + ':' + bot.options.port}`,color:'dark_gray'}) - bot.sendFeedback({text:`Version \u203a ${bot.options.version}`,color:'dark_gray'}) - bot.sendFeedback({text:`Discord channel \u203a ${bot.discord.channel.name}`,color:'dark_gray'}) - bot.sendFeedback({text:`Discord Username \u203a ${bot.discord.client.user.username + '#' + bot.discord.client.user.discriminator}`,color:'dark_gray'}) + bot.sendFeedback({text:`Minecraft Username \u203a ${bot.options.username}`,color:'gray'}) + bot.sendFeedback({text: `uuid \u203a ${bot.uuid}`,color:'gray'}) + bot.sendFeedback({text:`Server \u203a ${bot.options.serverName}`,color:'gray'}) + bot.sendFeedback({text:`Server IP \u203a ${bot.options.host + ':' + bot.options.port}`,color:'gray'}) + bot.sendFeedback({text:`Version \u203a ${bot.options.version}`,color:'gray'}) + bot.sendFeedback({text:`Discord channel \u203a ${bot.discord.channel.name}`,color:'gray'}) + bot.sendFeedback({text:`Discord Username \u203a ${bot.discord.client.user.username + '#' + bot.discord.client.user.discriminator}`,color:'gray'}) } break case 'config': if (bot.options.useChat) { - bot.sendFeedback({text:`Prefixes \u203a ${bot.Commands.prefixes}`,color:'dark_gray'}) + bot.sendFeedback({text:`Prefixes \u203a ${bot.Commands.prefixes}`,color:'gray'}) await bot.chatDelay(100) - bot.sendFeedback([{text:`Core enabled? `,color:'dark_gray'},{text:`${bot.options.Core.enabled}`,color:'gold'}]) + bot.sendFeedback([{text:`Core enabled? `,color:'gray'},{text:`${bot.options.Core.enabled}`,color:'gold'}]) await bot.chatDelay(100) - //bot.sendFeedback([{text:'Discord enabled? ',color:'dark_gray'},{text:`${bot.Discord.enabled}`,color:'gold'}]) + //bot.sendFeedback([{text:'Discord enabled? ',color:'gray'},{text:`${bot.Discord.enabled}`,color:'gold'}]) await bot.chatDelay(100) - bot.sendFeedback([{text:'Console logging enabled? ',color:'dark_gray'},{text:`${bot.options.Console.enabled}`,color:'gold'}]) + bot.sendFeedback([{text:'Console logging enabled? ',color:'gray'},{text:`${bot.options.Console.enabled}`,color:'gold'}]) await bot.chatDelay(100) - bot.sendFeedback([{text:'Chat filelogging enabled? ',color:'dark_gray'},{text:`${bot.Console.filelogging}`,color:'gold'}]) + bot.sendFeedback([{text:'Chat filelogging enabled? ',color:'gray'},{text:`${bot.Console.filelogging}`,color:'gold'}]) await bot.chatDelay(100) - bot.sendFeedback([{text:'Multiconnect Server count \u203a ',color:'dark_gray'},{text:`${Object.keys(bot.bots).length}`,color:'gold'}]) + bot.sendFeedback([{text:'Multiconnect Server count \u203a ',color:'gray'},{text:`${Object.keys(bot.bots).length}`,color:'gold'}]) } else { - bot.sendFeedback({text:`Prefixes \u203a ${bot.Commands.prefixes}`,color:'dark_gray'}) - bot.sendFeedback([{text:`Core enabled? `,color:'dark_gray'},{text:`${bot.options.Core.enabled}`,color:'gold'}]) -// bot.sendFeedback([{text:'Discord enabled? ',color:'dark_gray'},{text:`${bot.Discord.enabled}`,color:'gold'}]) - bot.sendFeedback([{text:'Console logging enabled? ',color:'dark_gray'},{text:`${bot.options.Console.enabled}`,color:'gold'}]) - bot.sendFeedback([{text:'Chat filelogging enabled? ',color:'dark_gray'},{text:`${bot.Console.filelogging}`,color:'gold'}]) - bot.sendFeedback([{text:'Multiconnect Server count \u203a ',color:'dark_gray'},{text:`${Object.keys(bot.bots).length}`,color:'gold'}]) - bot.sendFeedback([{text:'Discord enabled? ',color:'dark_gray'},{text:`${bot.Discord.enabled}`,color:'gold'}]) + bot.sendFeedback({text:`Prefixes \u203a ${bot.Commands.prefixes}`,color:'gray'}) + bot.sendFeedback([{text:`Core enabled? `,color:'gray'},{text:`${bot.options.Core.enabled}`,color:'gold'}]) +// bot.sendFeedback([{text:'Discord enabled? ',color:'gray'},{text:`${bot.Discord.enabled}`,color:'gold'}]) + bot.sendFeedback([{text:'Console logging enabled? ',color:'gray'},{text:`${bot.options.Console.enabled}`,color:'gold'}]) + bot.sendFeedback([{text:'Chat filelogging enabled? ',color:'gray'},{text:`${bot.Console.filelogging}`,color:'gold'}]) + bot.sendFeedback([{text:'Multiconnect Server count \u203a ',color:'gray'},{text:`${Object.keys(bot.bots).length}`,color:'gold'}]) + bot.sendFeedback([{text:'Discord enabled? ',color:'gray'},{text:`${bot.Discord.enabled}`,color:'gold'}]) } break case 'uptime': if (bot.options.isCreayun) { bot.chat(`${format(process.uptime())}`) } else { - bot.sendFeedback([{text:`${format(process.uptime())}`,color:'dark_gray'}]) + bot.sendFeedback([{text:`${format(process.uptime())}`,color:'gray'}]) } break case 'contributors': diff --git a/src/commands/end.js b/src/commands/kill.js similarity index 83% rename from src/commands/end.js rename to src/commands/kill.js index 4fac39b..4927eda 100644 --- a/src/commands/end.js +++ b/src/commands/kill.js @@ -1,9 +1,9 @@ const CommandError = require('../CommandModules/command_error') module.exports = { - name: 'end', - description:['end the bots process'], - trustLevel: 1, - aliases:['kys','kill','suicide'], + name: 'kill', + description:['kills the bots process'], + trustLevel: 2, + aliases:['stop','kill','suicide'], usage:[""], async execute (context) { const bot = context.bot diff --git a/src/commands/netmsg.js b/src/commands/netmsg.js index bf6ca7f..667dd8e 100644 --- a/src/commands/netmsg.js +++ b/src/commands/netmsg.js @@ -6,36 +6,15 @@ module.exports = { aliases:['networkmessage'], usage:[""], execute (context) { - const message = context.arguments.join(' ') const args = context.arguments const bot = context.bot const source = context.source -//throw new CommandError('ohio') const component = { - translate: '%s [%s] %s \u203a %s', - color: 'dark_gray', + translate: '[%s] %s \u203a %s', + color: 'gray', with: [ - { - translate: '%s%s%s', - with: [ - { - text: 'FNF', - color: 'dark_purple' - }, - { - text: 'Boyfriend', - color: 'aqua' - }, - { - text: 'Bot', - color: 'dark_red' - } - - ] - }, - bot.options.serverName, - + context.bot.options.serverName, context?.source?.player?.displayName ?? context?.source?.player?.profile?.name, message ] @@ -57,4 +36,4 @@ module.exports = { context.source.player.displayName ?? context.source.player.profile.name, message [%s%s%s] [%s] %s \u203a %s - */ + */ \ No newline at end of file diff --git a/src/commands/playerinfo.js b/src/commands/playerinfo.js index dd2f539..3ec9055 100644 --- a/src/commands/playerinfo.js +++ b/src/commands/playerinfo.js @@ -1,39 +1,58 @@ -const CommandError = require('../CommandModules/command_error') -const util = require('util') -const { stylize } = require('../util/eval_colors') +const CommandError = require('../CommandModules/command_error'); +const { EmbedBuilder } = require('discord.js'); +const util = require('util'); +const { stylize } = require('../util/eval_colors'); module.exports = { name: 'playerinfo', - description:[''], - aliases:[], - trustLevel: 0, -usage:[ -"", -], + description:['check player info'], + aliases:[], + trustLevel: 0, + usage:[ + "", + ], execute (context) { - const bot = context.bot - const args = context.arguments - const source = context.source -try{ - //const player = bot.players.find(player => player.profile.name === `${args.join(' ')}`) -const player = bot.players.find(player => player.profile.name === `${args.join(' ')}`) -//bot.players.map(pl => pl.profile.name).filter((name) => name == "Ski") -if(player === undefined) { - -bot.tellraw('Unknown Player') -}else{ - bot.sendFeedback([{text:`Player Name: `,color:'dark_gray'},{text:`${player.profile.name}`}]) - bot.sendFeedback([{text:`Player UUID: `,color:'dark_gray'},{text:`${player.uuid}`,color:'gold'}]) - bot.sendFeedback([{text:`Player Gamemode: `,color:'dark_gray'},{text:`${player.gamemode}`,color:'gold'}]) - bot.sendFeedback([{text:`Player Latency: `,color:'dark_gray'},{text:`${player.latency}`,color:'gold'}]) - bot.sendFeedback([{text:`Player DisplayName: `,color:'dark_gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}]) - } -}catch(e){ -bot.tellraw(`${e}`) - }//bot.players.find(player => player.profile.name === `Ski`); bot.getMessageAsPrismarine(e.displayName)?.toMotd().replaceAll('§','§') -}, -discordExecute(context) { - const bot = context.bot - const args = context.arguments - const source = context.source - } -} + const bot = context.bot; + const args = context.arguments; + const source = context.source; + const player = bot.players.find(player => player.profile.name === `${args.join(' ')}`); + try { + if (player === undefined) { + bot.tellraw('Unknown Player') + } else { + bot.sendFeedback([{text:`Player Name: `,color:'gray'},{text:`${player.profile.name}`}]) + bot.sendFeedback([{text:`Player UUID: `,color:'gray'},{text:`${player.uuid}`,color:'gold'}]) + bot.sendFeedback([{text:`Player Gamemode: `,color:'gray'},{text:`${player.gamemode}`,color:'gold'}]) + bot.sendFeedback([{text:`Player Latency: `,color:'gray'},{text:`${player.latency}`,color:'gold'}]) + bot.sendFeedback([{text:`Player DisplayName: `,color:'gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}]) + } + } catch(e) { + bot.tellraw(`${e}`) + } + }, + discordExecute(context) { + const bot = context.bot; + const args = context.arguments; + const source = context.source; + const player = bot.players.find(player => player.profile.name === `${args.join(' ')}`); + /* + bot.sendFeedback([{text:`Player Name: `,color:'dark_gray'},{text:`${player.profile.name}`}]) + bot.sendFeedback([{text:`Player UUID: `,color:'dark_gray'},{text:`${player.uuid}`,color:'gold'}]) + bot.sendFeedback([{text:`Player Gamemode: `,color:'dark_gray'},{text:`${player.gamemode}`,color:'gold'}]) + bot.sendFeedback([{text:`Player Latency: `,color:'dark_gray'},{text:`${player.latency}`,color:'gold'}]) + bot.sendFeedback([{text:`Player DisplayName: `,color:'dark_gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}]) + */ + try { + if (player === undefined) { + throw new CommandError('Player not found') + } else { + let Embed = new EmbedBuilder() + .setColor(`${bot.Commands.colors.discord.embed}`) + .setTitle(`${this.name} Command`) + .setDescription('```ansi\n' + bot.getMessageAsPrismarine([{text:`Player Name: `,color:'gray'},{text:`${player.profile.name}`},{text:`\nPlayer UUID: `,color:'gray'},{text:`${player.uuid}`,color:'gold'},{text:`\nPlayer Gamemode: `,color:'gray'},{text:`${player.gamemode}`,color:'gold'},{text:`\nPlayer Latency: `,color:'gray'},{text:`${player.latency}`,color:'gold'},{text:`\nPlayer DisplayName: `,color:'gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}])?.toAnsi().replaceAll('`', '`\u200b') + '```') + bot.discord.Message.reply({ embeds: [Embed] }) + } + } catch (e) { + bot.discord.Message.reply(e.toString()) + } + } +} \ No newline at end of file diff --git a/src/commands/reconnect.js b/src/commands/reconnect.js index 362daa3..078f741 100644 --- a/src/commands/reconnect.js +++ b/src/commands/reconnect.js @@ -4,7 +4,7 @@ module.exports = { name: 'reconnect', description:['reconnect the bot when?'], trustLevel: 1, - aliases:['rec'], + aliases:['rec', 'end', 'reconnect-client'], usage:[""], execute (context) { const bot = context.bot diff --git a/src/commands/reload.js b/src/commands/reload.js index 6d2da62..7a65566 100644 --- a/src/commands/reload.js +++ b/src/commands/reload.js @@ -13,8 +13,9 @@ module.exports = { try { // bot.sendFeedback({text:'Reloading crap'}); - for (const eachBot of bot.bots) - eachBot.reload() + for (const eachBot of bot.bots) { + eachBot.commandReload() + } } catch(e) { bot.sendFeedback(e.stack) } @@ -33,8 +34,9 @@ discordExecute(context) { .setTitle(`${this.name} Command`) .setDescription(`reloading crap`) bot.discord.Message.reply({ embeds: [Embed] }) - for (const eachBot of bot.bots) - eachBot.reload() + for (const eachBot of bot.bots) { + eachBot.commandReload() + } } catch(e) { throw new CommandError(e.stack) } diff --git a/src/commands/serverterminal.js b/src/commands/serverterminal.js index a0739ea..cfe096e 100644 --- a/src/commands/serverterminal.js +++ b/src/commands/serverterminal.js @@ -10,26 +10,24 @@ module.exports = { const bot = context.bot const args = context.arguments const source = context.source - const ls = spawn('sh' , ['-c', `${args.slice(1).join(' ')}`]); + const command = spawn('sh' , ['-c', `${args.slice(1).join(' ')}`]); try { - ls.stdout.on('data', (data, err) => { + command.stdout.on('data', (data, err) => { bot.tellraw(`${bot.getMessageAsPrismarine(`${data}`)?.toMotd().replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')}`); console.log(err) }); - ls.on('close', (data) => { + command.on('close', (data) => { console.log(`child process close all stdio with code ${data}`); }); - - ls.on('err', (err) => { - console.log(err); - }) - - ls.on('exit', (code) => { + command.stderr.on('data', (data) => { + bot.tellraw(data.toString()); + }); + command.on('exit', (code) => { console.log(`child process exited with code ${code}`); }); } catch (e) { - bot.tellraw(e.toString()) + bot.sendError(e.toString()) } } -} +} \ No newline at end of file diff --git a/src/commands/theme.js b/src/commands/theme.js index a1ef399..bdba207 100644 --- a/src/commands/theme.js +++ b/src/commands/theme.js @@ -11,9 +11,9 @@ module.exports = { const source = context.source; if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return if (args[0] === undefined || args[1] === undefined || args[2] === undefined) { - bot.Commands.colors.help.pub_lickColor = '#00FFFF' - bot.Commands.colors.help.t_rustedColor = 'dark_purple' - bot.Commands.colors.help.own_herColor = 'dark_red' + bot.Commands.colors.help.pub_lickColor = 'white' + bot.Commands.colors.help.t_rustedColor = 'white' + bot.Commands.colors.help.own_herColor = 'white' bot.sendFeedback(`Reseting theme colors,.,.,..`) } else { bot.Commands.colors.help.pub_lickColor = args[0] @@ -29,4 +29,4 @@ pub_lickColor:"#00FFFF", t_rustedColor:"dark_purple", own_herColor:"dark_red", }, -*/ +*/ \ No newline at end of file diff --git a/src/commands/urban.js b/src/commands/urban.js index 37720fd..4aaa050 100644 --- a/src/commands/urban.js +++ b/src/commands/urban.js @@ -1,6 +1,6 @@ const CommandError = require('../CommandModules/command_error') -const ud = require('../util/urban') -const { EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, SlashCommandBuilder } = require('discord.js') +const { EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, SlashCommandBuilder } = require('discord.js'); +const { request } = require('undici'); module.exports = { name: 'urban', description:['urban dictionary'], @@ -14,60 +14,77 @@ module.exports = { const source = context.source const args = context.arguments const bot = context.bot - const cmdPrefix = [ + const prefix = [ { text: '[', color: 'dark_gray' }, { text: 'Urban', color: '#B72A00' }, { text: '] ', color: 'dark_gray'} - ] - try { - let definitions = await ud.define(args.join(' ')) - for (const def of definitions) { - if (bot.options.isSavage) { - bot.chat(bot.getMessageAsPrismarine([{text: '[Example] ',color:'dark_gray'},{ text: def.example.replaceAll('\r',''), color: 'dark_gray' }])?.toMotd().replaceAll('§','&')) - await bot.chatDelay(100) - bot.chat(bot.getMessageAsPrismarine([{text:'[Definition] ',color:'dark_gray'},{text: def.definition.replaceAll("\r", ""), color: 'dark_gray' }])?.toMotd().replaceAll('§','&')) - } else { - bot.tellraw([cmdPrefix, { text: def.example.replaceAll('\r',''), color: 'dark_gray' }]) - bot.tellraw([cmdPrefix, { text: def.definition.replaceAll("\r", ""), color: 'dark_gray' }]) - } - } - bot.tellraw([cmdPrefix,{text:`Definition: ${definitions[0].word}`, color:'dark_gray'}]) - bot.tellraw([cmdPrefix,{text:`Author: ${definitions[0].author}`, color:'dark_gray'}]) - bot.tellraw([cmdPrefix,{text:`👍 ${definitions[0].thumbs_up} | 👎 ${definitions[0].thumbs_down}`, color:'gray'}]) - } catch (e) { - bot.sendError(`${e.toString()}`) - } + ] + let component = []; + let term = `${args.join(' ')}` + const query = new URLSearchParams({ term }); + const dictResult = await request(`https://api.urbandictionary.com/v0/define?${query}`); + const { list } = await dictResult.body.json(); + if (!list.length) { + bot.sendError('No results found'); + } + for (const definitions of list) { + component.push(prefix, [ + { + text: `${definitions.definition.replaceAll('\r','').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}\n`, + color: 'gray', + underlined: false, + italic: false, + translate:"", + hoverEvent: { + action:"show_text", + value: [ + { + text: `Example \u203a \n ${definitions.example.replaceAll('\r', '').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}`, + color: 'dark_blue' + }, + { + text: `Word \u203a ${definitions.word.replaceAll('\r', '').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}\n`, + color: 'dark_blue', + }, + { + text: `Author \u203a ${definitions.author.replaceAll('\r', '').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}\n`, + color: 'dark_blue' + }, + { + text: `written on \u203a ${definitions.written_on.replaceAll('\r', '').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}\n`, + color: 'dark_blue' + }, + { + text: `Rating \u203a Thumbs-Up ${definitions.thumbs_up} / Thumbs-Down ${definitions.thumbs_down}`, + color: 'gray' + } + ] + }, + clickEvent: { + action: 'open_url', + value: `${definitions.permalink}` + } + }, + ]) + // console.log(Object.entries(list).map((key, value) => key).join(' ').replaceAll('[object Object]', '\n').replaceAll(',','')) + } + if (bot.options.isSavage) { + for (const definitions of list) { + await bot.chatDelay(500); + bot.chat(bot.getMessageAsPrismarine({ text: `${definitions.definition.replaceAll('\r','').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}\n`})?.toMotd().replaceAll('\xa7','&')); + await bot.chatDelay(500); + bot.chat(bot.getMessageAsPrismarine({ text: `${definitions.example.replaceAll('\r','').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa77')}\n`})?.toMotd().replaceAll('\xa7','&')); + await bot.chatDelay(500); + } // text: `${definitions.definition.replaceAll('\r','').replaceAll('[', '\xa71\xa7n\xa7o').replaceAll(']','\xa7r\xa78')}\n`, + } else { + bot.tellraw(component) + + } }, - async discordExecute (context) { + async discordExecute (context) { const bot = context.bot; const args = context.arguments; const component = []; - try { - let definitions = await ud.define(args.join(' ')) - for (const def of definitions) { - component.push([ - { - text: def.example.replaceAll('\r','') - }, - { - text: '\n' - }, - { - text: def.definition.replaceAll("\r", "") - } - ]) - // bot.tellraw([cmdPrefix, { text: def.example.replaceAll('\r',''), color: 'dark_gray' }]) - // bot.tellraw([cmdPrefix, { text: def.definition.replaceAll("\r", ""), color: 'dark_gray' }]) - } - - // bot.discord.channel.send({ content: 'amonger', components: [row] }) - } catch (e) { - let Embed = new EmbedBuilder() - .setColor(`${bot.Commands.colors.discord.error}`) - .setTitle(`${this.name} Command`) - .setDescription(`${e.toString()}`) - bot.discord.Message.reply({ embeds: [Embed] }) - } } } /* diff --git a/src/commands/validate.js b/src/commands/validate.js index 177de7d..05f7cae 100644 --- a/src/commands/validate.js +++ b/src/commands/validate.js @@ -13,7 +13,7 @@ module.exports = { const args = context.arguments const ownerhash = bot.owner const discordHash = bot.hashing.hash - if (args[0] === bot.hash ?? args[0] === bot.hashing.hash) { + if (args[0] === bot.hash || bot.hashing.hash && args[0] !== bot.owner) { if (bot.options.isCreayun) { } else { diff --git a/src/default.yml b/src/default.yml index c762546..7094139 100644 --- a/src/default.yml +++ b/src/default.yml @@ -14,11 +14,14 @@ Commands: error: "#FF0000" embed: "#000000" help: - pub_lickColor: "#00FFFF" - t_rustedColor: "dark_purple" - own_herColor: "dark_red" + pub_lickColor: "#2b7589" + t_rustedColor: "#219696" + own_herColor: "#2081c3" error: "#FF0000" +savage: + password: "password here" + # core Core: # PLEASE MAKE THIS A VALID JSON @@ -131,4 +134,3 @@ bots: god: true icu: false interval: 1000 - diff --git a/src/index.js b/src/index.js index 1fe9d52..16d60f7 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ const util = require("util"); const path = require('path'); const fs = require('fs'); const parseYaml = require('js-yaml'); - +const { loadModules } = require('./util/loadModules') if (!fs.existsSync(path.join(__dirname, '../config.yml'))) { console.log('Config not found creating config from default.yml'); fs.copyFileSync( @@ -12,28 +12,18 @@ if (!fs.existsSync(path.join(__dirname, '../config.yml'))) { ); }; const createBot = require('./bot.js'); -const fileExist = require("./util/file-exists"); const readline = require("readline"); - -const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, -}); - try { config = parseYaml.load(fs.readFileSync('config.yml', 'utf8')); -// console.log(config) } catch (e) { console.log(e.toString()) } -function load() { require("dotenv").config(); const bots = []; const core = config.Core; const commands = config.Commands; const Console = config.console; const discord = config.Discord; -const matrix = config.matrix; const validation = config.validation; const savage = config.savage; for (const options of config.bots) { @@ -44,31 +34,24 @@ for (const options of config.bots) { bot.Commands = commands; bot.Console = Console; bot.discord = discord; - bot.matrix = matrix; bot.validation = validation; bot.savage = savage; - bot.options.username; - bot.loadModule = (module) => module(bot, options); - for (const filename of fs.readdirSync(path.join(__dirname, "modules"))) { - try { - const module = require(path.join(__dirname, 'modules', filename)) - bot.loadModule(module); - } catch (error) { - console.error("Failed to load module",filename,":",error); - } - } - bot.console.useReadlineInterface(rl); - try { - bot.on("error", error => { - bot.console?.warn(error.toString()) - }); - } catch (error) { -// console.log(error.stack); - } -} + bot.options.username; +// createBot(options, bot.core, bot.commands, bot.Console, bot.discord, bot.validation, bot.savage) +// bot.loadModule = (module) => module(bot, options); + loadModules(bot, options); +/*for (const filename of fs.readdirSync(path.join(__dirname, "modules"))) { + try { + const module = require(path.join(__dirname, 'modules', filename)) + bot.loadModule(module); + } catch (error) { + console.error("Failed to load module",filename,":",error); + } + }*/ } +//bot.console.useReadlineInterface(rl); process.on("uncaughtException", (e) => { console?.warn(e.stack) }); -load() + diff --git a/src/modules/bruhify.js b/src/modules/bruhify.js index 9d2be6a..771f4ff 100644 --- a/src/modules/bruhify.js +++ b/src/modules/bruhify.js @@ -21,7 +21,7 @@ let tag = 'bruhify' bot.chat(ChatMessage.fromNotch(component).toMotd().replaceAll('§', '&')) startHue = (startHue + increment) % 360 } else { - bot.core.run(`/minecraft:title @a title ${JSON.stringify(component)}`) + bot.core.run(`/minecraft:title @a actionbar ${JSON.stringify(component)}`) startHue = (startHue + increment) % 360 } diff --git a/src/modules/chat.js b/src/modules/chat.js index c7f5c8f..3109a68 100644 --- a/src/modules/chat.js +++ b/src/modules/chat.js @@ -23,9 +23,11 @@ function inject (bot) { ChatMessage = loadPrismarineChat(registry) }) if (bot.options.isCreayun && !bot.options.isKaboom) { - bot.chatParsers = [creayunChatParser]; + bot.chatParsers = [creayunChatParser]; + } else if (bot.options.isSavage) { + bot.chatParsers = [savageChatParser, sayChatParser, creayunChatParser]; } else if (bot.options.isKaboom && !bot.options.isCreayun) { - bot.chatParsers = [kaboomChatParser, chipmunkmodChatParser, chipmunkmodblackilykatverChatParser, typetextChatParser, typeemotetextChatParser, sayChatParser, creayunChatParser] + bot.chatParsers = [kaboomChatParser, chipmunkmodChatParser, chipmunkmodblackilykatverChatParser, typetextChatParser, typeemotetextChatParser, creayunChatParser] } bot.on('packet.profileless_chat', packet => {//loadPrismarineChat.processNbtMessage(nbt.comp(json)) @@ -63,11 +65,12 @@ function inject (bot) { }) const translateMessage = bot.getMessageAsPrismarine(message)?.toMotd() const translateUsername = bot.getMessageAsPrismarine(sender)?.toMotd() - if (packet.type === 1) bot.emit('message', bot.getMessageAsPrismarine({translate:"chat.type.emote",with:[`${translateUsername}`,`${translateMessage}`]})?.toMotd()) + if (packet.type === 1) bot.emit('message', bot.getMessageAsPrismarine({translate:"chat.type.emote", with:[`${translateUsername}`,`${translateMessage}`]})?.toMotd()) +// if (packet.type === 1) bot.emit('message', `[${translateUsername}§r] translateMessage`) if (packet.type === 2) bot.emit('message', bot.getMessageAsPrismarine({"translate":"commands.message.display.incoming","with":[`${translateUsername}`,`${translateMessage}`],"color":"gray","italic":true})?.toMotd()) if (packet.type === 3) bot.emit('message', bot.getMessageAsPrismarine({"translate":"commands.message.display.outgoing","with":[`${translateUsername}`,`${translateMessage}`],"color":"gray","italic":true})?.toMotd()) - if (packet.type === 4) bot.emit('message', message) - if (packet.type === 5) bot.emit('message', bot.getMessageAsPrismarine({translate:"chat.type.announcement",color:'white',with:[`${translateUsername}`,`${translateMessage}`]})?.toMotd()) + if (packet.type === 4) bot.emit('message', message); + if (packet.type === 5) bot.emit('message', bot.getMessageAsPrismarine({translate:"chat.type.announcement",color:'white', with:[`${translateUsername}`,`${translateMessage}`]})?.toMotd()) tryParsingMessage(message, { senderName: sender, players: bot.players, getMessageAsPrismarine: bot.getMessageAsPrismarine }) }) // Ignores command set messages @@ -89,7 +92,9 @@ function inject (bot) { } const message = parseMessage(tryParse(packet.content)) - if (packet.plainMessage === 'chat.type.announcement') console.log('e') //bot.emit('message', sender, message) + const translateMessage = bot.getMessageAsPrismarine(unsigned)?.toMotd() + const translateUsername = bot.getMessageAsPrismarine(packet.sender)?.toMotd() + if (packet.type === 5) bot.emit('message', bot.getMessageAsPrismarine({translate:"chat.type.announcement",color:'white', with:[`${translateUsername}`,`${translateMessage}`]})?.toMotd()) bot.emit('player_chat', { plain: packet.plainMessage, unsigned, senderUuid: packet.senderUuid }) bot.emit('message', unsigned) tryParsingMessage(unsigned, { senderUuid: packet.senderUuid, players: bot.players, getMessageAsPrismarine: bot.getMessageAsPrismarine}) diff --git a/src/modules/chat_command_handler.js b/src/modules/chat_command_handler.js index 09df643..76724a1 100644 --- a/src/modules/chat_command_handler.js +++ b/src/modules/chat_command_handler.js @@ -69,7 +69,7 @@ function chat_command_handler(bot) { if (bot.options.useChat) { bot.tellraw([message]); } else { - bot.tellraw(["", prefix, message]); + bot.tellraw(["", message]); } }; @@ -83,7 +83,7 @@ try{ ratelimit-- }, 1000) if (ratelimit > bot.Commands.ratelimit) { // ,. - bot.sendFeedback({text:'You are using commands to fast!',color:'dark_red'}) + bot.sendFeedback({text:'You are using commands too fast!',color:'dark_red'}) // this isn't blocking running the command you know that right? } else { bot.commandManager.executeString(source, command); diff --git a/src/modules/chatdelay.js b/src/modules/chatdelay.js index e849f58..f79a5a9 100644 --- a/src/modules/chatdelay.js +++ b/src/modules/chatdelay.js @@ -4,4 +4,4 @@ bot.chatDelay = function delay(ms) { } } -module.exports = chatDelay; +module.exports = chatDelay; \ No newline at end of file diff --git a/src/modules/command_manager.js b/src/modules/command_manager.js index 690a55b..0c9b01e 100644 --- a/src/modules/command_manager.js +++ b/src/modules/command_manager.js @@ -48,13 +48,11 @@ if (command?.trustLevel === -1) { throw new CommandError('this command has been disabled!') } if (command?.trustLevel > 0) { - - if (command?.trustLevel === 1 && !source?.sources?.discord && !source?.sources?.console) { const hash = `${args[0]}` -if (args.length === 0 && bot.hash && bot.owner && bot.hashing.hash) throw new CommandError([{text:'Please provide an ',color:'gray'},{text:'Trusted ',color:'dark_purple'},{text:'hash or an ',color:'gray'},{text:'Owner ',color:'dark_red'},{text:'hash',color:'gray'}]) -if (hash !== bot.hash && hash !== bot.owner && hash !== bot.hashing.hash) throw new CommandError([{text:'Invalid ',color:'gray'},{text:'Trusted ',color:'dark_purple'},{text:'hash or Invalid ',color:'gray'},{text:'Owner ',color:'dark_red'},{text:'hash',color:'gray'}]) +if (args.length === 0 && bot.hash && bot.owner && bot.hashing.hash) throw new CommandError([{text:'Please provide an ',color:'gray'},{text:'Trusted ',color:'#219696'},{text:'hash or an ',color:'gray'},{text:'Owner ',color:'#2081c3'},{text:'hash',color:'gray'}]) +if (hash !== bot.hash && hash !== bot.owner && hash !== bot.hashing.hash) throw new CommandError([{text:'Invalid ',color:'gray'},{text:'Trusted ',color:'#219696'},{text:'hash or Invalid ',color:'gray'},{text:'Owner ',color:'#2081c3'},{text:'hash',color:'gray'}]) } else if (command.trustLevel === 1 && source?.sources?.discord && !source.sources.console) { @@ -70,12 +68,11 @@ if (hash !== bot.hash && hash !== bot.owner && hash !== bot.hashing.hash) throw } else if (args[0] === bot.owner) { bot.console.info({ text: `Player ${player} UUID: ${uuid} Hash:${bot.owner}`, color: 'white' }) } -if(command?.trustLevel === 2 && !source?.sources?.discord && !source?.sources?.console){ +if (command?.trustLevel === 2 && !source?.sources?.discord && !source?.sources?.console) { const owner = `${args[0]}` - -if(args.length === 0 && bot.owner) throw new CommandError([{text:'Please provide a ',color:'red',color:'gray'},{text:'Owner ',color:'dark_red'},{text:'hash',color:'gray'}]) -if(owner === bot.hash || owner === bot.hashing.hash) throw new CommandError([{text:"THATS A ",color:'gray'},{text:'TRUSTED ',color:'dark_purple'},{text:'HASH AFAIK',color:'gray'}]) -if (owner !== bot.owner) throw new CommandError([{text:"Invalid ",color:'gray'},{text:'Owner ',color:'dark_red'},{text:'Hash',color:'gray'}]) +if (args.length === 0 && bot.owner) throw new CommandError([{text:'Please provide a ',color:'red',color:'gray'},{text:'Owner ',color:'#2081c3'},{text:'hash',color:'gray'}]) +if (owner === bot.hash || owner === bot.hashing.hash) throw new CommandError([{text:"THATS A ",color:'gray'},{text:'TRUSTED ',color:'#219696'},{text:'HASH AFAIK',color:'gray'}]) +if (owner !== bot.owner) throw new CommandError([{text:"Invalid ",color:'gray'},{text:'Owner ',color:'#2081c3'},{text:'Hash',color:'gray'}]) } else if (command?.trustLevel === 2 && source?.sources?.discord && !source?.sources?.console) { // const events = source.discordMessageEvent diff --git a/src/modules/console.js b/src/modules/console.js index 8de56cc..3692741 100644 --- a/src/modules/console.js +++ b/src/modules/console.js @@ -5,7 +5,7 @@ const CommandSource = require("../CommandModules/command_source"); function Console(bot, options, context, source) { const chat = require('prismarine-chat')(bot.options.version) let ratelimit = 0 - bot.console = { + bot.console = { readline: null, username: bot.username, consoleServer: "all", @@ -61,46 +61,26 @@ function Console(bot, options, context, source) { } bot.console.warn = function (error) { - log(chat.fromNotch([{text:'<',color:'dark_gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`,color:'#00FFFF'},{text:' WARN',color:'yellow'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toAnsi() + chat.fromNotch(error)?.toAnsi()); + log(chat.fromNotch([{text:'<',color:'gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'#2b7589'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`,color:'#219696'},{text:' WARN',color:'yellow'},{text:'>',color:'gray'},{text:' [',color:'gray'},{text:`${bot.options.serverName}`,color:'#2081c3'},{text:'] ',color:'gray'}])?.toAnsi() + chat.fromNotch(error)?.toAnsi()); }; bot.console.error = function (error) { - log(chat.fromNotch([{text:'<',color:'dark_gray'},{text: `${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`,color:'#00FFFF'},{text:' ERROR',color:'dark_red'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toAnsi() + chat.fromNotch(error)?.toAnsi()); + log(chat.fromNotch([{text:'<',color:'gray'},{text: `${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'#2b7589'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`,color:'#219696'},{text:' ERROR',color:'dark_red'},{text:'>',color:'gray'},{text:' [',color:'gray'},{text:`${bot.options.serverName}`,color:'#2081c3'},{text:'] ',color:'gray'}])?.toAnsi() + chat.fromNotch(error)?.toAnsi()); }; - +/* + pub_lickColor: "#2b7589" + t_rustedColor: "#219696" + own_herColor: "#2081c3" +*/ bot.console.info = function (message) { - log(chat.fromNotch([{text:'<',color:'dark_gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO" })}`,color:'#00FFFF'},{text:' INFO',color:'green'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toAnsi() + chat.fromNotch(message)?.toAnsi()); + log(chat.fromNotch([{text:'<',color:'gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'#2b7589'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO" })}`,color:'#219696'},{text:' INFO',color:'green'},{text:'>',color:'gray'},{text:' [',color:'gray'},{text:`${bot.options.serverName}`,color:'#2081c3'},{text:'] ',color:'gray'}])?.toAnsi() + chat.fromNotch(message)?.toAnsi()); }; bot.console.log = function (message, ansi) { - log(chat.fromNotch([{text:'<',color:'dark_gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO"})} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO"})}`,color:'#00FFFF'},{text:' LOGS',color:'gold'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toAnsi() + message); + log(chat.fromNotch([{text:'<',color:'gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO"})} `,color:'#2b7589'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO"})}`,color:'#219696'},{text:' LOGS',color:'gold'},{text:'>',color:'gray'},{text:' [',color:'gray'},{text:`${bot.options.serverName}`,color:'#2081c3'},{text:'] ',color:'gray'}])?.toAnsi() + message); }; bot.console.debug = function (message) { - log(chat.fromNotch([{text:'<',color:'dark_gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO"})} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO"})}`,color:'#00FFFF'},{text:' DEBUG',color:'yellow'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toAnsi() + message) + log(chat.fromNotch([{text:'<',color:'gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO"})} `,color:'#2b7589'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO"})}`,color:'#219696'},{text:' DEBUG',color:'yellow'},{text:'>',color:'gray'},{text:' [',color:'gray'},{text:`${bot.options.serverName}`,color:'#2081c3'},{text:'] ',color:'gray'}])?.toAnsi() + message) }; - /* const ansimap = { - 0: '\x1b[0m\x1b[30m', - 1: '\x1b[0m\x1b[34m', - 2: '\x1b[0m\x1b[32m', - 3: '\x1b[0m\x1b[36m', - 4: '\x1b[0m\x1b[31m', - 5: '\x1b[0m\x1b[35m', - 6: '\x1b[0m\x1b[33m', - 7: '\x1b[0m\x1b[37m', - 8: '\x1b[0m\x1b[90m', - 9: '\x1b[0m\x1b[94m', - a: '\x1b[0m\x1b[92m', - b: '\x1b[0m\x1b[96m', - c: '\x1b[0m\x1b[91m', - d: '\x1b[0m\x1b[95m', - e: '\x1b[0m\x1b[93m', - f: '\x1b[0m\x1b[97m', - r: '\x1b[0m', - l: '\x1b[1m', - o: '\x1b[3m', - n: '\x1b[4m', - m: '\x1b[9m', - k: '\x1b[6m' - }*/ const isConsole = bot.username ? true : false; bot.console.source = new CommandSource(bot.username, { console: true, @@ -146,27 +126,19 @@ function Console(bot, options, context, source) { ratelimit-- }, 1000) if (ratelimit > bot.options.Console.ratelimit) { // ,. - -// bot.console.logs = function () {} -bot._client.end("Anti spam :3") + bot._client.end("Anti spam :3") +// rl.pause(); } else { - //bot.console.log(`${ansi}`); - //oh real - - //can i change the variable name so its name isnt confusing? - - bot.console.log(`${ansi}`); + bot?.console?.log(`${ansi}`); - // logger(`<${time} ${date}> [${bot.options.host}:${bot.options.port}] [LOGS]: ${string}`) - if (bot.Console.filelogging) { - bot.console.filelogger(`${chat.fromNotch([{text:'<',color:'dark_gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO"})}`,color:'#00FFFF'},{text:' LOGS',color:'gold'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toString()} ${string}`) + if (bot.Console.filelogging) { + bot?.console?.filelogger(`${chat.fromNotch([{text:'<',color:'dark_gray'},{text:`${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })} `,color:'dark_purple'},{text:`${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO"})}`,color:'#00FFFF'},{text:' LOGS',color:'gold'},{text:'>',color:'dark_gray'},{text:' [',color:'dark_gray'},{text:`${bot.options.serverName}`,color:'dark_gray'},{text:'] ',color:'dark_gray'}])?.toString()} ${string}`) - }//nothing is logging to the file - - }; - }) - } - } + }//nothing is logging to the file + }; + }) + } + } } module.exports = Console; diff --git a/src/modules/registry.js b/src/modules/registry.js index 2430fa2..74e4d43 100644 --- a/src/modules/registry.js +++ b/src/modules/registry.js @@ -4,7 +4,7 @@ function registry (bot) { bot.on('packet.login', packet => { bot.registry = createRegistry(bot._client.version); - bot.registry.language = require('../../languages/en_ud.json'); + bot.registry.language = require('../../languages/en_us.json'); bot.emit('registry_ready', bot.registry); }) diff --git a/src/modules/reload.js b/src/modules/reload.js index d83e8bf..184f7ee 100644 --- a/src/modules/reload.js +++ b/src/modules/reload.js @@ -3,7 +3,7 @@ const fs = require('fs'); const CommandError = require('../CommandModules/command_error') const { EmbedBuilder } = require('discord.js') function reload (bot,options,context) { - bot.reload = function () { + bot.commandReload = function () { for (const filename of fs.readdirSync(path.join(__dirname, "../commands"))) { try { // const command = require(path.join(__dirname, "../commands", filename)); diff --git a/src/modules/selfcare.js b/src/modules/selfcare.js index 66fe06a..3c0cf1a 100644 --- a/src/modules/selfcare.js +++ b/src/modules/selfcare.js @@ -4,6 +4,8 @@ const COMMANDSPY_ENABLED_MESSAGE = { text: 'Successfully enabled CommandSpy' } const COMMANDSPY_DISABLED_MESSAGE = { text: 'Successfully disabled CommandSpy' } //You now have the tag: &8[&bPrefix &4d~&8] function selfcare (bot) { + let register; + let login; let time = new Date; time.getMilliseconds(); let positionPackets = 0; let entityId; @@ -20,29 +22,43 @@ function selfcare (bot) { let tptoggle = false; let jail = false; let creayunJoin = false; -/* if (data.toString().startsWith('You have been muted')) muted = true - if (data.toString() === 'You have been unmuted.') muted = false -*/ -/* tptoggle creayun -Teleportation enabled. -Teleportation disabled. -*/ -/* creayun vanish -You are now completely invisible to normal users, and hidden from in-game commands. -You are once again visible. -You do not have access to that command. -*/ -//Welcome to survivayun! Welcome to ayunami2000's boxes server! - //bot.on('message', (data) => { bot.on('message', (message, data) => { - // Successfully removed your skin ansiMessage = bot.getMessageAsPrismarine(message)?.toAnsi() stringmessage = bot.getMessageAsPrismarine(message)?.toString() - // creayun + if (bot.options.isSavage) { + // savage vanish selfcare if (stringmessage === `Vanish for ${bot.options.username}: enabled`) vanished = true; + else if (stringmessage === `Vanish for ${bot.options.username}: disabled`) vanished = false; - } + + // savage prefix selfcare + else if (JSON.stringify(message) === `{"extra":[{"bold":true,"color":"aqua","text":" > "},{"color":"white","text":"Prefix for user "},{"color":"aqua","text":"${bot.options.username}"},{"color":"white","text":" "},{"color":"green","text":"set to"},{"color":"white","text":": "},{"color":"dark_gray","text":"["},{"color":"aqua","text":"Prefix"},{"color":"dark_gray","text":": "},{"color":"dark_red","text":"${bot.Commands.prefixes[0]}"},{"color":"dark_gray","text":"]"}],"text":""}`) prefix = true + + else if (stringmessage === 'Prefix for user ${bot.options.username} removed.') prefix = false + + else if (stringmessage.startsWith(`> Prefix for user ${bot.options.username} set to: `) || stringmessage === `> Prefix for user ${bot.options.username} removed.`) prefix = false + + // savage login selfcare + else if (stringmessage === 'Please, register to the server with the command: /register ') register = false; + + else if (stringmessage === 'Successfully registered!') register = true; + + else if (stringmessage === 'You already have registered this username!') register = true; + + else if (stringmessage === 'Please, login with the command: /login ') login = true; + + else if (stringmessage === 'Successful login!') login = true; + + else if (stringmessage === "You're already logged in!") login = true; + + else if (stringmessage === "You're already logged in!") registry = true; + // You're already logged in! + } // Please, register to the server with the command: /register + // Please, login with the command: /login + // Successfully registered! + // Successful login! + // You already have registered this username! if (bot.options.isCreayun) { // creayun join selfcare @@ -64,12 +80,12 @@ You do not have access to that command. else if (stringmessage?.startsWith("Your prefix has been set to: ") || stringmessage.startsWith('[SuffEx] Your prefix has been set to: ') || stringmessage === '[SuffEx] Your prefix has been reset' || stringmessage === "Your prefix has been reset.") prefix = false else if (stringmessage === 'You no longer have a nickname.' || stringmessage === '[SuffEx] Your nick has been reset!') { - nickname = true + nickname = false return } // creayun nick selfcare - else if (stringmessage?.startsWith("Your nick has been set to: ") || stringmessage.startsWith("[SuffEx] Your nick has been set to: ")) nickname = false + else if (stringmessage?.startsWith("Your nick has been set to: ") || stringmessage.startsWith("[SuffEx] Your nick has been set to: ")) nickname = true // creayun vanish selfcare else if (stringmessage === "You are now completely invisible to normal users, and hidden from in-game commands." || stringmessage === "You do not have access to that command." || stringmessage === "Unknown command. Type /help for help.") { @@ -127,23 +143,21 @@ You do not have access to that command. } // kaboom username selfcare - else if (stringmessage === `Successfully set your username to "${bot.username}"`) { - username = true + else if (stringmessage === `Successfully set your username to "${bot.username}"`) { + username = false return } - else if (stringmessage?.startsWith("Successfully set your username to ")) username = false + else if (stringmessage?.startsWith("Successfully set your username to ")) username = true - else if (stringmessage === `You already have the username "${bot.username}"`) username = true + else if (stringmessage === `You already have the username "${bot.username}"`) username = false // kaboom nickname selfcare else if (JSON.stringify(message) === `{"color":"gold","text":"You no longer have a nickname."}`) { - nickname = true + nickname = false return } - else if (JSON.stringify(message) === `{"color":"gold","extra":[{"color":"red","extra":[{"color":"gold","text":"."}],"text":"${bot.options.username}"}],"text":"Your nickname is now "}`) nickname = false - -// else if (stringmessage === `You no longer have a nickname.`) nickname = false + else if (JSON.stringify(message) === `{"color":"gold","extra":[{"color":"red","extra":[{"color":"gold","text":"."}],"text":"${bot.options.username}"}],"text":"Your nickname is now "}`) nickname = true // kaboom god selfcare else if (JSON.stringify(message) === `{"color":"gold","extra":[{"color":"red","extra":[{"color":"gold","text":"."}],"text":" enabled"}],"text":"God mode"}`) { @@ -185,22 +199,19 @@ You do not have access to that command. bot.on('packet.login', (packet) => { entityId = packet.entityId gameMode = packet.gameMode - /* -bot.on('move', () => { - bot.core.move(bot.position) - - //setTimeout(() => bot.core.run('say hi'), 100) - }) - */ - //let position = bot.on('move', () => { bot.core.move(bot.position) }) timer = setInterval(() => { if (bot.options.isSavage) { - if (permissionLevel < 2 && bot.options.selfcare.op) bot.command(`op ${bot.options.username}`) + if (!register) bot.command(`register ${bot.savage.password} ${bot.savage.password}`); - else if (gameMode !== 1 && bot.options.selfcare.gmc) bot.command('gamemode creative @s[type=player]') + else if (!login) bot.command(`login ${bot.savage.password}`); - else if (!vanished && bot.options.selfcare.vanished) bot.core.run(`/essentials:vanish ${bot.username} enable`) - + else if (permissionLevel < 2 && bot.options.selfcare.op) bot.command(`op ${bot.options.username}`); + + else if (gameMode !== 1 && bot.options.selfcare.gmc) bot.command('gamemode creative @s[type=player]'); + + else if (!vanished && bot.options.selfcare.vanished) bot.core.run(`/essentials:vanish ${bot.username} enable`); + + else if (!prefix && bot.options.selfcare.prefix) bot.command(`rank ${bot.options.username} &8[&bPrefix&8: &4${bot.Commands.prefixes[0]}&8]`); } else if (bot.options.isCreayun) { if (!creayunJoin) bot.command(`server creative`) else if (!prefix && bot.options.selfcare.prefix) bot.command(`prefix &8[&bPrefix: &4${bot.Commands.prefixes[0]}&8]`) @@ -215,10 +226,6 @@ bot.on('move', () => { if (permissionLevel < 2 && bot.options.selfcare.op) bot.command('op @s[type=player]') - // else if (time && positionPackets > bot.emit('move')) bot.core.run('sudo * icu stop') - - // else if (bot.on('move', () => {})) bot.core.run('sudo * icu stop') - else if (!commandSpyEnabled && bot.options.selfcare.cspy) bot.command('commandspy:commandspy on') else if (unmuted && bot.options.selfcare.unmuted) bot.core.run(`/essentials:mute ${bot.uuid}`) @@ -229,9 +236,9 @@ bot.on('move', () => { else if (!skin && bot.options.selfcare.skin) bot.command(`skin Parker2991`) - else if (!username && bot.options.selfcare.username) bot.command(`username ${bot.username}`) + else if (username && bot.options.selfcare.username) bot.command(`username ${bot.username}`) - else if (!nickname && bot.options.selfcare.nickname) bot.core.run(`/nick ${bot.options.username} off`) + else if (nickname && bot.options.selfcare.nickname) bot.core.run(`/nick ${bot.options.username} off`) else if (!god && bot.options.selfcare.god) bot.core.run(`/god ${bot.username} on`) @@ -242,10 +249,10 @@ bot.on('move', () => { } }, bot.options.selfcare.interval) }) -// if (!bot.options.selfcare.icu) return - //bot.on('move', () => { - // bot.core.run('sudo * icu stop') - // }) +// bot.on('message', (message) => { +// if (username && bot.options.selfcare.username) bot.command(`username ${bot.options.username}`); +// }) + bot.on('end', () => { if (timer) clearInterval(timer) prefix = false diff --git a/src/util/containsIllegalCharaters.js b/src/util/containsIllegalCharaters.js deleted file mode 100644 index 379e595..0000000 --- a/src/util/containsIllegalCharaters.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * character allowed in mc chat - * @param {String} character the character - * @return {boolean} allowed - */ -function isAllowedCharacter (character) { - return character !== '\xa7' && character !== '\x7f' -} -/** - * mc chat check if contains illegal chars. - * @param {String} string the string - * @return {boolean} if contains then true else false - */ -function containsIllegalCharacters (string) { - for (let i = 0; i < string.length; i++) if (!isAllowedCharacter(string[i])) return true -} - -module.exports = { containsIllegalCharacters, isAllowedCharacter } diff --git a/src/util/eval/eval.js b/src/util/eval/eval.js deleted file mode 100644 index 8be2620..0000000 --- a/src/util/eval/eval.js +++ /dev/null @@ -1,3 +0,0 @@ -const { Worker } = require('node:worker_threads'); -const ivm = require('isolated-vm'); -const { stylize } = require('./eval_colors') diff --git a/src/util/file-exists.js b/src/util/file-exists.js deleted file mode 100644 index 7343bf4..0000000 --- a/src/util/file-exists.js +++ /dev/null @@ -1,15 +0,0 @@ -const fs = require('fs/promises') - - -async function fileExists (filepath) { - try { - await fs.access(filepath) - return true - } catch (error) { - if (error.code !== 'ENOENT') throw error - - return false - } -} - -module.exports = fileExists diff --git a/src/util/file-list.js b/src/util/file-list.js deleted file mode 100644 index 0f00a81..0000000 --- a/src/util/file-list.js +++ /dev/null @@ -1,14 +0,0 @@ -const fs = require('fs/promises') - - -async function list (filepath = '.') { - const files = await fs.readdir(filepath) - - const component = [] - for (const filename of files) { - component.push(filename) - } - return component -} - -module.exports = list diff --git a/src/util/getFilenameFromUrl.js b/src/util/getFilenameFromUrl.js deleted file mode 100644 index c19e516..0000000 --- a/src/util/getFilenameFromUrl.js +++ /dev/null @@ -1,8 +0,0 @@ -const path = require('path') - -function getFilenameFromUrl (urlStr) { - const url = new URL(urlStr) - return path.basename(url.pathname) -} - -module.exports = getFilenameFromUrl \ No newline at end of file diff --git a/src/util/loadModules.js b/src/util/loadModules.js new file mode 100644 index 0000000..c10b789 --- /dev/null +++ b/src/util/loadModules.js @@ -0,0 +1,21 @@ +const fs = require('fs'); +const path = require('path'); +const readline = require('readline'); +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +function loadModules (bot, options) { + for (const filename of fs.readdirSync(path.join(__dirname, "../modules"))) { + try { + const module = require(path.join(__dirname, '../modules', filename)) + bot.loadModule = (module) => module(bot, options); + bot.loadModule(module); + } catch (error) { + console.error("Failed to load module", filename, ":", error); + } + } + bot.console.useReadlineInterface(rl); +} +module.exports = { loadModules }; diff --git a/src/util/logger.js b/src/util/logger.js deleted file mode 100644 index 1021a9a..0000000 --- a/src/util/logger.js +++ /dev/null @@ -1,24 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const currentDate = new Date(); -const timestamp = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1).toString().padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}`; -const logFolder = path.join(__dirname, '../logs'); -const logFileName = `${timestamp}.txt`; -const logFilePath = path.join(logFolder, logFileName); -const logStream = fs.createWriteStream(logFilePath, { flags: 'a' }); - -function log (message, bot, toFile = true, toConsole = true ) { - const now = new Date().toLocaleString(); -if (bot.options.filelogging = true) { - const toWrite = `${message}` -} - if (toFile) logStream.write(toWrite + '\n'); - //if (toConsole) console.log(toWrite); -}; - -if (!fs.existsSync(logFolder)) { - fs.mkdirSync(logFolder); -} -//ohio -module.exports = log \ No newline at end of file diff --git a/src/util/minecraftVersionToNumber.js b/src/util/minecraftVersionToNumber.js deleted file mode 100644 index 68034c7..0000000 --- a/src/util/minecraftVersionToNumber.js +++ /dev/null @@ -1,9 +0,0 @@ - -function minecraftVersionToNumber (version) { - const versionArray = version.split('.') - if (versionArray.length === 2) return Number(version) - versionArray.pop() - return Number(versionArray.join('.')) -} - -module.exports = minecraftVersionToNumber diff --git a/src/util/urban.js b/src/util/urban.js deleted file mode 100644 index ac276c1..0000000 --- a/src/util/urban.js +++ /dev/null @@ -1,220 +0,0 @@ -'use strict' - -const https = require('https') -const querystring = require('querystring') -const utilities = require('util') - -const promises = {} -const callbacks = {} -const methods = {} -// ported from the now deleted urban package -/** - * - * @param {string} pathname The API pathname to use. - * @param {object} query Optional. An object containing the query data. - */ -const get = (pathname, query) => { - return new Promise((resolve, reject) => { - const options = { - host: 'api.urbandictionary.com', - path: (!query ? `/v0/${pathname}` : `/v0/${pathname}?${querystring.stringify(query)}`) - } - - const request = https.get(options, (response) => { - let data = '' - - response.on('data', (chunk) => { - data += chunk - }) - - response.on('end', () => { - let result = null - - try { - result = JSON.parse(data) - resolve(result) - } catch (error) { - result = null - reject(new Error('Failed to parse retrieved Urban Dictionary JSON.')) - } - }) - }) - - request.on('error', (error) => { - const statusCode = error.status - - if (statusCode === 500) { - reject(new Error('Unable to connect to Urban Dictionary API. Their servers may be temporary offline.')) - } - }) - }) -} - -const noResults = () => { - return new Error('No results found.') -} - -promises.autocompleteExtra = async (term) => { - if (typeof term !== 'string') { - throw new TypeError('term has to be a string.') - } - - return get('autocomplete-extra', { term: term }).then((result) => { - if (!result.results[0]) { - throw noResults() - } - return result.results - }).catch((error) => { - throw error - }) -} - -promises.autocomplete = async (term) => { - if (typeof term !== 'string') { - throw new TypeError('term has to be a string.') - } - - return get('autocomplete', { term: term }).then((result) => { - if (!result[0]) { - throw noResults() - } - return result - }).catch((error) => { - throw error - }) -} - -promises.define = async (term) => { - if (typeof term !== 'string') { - throw new TypeError('term has to be a string.') - } - - return get('define', { term: term }).then((result) => { - if (!result.list[0]) { - throw noResults() - } - return result.list - }).catch((error) => { - throw error - }) -} - -promises.getDefinitionByDefid = async (id) => { - if (typeof id !== 'number') { - throw new TypeError('id has to be a number') - } - - return get('define', { defid: id }).then((result) => { - if (!result.list[0]) { - throw noResults() - } - return result.list[0] - }).catch((error) => { - throw error - }) -} - -promises.random = async () => { - return get('random').then((result) => { - if (!result.list[0]) { - throw noResults() - } - return result.list - }).catch((error) => { - throw error - }) -} - -promises.wordsOfTheDay = async () => { - return get('words_of_the_day').then((result) => { - if (!result.list[0]) { - throw noResults() - } - return result.list - }).catch((error) => { - throw error - }) -} - -// Create callback versions of the promise methods -Object.keys(promises).forEach((property) => { - callbacks[property] = utilities.callbackify(promises[property]) -}) - -/** - * @typedef {object} DefinitionObject - * @property {string} author - * @property {string} current_vote - * @property {string} date - * @property {number} defid - * @property {string} definition - * @property {string} example - * @property {string} permalink - * @property {string[]} sound_urls - * @property {number} thumbs_down - * @property {number} thumbs_up - * @property {string} word - * @property {string} written_on - * @param {DefinitionObject} - */ - -/** - * Get an array up to 20 autocomplete extra objects. - * @param {string} term - * @param {function(error, array):void} callback - * @return {promise} - */ -methods.autocompleteExtra = (term, callback) => { - return (!callback ? promises.autocompleteExtra(term) : callbacks.autocompleteExtra(term, callback)) -} - -/** - * Get an array up to 20 suggested words by term. - * @param {string} term - * @param {function(error, array):void} callback - * @return {promise} - */ -methods.autocomplete = (term, callback) => { - return (!callback ? promises.autocomplete(term) : callbacks.autocomplete(term, callback)) -} - -/** - * Get an array up to 10 definition objects by term. - * @param {string} term - * @param {function(error, DefinitionObject[]):void} callback - * @return {promise} - */ -methods.define = (term, callback) => { - return (!callback ? promises.define(term) : callbacks.define(term, callback)) -} - -/** - * Get a definition object by its defid. - * @param {number} defid - * @param {function} callback - * @return {promise} - */ -methods.getDefinitionByDefid = (defid, callback) => { - return (!callback ? promises.getDefinitionByDefid(defid) : callbacks.getDefinitionByDefid(defid, callback)) -} - -/** - * Get an array up to 10 random definition objects. - * @param {function(error, DefinitionObject):void} callback - * @return {promise} - */ -methods.random = (callback) => { - return (!callback ? promises.random() : callbacks.random(callback)) -} - -/** - * Get an array of 10 daily definition objects by Words of the Day. - * @param {function(error, DefinitionObject):void} callback - * @return {promise} - */ -methods.wordsOfTheDay = (callback) => { - return (!callback ? promises.wordsOfTheDay() : callbacks.wordsOfTheDay(callback)) -} - -module.exports = methods -