mirror of
https://github.com/ApfelTeeSaft/Reload-Backend.git
synced 2026-08-27 03:43:27 +00:00
95 lines
3.7 KiB
JavaScript
95 lines
3.7 KiB
JavaScript
const { MessageEmbed } = require("discord.js");
|
|
const User = require("../../../model/user.js")
|
|
const functions = require("../../../structs/functions.js");
|
|
|
|
module.exports = {
|
|
commandInfo: {
|
|
name: "create",
|
|
description: "Creates an account on Reload Backend.",
|
|
options: [
|
|
{
|
|
name: "email",
|
|
description: "Your email.",
|
|
required: true,
|
|
type: 3
|
|
},
|
|
{
|
|
name: "username",
|
|
description: "Your username.",
|
|
required: true,
|
|
type: 3
|
|
},
|
|
{
|
|
name: "password",
|
|
description: "Your password.",
|
|
required: true,
|
|
type: 3
|
|
}
|
|
],
|
|
},
|
|
execute: async (interaction) => {
|
|
await interaction.deferReply({ ephemeral: true });
|
|
|
|
const { options } = interaction;
|
|
|
|
const discordId = interaction.user.id;
|
|
const email = options.get("email").value;
|
|
const username = options.get("username").value;
|
|
const password = options.get("password").value;
|
|
|
|
const plainEmail = options.get('email').value;
|
|
const plainUsername = options.get('username').value;
|
|
|
|
const existingEmail = await User.findOne({ email: plainEmail });
|
|
const existingUser = await User.findOne({ username: plainUsername });
|
|
|
|
const emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
|
|
if (!emailFilter.test(email)) {
|
|
return interaction.editReply({ content: "You did not provide a valid email address!", ephemeral: true });
|
|
}
|
|
if (existingEmail) {
|
|
return interaction.editReply({ content: "Email is already in use, please choose another one.", ephemeral: true });
|
|
}
|
|
if (existingUser) {
|
|
return interaction.editReply({ content: "Username already exists. Please choose a different one.", ephemeral: true });
|
|
}
|
|
if (username.length >= 25) {
|
|
return interaction.editReply({ content: "Your username must be less than 25 characters long.", ephemeral: true });
|
|
}
|
|
if (username.length < 3) {
|
|
return interaction.editReply({ content: "Your username must be at least 3 characters long.", ephemeral: true });
|
|
}
|
|
if (password.length >= 128) {
|
|
return interaction.editReply({ content: "Your password must be less than 128 characters long.", ephemeral: true });
|
|
}
|
|
if (password.length < 4) {
|
|
return interaction.editReply({ content: "Your password must be at least 4 characters long.", ephemeral: true });
|
|
}
|
|
|
|
await functions.registerUser(discordId, username, email, password).then(resp => {
|
|
let embed = new MessageEmbed()
|
|
.setColor(resp.status >= 400 ? "#ff0000" : "#56ff00")
|
|
.setThumbnail(interaction.user.avatarURL({ format: 'png', dynamic: true, size: 256 }))
|
|
.addFields({
|
|
name: "Message",
|
|
value: "Successfully created an account.",
|
|
}, {
|
|
name: "Username",
|
|
value: username,
|
|
}, {
|
|
name: "Discord Tag",
|
|
value: interaction.user.tag,
|
|
})
|
|
.setTimestamp()
|
|
.setFooter({
|
|
text: "Reload Backend",
|
|
iconURL: "https://i.imgur.com/2RImwlb.png"
|
|
})
|
|
|
|
if (resp.status >= 400) return interaction.editReply({ embeds: [embed], ephemeral: true });
|
|
|
|
(interaction.channel ? interaction.channel : interaction.user).send({ embeds: [embed] });
|
|
interaction.editReply({ content: "You successfully created an account!", ephemeral: true });
|
|
});
|
|
}
|
|
} |