mirror of https://github.com/thaldrin/thaldrin.git
first commands n'stuff
This commit is contained in:
parent
5544ddbb2b
commit
74d0379885
|
@ -0,0 +1,19 @@
|
||||||
|
import { Context } from "../../utils/types"
|
||||||
|
import { Command } from "../../modules/eu/src/index"
|
||||||
|
|
||||||
|
export = class TestingCommand extends Command {
|
||||||
|
constructor() {
|
||||||
|
super({
|
||||||
|
name: "testing",
|
||||||
|
aliases: ["t"],
|
||||||
|
})
|
||||||
|
// console.log(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
async run(context: Context): Promise<any> {
|
||||||
|
// console.log(context)
|
||||||
|
// console.log(this.nsfw)
|
||||||
|
console.log("testing")
|
||||||
|
return "Generic command"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
import { Message, Collection, TextChannel, MessageEmbed } from 'discord.js';
|
||||||
|
import { Context } from '../../utils/types';
|
||||||
|
import { EuClient } from '../../modules/eu/src/misc/types';
|
||||||
|
import modulus from '../../utils/modulus'
|
||||||
|
import prefixHandler from '../../utils/prefix'
|
||||||
|
import config from '../../utils/config';
|
||||||
|
import language from '../../utils/language';
|
||||||
|
import replace from '../../utils/replace';
|
||||||
|
export = {
|
||||||
|
name: "messageCreate",
|
||||||
|
run: async (Eu: EuClient, message: Message) => {
|
||||||
|
if (message.author.bot) return;
|
||||||
|
|
||||||
|
let helper = await prefixHandler(message.guild.id, message.content)
|
||||||
|
if (!helper.success) return
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
const cmd = Eu.commands.find((c) => c.name == helper.command || (c.aliases && c.aliases.includes(helper.command)))
|
||||||
|
if (!cmd) return
|
||||||
|
|
||||||
|
if (!Eu.cooldowns.has(cmd.name)) {
|
||||||
|
Eu.cooldowns.set(cmd.name, new Collection())
|
||||||
|
}
|
||||||
|
|
||||||
|
let ctx: Context = {
|
||||||
|
Eu, message, modulus, config,
|
||||||
|
args: helper.args,
|
||||||
|
channel: (message.channel as TextChannel),
|
||||||
|
guild: message.guild,
|
||||||
|
member: message.member,
|
||||||
|
author: message.author,
|
||||||
|
settings: await modulus.server(message.guild.id),
|
||||||
|
// @ts-ignore
|
||||||
|
isDev: config?.devs.find(d => d == message.author.id)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx.isDev) cmd.permissions = ["NONE"]
|
||||||
|
if (cmd.permissions !== [] && ctx.member.permissions.toArray().some(p => cmd.permissions.includes(p)))
|
||||||
|
return ctx.channel.send(replace(/PERMISSIONS/gm, cmd.permissions.join(', '), language.get(ctx.settings.locale).error.permissions))
|
||||||
|
|
||||||
|
if (cmd.nsfw && !ctx.channel.nsfw) return ctx.channel.send(language.get(ctx.settings.locale).error.nsfw)
|
||||||
|
|
||||||
|
const now = Date.now()
|
||||||
|
const timestamps = Eu.cooldowns.get(cmd.name)
|
||||||
|
const cooldown = (cmd.cooldown || 1) * 1000
|
||||||
|
// @ts-ignore
|
||||||
|
if (timestamps.has(ctx.author.id)) {
|
||||||
|
// @ts-ignore
|
||||||
|
const time = timestamps.get(ctx.author.id) + cooldown
|
||||||
|
if (now < time) {
|
||||||
|
const left = ((time - now) / 1000).toFixed(1)
|
||||||
|
let embed = new MessageEmbed()
|
||||||
|
.setTitle(replace(/COMMAND/gm, cmd.name, language.get(ctx.settings.locale).error.cooldown.name))
|
||||||
|
// @ts-ignore
|
||||||
|
.setDescription(replace(/COMMAND/gm, cmd.name, replace(/COOLDOWN/gm, `${cmd.cooldown}s`, replace(/TIME/g, left, language.get(ctx.settings.locale).error.cooldown.desc))))
|
||||||
|
.setColor("RED")
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
return message.channel.send({ embeds: [embed] })
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// @ts-ignore
|
||||||
|
timestamps.set(ctx.author.id, now)
|
||||||
|
setTimeout(() => {
|
||||||
|
// @ts-ignore
|
||||||
|
timestamps.delete(ctx.author.id, now)
|
||||||
|
}, cooldown);
|
||||||
|
try {
|
||||||
|
await cmd.run(ctx)
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
let ErrorEmbed = new MessageEmbed().setTitle(replace(/COMMAND/g, cmd.name, language.get(ctx.settings.locale).error.error)).setDescription(`\`${error.message}\`\n\n\`${error}\``).setColor("RED")
|
||||||
|
return message.channel.send({ embeds: [ErrorEmbed] })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
export = {
|
||||||
|
name: "ready",
|
||||||
|
run: async (Eu: any) => {
|
||||||
|
console.log(`${Eu.user.username} is ready!`);
|
||||||
|
}
|
||||||
|
};
|
Loading…
Reference in New Issue