spooky-bot / main.ts
Mahfujul's picture
Upload 9 files
ec83114 verified
import "dotenv/config";
import { ActivityType, Client, GatewayIntentBits } from "discord.js";
import CharacterAI = require("node_characterai");
const {
Guilds,
MessageContent,
GuildMessages,
GuildMembers,
GuildVoiceStates,
} = GatewayIntentBits;
const client = new Client({
intents: [
Guilds,
MessageContent,
GuildMessages,
GuildMembers,
GuildVoiceStates,
],
});
const characterAI = new CharacterAI();
const fs = require("fs");
const eventFiles = fs
.readdirSync("./events")
.filter((file: any) => file.endsWith(".ts"));
let chatClient: any;
let characterName: any;
const connectCai = async () => {
try {
await characterAI.authenticateWithToken(process.env.ACCESS_TOKEN);
} catch (error) {
console.log(error);
}
try {
chatClient = await characterAI.createOrContinueChat(
process.env.CHARACTER_ID
);
let characterinfo = await characterAI.fetchCharacterInfo(
process.env.CHARACTER_ID
);
characterName = characterinfo.name;
await client.user.setPresence({
activities: [
{ name: `${characterinfo.name}`, type: ActivityType.Playing },
],
});
for (const file of eventFiles) {
const event = require(`./events/${file}`);
const eventName = file.split(".")[0]; // Assuming your files are named "eventname.js"
client.on(eventName, (message) => {
event(client, message, chatClient, characterName);
});
}
} catch (error) {
console.log(error);
}
};
connectCai();
client.login(process.env.TOKEN);