## Added Dynamic Presence to Functions - Added default to startup - Added to RSS manager - Added to interaction create event - Added to message create function ## Related Work #15 ### LinkCop - Updated with new regex string and logic approved and restricted channels - Implemented new config storage ### Guild Member Add (event) - Implemented new config storage for welcome channel ### Message Create (event) - Implemented new config storage for ignored channel IDs - Improved the logic for gpt interactions to reset presence ### Mongo Config Wrappers - Updated logic in order to handle different data types the same way - Updated set functions to wrap the value in the key - Updated get functions to return the keyyed value ie `config[key]`
34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
import { DebugBuilder } from "../../modules/debugger.mjs";
|
|
const log = new DebugBuilder("server", "discordBot.events.guildMemberAdd");
|
|
import dotenv from "dotenv";
|
|
dotenv.config();
|
|
import { Events } from "discord.js";
|
|
import { gptHandler } from "../modules/gptHandler.mjs";
|
|
import { getGuildConfig, setGuildConfig, getConfig, setConfig } from "../../modules/mongo-wrappers/mongoConfigWrappers.mjs";
|
|
|
|
export const name = Events.GuildMemberAdd;
|
|
|
|
export async function execute(nodeIo, member) {
|
|
const welcomeChannel = await getGuildConfig(message.guild.id, "welcomeChannelId");
|
|
log.INFO("New user joined the server", member);
|
|
let conversation = [];
|
|
conversation.push({
|
|
role: "assistant",
|
|
content: `A new user has joined the server. Their name is '<@${member.id}>'. Please welcome them to the server and remind them about the rules.`,
|
|
});
|
|
|
|
const response = await gptHandler(conversation);
|
|
if (response) {
|
|
const responseMessage = response.choices[0].message.content;
|
|
const chunkSize = 2500;
|
|
|
|
for (let i = 0; i < responseMessage.length; i += chunkSize) {
|
|
const chunk = responseMessage.substring(i, i + chunkSize);
|
|
|
|
log.DEBUG("Sending message chunk:", chunk);
|
|
|
|
await nodeIo.serverClient.channels.cache.get(welcomeChannel).send(chunk);
|
|
}
|
|
}
|
|
}
|