Skip to content

Commit

Permalink
feat(detector): add database logic
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperchupuDev committed Aug 29, 2021
1 parent ba6a9dd commit 259b413
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 75 deletions.
56 changes: 34 additions & 22 deletions commands/bot/detector.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,24 @@ module.exports = {
permissions: 'MANAGE_MESSAGES',

async execute(client, message) {
const buttons = [
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Low',
customId: `detector:low:${message.author.id}`
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Medium',
customId: `detector:medium:${message.author.id}`
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Hiqh',
customId: `detector:hiqh:${message.author.id}`
}
];
const level = client.db.prepare('SELECT level FROM guilds WHERE id = ?').get(message.guild.id)?.level ?? 1;
let levelText;
switch (level) {
case 0:
levelText = 'Low';
break;
case 1:
levelText = 'Medium';
break;
case 2:
levelText = 'Hiqh';
break;
}

message.channel.send({
embeds: [{
title: 'G Detector Levels',
description: 'Your current protection level: **Low**',
description: `Your current protection level: **${levelText}**`,
color: client.config.color,
fields: [
{
Expand All @@ -47,7 +40,26 @@ module.exports = {
}],
components: [{
type: 'ACTION_ROW',
components: buttons
components: [
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Low',
customId: `detector:low:${message.author.id}`
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Medium',
customId: `detector:medium:${message.author.id}`
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Hiqh',
customId: `detector:hiqh:${message.author.id}`
}
]
}]
});
}
Expand Down
76 changes: 48 additions & 28 deletions interactions/commands/detector.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,53 @@ module.exports = {
name: 'detector',

async execute(client, interaction) {
const level = interaction.options.getString('level');
const input = interaction.options.getString('level');
const database = client.db.prepare('SELECT level FROM guilds WHERE id = ?').get(interaction.guildId);
const statement = database ? 'UPDATE guilds SET level = @level WHERE id = @id' : 'INSERT INTO guilds (id, level) VALUES (@id, @level)';

let levelText;
let description;
let fields = null;
switch (level) {

switch (database?.level ?? 1) {
case 0:
levelText = 'Low';
break;

case 1:
levelText = 'Medium';
break;

case 2:
levelText = 'Hiqh';
break;
}

switch (input) {
case 'low':
description = 'Successfully set detection level to **Low**!';
client.db.prepare(statement).run({ id: interaction.guildId, level: 0 });
break;

case 'medium':
description = 'Successfully set detection level to **Medium**!';
client.db.prepare(statement).run({ id: interaction.guildId, level: 1 });
break;

case 'hiqh':
description = 'Successfully set detection level to **Hiqh**!';
client.db.prepare(statement).run({ id: interaction.guildId, level: 2 });
break;

default:
description = 'Your current protection level: **Low**';
description = `Your current protection level: **${levelText}**`;
fields = [
{ name: 'Low', value: 'Detects messaqes that only consist of G' },
{ name: 'Medium', value: 'Detects G outside words' },
{ name: 'Hiqh', value: 'Detects a messaqe if it contains G' }
];
}

const buttons = [
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Low',
customId: `detector:low:${interaction.user.id}`,
disabled: level === 'low'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Medium',
customId: `detector:medium:${interaction.user.id}`,
disabled: level === 'medium'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Hiqh',
customId: `detector:hiqh:${interaction.user.id}`,
disabled: level === 'hiqh'
}
];

interaction.reply({
embeds: [{
title: 'G Detector Levels',
Expand All @@ -60,7 +58,29 @@ module.exports = {
}],
components: [{
type: 'ACTION_ROW',
components: buttons
components: [
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Low',
customId: `detector:low:${interaction.user.id}`,
disabled: input === 'low'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Medium',
customId: `detector:medium:${interaction.user.id}`,
disabled: input === 'medium'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Hiqh',
customId: `detector:hiqh:${interaction.user.id}`,
disabled: input === 'hiqh'
}
]
}]
});
}
Expand Down
53 changes: 28 additions & 25 deletions interactions/components/detector.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,27 @@ module.exports = {
name: 'detector',

async execute(client, interaction) {
const database = client.db.prepare('SELECT level FROM guilds WHERE id = ?').get(interaction.guildId);
const statement = database ? 'UPDATE guilds SET level = @level WHERE id = @id' : 'INSERT INTO guilds (id, level) VALUES (@id, @level)';
let description;

switch (interaction.value) {
case 'low':
description = 'Successfully set detection level to **Low**!';
client.db.prepare(statement).run({ id: interaction.guildId, level: 0 });
break;

case 'medium':
description = 'Successfully set detection level to **Medium**!';
client.db.prepare(statement).run({ id: interaction.guildId, level: 1 });
break;

case 'hiqh':
description = 'Successfully set detection level to **Hiqh**!';
client.db.prepare(statement).run({ id: interaction.guildId, level: 2 });
break;
}

const buttons = [
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Low',
customId: `detector:low:${interaction.user.id}`,
disabled: interaction.value === 'low'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Medium',
customId: `detector:medium:${interaction.user.id}`,
disabled: interaction.value === 'medium'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Hiqh',
customId: `detector:hiqh:${interaction.user.id}`,
disabled: interaction.value === 'hiqh'
}
];

interaction.update({
embeds: [{
title: 'G Detector Levels',
Expand All @@ -50,7 +31,29 @@ module.exports = {
}],
components: [{
type: 'ACTION_ROW',
components: buttons
components: [
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Low',
customId: `detector:low:${interaction.user.id}`,
disabled: interaction.value === 'low'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Medium',
customId: `detector:medium:${interaction.user.id}`,
disabled: interaction.value === 'medium'
},
{
type: 'BUTTON',
style: 'SECONDARY',
label: 'Hiqh',
customId: `detector:hiqh:${interaction.user.id}`,
disabled: interaction.value === 'hiqh'
}
]
}]
});
}
Expand Down

0 comments on commit 259b413

Please sign in to comment.