Skip to content

Commit

Permalink
convert selectMenuHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
alexemanuelol committed Aug 2, 2024
1 parent 6b72524 commit 125cb10
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 24 deletions.
3 changes: 2 additions & 1 deletion src/discordEvents/interactionCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { log, client, localeManager as lm } from '../../index';
import * as guildInstance from '../util/guild-instance';
import * as discordEmbeds from '../discordTools/discord-embeds';
import * as discordTools from '../discordTools/discord-tools';
import { selectMenuHandler } from '../handlers/select-menu-handler';
const Config = require('../../config');


Expand All @@ -50,7 +51,7 @@ export async function execute(interaction: Interaction) {
require('../handlers/buttonHandler')(client, interaction); //! TODO Needs to be refactored for typescript
}
else if (interaction.isStringSelectMenu()) {
require('../handlers/selectMenuHandler')(client, interaction);
await selectMenuHandler(interaction);
}
else if (interaction.type === InteractionType.ApplicationCommand) {
const command = client.commands.get(interaction.commandName);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
Copyright (C) 2022 Alexander Emanuelsson (alexemanuelol)
Copyright (C) 2024 Alexander Emanuelsson (alexemanuelol)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand All @@ -18,25 +18,28 @@
*/

const Discord = require('discord.js');
import * as discordjs from 'discord.js';

import { log } from '../../index';
import { log, client, localeManager as lm } from '../../index';
import { registerSlashCommands } from '../discordTools/register-slash-commands';
import * as guildInstance from '../util/guild-instance';
import * as discordTools from '../discordTools/discord-tools';
import * as discordSelectMenus from '../discordTools/discord-select-menus';
import * as discordMessages from '../discordTools/discord-messages';
const Config = require('../../config');

module.exports = async (client, interaction) => {
const instance = client.getInstance(interaction.guildId);
const guildId = interaction.guildId;
export async function selectMenuHandler(interaction: discordjs.StringSelectMenuInteraction) {
const guildId = interaction.guildId as string;
const instance = guildInstance.readGuildInstanceFile(guildId);
const rustplus = client.rustplusInstances[guildId];

const verifyId = Math.floor(100000 + Math.random() * 900000);
await client.logInteraction(interaction, verifyId, 'userSelectMenu');

if (instance.blacklist['discordIds'].includes(interaction.user.id) &&
!interaction.member.permissions.has(Discord.PermissionsBitField.Flags.Administrator)) {
log.info(client.intlGet(null, 'userPartOfBlacklist', {
if (instance.blacklist['discordIds'].includes(interaction.user.id) && interaction.member !== null &&
!(interaction.member.permissions as discordjs.PermissionsBitField).has(
discordjs.PermissionsBitField.Flags.Administrator)) {
log.info(lm.getIntl(Config.general.language, 'userPartOfBlacklist', {
id: `${verifyId}`,
user: `${interaction.user.username} (${interaction.user.id})`
}));
Expand All @@ -45,11 +48,11 @@ module.exports = async (client, interaction) => {

if (interaction.customId === 'language') {
instance.generalSettings.language = interaction.values[0];
client.setInstance(guildId, instance);
guildInstance.writeGuildInstanceFile(guildId, instance);

if (rustplus) rustplus.generalSettings.language = interaction.values[0];

log.info(client.intlGet(null, 'selectMenuValueChange', {
log.info(lm.getIntl(Config.general.language, 'selectMenuValueChange', {
id: `${verifyId}`,
value: `${instance.generalSettings.language}`
}));
Expand All @@ -63,15 +66,17 @@ module.exports = async (client, interaction) => {
});

const guild = await discordTools.getGuild(guildId);
await registerSlashCommands(guild);
if (guild instanceof discordjs.Guild) {
await registerSlashCommands(guild);
}
}
else if (interaction.customId === 'Prefix') {
instance.generalSettings.prefix = interaction.values[0];
client.setInstance(guildId, instance);
guildInstance.writeGuildInstanceFile(guildId, instance);

if (rustplus) rustplus.generalSettings.prefix = interaction.values[0];

log.info(client.intlGet(null, 'selectMenuValueChange', {
log.info(lm.getIntl(Config.general.language, 'selectMenuValueChange', {
id: `${verifyId}`,
value: `${instance.generalSettings.prefix}`
}));
Expand All @@ -82,15 +87,15 @@ module.exports = async (client, interaction) => {
}
else if (interaction.customId === 'Trademark') {
instance.generalSettings.trademark = interaction.values[0];
client.setInstance(guildId, instance);
guildInstance.writeGuildInstanceFile(guildId, instance);

if (rustplus) {
rustplus.generalSettings.trademark = interaction.values[0];
rustplus.trademarkString = (instance.generalSettings.trademark === 'NOT SHOWING') ?
'' : `${instance.generalSettings.trademark} | `;
}

log.info(client.intlGet(null, 'selectMenuValueChange', {
log.info(lm.getIntl(Config.general.language, 'selectMenuValueChange', {
id: `${verifyId}`,
value: `${instance.generalSettings.trademark}`
}));
Expand All @@ -101,11 +106,11 @@ module.exports = async (client, interaction) => {
}
else if (interaction.customId === 'CommandDelay') {
instance.generalSettings.commandDelay = interaction.values[0];
client.setInstance(guildId, instance);
guildInstance.writeGuildInstanceFile(guildId, instance);

if (rustplus) rustplus.generalSettings.commandDelay = interaction.values[0];

log.info(client.intlGet(null, 'selectMenuValueChange', {
log.info(lm.getIntl(Config.general.language, 'selectMenuValueChange', {
id: `${verifyId}`,
value: `${instance.generalSettings.commandDelay}`
}));
Expand All @@ -116,11 +121,11 @@ module.exports = async (client, interaction) => {
}
else if (interaction.customId === 'VoiceGender') {
instance.generalSettings.voiceGender = interaction.values[0];
client.setInstance(guildId, instance);
guildInstance.writeGuildInstanceFile(guildId, instance);

if (rustplus) rustplus.generalSettings.voiceGender = interaction.values[0];

log.info(client.intlGet(null, 'selectMenuValueChange', {
log.info(lm.getIntl(Config.general.language, 'selectMenuValueChange', {
id: `${verifyId}`,
value: `${instance.generalSettings.voiceGender}`
}));
Expand All @@ -142,18 +147,18 @@ module.exports = async (client, interaction) => {
if ((value !== 5 && value !== 6) ||
((value === 5 || value === 6) && server.switches[ids.entityId].location !== null)) {
server.switches[ids.entityId].autoDayNightOnOff = value;
client.setInstance(guildId, instance);
guildInstance.writeGuildInstanceFile(guildId, instance);
}

log.info(client.intlGet(null, 'selectMenuValueChange', {
log.info(lm.getIntl(Config.general.language, 'selectMenuValueChange', {
id: `${verifyId}`,
value: `${server.switches[ids.entityId].autoDayNightOnOff}`
}));

await discordMessages.sendSmartSwitchMessage(guildId, ids.serverId, ids.entityId, interaction);
}

log.info(client.intlGet(null, 'userSelectMenuInteractionSuccess', {
log.info(lm.getIntl(Config.general.language, 'userSelectMenuInteractionSuccess', {
id: `${verifyId}`
}));
}

0 comments on commit 125cb10

Please sign in to comment.