bot stuff idk
This commit is contained in:
parent
bcf4cdd326
commit
cd01465d69
22681
package-lock.json
generated
Normal file
22681
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
20
slowcord/.vscode/launch.json
vendored
20
slowcord/.vscode/launch.json
vendored
@ -1,14 +1,20 @@
|
|||||||
{
|
{
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Launch Program",
|
"name": "ts-node",
|
||||||
"program": "${workspaceFolder}/build/index.js",
|
|
||||||
"request": "launch",
|
|
||||||
"skipFiles": [
|
|
||||||
"<node_internals>/**"
|
|
||||||
],
|
|
||||||
"type": "node",
|
"type": "node",
|
||||||
"preLaunchTask": "tsc: build - tsconfig.json"
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${relativeFile}"
|
||||||
|
],
|
||||||
|
"runtimeArgs": [
|
||||||
|
"-r",
|
||||||
|
"ts-node/register"
|
||||||
|
],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -12,5 +12,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fosscord-gopnik": "^1.0.0",
|
"fosscord-gopnik": "^1.0.0",
|
||||||
"typescript": "^4.7.4"
|
"typescript": "^4.7.4"
|
||||||
}
|
},
|
||||||
|
"type": "module"
|
||||||
}
|
}
|
@ -1,14 +1,19 @@
|
|||||||
import { Message } from "discord.js";
|
import { Message } from "discord.js";
|
||||||
import { Client } from "fosscord-gopnik/build/lib"; // huh? oh well. some bugs in my lib Ig
|
import { Client } from "fosscord-gopnik/build/lib"; // huh? oh well. some bugs in my lib Ig
|
||||||
|
|
||||||
|
import { Command, getCommands } from "./commands/index.js";
|
||||||
|
|
||||||
export default class Bot {
|
export default class Bot {
|
||||||
client: Client;
|
client: Client;
|
||||||
|
commands: { [key: string]: Command; } = {};
|
||||||
|
|
||||||
constructor(client: Client) {
|
constructor(client: Client) {
|
||||||
this.client = client;
|
this.client = client;
|
||||||
}
|
}
|
||||||
|
|
||||||
onReady = () => {
|
onReady = async () => {
|
||||||
|
this.commands = await getCommands();
|
||||||
|
|
||||||
console.log(`Logged in as ${this.client.user!.tag}`);
|
console.log(`Logged in as ${this.client.user!.tag}`);
|
||||||
|
|
||||||
this.client.user!.setPresence({
|
this.client.user!.setPresence({
|
||||||
@ -16,10 +21,29 @@ export default class Bot {
|
|||||||
name: "EVERYTHING",
|
name: "EVERYTHING",
|
||||||
type: "WATCHING",
|
type: "WATCHING",
|
||||||
}]
|
}]
|
||||||
})
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
onMessageCreate = (msg: Message) => {
|
onMessageCreate = (msg: Message) => {
|
||||||
|
const prefix = process.env.PREFIX as string;
|
||||||
|
if (msg.content.indexOf(prefix) === -1) return;
|
||||||
|
if (msg.author.bot) return;
|
||||||
|
|
||||||
|
const content = msg.content.slice(prefix.length).split(" ");
|
||||||
|
const cmd = content.shift();
|
||||||
|
if (!cmd) return;
|
||||||
|
const args = content;
|
||||||
|
|
||||||
|
const command = this.commands[cmd];
|
||||||
|
if (!command) return;
|
||||||
|
|
||||||
|
command.exec({
|
||||||
|
user: msg.author,
|
||||||
|
member: msg.member,
|
||||||
|
guild: msg.guild,
|
||||||
|
message: msg,
|
||||||
|
args: args,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
33
slowcord/bot/src/commands/index.ts
Normal file
33
slowcord/bot/src/commands/index.ts
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import { Message, GuildMember, Guild, User } from "discord.js";
|
||||||
|
import fs from "fs";
|
||||||
|
|
||||||
|
export type CommandContext = {
|
||||||
|
user: User,
|
||||||
|
guild: Guild | null,
|
||||||
|
member: GuildMember | null,
|
||||||
|
message: Message,
|
||||||
|
args: string[],
|
||||||
|
};
|
||||||
|
|
||||||
|
export type Command = {
|
||||||
|
name: string;
|
||||||
|
exec: (ctx: CommandContext) => any;
|
||||||
|
};
|
||||||
|
|
||||||
|
const walk = async (path: string): Promise<Command[]> => {
|
||||||
|
const files = fs.readdirSync(path);
|
||||||
|
const out: Command[] = [];
|
||||||
|
for (var file of files) {
|
||||||
|
if (file.indexOf("index") !== -1) continue;
|
||||||
|
|
||||||
|
var imported = await import(`${path}/${file}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getCommands = async () => {
|
||||||
|
const map: { [key: string]: Command; } = {};
|
||||||
|
(await walk("./build/commands")).forEach((val) => map[val.name] = val);
|
||||||
|
return map;
|
||||||
|
};
|
8
slowcord/bot/src/commands/instance.ts
Normal file
8
slowcord/bot/src/commands/instance.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { Command } from "./index.js";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "instance",
|
||||||
|
exec: ({ message }) => {
|
||||||
|
message.reply("Test");
|
||||||
|
}
|
||||||
|
} as Command;
|
@ -1,6 +1,6 @@
|
|||||||
import "dotenv/config";
|
import "dotenv/config";
|
||||||
import Fosscord from "fosscord-gopnik";
|
import Fosscord from "fosscord-gopnik";
|
||||||
import Bot from "./Bot";
|
import Bot from "./Bot.js"; // huh?
|
||||||
|
|
||||||
const client = new Fosscord.Client({
|
const client = new Fosscord.Client({
|
||||||
intents: ["GUILD_MESSAGES"],
|
intents: ["GUILD_MESSAGES"],
|
||||||
@ -15,7 +15,6 @@ const client = new Fosscord.Client({
|
|||||||
const bot = new Bot(client);
|
const bot = new Bot(client);
|
||||||
|
|
||||||
client.on("ready", bot.onReady);
|
client.on("ready", bot.onReady);
|
||||||
|
|
||||||
client.on("messageCreate", bot.onMessageCreate);
|
client.on("messageCreate", bot.onMessageCreate);
|
||||||
|
|
||||||
client.login(process.env.TOKEN);
|
client.login(process.env.TOKEN);
|
@ -11,7 +11,7 @@
|
|||||||
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
||||||
|
|
||||||
/* Language and Environment */
|
/* Language and Environment */
|
||||||
"target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
"target": "ES2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
||||||
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
||||||
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
||||||
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
|
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
|
||||||
@ -24,9 +24,9 @@
|
|||||||
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
||||||
|
|
||||||
/* Modules */
|
/* Modules */
|
||||||
"module": "commonjs", /* Specify what module code is generated. */
|
"module": "ES2022", /* Specify what module code is generated. */
|
||||||
// "rootDir": "./", /* Specify the root folder within your source files. */
|
// "rootDir": "./", /* Specify the root folder within your source files. */
|
||||||
// "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
|
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
|
||||||
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
||||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||||
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
||||||
|
2044
slowcord/login/package-lock.json
generated
2044
slowcord/login/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,8 @@
|
|||||||
"cookie-parser": "^1.4.6",
|
"cookie-parser": "^1.4.6",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
"express": "^4.18.1",
|
"express": "^4.18.1",
|
||||||
"node-fetch": "^3.2.6"
|
"node-fetch": "^3.2.6",
|
||||||
|
"sqlite3": "^5.0.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/cookie-parser": "^1.4.3",
|
"@types/cookie-parser": "^1.4.3",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user