128 lines
3.9 KiB
TypeScript
128 lines
3.9 KiB
TypeScript
import config from "config";
|
|
import client from "lib/client";
|
|
import { getRandomInt } from "lib/utils";
|
|
import {
|
|
customContent,
|
|
greetContent,
|
|
sleepContent,
|
|
} from "./greeting.components.ts";
|
|
import { Client, EmbedBuilder, type GuildMember } from "discord.js";
|
|
|
|
export class GreetingService {
|
|
async customMessage() {
|
|
console.log("custom message");
|
|
|
|
const channels = client.channels;
|
|
|
|
const channel = channels.cache.get(config.discord.channelIdBot);
|
|
|
|
if (channel?.isTextBased && channel?.isSendable()) {
|
|
await channel.send({ embeds: [this.createEmbed()] });
|
|
}
|
|
}
|
|
|
|
createEmbed() {
|
|
// ({ embeds: [exampleEmbed] })
|
|
console.log("createEmbed()");
|
|
|
|
const exampleEmbed = new EmbedBuilder()
|
|
.setColor(0x004400)
|
|
.setAuthor({
|
|
name: "avocadi - neuigkeiten",
|
|
iconURL:
|
|
"https://media.discordapp.net/attachments/1321933410188656693/1323447010380222474/mo_Avocadi_Avatar_Closeup_2.png?ex=67748b93&is=67733a13&hm=f48efb3523bca5f50e79144c7b41a127c94670e693e3da3dc2e6ffe62ad8a769&=&format=webp&quality=lossless&width=1524&height=1524",
|
|
url: "https://avocadi.unom.io",
|
|
})
|
|
.setDescription(customContent)
|
|
.setTimestamp();
|
|
//.setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' });
|
|
return exampleEmbed;
|
|
}
|
|
|
|
async welcome(member: GuildMember) {
|
|
const welcomeMessages = [
|
|
`willkommen auf dem server, ${member}! 💕`,
|
|
`hey ${member}! schoen, dass du hier bist! 😊`,
|
|
`hi ${member}, willkommen! viel spass hier! 💖`,
|
|
`willkommen, ${member}! schoen, dass du da bist! 🥳`,
|
|
`moin ${member}! viel spass im server! c:`,
|
|
`hey ${member}! herzlich willkommen! fühl dich wie zu hause! 🏡`,
|
|
`hi ${member}! cool, dass du da bist! 👏`,
|
|
`willkommen, ${member}! wir freuen uns, dass du hier bist! 💕`,
|
|
`hey ${member}! schoen, dass du bei uns bist! :3`,
|
|
`willkommen auf dem server, ${member}! viel spass hier! ✨`
|
|
];
|
|
const randomMessage = `${welcomeMessages[Math.floor(Math.random() * welcomeMessages.length)]} bitte stelle dich kurz in <#${config.discord.channelIdIntro}> vor. sobald wir deine nachricht gelesen haben, vergeben wir dir die rolle *lernende:r*, damit du alle kanaele nutzen kannst viel spass und bis bald! :) `;
|
|
|
|
try {
|
|
console.log("welcome msg");
|
|
|
|
const channels = client.channels;
|
|
const channel = channels.cache.get(
|
|
config.discord.channelIdWelcome,
|
|
);
|
|
|
|
if (channel?.isTextBased() && channel?.isSendable()) {
|
|
await channel.send(randomMessage);
|
|
}
|
|
} catch (error) {
|
|
console.error("error while senden a welcome msg:", error);
|
|
}
|
|
}
|
|
|
|
async greet() {
|
|
client.user?.setActivity("guten morgen! :3", { type: 4 });
|
|
console.log("set activity: awake");
|
|
client.user?.setPresence({
|
|
status: "online",
|
|
});
|
|
|
|
const channels = client.channels;
|
|
|
|
const channel = channels.cache.get(config.discord.testChannel);
|
|
|
|
if (channel?.isTextBased && channel?.isSendable()) {
|
|
await channel.send({ content: this.getContent(false) });
|
|
}
|
|
}
|
|
|
|
async sleep() {
|
|
client.user?.setActivity("zzzzZZ..", { type: 4 });
|
|
console.log("set activity: asleep");
|
|
client.user?.setPresence({
|
|
status: "dnd",
|
|
});
|
|
|
|
const channels = client.channels;
|
|
|
|
const channel = channels.cache.get(config.discord.testChannel);
|
|
|
|
if (channel?.isTextBased && channel?.isSendable()) {
|
|
await channel.send({ content: this.getContent(true) });
|
|
}
|
|
}
|
|
|
|
async newYear() {
|
|
client.user?.setActivity("frohes neues! :)", { type: 4 });
|
|
console.log("set activity: happy new Year");
|
|
client.user?.setPresence({
|
|
status: "online",
|
|
});
|
|
|
|
/*const channels = client.channels;
|
|
|
|
const channel = channels.cache.get(config.discord.channelId);
|
|
|
|
if (channel?.isTextBased && channel?.isSendable()) {
|
|
await channel.send({ content: "frohes neues! @everyone" });
|
|
}*/
|
|
}
|
|
|
|
getContent(asleep: boolean) {
|
|
if (asleep) {
|
|
return sleepContent[getRandomInt(0, sleepContent.length - 1)];
|
|
}
|
|
return greetContent[getRandomInt(0, greetContent.length - 1)];
|
|
}
|
|
}
|