De qualquer forma tornar o referido código discord.js mais compacto?

votos
0

Criando um bot usando discord.js chamados xok bot Im usando este código para definir um número aleatório, e a imagem atribuído a esse número será exibido, no entanto, após a marca de 30, o código torna-se uma longa e extenuante quantidade quando im certeza ele pode ser encurtado,

exports.run = async (client, message, args, level) => {  
xokNum = Math.round(Math.random()*53)

switch(xokNum){
    case(1):
        message.channel.send({
        files:['D:/XokBotApp/xokBot/xokVariations/resized/xokAngryR.png']
         })
        break
    case(2):
        message.channel.send({
        files:['D:/XokBotApp/xokBot/xokVariations/resized/xokCreepyR.png']
         })
        break;

    case (3):
        message.channel.send({
        files:['D:/XokBotApp/xokBot/xokVariations/resized/xokCursed.png']
         })
         break;
    case (4):
        message.channel.send({
        files:['D:/XokBotApp/xokBot/xokVariations/resized/xokinator.gif']
         })
         break;
    case (5):
        message.channel.send({
        files:['D:/XokBotApp/xokBot/xokVariations/resized/xokLink.png']
         })
        break;
    case (6):
        message.channel.send({
        files:['D:/XokBotApp/xokBot/xokVariations/resized/xokMinion.png']
         })            
        break;

ECT

Publicado 14/01/2020 em 00:05
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

Se renomear as imagens é uma opção que você poderia usar interpolação string:

message.channel.send({
   files:[`D:/XokBotApp/xokBot/xokVariations/resized/${xokNum}.png`]
})

Onde as imagens seria nomeado 1.png, 2.png, 3.png, etc. Preste atenção aos caracteres da cadeia que encerram, o `personagem é necessária.

Respondeu 14/01/2020 em 00:12
fonte usuário

votos
4

Gostaria de fazê-lo como este:

exports.run = async (client, message, args, level) => {  
const xokNum = Math.round(Math.random()*53);
const messages = {
    1: 'D:/XokBotApp/xokBot/xokVariations/resized/xokAngryR.png',
    2: 'D:/XokBotApp/xokBot/xokVariations/resized/xokAngryR.png',
    3: 'D:/XokBotApp/xokBot/xokVariations/resized/xokCursed.png'
};

message.channel.send({ files: messages[xokNum] });

Alternativamente, você pode usar uma matriz em vez de um objeto e usar o índice em vez da chave.
EDIT Se você quiser usar uma matriz, você precisa reduzir o índice por um como este:messages[xokNum-1]

Respondeu 14/01/2020 em 00:14
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more