const fs = require('fs') const path = require('path') const CommandError = require('../CommandModules/command_error.js') //check command_source //it would be both the command_source.js and command_manager.js files function inject (bot, options) { bot.commandManager = { MainPrefix: options.commands?.MainPrefix ?? 'default', SecondaryPrefix: options.commands?.SecondaryPrefix ?? 'default', TertiaryPrefix: options.commands?.TertiaryPrefix ?? 'default', commands: {}, amogus: [], //ohio execute (source, commandName, args, message) { const command = this.getCommand(commandName.toLowerCase()) //Unknown command. Type "/help" for help const now = new Date().toLocaleString("en-US",{timeZone:"America/CHICAGO"}) try { if (!command || !command.execute) throw new CommandError({ translate: `Unknown command %s. Type "${bot.options.commands.MainPrefix}help" for help or click on this for the command`, with: [commandName], clickEvent: bot.options.Core.customName ? { action: 'suggest_command', value: `${bot.options.commands.MainPrefix}help` } : undefined})//ohio if (command.trustLevel > 0){ const event = source?.discordMessageEvent const roles = event?.member?.roles?.cache // message.member.displayName //const hash = `${args[0]}` // this is undefined //const owner = `${args[0]}` // const hash = `${args[0]}` // const owner = `${args[0]}` if( source?.sources?.discord && command.trustLevel === 1 && !roles?.some(role => role?.name == 'trusted' || role?.name == 'FNFBoyfriendBot Owner') ? true : false ) throw new CommandError({text:'You are not Trusted!', color:'red'}) if ( !source?.sources?.discord && command.trustLevel === 1 && args[0] !== bot.hash && args[0] !== bot.owner && args[0] !== bot.hashing.hash ) throw new CommandError({text:'Invalid Hash or Invalid Owner Hash', color:'red'}) bot.hashing.updateHash() const now = new Date().toLocaleString("en-US",{timeZone:"America/CHICAGO"}) const player = source?.player?.profile?.name const uuid = source?.player?.uuid const time = new Date().toLocaleTimeString("en-US", {timeZone:"America/CHICAGO"}) const date = new Date().toLocaleDateString("en-US", {timeZone:"America/CHICAGO"}) bot.console.hash = function (error, source) { console.log(`<\x1b[0m\x1b[35m${time} \x1b[0m\x1b[96m${date}\x1b[0m> [${bot.options.host}:${bot.options.port}\x1b[0m] ` + `[\x1b[0m\x1b[92mHash\x1b[0m]: \x1b[0m\x1b[92mPlayer\x1b[0m: ${player}, \x1b[0m\x1b[92mUUID\x1b[0m:${uuid}, \x1b[0m\x1b[92mHash\x1b[0m:${bot.hash || bot.hashing.hash}\x1b[0m]` ) } bot.console.discordHash = function (error, source) { console.log(`<\x1b[0m\x1b[35m${time} \x1b[0m\x1b[96m${date}\x1b[0m> [${bot.options.host}:${bot.options.port}\x1b[0m] ` + `[\x1b[0m\x1b[92mHash\x1b[0m]: \x1b[0m\x1b[92mPlayer\x1b[0m: ${player}, \x1b[0m\x1b[92mUUID\x1b[0m:${uuid}, \x1b[0m\x1b[92mHash\x1b[0m:${bot.hashing.hash}\x1b[0m]` ) } bot.console.ownerHash = function (error, source) { console.log(`<\x1b[0m\x1b[35m${time} \x1b[0m\x1b[96m${date}\x1b[0m> [${bot.options.host}:${bot.options.port}\x1b[0m] ` + `[\x1b[0m\x1b[31mOwnerHash\x1b[0m]: \x1b[0m\x1b[92mPlayer\x1b[0m: ${player}, \x1b[0m\x1b[92mUUID\x1b[0m:${uuid}, \x1b[0m\x1b[31mOwnerHash\x1b[0m:${bot.owner}\x1b[0m]` ) } if (args[0] === bot.hash) { bot.console.hash() } else if (args[0] === bot.owner) { bot.console.ownerHash() } if ( source?.sources?.discord && command.trustLevel === 2 && !roles?.some(role => role.name === 'FNFBoyfriendBot Owner') ) throw new CommandError({text:'You are not the Owner!', color:'dark_red'}) const owner = `${args[0]}` if ( !source?.sources?.discord && command.trustLevel === 2 && owner !== bot.owner )throw new CommandError({text: 'Invalid Owner Hash', color:'dark_red'}) if (command.trustLevel === 3 && !source?.sources?.console) throw new CommandError({ translate: 'This command can only be executed via console', color: 'blue' }) //if () }// if (command.consoleOnly && !source.sources.console) throw new CommandError({ translate: 'This command can only be executed via console', color: 'blue' }) //(hash !== bot.hash && owner !== bot.owner //command.unknown.argument command.unknown.command //command.context.here // let hash = 1 // let owner = 2 //command.hashOnly && command.ownerOnly && args.length !== 0 && source.hash && source.owner // if (command.hashOnly && args.length === 0) throw new CommandError({ translate: 'Please provide a hash or a OwnerHash', color: 'red' }) //<\x1b[0m\x1b[35m${time} \x1b[0m\x1b[96m${date}\x1b[0m> [${bot.options.host}:${bot.options.port}\x1b[0m] ` + `[\x1b[0m\x1b[92mHash\x1b[0m]: \x1b[0m\x1b[92mPlayer\x1b[0m: ${player}, \x1b[0m\x1b[92mUUID\x1b[0m:${uuid}, \x1b[0m\x1b[92mHash\x1b[0m:${bot.hash}\x1b[0m]` // actual hash //but look in hashing.js //im looking through chomensjs's command handler for reference //💀 // <\x1b[0m\x1b[35m${time} \x1b[0m\x1b[96m${date}\x1b[0m> [${bot.options.host}:${bot.options.port}\x1b[0m] ` + `[\x1b[0m\x1b[31mOwnerHash\x1b[0m]: \x1b[0m\x1b[92mPlayer\x1b[0m: ${player}, \x1b[0m\x1b[92mUUID\x1b[0m:${uuid}, \x1b[0m\x1b[31mOwnerHash\x1b[0m:${bot.owner}\x1b[0m] //command.hashOnly && source.sources.discord //supposed to be a command error for invalid hash // if (command.hashOnly && args.length === 0) throw new CommandError({ translate: 'Please provide a hash or a OwnerHash', color: 'red' }) // {text:'Invalid Trusted hash or invalid Owner Hash', color:'red'} // you cant do a empty if // but i didnt know it can be just undefined :skull: //sus //commented smh out about and ig that worked // sus // if("e") {} // ok // idfk how to explain but it does // real (there was no if) // isnt it if(something) {} or i //if( // )//tf /* if (command.trustLevel > 0) { const discordRoles = message.member?.roles?.cache if( sources.source.discord && command.trustLevel === 1 && !discordRoles.some((role) => role.name === 'trusted' || role.name === 'FNFBoyfriendBot Owner') )throw new CommandError({text:'You are not trusted!', color:'red'}) let hash let owner if ( !sources.source.discord && command.trustLevel === 1 && args.shift() !== hash && args.shift() !== owner ) */ // just shift it out of the args (mabe would help with needing to do cloop e add 1 say hi) //idfk //tf // why the fard did it include the comment in the eror it sent //so replace args[0] with arg.shift() // just do args.shift() // or mabe const hasharg = args.shift() // idk //aaa //expression expected //ik that but why tf is it erroring // wat the fard // sus return command.execute({ bot, source, arguments: args }) } catch (error) { const now = new Date().toLocaleString("en-US",{timeZone:"America/CHICAGO"}) bot.console.warn(error.stack)//const filename of fs.readdirSync(path.join(__dirname, '../commands' //console.error('Failed to load command', filename, ':', error) //${path.join(__dirname, '..')} //const filename of fs.readdirSync(path.join(__dirname, '../commands' //filenames.forEach(function(filename) { //fs.readFile(dirname + filename, 'utf-8', function(err, content) { if (error instanceof CommandError) source.sendError(error._message) // // else source.sendError({ text:String(error.stack), color:'red' }) else source.sendError({ translate: 'command.failed', color:'red', hoverEvent: { action: 'show_text', contents: String(error.stack) } }) if (source.sources.discord) { source.sendError(error) } } }, // else source.sendError({ translate: 'command.failed', hoverEvent: { action: 'show_text', contents: String(error.message) } }) executeString (source, command) { const [commandName, ...args] = command.split(' ') return this.execute(source, commandName, args) }, register (command) { this.commands[command.name] = command if(command.aliases) { command.aliases.map(a => this.commands[a] = command) } }, getCommand (name) { return this.commands[name] }, getCommands () { return Object.values(this.commands) } } // amogus = [] for (const filename of fs.readdirSync(path.join(__dirname, '../commands'))) { try { const command = require(path.join(__dirname, '../commands', filename)) bot.commandManager.register(command) bot.commandManager.amogus.push(command) } catch (error) { console.error('Failed to load command', filename, ':', error) } if (process.env['anti-skid'] !== 'amogus is sus') { process.exit(0) } } } module.exports = inject