De todos modos para hacer el código más compacto discord.js?

votos
0

La creación de un robot usando discord.js llamados bot xok Im usando este código para establecer un número al azar, y la imagen asignada a ese número se mostrará, sin embargo después de la marca de 30, el código se convierte en un largo y extenuante cantidad cuando estoy seguro que se puede acortar,

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;

TEC

Publicado el 14/01/2020 a las 00:05
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

Si el cambio de nombre de las imágenes es una opción que podría utilizar la interpolación de cadenas:

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

Donde sus imágenes serían nombrados 1.png, 2.png, 3.png, etc. Prestar atención a los caracteres de la cadena de cerramiento, se requiere que el carácter `.

Respondida el 14/01/2020 a las 00:12
fuente por usuario

votos
4

Yo lo haría de la siguiente manera:

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, puede utilizar una matriz en lugar de un objeto y utilizar el índice en lugar de la llave.
EDITAR Si desea utilizar una matriz, es necesario reducir el índice de uno como este:messages[xokNum-1]

Respondida el 14/01/2020 a las 00:14
fuente por usuario

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