zappyzep/backend/src/plugins/LocateUser/events/SendAlertsEvts.ts

38 lines
1.2 KiB
TypeScript

import { locateUserEvt } from "../types";
import { sendAlerts } from "../utils/sendAlerts";
export const ChannelJoinAlertsEvt = locateUserEvt({
event: "voiceChannelJoin",
async listener(meta) {
if (meta.pluginData.state.usersWithAlerts.includes(meta.args.member.id)) {
sendAlerts(meta.pluginData, meta.args.member.id);
}
},
});
export const ChannelSwitchAlertsEvt = locateUserEvt({
event: "voiceChannelSwitch",
async listener(meta) {
if (meta.pluginData.state.usersWithAlerts.includes(meta.args.member.id)) {
sendAlerts(meta.pluginData, meta.args.member.id);
}
},
});
export const ChannelLeaveAlertsEvt = locateUserEvt({
event: "voiceChannelLeave",
async listener(meta) {
const triggeredAlerts = await meta.pluginData.state.alerts.getAlertsByUserId(meta.args.member.id);
const voiceChannel = meta.args.oldChannel as VoiceChannel;
triggeredAlerts.forEach(alert => {
const txtChannel = meta.pluginData.client.getChannel(alert.channel_id) as TextableChannel;
txtChannel.createMessage(
`🔴 <@!${alert.requestor_id}> the user <@!${alert.user_id}> disconnected out of \`${voiceChannel.name}\``,
);
});
},
});