help- displays this help screenchalls- displays all available challengeschall <challid>- displays information about a challengesubmit <challid> <flag>- submits a flag for checking (this can only be used in a direct message with the bot)vote <challid> <vote value>- vote on the difficulty of a challenge, on a scale from (easy) 1 to 10 (hard)profile (user)- displays the profile of the specified user, or the person who issued the command if not specifiedleaderboard- displays the global leaderboardsolves <challid>- displays the solvers and their time of solving for a challengenotes <challid>- displays notes/resources/hints for a challenge (only use this if you're stuck!)about- displays information about the bot
- Fork this repository.
- Create a new file in
/src/challs/with filename<challid>.jsand paste the template below in:
const path = require('path')
const { getBotConfig, genChallEmbed } = require(path.join(__dirname, '../util/util'))
const { themecolour } = getBotConfig()
const description = `<description message goes here (supports basic markdown)>`
var chall = {
challid: '<challid goes here>',
title: '<chall title goes here>',
category: '<chall category goes here>',
points: 0,
authorid: '<discord id goes here>',
authorName: '<author display name goes here>',
flag: '<sha256 hash of flag goes here>',
description,
desc: async function(msg) {
let { challid, title, category, points, authorid, authorName, description } = chall
var descEmbed = await genChallEmbed({
challid, title, category, points, authorid, authorName, themecolour, description
})
msg.channel.send({ embed: descEmbed })
},
notes: []
}
module.exports = chall- If your challenge doesn't require any further interactivity, you should only need to edit the
challid,title,category,points,authorid,authorName,flagfields and thedescriptionmessage, you can also optionally add somenotes, - Create a pull request.