Estoy usando Autocode, así que tengo la API de Google vinculada a mi bot de discordia. Descubrí cómo hacer que el bot recupere una celda distinta, pero quiero que extraiga una al azar cada vez que se usa el comando.
Por ejemplo, un usuario quiere arrojar algo (una lista de palabras en una hoja de Google) a otro usuario. El Usuario1 escribiría "/lanzar @Usuario2" y devolvería un mensaje en discordia que dice "Usuario1 arrojó ranas a @Usuario2" o algo similar.
A continuación se muestra mi código actual, pero sé que no es correcto (especialmente la línea con la descripción)
module.exports = async (event, context) => { if (event.content === `${process.env.prefix}throw` || event.content === `${process.env.prefix}throwing`) { let text = event.content.split(' ');//splits every word in your message let database = await lib.googlesheets.query['@0.3.0'].distinct({ range: `throw!A:A`, bounds: `FIRST_EMPTY_ROW`, where: [{ }], field: `Throw` }); await lib.discord.channels['@0.1.1'].messages.create({ channel_id: event.channel_id, content: ``, embed: { title: ` `, type: 'rich', color: 0xff7700, description: `${.getRange(resultCellRow,resultCellColumn).setValue( vA[Math.floor(Math.random()*vA.length)]);} g ${database.distinct.values[0]}`,//tagged user and cell pulled from Gsheet } }) } }
Después de muchas pruebas y errores y la ayuda del soporte de Autocode, esta es la solución que se me ocurrió.
module.exports = async (event, context) => { if (event.content === `${process.env.prefix}throw`) { let text = event.content.split(' ');//splits every word in your message let query = await lib.googlesheets.query['@0.3.0'].select({ range: `throw!A:A`, bounds: `FIRST_EMPTY_ROW`, where: [{}], limit: { 'count': 0, 'offset': 0 } });//Google Sheet query console.log(query) let random = Math.floor(Math.random() * (query.rows.length - 1));//pulls random row from the query console.log(random) let throw = query.rows[random].fields.Throw;//pulls random word from the Throw column field console.log(throw) await lib.discord.channels['@0.1.1'].messages.create({ channel_id: `${context.params.event.channel_id}`, content: ``, embed: { title: ``, description: `${throw}`, color: 0xd5f2fc, }, }); } }