community-relations/src/events/guildMemberUpdate.ts

37 lines
1.3 KiB
TypeScript

// 585600289747369987
import { Member } from 'eris';
import { Client, Event } from '../class';
import { CloudServicesUtil } from '../util';
export default class GuildMemberAdd extends Event {
public client: Client;
constructor(client: Client) {
super(client);
this.event = 'guildMemberAdd';
}
public async run(_, member: Member, oldMember: { roles: string[], premiumSince: number }) {
try {
if (member.roles.includes('585600289747369987') && !oldMember.roles.includes('585600289747369987')) {
const csAccountData = await CloudServicesUtil.fetchAccountStatus(member.id, this.client.config.internalKey);
if (csAccountData.tier > 1) return;
const status = await CloudServicesUtil.upgradeT2(member.id, this.client.config.internalKey);
if (status !== 200) return;
}
if (!member.roles.includes('585600289747369987') && oldMember.roles.includes('585600289747369987')) {
const csAccountData = await CloudServicesUtil.fetchAccountStatus(member.id, this.client.config.internalKey);
if (csAccountData.tier === 1) return;
const status = await CloudServicesUtil.downgradeT2(member.id, this.client.config.internalKey);
if (status !== 200) return;
}
} catch (err) {
this.client.util.handleError(err);
}
}
}