2024-10-11 09:46:18 -04:00

131 lines
3.4 KiB
JavaScript

module.exports = {
'help': {
desc: `Print the allowed commands.`,
async function(from){
console.log('called help', from)
let intro = [
'I am a bot owned and operated by',
'wmantly <wmantly@gmail.com>',
'You have access to the following commands:'
]
await this.whisper(from, ...intro, ...this.__reduceCommands(from).map(command =>
`${command} -- ${this.commands[command].desc || ''}`
));
}
},
'say': {
desc: `Make the bot say stuff in chat`,
allowed: ['wmantly', 'useless666', 'tux4242',],
ignoreLock: true,
async function(from, ...messages){
await this.say((messages || []).join(' '));
}
},
'plugins': {
desc: 'List the plugins',
allowed: ['wmantly', 'useless666', 'tux4242',],
ignoreLock: true,
async function(from, botName){
if(botName){
if(botName in this.constructor.bots){
this.whisper(from, `${Object.keys(this.constructor.bots[botName].plunginsLoaded)}`)
}
}
}
},
'unload': {
desc: `Make bot unload plugin`,
allowed: ['wmantly', 'useless666', 'tux4242',],
ignoreLock: true,
async function(from, botName, plugin) {
this.whisper(from, `Unloading ${plugin}`);
if(botName in this.constructor.bots){
let bot = this.constructor.bots[botName];
let status = await bot.pluginUnload(plugin);
return this.whisper(from, `plugin status ${status}`);
}
this.whisper(from, '?')
}
},
'load': {
desc: `Make bot load/unload plugin`,
allowed: ['wmantly', 'useless666', 'tux4242',],
ignoreLock: true,
async function(from, botName, plugin) {
this.whisper(from, `Loading ${plugin}`);
if(botName in this.constructor.bots){
let bot = this.constructor.bots[botName];
let status = await bot.pluginLoad(plugin);
return this.whisper(from, `plugin status ${status}`);
}
this.whisper(from, '?')
}
},
'guardian': {
desc:'',
allowed: ['wmantly', 'useless666', 'tux4242',],
ignoreLock: true,
async function(from, botName, action) {
this.whisper(from, `Loading ${plugin}`);
if(botName in this.constructor.bots){
let bot = this.constructor.bots[botName];
let status = await bot.pluginLoad(plugin);
return this.whisper(from, `plugin status ${status}`);
}
this.whisper(from, '?')
}
},
'ai': {
desc: `Make bot load/unload plugin`,
allowed: ['wmantly', 'useless666', 'tux4242',],
ignoreLock: true,
async function(from, botName, personality, ...custom) {
if(botName in this.constructor.bots ){
let bot = this.constructor.bots[botName];
if(bot.isReady){
let status = await bot.pluginLoad('Ai', {
promptName: personality,
prompCustom: custom,
});
return this.whisper(from, `plugin status ${status}`);
}
}
this.whisper(from, '?')
}
},
'logon': {
desc: `Have bot log on for 10 seconds'`,
allowed: ['wmantly', 'useless666', 'tux4242', 'pi_chef', '1_cut',],
ignoreLock: true,
async function(from, botName, time){
this.__unLockCommand();
if(botName in this.constructor.bots){
let bot = this.constructor.bots[botName];
if(!bot.isReady){
try{
await bot.connect();
var clear = setTimeout(()=> bot.quit(), time ? parseInt(time)*1000 : 10000);
bot.whisper(from, 'I am ready')
}catch(error){
console.log('inv error connecting to bot');
this.whisper(from, 'Bot is not available right now, try again in 30 seconds.');
}
}else{
await this.whisper(from, `Bot ${bot.bot.entity.username} Already online`);
}
}
}
},
};