Finish "new" command, and other stuff

This commit is contained in:
Isaac
2021-04-05 18:38:00 +01:00
parent 01519df0cf
commit 4b3ba238bd
15 changed files with 369 additions and 255 deletions

View File

@@ -21,9 +21,6 @@ module.exports = class TicketArchives {
});
if (t_row) {
let embeds = [];
for (let embed in message.embeds) embeds.push({ ...message.embeds[embed] });
await this.client.db.models.Message.create({
id: message.id,
ticket: t_row.id,
@@ -31,7 +28,9 @@ module.exports = class TicketArchives {
data: {
content: message.content,
// time: message.createdTimestamp,
embeds,
embeds: message.embeds.map(embed => {
return { embed };
}),
attachments: [...message.attachments.values()]
}
});
@@ -48,14 +47,11 @@ module.exports = class TicketArchives {
});
if (m_row) {
let embeds = [];
for (let embed in message.embeds) embeds.push({ ...message.embeds[embed] });
m_row.data = {
content: message.content,
// time: message.editedTimestamp,
embeds: message.embeds.map(embed => {
return { ...message.embeds[embed] };
return { embed };
}),
attachments: [...message.attachments.values()]
};
@@ -90,77 +86,77 @@ module.exports = class TicketArchives {
}
});
if (m_row) {
// message author
let u_model_data = {
user: message.author.id,
if (!m_row) return;
// message author
let u_model_data = {
user: message.author.id,
ticket: message.channel.id
};
let [u_row] = await this.client.db.models.UserEntity.findOrCreate({
where: u_model_data,
defaults: u_model_data
});
await u_row.update({
avatar: message.author.displayAvatarURL(),
username: message.author.username,
discriminator: message.author.discriminator,
display_name: message.member.displayName,
colour: message.member.displayColor === 0 ? null : int2hex(message.member.displayColor),
bot: message.author.bot
});
// mentioned members
message.mentions.members.forEach(async member => {
let m_model_data = {
user: member.user.id,
ticket: message.channel.id
};
let [u_row] = await this.client.db.models.UserEntity.findOrCreate({
where: u_model_data,
defaults: u_model_data
});
await u_row.update({
avatar: message.author.displayAvatarURL(),
username: message.author.username,
discriminator: message.author.discriminator,
display_name: message.member.displayName,
colour: message.member.displayColor === 0 ? null : int2hex(message.member.displayColor),
bot: message.author.bot
let [m_row] = await this.client.db.models.UserEntity.findOrCreate({
where: m_model_data,
defaults: m_model_data
});
// mentioned members
message.mentions.members.forEach(async member => {
let m_model_data = {
user: member.user.id,
ticket: message.channel.id
};
let [m_row] = await this.client.db.models.UserEntity.findOrCreate({
where: m_model_data,
defaults: m_model_data
});
await m_row.update({
avatar: member.user.displayAvatarURL(),
username: member.user.username,
discriminator: member.user.discriminator,
display_name: member.displayName,
colour: member.displayColor === 0 ? null : int2hex(member.displayColor),
bot: member.user.bot
});
await m_row.update({
avatar: member.user.displayAvatarURL(),
username: member.user.username,
discriminator: member.user.discriminator,
display_name: member.displayName,
colour: member.displayColor === 0 ? null : int2hex(member.displayColor),
bot: member.user.bot
});
});
// mentioned channels
message.mentions.channels.forEach(async channel => {
let c_model_data = {
channel: channel.id,
ticket: message.channel.id
};
let [c_row] = await this.client.db.models.ChannelEntity.findOrCreate({
where: c_model_data,
defaults: c_model_data
});
await c_row.update({
name: channel.name
});
// mentioned channels
message.mentions.channels.forEach(async channel => {
let c_model_data = {
channel: channel.id,
ticket: message.channel.id
};
let [c_row] = await this.client.db.models.ChannelEntity.findOrCreate({
where: c_model_data,
defaults: c_model_data
});
await c_row.update({
name: channel.name
});
});
// mentioned roles
message.mentions.roles.forEach(async role => {
let r_model_data = {
role: role.id,
ticket: message.channel.id
};
let [r_row] = await this.client.db.models.RoleEntity.findOrCreate({
where: r_model_data,
defaults: r_model_data
});
await r_row.update({
name: role.name,
colour: role.color === 0 ? '7289DA' : int2hex(role.color) // 7289DA = 7506394
});
// mentioned roles
message.mentions.roles.forEach(async role => {
let r_model_data = {
role: role.id,
ticket: message.channel.id
};
let [r_row] = await this.client.db.models.RoleEntity.findOrCreate({
where: r_model_data,
defaults: r_model_data
});
}
await r_row.update({
name: role.name,
colour: role.color === 0 ? '7289DA' : int2hex(role.color) // 7289DA = 7506394
});
});
}

View File

@@ -75,6 +75,7 @@ module.exports = class TicketManager extends EventEmitter {
});
this.emit('create', t_row.id, creator_id);
return t_row;
}
/**
@@ -144,6 +145,7 @@ module.exports = class TicketManager extends EventEmitter {
}
this.emit('close', ticket_id);
return t_row;
}
/**