fix: bypass onboarding & verify

This commit is contained in:
Elysia 2024-01-25 19:22:05 +07:00
parent 4692e5b7d1
commit 088543921d

View File

@ -541,32 +541,42 @@ class Client extends BaseClient {
// Onboarding // Onboarding
if (onboardingData.enabled) { if (onboardingData.enabled) {
const prompts = onboardingData.prompts.filter(o => o.in_onboarding); const prompts = onboardingData.prompts.filter(o => o.in_onboarding);
if (prompts.length) {
const onboarding_prompts_seen = {};
const onboarding_responses = [];
const onboarding_responses_seen = {};
const onboarding_prompts_seen = {}; const currentDate = Date.now();
const onboarding_responses = [];
const onboarding_responses_seen = {};
const currentDate = Date.now(); prompts.forEach(prompt => {
onboarding_prompts_seen[prompt.id] = currentDate;
prompts.forEach(prompt => { if (prompt.required) onboarding_responses.push(prompt.options[0].id);
onboarding_prompts_seen[prompt.id] = currentDate; prompt.options.forEach(option => {
if (prompt.required) onboarding_responses.push(prompt.options[0].id); onboarding_responses_seen[option.id] = currentDate;
prompt.options.forEach(option => { });
onboarding_responses_seen[option.id] = currentDate;
}); });
});
await this.api.guilds[i.guild?.id]['onboarding-responses'].post({ await this.api.guilds[i.guild?.id]['onboarding-responses'].post({
data: { data: {
onboarding_prompts_seen, onboarding_prompts_seen,
onboarding_responses, onboarding_responses,
onboarding_responses_seen, onboarding_responses_seen,
}, },
}); });
this.emit(Events.DEBUG, `[Invite > Guild ${i.guild?.id}] Bypassed onboarding`); this.emit(Events.DEBUG, `[Invite > Guild ${i.guild?.id}] Bypassed onboarding`);
}
} }
// Read rule // Read rule
if (data.show_verification_form) { if (data.show_verification_form) {
// Check Guild
if (i.guild.verificationLevel == 'VERY_HIGH' && !this.user.phone) {
this.emit(Events.DEBUG, `[Invite > Guild ${i.guild?.id}] Cannot bypass verify (Phone required)`);
return this.guilds.cache.get(i.guild?.id);
}
if (i.guild.verificationLevel !== 'NONE' && !this.user.email) {
this.emit(Events.DEBUG, `[Invite > Guild ${i.guild?.id}] Cannot bypass verify (Email required)`);
return this.guilds.cache.get(i.guild?.id);
}
const getForm = await this.api const getForm = await this.api
.guilds(i.guild?.id) .guilds(i.guild?.id)
['member-verification'].get({ query: { with_guild: false, invite_code: this.code } }) ['member-verification'].get({ query: { with_guild: false, invite_code: this.code } })