mirror of
https://github.com/toast-ts/Daggerbot-TS.git
synced 2024-11-17 12:21:00 -05:00
Turning the bot back to JS.
This commit is contained in:
parent
267ca14511
commit
151e1ddc96
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,6 +4,7 @@ node_modules/
|
|||||||
package-lock.json
|
package-lock.json
|
||||||
.ncurc.json
|
.ncurc.json
|
||||||
# Bot stuff
|
# Bot stuff
|
||||||
|
dist/
|
||||||
src/database/
|
src/database/
|
||||||
src/tokens.json
|
src/tokens.json
|
||||||
src/Toast-Testbot.config.json
|
src/Toast-Testbot.config.json
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "daggerbot-ts",
|
"name": "daggerbot-ts",
|
||||||
"description": "TypeScript version of the original JavaScript-based bot for Official Daggerwin Discord.",
|
"description": "TypeScript version of the original JavaScript-based bot for Official Daggerwin Discord.",
|
||||||
"main": "src/index.ts",
|
"main": "dist/index.js",
|
||||||
|
"type": "module",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/AnxietyisReal/Daggerbot-TS.git"
|
"url": "git+https://github.com/AnxietyisReal/Daggerbot-TS.git"
|
||||||
@ -35,6 +36,7 @@
|
|||||||
"xml-js": "1.6.11"
|
"xml-js": "1.6.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/ms": "0.7.31",
|
||||||
"@types/node": "18.15.11",
|
"@types/node": "18.15.11",
|
||||||
"ts-node": "10.9.1"
|
"ts-node": "10.9.1"
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,26 @@
|
|||||||
import Discord, { Client, WebhookClient, GatewayIntentBits, Partials } from 'discord.js';
|
import Discord, { Client, WebhookClient, GatewayIntentBits, Partials } from 'discord.js';
|
||||||
import fs from 'node:fs';
|
import fs from 'node:fs';
|
||||||
import {exec} from 'node:child_process';
|
import {exec} from 'node:child_process';
|
||||||
import timeNames from './timeNames';
|
import timeNames from './timeNames.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
import {formatTimeOpt, Tokens, Config, repeatedMessages} from './typings/interfaces';
|
import {formatTimeOpt, Tokens, Config, repeatedMessages} from './typings/interfaces';
|
||||||
import bannedWords from './models/bannedWords';
|
import bannedWords from './models/bannedWords.js';
|
||||||
import userLevels from './models/userLevels';
|
import userLevels from './models/userLevels.js';
|
||||||
import suggestion from './models/suggestion';
|
import suggestion from './models/suggestion.js';
|
||||||
import punishments from './models/punishments';
|
import punishments from './models/punishments.js';
|
||||||
import bonkCount from './models/bonkCount';
|
import bonkCount from './models/bonkCount.js';
|
||||||
import MPServer from './models/MPServer';
|
import MPServer from './models/MPServer.js';
|
||||||
|
import xjs from 'xml-js';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import tokens from './tokens.json';
|
import tokens from './tokens.json' assert { type: 'json'};
|
||||||
|
|
||||||
let importconfig:Config
|
let importconfig:Config
|
||||||
try{
|
try{
|
||||||
importconfig = require('./DB-Beta.config.json')
|
importconfig = JSON.parse(fs.readFileSync('src/DB-Beta.config.json', {encoding:'utf8'}));
|
||||||
console.log('Using development config :: Daggerbot Beta')
|
console.log('Using development config :: Daggerbot Beta')
|
||||||
//importconfig = require('./Toast-Testbot.config.json')
|
|
||||||
//console.log('Using development config :: Toast-Testbot')
|
|
||||||
} catch(e){
|
} catch(e){
|
||||||
importconfig = require('./config.json')
|
importconfig = JSON.parse(fs.readFileSync('src/config.json', {encoding:'utf8'}))
|
||||||
console.log('Using production config')
|
console.log('Using production config')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +36,7 @@ export default class TClient extends Client {
|
|||||||
messageCollector: any;
|
messageCollector: any;
|
||||||
attachmentBuilder: any;
|
attachmentBuilder: any;
|
||||||
moment: typeof moment;
|
moment: typeof moment;
|
||||||
xjs: any;
|
xjs: typeof xjs;
|
||||||
axios: typeof axios;
|
axios: typeof axios;
|
||||||
ms: any;
|
ms: any;
|
||||||
userLevels: userLevels;
|
userLevels: userLevels;
|
||||||
@ -77,9 +76,9 @@ export default class TClient extends Client {
|
|||||||
this.messageCollector = Discord.MessageCollector;
|
this.messageCollector = Discord.MessageCollector;
|
||||||
this.attachmentBuilder = Discord.AttachmentBuilder;
|
this.attachmentBuilder = Discord.AttachmentBuilder;
|
||||||
this.moment = moment;
|
this.moment = moment;
|
||||||
this.xjs = require('xml-js');
|
this.xjs = xjs;
|
||||||
this.axios = axios;
|
this.axios = axios;
|
||||||
this.ms = require('ms');
|
this.ms = import('ms').then(i=>i);
|
||||||
this.userLevels = new userLevels(this);
|
this.userLevels = new userLevels(this);
|
||||||
this.bonkCount = new bonkCount(this);
|
this.bonkCount = new bonkCount(this);
|
||||||
this.punishments = new punishments(this);
|
this.punishments = new punishments(this);
|
||||||
@ -102,17 +101,17 @@ export default class TClient extends Client {
|
|||||||
socketTimeoutMS: 30000,
|
socketTimeoutMS: 30000,
|
||||||
family: 4
|
family: 4
|
||||||
}).then(()=>console.log(this.logTime(), 'Successfully connected to MongoDB')).catch((err)=>{console.error(this.logTime(), `Failed to connect to MongoDB\n${err.reason}`); exec('pm2 stop Daggerbot')})
|
}).then(()=>console.log(this.logTime(), 'Successfully connected to MongoDB')).catch((err)=>{console.error(this.logTime(), `Failed to connect to MongoDB\n${err.reason}`); exec('pm2 stop Daggerbot')})
|
||||||
await this.login(this.tokens.main);
|
await this.login(this.tokens.beta);
|
||||||
const commandFiles = fs.readdirSync('src/commands').filter(file=>file.endsWith('.ts'));
|
fs.readdirSync('dist/events').forEach(async file=>{
|
||||||
|
const eventFile = await import(`./events/${file}`);
|
||||||
|
this.on(file.replace('.js', ''), async(...args)=>eventFile.default.run(this,...args));
|
||||||
|
});
|
||||||
|
const commandFiles = fs.readdirSync('dist/commands').filter(file=>file.endsWith('.js'));
|
||||||
for (const file of commandFiles){
|
for (const file of commandFiles){
|
||||||
const command = require(`./commands/${file}`);
|
const command = await import(`./commands/${file}`);
|
||||||
this.commands.set(command.default.data.name, command)
|
this.commands.set(command.default.data.name, {command, uses: 0})
|
||||||
this.registry.push(command.default.data.toJSON())
|
this.registry.push(command.default.data.toJSON())
|
||||||
}
|
}
|
||||||
fs.readdirSync('src/events').forEach((file)=>{
|
|
||||||
const eventFile = require(`./events/${file}`);
|
|
||||||
this.on(file.replace('.ts', ''), async(...args)=>eventFile.default.run(this,...args));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
formatTime(integer: number, accuracy = 1, options?: formatTimeOpt){
|
formatTime(integer: number, accuracy = 1, options?: formatTimeOpt){
|
||||||
let achievedAccuracy = 0;
|
let achievedAccuracy = 0;
|
||||||
@ -170,7 +169,7 @@ export default class TClient extends Client {
|
|||||||
let error;
|
let error;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.axios.get(`https://www.youtube.com/feeds/videos.xml?channel_id=${YTChannelID}`, {timeout: 5000}).then((xml:any)=>Data = this.xjs.xml2js(xml.data, {compact: true, spaces: 2}))
|
await this.axios.get(`https://www.youtube.com/feeds/videos.xml?channel_id=${YTChannelID}`, {timeout: 5000}).then((xml:any)=>Data = this.xjs.xml2js(xml.data, {compact: true}))
|
||||||
} catch(err){
|
} catch(err){
|
||||||
error = true;
|
error = true;
|
||||||
console.log(this.logTime(), `${YTChannelName} YT fail`)
|
console.log(this.logTime(), `${YTChannelName} YT fail`)
|
||||||
@ -194,6 +193,7 @@ export class WClient extends WebhookClient {
|
|||||||
super({
|
super({
|
||||||
url: tokens.webhook_url
|
url: tokens.webhook_url
|
||||||
})
|
})
|
||||||
|
this.tokens = tokens as Tokens;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// hi tae, ik you went to look for secret hello msgs in here too.
|
// hi tae, ik you went to look for secret hello msgs in here too.
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
client.punish(client, interaction, 'ban');
|
client.punish(client, interaction, 'ban');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import {writeFileSync} from 'node:fs';
|
import {writeFileSync} from 'node:fs';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
export default {
|
export default {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
//if (!client.isStaff(interaction.member) && interaction.channelId == '468835415093411863') return interaction.reply('This command is restricted to staff only in this channel due to high usage.')
|
//if (!client.isStaff(interaction.member) && interaction.channelId == '468835415093411863') return interaction.reply('This command is restricted to staff only in this channel due to high usage.')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from "discord.js";
|
import Discord,{SlashCommandBuilder} from "discord.js";
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
if (!client.isStaff(interaction.member)) return client.youNeedRole(interaction, 'dcmod');
|
if (!client.isStaff(interaction.member)) return client.youNeedRole(interaction, 'dcmod');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).setTitle('Daggerbot contributors').setDescription([
|
interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).setTitle('Daggerbot contributors').setDescription([
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import {Octokit} from '@octokit/rest';
|
import {Octokit} from '@octokit/rest';
|
||||||
import {exec} from 'node:child_process';
|
import {exec} from 'node:child_process';
|
||||||
import {readFileSync} from 'node:fs';
|
import fs from 'node:fs';
|
||||||
import util from 'node:util';
|
import util from 'node:util';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
const removeUsername = (text: string)=>{
|
const removeUsername = (text: string)=>{
|
||||||
let matchesLeft = true;
|
let matchesLeft = true;
|
||||||
@ -100,7 +100,7 @@ export default {
|
|||||||
},
|
},
|
||||||
statsgraph: ()=>{
|
statsgraph: ()=>{
|
||||||
client.statsGraph = -(interaction.options.getInteger('number', true));
|
client.statsGraph = -(interaction.options.getInteger('number', true));
|
||||||
interaction.reply(`Successfully set to \`${client.statsGraph}\`\n*Total data points: **${JSON.parse(readFileSync(path.join(__dirname, '../database/MPPlayerData.json'), {encoding: 'utf8'})).length.toLocaleString()}***`)
|
interaction.reply(`Successfully set to \`${client.statsGraph}\`\n*Total data points: **${JSON.parse(fs.readFileSync(path.join(__dirname, '../database/MPPlayerData.json'), {encoding: 'utf8'})).length.toLocaleString()}***`)
|
||||||
},
|
},
|
||||||
logs: ()=>{
|
logs: ()=>{
|
||||||
interaction.deferReply();
|
interaction.deferReply();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
({
|
({
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
client.punish(client, interaction, 'kick');
|
client.punish(client, interaction, 'kick');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import canvas from 'canvas';
|
import canvas from 'canvas';
|
||||||
import fs from 'node:fs';
|
import fs from 'node:fs';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
client.punish(client, interaction, 'mute');
|
client.punish(client, interaction, 'mute');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
const msg = await interaction.reply({content: 'Pinging...', fetchReply: true})
|
const msg = await interaction.reply({content: 'Pinging...', fetchReply: true})
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
if (!client.isStaff(interaction.member)) return client.youNeedRole(interaction, 'dcmod');
|
if (!client.isStaff(interaction.member)) return client.youNeedRole(interaction, 'dcmod');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
const embed = new client.embed().setColor(Math.floor(Math.random()*16777215));
|
const embed = new client.embed().setColor(Math.floor(Math.random()*16777215));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import fs from 'node:fs';
|
import fs from 'node:fs';
|
||||||
import canvas from 'canvas';
|
import canvas from 'canvas';
|
||||||
@ -30,7 +30,7 @@ export default {
|
|||||||
const messageCountsTotal = allData.reduce((a, b) => a + b.messages, 0);
|
const messageCountsTotal = allData.reduce((a, b) => a + b.messages, 0);
|
||||||
const timeActive = Math.floor((Date.now() - client.config.LRSstart)/1000/60/60/24);
|
const timeActive = Math.floor((Date.now() - client.config.LRSstart)/1000/60/60/24);
|
||||||
|
|
||||||
const dailyMsgsPath = path.join(__dirname, '../database/dailyMsgs.json');
|
const dailyMsgsPath = path.join('./src/database/dailyMsgs.json');
|
||||||
const data = JSON.parse(fs.readFileSync(dailyMsgsPath, 'utf8')).map((x: Array<number>, i: number, a: any) => {
|
const data = JSON.parse(fs.readFileSync(dailyMsgsPath, 'utf8')).map((x: Array<number>, i: number, a: any) => {
|
||||||
const yesterday = a[i - 1] || [];
|
const yesterday = a[i - 1] || [];
|
||||||
return x[1] - (yesterday[1] || x[1]);
|
return x[1] - (yesterday[1] || x[1]);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
const role = interaction.options.getRole('role') as Discord.Role;
|
const role = interaction.options.getRole('role') as Discord.Role;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
client.punish(client, interaction, 'softban');
|
client.punish(client, interaction, 'softban');
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import {version} from 'typescript';
|
import pkg from 'typescript';
|
||||||
import si from 'systeminformation';
|
import si from 'systeminformation';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import os from 'node:os';
|
import os from 'node:os';
|
||||||
export default {
|
export default {
|
||||||
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
@ -15,7 +15,7 @@ export default {
|
|||||||
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||||
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
||||||
};
|
};
|
||||||
var DJSver = require('discord.js').version;
|
var DJSver = (await import('discord.js')).version;
|
||||||
const cpu = await si.cpu();
|
const cpu = await si.cpu();
|
||||||
const ram = await si.mem();
|
const ram = await si.mem();
|
||||||
const osInfo = await si.osInfo();
|
const osInfo = await si.osInfo();
|
||||||
@ -25,11 +25,11 @@ export default {
|
|||||||
const columns = ['Command name', 'Count'];
|
const columns = ['Command name', 'Count'];
|
||||||
const includedCommands = client.commands.filter(x=>x.uses).sort((a,b)=>b.uses - a.uses);
|
const includedCommands = client.commands.filter(x=>x.uses).sort((a,b)=>b.uses - a.uses);
|
||||||
if (includedCommands.size == 0) return interaction.reply(`No commands have been used yet.\nUptime: **${client.formatTime(client.uptime as number, 3, {longNames: true, commas: true})}**`);
|
if (includedCommands.size == 0) return interaction.reply(`No commands have been used yet.\nUptime: **${client.formatTime(client.uptime as number, 3, {longNames: true, commas: true})}**`);
|
||||||
const nameLength = Math.max(...includedCommands.map(x=>x.default.data.name.length), columns[0].length) + 2;
|
const nameLength = Math.max(...includedCommands.map(x=>x.command.default.data.name.length), columns[0].length) + 2;
|
||||||
const amountLength = Math.max(...includedCommands.map(x=>x.uses.toString().length), columns[1].length) + 1;
|
const amountLength = Math.max(...includedCommands.map(x=>x.uses.toString().length), columns[1].length) + 1;
|
||||||
const rows = [`${columns[0] + ' '.repeat(nameLength - columns[0].length)}|${' '.repeat(amountLength - columns[1].length) + columns[1]}\n`, '-'.repeat(nameLength) + '-'.repeat(amountLength) + '\n'];
|
const rows = [`${columns[0] + ' '.repeat(nameLength - columns[0].length)}|${' '.repeat(amountLength - columns[1].length) + columns[1]}\n`, '-'.repeat(nameLength) + '-'.repeat(amountLength) + '\n'];
|
||||||
includedCommands.forEach(command=>{
|
includedCommands.forEach(command=>{
|
||||||
const name = command.default.data.name;
|
const name = command.command.default.data.name;
|
||||||
const count = command.uses.toString();
|
const count = command.uses.toString();
|
||||||
rows.push(`${name + ' '.repeat(nameLength - name.length)}${' '.repeat(amountLength - count.length) + count}\n`);
|
rows.push(`${name + ' '.repeat(nameLength - name.length)}${' '.repeat(amountLength - count.length) + count}\n`);
|
||||||
});
|
});
|
||||||
@ -50,7 +50,7 @@ export default {
|
|||||||
} else embed.addFields({name: '\u200b', value: `\`\`\`\n${rows.join('')}\`\`\``});
|
} else embed.addFields({name: '\u200b', value: `\`\`\`\n${rows.join('')}\`\`\``});
|
||||||
embed.addFields(
|
embed.addFields(
|
||||||
{name: '> __Dependencies__', value: [
|
{name: '> __Dependencies__', value: [
|
||||||
`**TypeScript:** ${version}`,
|
`**TypeScript:** ${pkg.version}`,
|
||||||
`**NodeJS:** ${process.version}`,
|
`**NodeJS:** ${process.version}`,
|
||||||
`**DiscordJS:** ${DJSver}`,
|
`**DiscordJS:** ${DJSver}`,
|
||||||
`**Axios:** ${client.axios.VERSION}`
|
`**Axios:** ${client.axios.VERSION}`
|
||||||
@ -64,7 +64,7 @@ export default {
|
|||||||
`**Uptime:**\nHost: ${client.formatTime((os.uptime()*1000), 2, {longNames: true, commas: true})}\nBot: ${client.formatTime(client.uptime as number, 2, {commas: true, longNames: true})}`
|
`**Uptime:**\nHost: ${client.formatTime((os.uptime()*1000), 2, {longNames: true, commas: true})}\nBot: ${client.formatTime(client.uptime as number, 2, {commas: true, longNames: true})}`
|
||||||
].join('\n')}
|
].join('\n')}
|
||||||
);
|
);
|
||||||
interaction.reply({embeds: [embed], fetchReply: true}).then((x)=>x.edit({embeds: [new client.embed(x.embeds[0].data).setFooter({text: `Load time: ${client.formatTime(x.createdTimestamp - interaction.createdTimestamp, 2, {longNames: true, commas: true})}`})]}))
|
interaction.reply({embeds: [embed], fetchReply: true}).then(x=>x.edit({embeds: [new client.embed(x.embeds[0].data).setFooter({text: `Load time: ${client.formatTime(x.createdTimestamp - interaction.createdTimestamp, 2, {longNames: true, commas: true})}`})]}))
|
||||||
},
|
},
|
||||||
data: new SlashCommandBuilder()// Nice
|
data: new SlashCommandBuilder()// Nice
|
||||||
.setName('statistics')
|
.setName('statistics')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient,{WClient} from '../client';
|
import TClient,{WClient} from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
const replyInDM = interaction.options.getString('message');
|
const replyInDM = interaction.options.getString('message');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
if (!client.isStaff(interaction.member as Discord.GuildMember)) return client.youNeedRole(interaction, 'dcmod');
|
if (!client.isStaff(interaction.member as Discord.GuildMember)) return client.youNeedRole(interaction, 'dcmod');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{SlashCommandBuilder} from 'discord.js';
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
client.punish(client, interaction, 'warn');
|
client.punish(client, interaction, 'warn');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord,{GuildMember, SlashCommandBuilder} from 'discord.js';
|
import Discord,{GuildMember, SlashCommandBuilder} from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
|
|
||||||
function convert(status?:Discord.ClientPresenceStatus){
|
function convert(status?:Discord.ClientPresenceStatus){
|
||||||
if (status) return {
|
if (status) return {
|
||||||
|
@ -20,9 +20,9 @@
|
|||||||
},
|
},
|
||||||
"botPresence": {
|
"botPresence": {
|
||||||
"activities": [
|
"activities": [
|
||||||
{"name": "the audio", "url": "https://www.youtube.com/watch?v=HQnC1UHBvWA", "type": 1}
|
{"name": "the server", "url": "https://www.youtube.com/watch?v=1P17ct4e5OE", "type": 1}
|
||||||
],
|
],
|
||||||
"status": "idle"
|
"status": "online"
|
||||||
},
|
},
|
||||||
"eval": {
|
"eval": {
|
||||||
"allowed": true,
|
"allowed": true,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord, { AuditLogEvent } from 'discord.js';
|
import Discord, { AuditLogEvent } from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, member:Discord.GuildMember){
|
async run(client:TClient, member:Discord.GuildMember){
|
||||||
if (member.guild?.id != client.config.mainServer.id) return;
|
if (member.guild?.id != client.config.mainServer.id) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord, { AuditLogEvent } from 'discord.js';
|
import Discord, { AuditLogEvent } from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, member:Discord.GuildMember){
|
async run(client:TClient, member:Discord.GuildMember){
|
||||||
if (member.guild?.id != client.config.mainServer.id) return;
|
if (member.guild?.id != client.config.mainServer.id) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, member:Discord.GuildMember){
|
async run(client:TClient, member:Discord.GuildMember){
|
||||||
if (member.partial || member.guild?.id != client.config.mainServer.id) return;
|
if (member.partial || member.guild?.id != client.config.mainServer.id) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, member:Discord.GuildMember){
|
async run(client:TClient, member:Discord.GuildMember){
|
||||||
if (!client.config.botSwitches.logs) return;
|
if (!client.config.botSwitches.logs) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client:TClient, oldMember:Discord.GuildMember, newMember:Discord.GuildMember){
|
run(client:TClient, oldMember:Discord.GuildMember, newMember:Discord.GuildMember){
|
||||||
if (oldMember.guild.id != client.config.mainServer.id) return;
|
if (oldMember.guild.id != client.config.mainServer.id) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client:TClient, interaction:Discord.BaseInteraction){
|
run(client:TClient, interaction:Discord.BaseInteraction){
|
||||||
if (!interaction.inGuild() || !interaction.inCachedGuild()) return;
|
if (!interaction.inGuild() || !interaction.inCachedGuild()) return;
|
||||||
@ -9,7 +9,7 @@ export default {
|
|||||||
if (!client.config.botSwitches.commands && !client.config.eval.whitelist.includes(interaction.user.id)) return interaction.reply({content: 'Bot is currently being run in development mode.', ephemeral: true});
|
if (!client.config.botSwitches.commands && !client.config.eval.whitelist.includes(interaction.user.id)) return interaction.reply({content: 'Bot is currently being run in development mode.', ephemeral: true});
|
||||||
if (commandFile){
|
if (commandFile){
|
||||||
try{
|
try{
|
||||||
commandFile.default.run(client, interaction);
|
commandFile.command.default.run(client, interaction);
|
||||||
commandFile.uses ? commandFile.uses++ : commandFile.uses = 1;
|
commandFile.uses ? commandFile.uses++ : commandFile.uses = 1;
|
||||||
} catch (error){
|
} catch (error){
|
||||||
console.log(`An error occurred while running command "${interaction.commandName} ${interaction.options.getSubcommand(false) ?? ''}"`, error, error.stack);
|
console.log(`An error occurred while running command "${interaction.commandName} ${interaction.options.getSubcommand(false) ?? ''}"`, error, error.stack);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, invite: Discord.Invite){
|
async run(client:TClient, invite: Discord.Invite){
|
||||||
if (!invite.guild) return;
|
if (!invite.guild) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client:TClient, invite: Discord.Invite){
|
run(client:TClient, invite: Discord.Invite){
|
||||||
client.invites.delete(invite.code)
|
client.invites.delete(invite.code)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import Discord, { ChannelType } from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from 'src/client';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, message:Discord.Message){
|
async run(client:TClient, message:Discord.Message){
|
||||||
if (message.author.bot || message.channel.type === ChannelType.DM) return;
|
if (message.author.bot || message.channel.type === Discord.ChannelType.DM) return;
|
||||||
const msgarr = message.content.toLowerCase().replaceAll(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\n]/g, ' ').split(' ');
|
const msgarr = message.content.toLowerCase().replaceAll(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\n]/g, ' ').split(' ');
|
||||||
let automodded: boolean;
|
let automodded: boolean;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client:TClient, msg:Discord.Message){
|
run(client:TClient, msg:Discord.Message){
|
||||||
if (!client.config.botSwitches.logs) return;
|
if (!client.config.botSwitches.logs) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
run(client:TClient, messages:Discord.Collection<string, Discord.Message<boolean>>){
|
run(client:TClient, messages:Discord.Collection<string, Discord.Message<boolean>>){
|
||||||
if (!client.config.botSwitches.logs) return;
|
if (!client.config.botSwitches.logs) return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord, { ActionRowBuilder, ButtonBuilder } from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from '../client';
|
import TClient from '../client.js';
|
||||||
export default {
|
export default {
|
||||||
async run(client:TClient, oldMsg:Discord.Message, newMsg:Discord.Message){
|
async run(client:TClient, oldMsg:Discord.Message, newMsg:Discord.Message){
|
||||||
if (!client.config.botSwitches.logs) return;
|
if (!client.config.botSwitches.logs) return;
|
||||||
@ -8,6 +8,6 @@ export default {
|
|||||||
const msgarr = newMsg.content.toLowerCase().replaceAll(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\n]/g, ' ').split(' ');
|
const msgarr = newMsg.content.toLowerCase().replaceAll(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\n]/g, ' ').split(' ');
|
||||||
if (await client.bannedWords._content.findOne({_id:msgarr}) && (!client.isStaff(newMsg.member))) newMsg.delete();
|
if (await client.bannedWords._content.findOne({_id:msgarr}) && (!client.isStaff(newMsg.member))) newMsg.delete();
|
||||||
if (newMsg.content === oldMsg.content) return;
|
if (newMsg.content === oldMsg.content) return;
|
||||||
(client.channels.resolve(client.config.mainServer.channels.logs) as Discord.TextChannel).send({embeds: [new client.embed().setColor(client.config.embedColor).setTimestamp().setAuthor({name: `Author: ${oldMsg.author.tag} (${oldMsg.author.id})`, iconURL: `${oldMsg.author.displayAvatarURL()}`}).setTitle('Message edited').setDescription(`<@${oldMsg.author.id}>\nOld content:\n\`\`\`\n${oldMsg.content.length < 1 ? '(Attachment)' : oldMsg.content}\n\`\`\`\nNew content:\n\`\`\`\n${newMsg.content}\`\`\`\nChannel: <#${oldMsg.channelId}>`)], components: [new ActionRowBuilder<ButtonBuilder>().addComponents(new ButtonBuilder().setStyle(5).setURL(`${oldMsg.url}`).setLabel('Jump to message'))]});
|
(client.channels.resolve(client.config.mainServer.channels.logs) as Discord.TextChannel).send({embeds: [new client.embed().setColor(client.config.embedColor).setTimestamp().setAuthor({name: `Author: ${oldMsg.author.tag} (${oldMsg.author.id})`, iconURL: `${oldMsg.author.displayAvatarURL()}`}).setTitle('Message edited').setDescription(`<@${oldMsg.author.id}>\nOld content:\n\`\`\`\n${oldMsg.content.length < 1 ? '(Attachment)' : oldMsg.content}\n\`\`\`\nNew content:\n\`\`\`\n${newMsg.content}\`\`\`\nChannel: <#${oldMsg.channelId}>`)], components: [new Discord.ActionRowBuilder<Discord.ButtonBuilder>().addComponents(new Discord.ButtonBuilder().setStyle(5).setURL(`${oldMsg.url}`).setLabel('Jump to message'))]});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
13
src/index.ts
13
src/index.ts
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from './client';
|
import TClient from './client.js';
|
||||||
const client = new TClient;
|
const client = new TClient;
|
||||||
client.init();
|
client.init();
|
||||||
import fs from 'node:fs';
|
import fs from 'node:fs';
|
||||||
@ -78,10 +78,11 @@ setInterval(async()=>{
|
|||||||
if (results[1].status == 204) embed.setImage('https://http.cat/204');
|
if (results[1].status == 204) embed.setImage('https://http.cat/204');
|
||||||
FScsg.fetchResult = `DagMP CSG failed with ${results[1].status + ' ' + results[1].statusText}`;
|
FScsg.fetchResult = `DagMP CSG failed with ${results[1].status + ' ' + results[1].statusText}`;
|
||||||
embed.addFields({name: 'CSG Status', value: results[1].status + ' ' + results[1].statusText})
|
embed.addFields({name: 'CSG Status', value: results[1].status + ' ' + results[1].statusText})
|
||||||
} else FScsg.data = client.xjs.xml2js(results[1].data,{compact:true,spaces:2}).careerSavegame as FSCareerSavegame;
|
} else FScsg.data = (client.xjs.xml2js(results[1].data,{compact:true}) as any).careerSavegame as FSCareerSavegame;
|
||||||
}).catch((error)=>console.log(error))
|
}).catch((error)=>console.log(error))
|
||||||
if (FSdss.fetchResult.length != 0){
|
if (FSdss.fetchResult.length != 0){
|
||||||
error = true;
|
error = true;
|
||||||
|
if (FSdss.data.slots === undefined) return;
|
||||||
console.log(client.logTime(), FSdss.fetchResult);
|
console.log(client.logTime(), FSdss.fetchResult);
|
||||||
}
|
}
|
||||||
if (FScsg.fetchResult.length != 0){
|
if (FScsg.fetchResult.length != 0){
|
||||||
@ -94,9 +95,9 @@ setInterval(async()=>{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DB = JSON.parse(fs.readFileSync(__dirname + '/database/MPPlayerData.json', {encoding: 'utf8'}));
|
const DB = JSON.parse(fs.readFileSync('src/database/MPPlayerData.json', {encoding: 'utf8'}));
|
||||||
DB.push(FSdss.data.slots.used)
|
DB.push(FSdss.data.slots.used)
|
||||||
fs.writeFileSync(__dirname + '/database/MPPlayerData.json', JSON.stringify(DB))
|
fs.writeFileSync('src/database/MPPlayerData.json', JSON.stringify(DB))
|
||||||
|
|
||||||
// Number format function
|
// Number format function
|
||||||
function formatNumber(number: any, digits: any, icon: any){
|
function formatNumber(number: any, digits: any, icon: any){
|
||||||
@ -143,13 +144,13 @@ setInterval(async()=>{
|
|||||||
});
|
});
|
||||||
|
|
||||||
const formattedDate = Math.floor((now - lrsStart)/1000/60/60/24);
|
const formattedDate = Math.floor((now - lrsStart)/1000/60/60/24);
|
||||||
const dailyMsgs = JSON.parse(fs.readFileSync(__dirname + '/database/dailyMsgs.json', {encoding: 'utf8'}))
|
const dailyMsgs = JSON.parse(fs.readFileSync('./src/database/dailyMsgs.json', {encoding: 'utf8'}))
|
||||||
if (!dailyMsgs.some((x:Array<number>)=>x[0] === formattedDate)){
|
if (!dailyMsgs.some((x:Array<number>)=>x[0] === formattedDate)){
|
||||||
let total = (await client.userLevels._content.find({})).reduce((a,b)=>a + b.messages, 0); // sum of all users
|
let total = (await client.userLevels._content.find({})).reduce((a,b)=>a + b.messages, 0); // sum of all users
|
||||||
const yesterday = dailyMsgs.find((x:Array<number>)=>x[0] === formattedDate - 1);
|
const yesterday = dailyMsgs.find((x:Array<number>)=>x[0] === formattedDate - 1);
|
||||||
if (total < yesterday) total = yesterday // messages went down.
|
if (total < yesterday) total = yesterday // messages went down.
|
||||||
dailyMsgs.push([formattedDate, total]);
|
dailyMsgs.push([formattedDate, total]);
|
||||||
fs.writeFileSync(__dirname + '/database/dailyMsgs.json', JSON.stringify(dailyMsgs))
|
fs.writeFileSync('./src/database/dailyMsgs.json', JSON.stringify(dailyMsgs))
|
||||||
console.log(client.logTime(), `Pushed [${formattedDate}, ${total}] to dailyMsgs`);
|
console.log(client.logTime(), `Pushed [${formattedDate}, ${total}] to dailyMsgs`);
|
||||||
client.guilds.cache.get(client.config.mainServer.id).commands.fetch().then((commands)=>(client.channels.resolve(client.config.mainServer.channels.logs) as Discord.TextChannel).send(`:pencil: Pushed \`[${formattedDate}, ${total}]\` to </rank leaderboard:${commands.find(x=>x.name == 'rank').id}>`))
|
client.guilds.cache.get(client.config.mainServer.id).commands.fetch().then((commands)=>(client.channels.resolve(client.config.mainServer.channels.logs) as Discord.TextChannel).send(`:pencil: Pushed \`[${formattedDate}, ${total}]\` to </rank leaderboard:${commands.find(x=>x.name == 'rank').id}>`))
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const Schema = mongoose.model('mpserver', new mongoose.Schema({
|
const Schema = mongoose.model('mpserver', new mongoose.Schema({
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const Schema = mongoose.model('bannedWords', new mongoose.Schema({
|
const Schema = mongoose.model('bannedWords', new mongoose.Schema({
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const Schema = mongoose.model('bonkCount', new mongoose.Schema({
|
const Schema = mongoose.model('bonkCount', new mongoose.Schema({
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
import ms from 'ms';
|
import ms from 'ms';
|
||||||
import {Punishment} from 'src/typings/interfaces';
|
import {Punishment} from '../typings/interfaces.js';
|
||||||
|
|
||||||
const Schema = mongoose.model('punishments', new mongoose.Schema({
|
const Schema = mongoose.model('punishments', new mongoose.Schema({
|
||||||
_id: {type: Number, required: true},
|
_id: {type: Number, required: true},
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const Schema = mongoose.model('suggestion', new mongoose.Schema({
|
const Schema = mongoose.model('suggestion', new mongoose.Schema({
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Discord from 'discord.js';
|
import Discord from 'discord.js';
|
||||||
import TClient from 'src/client';
|
import TClient from '../client.js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const Schema = mongoose.model('userLevels', new mongoose.Schema({
|
const Schema = mongoose.model('userLevels', new mongoose.Schema({
|
||||||
|
@ -1,18 +1,20 @@
|
|||||||
{
|
{
|
||||||
"transpileOnly": true,
|
"transpileOnly": true,
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
|
"skipLibCheck": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"emitDecoratorMetadata": true,
|
"emitDecoratorMetadata": true,
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"target": "ESNext",
|
"allowSyntheticDefaultImports": true,
|
||||||
"module": "NodeNext",
|
"target": "ES2022",
|
||||||
|
"module": "ESNext",
|
||||||
"baseUrl": "./",
|
"baseUrl": "./",
|
||||||
"rootDir": "src/",
|
"rootDir": "src/",
|
||||||
"outDir": "dist/",
|
"outDir": "dist/",
|
||||||
"moduleResolution": "Node",
|
"moduleResolution": "bundler",
|
||||||
"typeRoots": [ "node_modules/@types", "./src/typings" ],
|
"typeRoots": [ "node_modules/@types", "./src/typings" ],
|
||||||
},
|
},
|
||||||
"include": [ "node_modules/@types", "src/**/*" ],
|
"include": [ "node_modules/@types", "src/" ],
|
||||||
"exclude": [ "dist", "node_modules" ],
|
"exclude": [ "node_modules", ".git", "src/config.json", "src/DB-Beta.config.json", "src/Toast-Testbot.config.json" ],
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user