Added new event for new member joining #18
- When a new member joins the server, GPT integration will welcome them
This commit is contained in:
@@ -79,7 +79,7 @@ export function addEnabledEventListeners(serverClient, _eventsPath = "./events")
|
|||||||
}
|
}
|
||||||
|
|
||||||
// The discord client
|
// The discord client
|
||||||
export const serverClient = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] });
|
export const serverClient = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildPresences] });
|
||||||
|
|
||||||
// Run when the bot is ready
|
// Run when the bot is ready
|
||||||
serverClient.on('ready', async () => {
|
serverClient.on('ready', async () => {
|
||||||
|
|||||||
34
discordBot/events/guildMemberAdd.mjs
Normal file
34
discordBot/events/guildMemberAdd.mjs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
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";
|
||||||
|
|
||||||
|
const welcomeChannel = process.env.WELCOME_CHANNEL_ID;
|
||||||
|
|
||||||
|
export const name = Events.GuildMemberAdd;
|
||||||
|
|
||||||
|
export async function execute(nodeIo, member) {
|
||||||
|
log.INFO("New user joined the server", member);
|
||||||
|
let conversation = [];
|
||||||
|
conversation.push({
|
||||||
|
role: 'system',
|
||||||
|
content: `There has been a new user that joined. 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user