Allikevel å gjøre dette discord.js koden mer kompakt?

stemmer
0

Opprette en bot bruke discord.js kalt xok bot Im benytter denne koden for å sette et tilfeldig tall, og bildet tildelt dette nummeret vises, men etter 30 mark, blir koden en lang, anstrengende beløp når im sikker det kan bli forkortet,

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

Publisert på 14/01/2020 klokken 00:05
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Hvis døpe bildene er et alternativ du kan bruke streng interpole:

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

Hvor bildene dine vil bli navngitt 1.png, 2.png, 3.png, etc. Vær oppmerksom på de omslutter streng tegn, er `karakter nødvendig.

Svarte 14/01/2020 kl. 00:12
kilden bruker

stemmer
4

Jeg ville gjøre det slik:

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] });

Alternativt kan du bruke en matrise i stedet for et objekt og bruke indeksen i stedet for nøkkelen.
EDIT Hvis du vil bruke en matrise, må du redusere indeksen med en slik:messages[xokNum-1]

Svarte 14/01/2020 kl. 00:14
kilden bruker

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