2021-04-06 00:37:36 +00:00
|
|
|
// @ts-nocheck
|
2021-04-04 15:17:46 +00:00
|
|
|
import { Client, Collection, Message } from "discord.js";
|
2021-04-05 00:18:27 +00:00
|
|
|
import Logger from "../utils/logger";
|
2021-04-04 15:17:46 +00:00
|
|
|
import supabase from "../utils/database";
|
2021-04-06 00:37:36 +00:00
|
|
|
import { Server, Usage } from "../utils/types";
|
2021-04-06 01:11:05 +00:00
|
|
|
import config from "../../config";
|
2021-04-08 00:10:37 +00:00
|
|
|
import { Commands, Shortlink, SourceFinder } from "../utils/wrapper.features";
|
2021-04-08 18:31:30 +00:00
|
|
|
import lingua from "../utils/lingua";
|
2021-04-04 15:17:46 +00:00
|
|
|
|
|
|
|
export = {
|
|
|
|
name: "message",
|
|
|
|
run: async (client: Client, message: Message) => {
|
|
|
|
if (message.author.bot) return
|
|
|
|
if (message.channel.type === "dm") return
|
|
|
|
|
2021-04-06 01:11:05 +00:00
|
|
|
// ! Messages seen
|
2021-04-06 00:37:36 +00:00
|
|
|
let { data: usage_data, error: usage_error } = await supabase.from<Usage>("usage").select().eq('name', "message")
|
|
|
|
if (usage_data?.length === 0) {
|
|
|
|
let { data: a, error: b } = await supabase.from<Usage>("usage").insert({ name: "message", type: "event" }).select()
|
|
|
|
usage_data = a
|
|
|
|
}
|
|
|
|
let { data: updated_usage_data, error } = await supabase.from<Usage>('usage').update({ amount: usage_data[0].amount + 1 }).select().eq("name", "message")
|
2021-04-06 01:11:05 +00:00
|
|
|
// ! Messages seen
|
|
|
|
|
2021-04-07 11:17:33 +00:00
|
|
|
|
|
|
|
// ? Check if Server exists in DB
|
|
|
|
let { data: check_data, error: check_error } = await supabase.from<Server>("servers").select().eq(`server_id`, message.guild.id).limit(1)
|
|
|
|
if (check_data?.length === 0) {
|
2021-04-06 01:11:05 +00:00
|
|
|
let { data: c, error: d } = await supabase.from<Server>('servers').insert({
|
|
|
|
server_id: message.guild?.id
|
|
|
|
})
|
|
|
|
}
|
2021-04-07 11:17:33 +00:00
|
|
|
// ? Get Server Config
|
|
|
|
let { data: server_data, error: server_error } = await supabase.from<Server>("servers").select().eq(`server_id`, message.guild.id).limit(1)
|
2021-04-06 01:11:05 +00:00
|
|
|
|
2021-04-08 00:10:37 +00:00
|
|
|
// ? Check if Message includes Shortlinks
|
2021-04-07 14:51:51 +00:00
|
|
|
await Shortlink(message, server_data[0].shortlinks)
|
2021-04-08 00:10:37 +00:00
|
|
|
// ? Check if Message includes E621 Image Links
|
2021-04-07 18:14:24 +00:00
|
|
|
await SourceFinder(message, server_data[0].sourcefinder)
|
2021-04-08 00:10:37 +00:00
|
|
|
// ? Check if Channel Topic allows Commands
|
|
|
|
if (await Commands(message)) return;
|
2021-04-07 14:51:51 +00:00
|
|
|
|
2021-04-07 11:17:33 +00:00
|
|
|
// ! Prefix
|
|
|
|
let PrefixArray: string[] = [...config.variables.prefix, [(server_data[0].prefix ? server_data[0].prefix : [])]].flat(Infinity)
|
2021-04-06 01:11:05 +00:00
|
|
|
|
2021-04-08 00:43:47 +00:00
|
|
|
let Prefix: string
|
|
|
|
let Exists: boolean
|
|
|
|
for (const p in PrefixArray) {
|
|
|
|
if (message.content.startsWith(PrefixArray[p])) {
|
|
|
|
Prefix = p
|
|
|
|
Exists = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ! If Prefix doesn't exist in Message Content, return
|
|
|
|
if (!Exists) return;
|
|
|
|
const args = message.content.slice(PrefixArray[Prefix].length).trim().split(/ +/g)
|
|
|
|
const command = args.shift()?.toLowerCase()
|
|
|
|
|
|
|
|
const cmd = client.commands.find((c) => (c.name as string).toLowerCase() == command || (c.aliases && c.aliases.includes(command)))
|
|
|
|
console.log(cmd)
|
|
|
|
if (!cmd) return;
|
|
|
|
|
|
|
|
if (!client.cooldowns.has(cmd.name)) {
|
|
|
|
client.cooldowns.set(cmd.name, new Collection())
|
|
|
|
}
|
|
|
|
|
|
|
|
const ctx = {
|
2021-04-08 18:31:30 +00:00
|
|
|
client, guild: message.guild, message, channel: message.channel, supabase, config, isDeveloper: config.developers.includes(message.author.id)
|
2021-04-08 00:43:47 +00:00
|
|
|
}
|
2021-04-04 15:17:46 +00:00
|
|
|
|
2021-04-08 18:31:30 +00:00
|
|
|
if (ctx.isDeveloper) cmd.AuthorPermissions = "NONE"
|
|
|
|
|
|
|
|
console.log(ctx.isDeveloper)
|
|
|
|
// if (cmd.nsfw && !ctx.channel.nsfw) return ctx.channel.send(
|
|
|
|
// lingua["en_US"].CHANNEL_NOT_NSFW
|
|
|
|
// )
|
|
|
|
|
2021-04-04 15:17:46 +00:00
|
|
|
}
|
|
|
|
}
|