From 85d9a5b2ee9a017280d60ef11651e2bfe44f8e64 Mon Sep 17 00:00:00 2001 From: "Ean Milligan (Bastion)" Date: Wed, 27 Jan 2021 02:35:46 -0500 Subject: [PATCH] V1.3.2 Released Mostly just minor bug fixes, along with a new -o flag for the roll command. config.example.ts - Refactored help command to provide more detail mod.ts - Added new rollhelp command, added new order flag for the roll command, adjusted method of handling messages of over 2k characters to attach a .txt file instead of spamming the user, API got order flag aswell, along with the 2k char adjustment README.md - Spelling corrected, added documentation for roll command flags solver.d.ts - Added new needed type solver.ts - Add new order feature, minor bug fix to correct dropping rolls correctly utils.ts - Added support for new 2k char handling www/* - Built website to showcase bot --- .vscode/settings.json | 6 +- README.md | 22 ++++- config.example.ts | 64 +++++++++------ mod.ts | 168 ++++++++++++++++++++++++--------------- src/solver.d.ts | 10 +++ src/solver.ts | 45 +++++++++-- src/utils.ts | 4 +- www/favicon.ico | Bin 0 -> 118854 bytes www/img/TheArtificer.png | Bin 0 -> 100973 bytes www/img/Thumbs.db | Bin 0 -> 26624 bytes www/index.html | 98 +++++++++++++++++++++++ www/main.css | 165 ++++++++++++++++++++++++++++++++++++++ www/main.js | 0 www/theme.css | 51 ++++++++++++ 14 files changed, 532 insertions(+), 101 deletions(-) create mode 100644 www/favicon.ico create mode 100644 www/img/TheArtificer.png create mode 100644 www/img/Thumbs.db create mode 100644 www/index.html create mode 100644 www/main.css create mode 100644 www/main.js create mode 100644 www/theme.css diff --git a/.vscode/settings.json b/.vscode/settings.json index 98e5a49..5b1cbe2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,9 @@ "deno.unstable": true, "deno.import_intellisense_origins": { "https://deno.land": true - } + }, + "spellright.language": [ + "en" + ], + "spellright.documentTypes": [] } \ No newline at end of file diff --git a/README.md b/README.md index f54e04f..59170a8 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ The Artificer comes with a few supplemental commands to the main rolling command * It looks a little complicated at first, but if you are familiar with the [Roll20 formatting](https://roll20.zendesk.com/hc/en-us/articles/360037773133-Dice-Reference), this will no different. * Any math (limited to exponentials, multiplication, division, modulus, addition, and subtraction) will be correctly handled in PEMDAS order, so use parenthesis as needed. * PI and e are available for use. - * Paramaters for rolling: + * Parameters for rolling: | Paramater | Required? | Repeatable? | Description | |---------------|-------------|---------------|--------------------------------------------------------------------------------------------------| @@ -57,13 +57,20 @@ The Artificer comes with a few supplemental commands to the main rolling command | cf>q | Optional | Yes | changes crit fail to be greater than or equal to q | | ! | Optional | No | exploding, rolls another dy for every crit roll | - * If the paramater is Required, it must be provided at all times. - * If the paramater is Repeatable, it may occur multiple times in the roll configuration. + * If the parameter is Required, it must be provided at all times. + * If the parameter is Repeatable, it may occur multiple times in the roll configuration. * Examples: * `[[4d20]]` will roll 4 d20 dice and add them together. * `[[4d20r1!]]` will roll 4 d20 dice, rerolling any dice that land on 1, and repeatedly rolling a new d20 for any critical success rolled. * `[[d20/40]]` will roll a d20 die and divide it by 40. * `[[((d20+20) - 10) / 5]]` will roll a d20, add 20 to that roll, subtract off 10, and finally divide by 5. + * This command also has some useful flags that can used. These flags simply need to be placed after all rolls in the message: + * `-nd` - No Details - Suppresses all details of the requested roll + * `-s` - Spoiler - Spoilers all details of the requested roll + * `-m` - Maximize Roll - Rolls the theoretical maximum roll, cannot be used with -n + * `-n` - Nominal Roll - Rolls the theoretical nominal roll, cannot be used with -m + * `-gm @user1 @user2 ... @usern` - GM Roll - Rolls the requested roll in GM mode, suppressing all publicly shown results and details and sending the results directly to the specified GMs + * `-o a` or `-o d` - Order Roll - Rolls the requested roll and orders the results in the requested direction ## The Artificer API The Artificer features an API that allows authenticated users to roll dice into Discord from third party applications (such as Excel macros). The API has a couple endpoints exposed to all authenticated users allowing management of channels that your API key can send rolls to. APIs requiring administrative access are not listed below. @@ -84,6 +91,13 @@ Available Endpoints: * `rollstr` - A roll string formatted identically to the roll command detailed in the "Available Commands" section. * `channel` - The Discord Channel ID that the bot is to send the results into. * `user` - Your Discord User ID. + * Optional query parameters (these parameters do not require values unless specified): + * `nd` - No Details - Suppresses all details of the requested roll. + * `s` - Spoiler - Spoilers all details of the requested roll. + * `m` - Maximize Roll - Rolls the theoretical maximum roll, cannot be used with Nominal roll. + * `n` - Nominal Roll - Rolls the theoretical nominal roll, cannot be used with Maximise roll. + * `gm` - GM Roll - Rolls the requested roll in GM mode, suppressing all publicly shown results and details and sending the results directly to the specified GMs. Takes a comma separated list of Discord User IDs. + * `o` - Order Roll - Rolls the requested roll and orders the results in the requested direction. Takes a single character: `a` or `d`. * Returns: * `200` - OK - Results of the roll should be found in Discord, but also are returned as a string via the API. * `/api/channel` @@ -118,7 +132,7 @@ If you run into any errors or problems with the bot, or think you have a good id ## Self Hosting The Artificer The Artificer was built on Deno `v1.6.3` using Discodeno `v10.0.0`. If you choose to run this yourself, you will need to rename `config.example.ts` to `config.ts` and edit some values. You will need to create a new [Discord Application](https://discord.com/developers/applications) and copy the newly generated token into the `"token"` key. If you want to utilize some of the bots dev features, you will need to fill in the keys `"logChannel"` and `"reportChannel"` with text channel IDs and `"devServer"` with a guild ID. -You will also need to install and setup a MySQL database with a user for the bot to use to add/modify the database. This user must have the "DB Manager" admin rights and "REFERENCES" Global Privalages. Once the DB is installed and a user is setup, run the provided `initDB.ts` to create the schema and tables. +You will also need to install and setup a MySQL database with a user for the bot to use to add/modify the database. This user must have the "DB Manager" admin rights and "REFERENCES" Global Privileges. Once the DB is installed and a user is setup, run the provided `initDB.ts` to create the schema and tables. Once everything is set up, starting the bot can simply be done with `deno run --allow-net .\mod.ts`. diff --git a/config.example.ts b/config.example.ts index 0b98e96..5747e84 100644 --- a/config.example.ts +++ b/config.example.ts @@ -1,6 +1,6 @@ export const config = { "name": "The Artificer", // Name of the bot - "version": "1.3.1", // Version of the bot + "version": "1.3.2", // Version of the bot "token": "the_bot_token", // Discord API Token for this bot "prefix": "[[", // Prefix for all commands "postfix": "]]", // Postfix for rolling command @@ -29,30 +29,48 @@ export const config = { "```", "__**Commands:**__", "```", - "[[? - This Command", - "[[ping - Pings the bot to check connectivity", - "[[version - Prints the bots version", - "[[popcat - Popcat", - "[[report [text] - Report a command that failed to run", - "[[stats - Statistics on the bot", + "[[? - This Command", + "[[rollhelp or ?? - Details on how to use the roll command, listed as [[xdy...]] below", + "[[ping - Pings the bot to check connectivity", + "[[version - Prints the bots version", + "[[popcat - Popcat", + "[[report [text] - Report a command that failed to run", + "[[stats - Statistics on the bot", + "[[xdydzracsq!]] ... - Rolls all configs requested, you may repeat the command multiple times in the same message (just ensure you close each roll with ]]), run [[?? for more details", + "```" + ], + "rollhelp": [ // Array of strings that makes up the rollhelp command, placed here to keep source code cleaner + "```fix", + "The Artificer Roll Command Details", + "```", + "```", "[[xdydzracsq!]] ... - Rolls all configs requested, you may repeat the command multiple times in the same message (just ensure you close each roll with ]])", - "* x [OPT] - number of dice to roll, if omitted, 1 is used", - "* dy [REQ] - size of dice to roll, d20 = 20 sided die", - "* dz || dlz [OPT] - drops the lowest z dice, cannot be used with kz", - "* kz || khz [OPT] - keeps the highest z dice, cannot be used with dz", - "* dhz [OPT] - drops the highest z dice, cannot be used with kz", - "* klz [OPT] - keeps the lowest z dice, cannot be used with dz", - "* ra [OPT] - rerolls any rolls that match a, r3 will reroll any dice that land on 3, throwing out old rolls", - "* csq || cs=q [OPT] - changes crit score to q", - "* csq [OPT] - changes crit score to be greater than or equal to q ", - "* cfq || cs=q [OPT] - changes crit fail to q", - "* cfq [OPT] - changes crit fail to be greater than or equal to q", - "* ! [OPT] - exploding, rolls another dy for every crit roll", + "* x [OPT] - number of dice to roll, if omitted, 1 is used", + "* dy [REQ] - size of dice to roll, d20 = 20 sided die", + "* dz or dlz [OPT] - drops the lowest z dice, cannot be used with kz", + "* kz or khz [OPT] - keeps the highest z dice, cannot be used with dz", + "* dhz [OPT] - drops the highest z dice, cannot be used with kz", + "* klz [OPT] - keeps the lowest z dice, cannot be used with dz", + "* ra [OPT] - rerolls any rolls that match a, r3 will reroll any dice that land on 3, throwing out old rolls", + "* csq or cs=q [OPT] - changes crit score to q", + "* csq [OPT] - changes crit score to be greater than or equal to q ", + "* cfq or cs=q [OPT] - changes crit fail to q", + "* cfq [OPT] - changes crit fail to be greater than or equal to q", + "* ! [OPT] - exploding, rolls another dy for every crit roll", "*", - "* This command also can fully solve math equations (containing exponentials, multiplication, division, modulus, addition, and subtraction)", - "* Parenthesis are also fully supported, so use as much as needed", + "* This command also can fully solve math equations with parenthesis", + "*", + "* This command also has some useful flags that can used. These flags simply need to be placed after all rolls in the message:", + " * -nd No Details - Suppresses all details of the requested roll", + " * -s Spoiler - Spoilers all details of the requested roll", + " * -m Maximize Roll - Rolls the theoretical maximum roll, cannot be used with -n", + " * -n Nominal Roll - Rolls the theoretical nominal roll, cannot be used with -m", + " * -gm @user1 @user2 @usern", + " * GM Roll - Rolls the requested roll in GM mode, suppressing all publicly shown results and details and sending the results directly to the specified GMs", + " * -o a or -o d", + " * Order Roll - Rolls the requested roll and orders the results in the requested direction", "```" ], "emojis": [ // Array of objects containing all emojis that the bot can send on your behalf, empty this array if you don't want any of them diff --git a/mod.ts b/mod.ts index eeac8e7..aab4252 100644 --- a/mod.ts +++ b/mod.ts @@ -13,7 +13,8 @@ import { startBot, editBotsStatus, Intents, StatusTypes, ActivityType, Message, Guild, sendMessage, sendDirectMessage, - cache + cache, + MessageContent } from "https://deno.land/x/discordeno@10.0.0/mod.ts"; import { serve } from "https://deno.land/std@0.83.0/http/server.ts"; @@ -95,6 +96,14 @@ startBot({ }); } + // [[rollhelp or [[rh or [[hr + // Help command specifically for the roll command + else if (command === "rollhelp" || command === "rh" || command === "hr" || command === "??") { + utils.sendIndirectMessage(message, config.rollhelp.join("\n"), sendMessage, sendDirectMessage).catch(err => { + console.error("Failed to send message 21", message, err); + }); + } + // [[help or [[h or [[? // Help command, prints from help file else if (command === "help" || command === "h" || command === "?") { @@ -153,7 +162,8 @@ startBot({ maxRoll: false, nominalRoll: false, gmRoll: false, - gms: [] + gms: [], + order: "" }; // Check if any of the args are command flags and pull those out into the modifiers object @@ -205,6 +215,27 @@ startBot({ return; } + args.splice(i, 1); + i--; + break; + case "-o": + args.splice(i, 1); + + if (args[i].toLowerCase() !== "d" && args[i].toLowerCase() !== "a") { + // If -o is on and asc or desc was not specified, error out + m.edit("Error: Must specifiy a or d to order the rolls ascending or descending"); + + if (config.logRolls) { + // If enabled, log rolls so we can verify the bots math + dbClient.execute("INSERT INTO roll_log(input,result,resultid,api,error) values(?,?,?,0,1)", [originalCommand, "NoOrderFound", m.id]).catch(e => { + console.log("Failed to insert into database 05", e); + }); + } + return; + } + + modifiers.order = args[i].toLowerCase(); + args.splice(i, 1); i--; break; @@ -228,7 +259,7 @@ startBot({ // Rejoin all of the args and send it into the solver, if solver returns a falsy item, an error object will be substituded in const rollCmd = command + " " + args.join(" "); - const returnmsg = solver.parseRoll(rollCmd, config.prefix, config.postfix, modifiers.maxRoll, modifiers.nominalRoll) || { error: true, errorCode: "EmptyMessage", errorMsg: "Error: Empty message", line1: "", line2: "", line3: "" }; + const returnmsg = solver.parseRoll(rollCmd, config.prefix, config.postfix, modifiers.maxRoll, modifiers.nominalRoll, modifiers.order) || { error: true, errorCode: "EmptyMessage", errorMsg: "Error: Empty message", line1: "", line2: "", line3: "" }; let returnText = ""; @@ -262,14 +293,16 @@ startBot({ // And message the full details to each of the GMs, alerting roller of every GM that could not be messaged modifiers.gms.forEach(async e => { - const msgs = utils.split2k(returnText); - const failedDMs = []; - for (let i = 0; ((failedDMs.indexOf(e) === -1) && (i < msgs.length)); i++) { - await sendDirectMessage(e.substr(2, (e.length - 3)), msgs[i]).catch(() => { - failedDMs.push(e); - utils.sendIndirectMessage(message, "WARNING: " + e + " could not be messaged. If this issue persists, make sure direct messages are allowed from this server.", sendMessage, sendDirectMessage); - }); - } + // If its too big, collapse it into a .txt file and send that instead. + const b = await new Blob([returnText as BlobPart], {"type": "text"}); + + // Update return text + returnText = "<@" + message.author.id + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nFull details have been attached to this messaged as a `.txt` file for verification purposes."; + + // Attempt to DM the GMs and send a warning if it could not DM a GM + await sendDirectMessage(e.substr(2, (e.length - 3)), {"content": returnText, "file": {"blob": b, "name": "rollDetails.txt"}}).catch(() => { + utils.sendIndirectMessage(message, "WARNING: " + e + " could not be messaged. If this issue persists, make sure direct messages are allowed from this server.", sendMessage, sendDirectMessage); + }); }); // Finally send the text @@ -284,26 +317,21 @@ startBot({ } else { // When not a GM roll, make sure the message is not too big if (returnText.length > 2000) { - // If its too big, attempt to DM details to the roller - const msgs = utils.split2k(returnText); - let failed = false; - for (let i = 0; (!failed && (i < msgs.length)); i++) { - await sendDirectMessage(message.author.id, msgs[i]).catch(() => { - failed = true; - }); - } + // If its too big, collapse it into a .txt file and send that instead. + const b = await new Blob([returnText as BlobPart], {"type": "text"}); - // If DM fails to send, alert roller of the failure, else handle normally - if (failed) { - returnText = "<@" + message.author.id + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nDetails have been ommitted from this message for being over 2000 characters. WARNING: <@" + message.author.id + "> could **NOT** be messaged full details for verification purposes."; - } else { - returnText = "<@" + message.author.id + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nDetails have been ommitted from this message for being over 2000 characters. Full details have been messaged to <@" + message.author.id + "> for verification purposes."; - } + // Update return text + returnText = "<@" + message.author.id + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nDetails have been ommitted from this message for being over 2000 characters. Full details have been attached to this messaged as a `.txt` file for verification purposes."; + + // Remove the original message to send new one with attachment + m.delete(); + + await utils.sendIndirectMessage(message, {"content": returnText, "file": {"blob": b, "name": "rollDetails.txt"}}, sendMessage, sendDirectMessage); + } else { + // Finally send the text + m.edit(returnText); } - // Finally send the text - m.edit(returnText); - if (config.logRolls) { // If enabled, log rolls so we can verify the bots math dbClient.execute("INSERT INTO roll_log(input,result,resultid,api,error) values(?,?,?,0,0)", [originalCommand, returnText, m.id]).catch(e => { @@ -682,11 +710,22 @@ if (config.api.enable) { break; } + if (query.has("o") && (query.get("o")?.toLowerCase() !== "d" && query.get("o")?.toLowerCase() !== "a")) { + // Alert API user that they messed up + request.respond({ status: Status.BadRequest, body: STATUS_TEXT.get(Status.BadRequest) }); + + // Always log API rolls for abuse detection + dbClient.execute("INSERT INTO roll_log(input,result,resultid,api,error) values(?,?,?,1,1)", [originalCommand, "BadOrder", null]).catch(e => { + console.log("Failed to insert into database 10", e); + }); + break; + } + // Clip off the leading prefix. API calls must be formatted with a prefix at the start to match how commands are sent in Discord rollCmd = rollCmd.substr(rollCmd.indexOf(config.prefix) + 2).replace(/%20/g, " "); // Parse the roll and get the return text - const returnmsg = solver.parseRoll(rollCmd, config.prefix, config.postfix, query.has("m"), query.has("n")); + const returnmsg = solver.parseRoll(rollCmd, config.prefix, config.postfix, query.has("m"), query.has("n"), query.has("o") ? (query.get("o")?.toLowerCase() || "") : ""); // Alert users why this message just appeared and how they can report abues pf this feature const apiPrefix = "The following roll was conducted using my built in API. If someone in this channel did not request this roll, please report API abuse here: <" + config.api.supportURL + ">\n\n"; @@ -754,26 +793,28 @@ if (config.api.enable) { // And message the full details to each of the GMs, alerting roller of every GM that could not be messaged gms.forEach(async e => { - const msgs = utils.split2k(returnText); - const failedDMs = []; - for (let i = 0; ((failedDMs.indexOf(e) === -1) && (i < msgs.length)); i++) { - await sendDirectMessage(e, msgs[i]).catch(async () => { - failedDMs.push(e); - const failedSend = "WARNING: <@" + e + "> could not be messaged. If this issue persists, make sure direct messages are allowed from this server." - // Send the return message as a DM or normal message depening on if the channel is set - if ((query.get("channel") || "").length > 0) { - m = await sendMessage(query.get("channel") || "", failedSend).catch(() => { - request.respond({ status: Status.InternalServerError, body: "Message 10 failed to send." }); - errorOut = true; - }); - } else { - m = await sendDirectMessage(query.get("user") || "", failedSend).catch(() => { - request.respond({ status: Status.InternalServerError, body: "Message 11 failed to send." }); - errorOut = true; - }); - } - }); - } + // If its too big, collapse it into a .txt file and send that instead. + const b = await new Blob([returnText as BlobPart], {"type": "text"}); + + // Update return text + returnText = apiPrefix + "<@" + query.get("user") + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nFull details have been attached to this messaged as a `.txt` file for verification purposes."; + + // Attempt to DM the GMs and send a warning if it could not DM a GM + await sendDirectMessage(e, {"content": returnText, "file": {"blob": b, "name": "rollDetails.txt"}}).catch(async () => { + const failedSend = "WARNING: <@" + e + "> could not be messaged. If this issue persists, make sure direct messages are allowed from this server." + // Send the return message as a DM or normal message depening on if the channel is set + if ((query.get("channel") || "").length > 0) { + m = await sendMessage(query.get("channel") || "", failedSend).catch(() => { + request.respond({ status: Status.InternalServerError, body: "Message 10 failed to send." }); + errorOut = true; + }); + } else { + m = await sendDirectMessage(query.get("user") || "", failedSend).catch(() => { + request.respond({ status: Status.InternalServerError, body: "Message 11 failed to send." }); + errorOut = true; + }); + } + }); }); // Always log API rolls for abuse detection @@ -789,33 +830,30 @@ if (config.api.enable) { break; } } else { + const newMessage : MessageContent= {}; + newMessage.content = returnText; + // When not a GM roll, make sure the message is not too big if (returnText.length > 2000) { - // If its too big, attempt to DM details to the roller - const msgs = utils.split2k(returnText); - let failed = false; - for (let i = 0; (!failed && (i < msgs.length)); i++) { - await sendDirectMessage(query.get("user") || "", msgs[i]).catch(() => { - failed = true; - }); - } + // If its too big, collapse it into a .txt file and send that instead. + const b = await new Blob([returnText as BlobPart], {"type": "text"}); - // If DM fails to send, alert roller of the failure, else handle normally - if (failed) { - returnText = apiPrefix + "<@" + query.get("user") + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nDetails have been ommitted from this message for being over 2000 characters. WARNING: <@" + query.get("user") + "> could **NOT** be messaged full details for verification purposes."; - } else { - returnText = apiPrefix + "<@" + query.get("user") + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nDetails have been ommitted from this message for being over 2000 characters. Full details have been messaged to <@" + query.get("user") + "> for verification purposes."; - } + // Update return text + returnText = "<@" + query.get("user") + ">" + returnmsg.line1 + "\n" + returnmsg.line2 + "\nDetails have been ommitted from this message for being over 2000 characters. Full details have been attached to this messaged as a `.txt` file for verification purposes."; + + // Set info into the newMessage + newMessage.content = returnText; + newMessage.file = {"blob": b, "name": "rollDetails.txt"}; } // Send the return message as a DM or normal message depening on if the channel is set if ((query.get("channel") || "").length > 0) { - m = await sendMessage(query.get("channel") || "", returnText).catch(() => { + m = await sendMessage(query.get("channel") || "", newMessage).catch(() => { request.respond({ status: Status.InternalServerError, body: "Message 20 failed to send." }); errorOut = true; }); } else { - m = await sendDirectMessage(query.get("user") || "", returnText).catch(() => { + m = await sendDirectMessage(query.get("user") || "", newMessage).catch(() => { request.respond({ status: Status.InternalServerError, body: "Message 21 failed to send." }); errorOut = true; }); diff --git a/src/solver.d.ts b/src/solver.d.ts index f11adba..8ac0ae9 100644 --- a/src/solver.d.ts +++ b/src/solver.d.ts @@ -19,6 +19,16 @@ export type SolvedStep = { containsFail: boolean }; +// ReturnData is the temporary internal type used before getting turned into SolvedRoll +export type ReturnData = { + rollTotal: number, + rollPostFormat: string, + rollDetails: string, + containsCrit: boolean, + containsFail: boolean, + initConfig: string +}; + // SolvedRoll is the complete solved and formatted roll, or the error said roll created export type SolvedRoll = { error: boolean, diff --git a/src/solver.ts b/src/solver.ts index 2ea1e2f..26b54a8 100644 --- a/src/solver.ts +++ b/src/solver.ts @@ -4,7 +4,7 @@ * December 21, 2020 */ -import { RollSet, SolvedStep, SolvedRoll } from "./solver.d.ts"; +import { RollSet, SolvedStep, SolvedRoll, ReturnData } from "./solver.d.ts"; // MAXLOOPS determines how long the bot will attempt a roll // Default is 5000000 (5 million), which results in at most a 10 second delay before the bot calls the roll infinite or too complex @@ -30,6 +30,18 @@ const compareRolls = (a: RollSet, b: RollSet): number => { return 0; }; +// compareTotalRolls(a, b) returns -1|0|1 +// compareTotalRolls is used to order an array of RollSets by RollSet.roll +const compareTotalRolls = (a: ReturnData, b: ReturnData): number => { + if (a.rollTotal < b.rollTotal) { + return -1; + } + if (a.rollTotal > b.rollTotal) { + return 1; + } + return 0; +}; + // compareRolls(a, b) returns -1|0|1 // compareRolls is used to order an array of RollSets by RollSet.origidx const compareOrigidx = (a: RollSet, b: RollSet): number => { @@ -134,7 +146,7 @@ const roll = (rollStr: string, maximiseRoll: boolean, nominalRoll: boolean): Rol } // Rejoin all remaining parts - let remains = dpts.join(""); + let remains = dpts.join("d"); // Get the die size out of the remains and into the rollConf rollConf.dieSize = parseInt(remains.slice(0, afterDieIdx)); remains = remains.slice(afterDieIdx); @@ -721,7 +733,7 @@ const fullSolver = (conf: (string | number | SolvedStep)[], wrapDetails: boolean // parseRoll(fullCmd, localPrefix, localPostfix, maximiseRoll, nominalRoll) // parseRoll handles converting fullCmd into a computer readable format for processing, and finally executes the solving -const parseRoll = (fullCmd: string, localPrefix: string, localPostfix: string, maximiseRoll: boolean, nominalRoll: boolean): SolvedRoll => { +const parseRoll = (fullCmd: string, localPrefix: string, localPostfix: string, maximiseRoll: boolean, nominalRoll: boolean, order: string): SolvedRoll => { const returnmsg = { error: false, errorMsg: "", @@ -736,7 +748,7 @@ const parseRoll = (fullCmd: string, localPrefix: string, localPostfix: string, m // Split the fullCmd by the command prefix to allow every roll/math op to be handled individually const sepRolls = fullCmd.split(localPrefix); - const tempReturnData = []; + const tempReturnData: ReturnData[] = []; // Loop thru all roll/math ops for (let i = 0; i < sepRolls.length; i++) { @@ -841,6 +853,15 @@ const parseRoll = (fullCmd: string, localPrefix: string, localPostfix: string, m } else if (nominalRoll) { line1 = " requested the theoretical nominal of: `[[" + fullCmd + "`"; line2 = "Theoretical Nominal Results: "; + } else if (order === "a") { + line1 = " requested the following rolls to be ordered from least to greatest: `[[" + fullCmd + "`"; + line2 = "Results: "; + tempReturnData.sort(compareTotalRolls); + } else if (order === "d") { + line1 = " requested the following rolls to be ordered from greatest to least: `[[" + fullCmd + "`"; + line2 = "Results: "; + tempReturnData.sort(compareTotalRolls); + tempReturnData.reverse(); } else { line1 = " rolled: `[[" + fullCmd + "`"; line2 = "Results: "; @@ -862,11 +883,23 @@ const parseRoll = (fullCmd: string, localPrefix: string, localPostfix: string, m } // Populate line2 (the results) and line3 (the details) with their data - line2 += preFormat + e.rollTotal + postFormat + escapeCharacters(e.rollPostFormat, "|*_~`") + " "; + if (order === "") { + line2 += preFormat + e.rollTotal + postFormat + escapeCharacters(e.rollPostFormat, "|*_~`"); + } else { + // If order is on, turn rolls into csv without formatting + line2 += preFormat + e.rollTotal + postFormat + ", "; + } + + line2 = line2.replace(/\*\*\*\*/g, "** **").replace(/____/g, "__ __").replace(/~~~~/g, "~~ ~~"); line3 += "`" + e.initConfig + "` = " + e.rollDetails + " = " + preFormat + e.rollTotal + postFormat + "\n"; }); + // If order is on, remove trailing ", " + if (order !== "") { + line2 = line2.substr(0, (line2.length - 2)); + } + // Fill in the return block returnmsg.line1 = line1; returnmsg.line2 = line2; @@ -951,7 +984,7 @@ const parseRoll = (fullCmd: string, localPrefix: string, localPostfix: string, m errorMsg = "Error: One or more operands reached NaN, check input"; break; case "UndefinedStep": - errorMsg = "Error: Roll became undefined, one ore more operands are not a roll or a number, check input"; + errorMsg = "Error: Roll became undefined, one or more operands are not a roll or a number, check input"; break; default: console.error(errorName, errorDetails); diff --git a/src/utils.ts b/src/utils.ts index 1610af8..2c69b3d 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -4,7 +4,7 @@ * December 21, 2020 */ -import { Message } from "https://deno.land/x/discordeno@10.0.0/mod.ts"; +import { Message, MessageContent } from "https://deno.land/x/discordeno@10.0.0/mod.ts"; // split2k(longMessage) returns shortMessage[] // split2k takes a long string in and cuts it into shorter strings to be sent in Discord @@ -130,7 +130,7 @@ const cmdPrompt = async (logChannel: string, botName: string, sendMessage: (c: s // sendIndirectMessage(originalMessage, messageContent, sendMessage, sendDirectMessage) returns Message // sendIndirectMessage determines if the message needs to be sent as a direct message or as a normal message -const sendIndirectMessage = async (originalMessage: Message, messageContent: string, sendMessage: (c: string, m: string) => Promise, sendDirectMessage: (c: string, m: string) => Promise): Promise => { +const sendIndirectMessage = async (originalMessage: Message, messageContent: (string | MessageContent), sendMessage: (c: string, m: (string | MessageContent)) => Promise, sendDirectMessage: (c: string, m: (string | MessageContent)) => Promise): Promise => { if (originalMessage.guildID === "") { // guildID was empty, meaning the original message was sent as a DM return await sendDirectMessage(originalMessage.author.id, messageContent); diff --git a/www/favicon.ico b/www/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ed905ac9421083cafb3392cc9e7da8f0cfe6c24a GIT binary patch literal 118854 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 literal 0 HcmV?d00001 diff --git a/www/img/TheArtificer.png b/www/img/TheArtificer.png new file mode 100644 index 0000000000000000000000000000000000000000..43954684737465caec9cffc265dd89b7a0b2a953 GIT binary patch literal 100973 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 e|E1;q`~N@I=Y1*kLOIp|0000>Um3LNve<#ua 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 + + + + + + + + + + + The Artificer Discord Bot + + + + + + + + + + + + + + + + + + + +

+ +
+
+

The One-Stop Discord Bot for Rolling Dice

+
+
+ +
+

The Artificer is an open source Discord bot that specializes in rolling dice. The bot utilizes the compact Roll20 formatting for ease of use and will correctly perform any needed math on the roll (limited to basic algebra).

+

This bot was developed to replace the Sidekick discord bot after it went offline many times for extended periods. This was also developed to fix some annoyances that were found with Sidekick, specifically its vague error messages (such as "Tarantallegra!", what is that supposed to mean) and its inability to handle implicit multiplication (such as 4(12 + 20)).

+

Invite The Artificer to Your Server | Support Server | GitHub Repository

+
+
+
+

Example Commands:

+
+

Rolling Command:

+

This command is what the bot is all about. Using the Roll20 format, any form of dice roll can be performed, with any needed math calculated into the results. This command can even be used as a fairly advanced calculator, supporting parenthesis, exponentials, multiplication, division, modulus, addition, and subtraction.

+

Examples:

+

[[d20]] - Rolls a simple d20 without anything fancy

+

[[4d20r1!]] - Rolls 4 d20 dice, rerolling any dice that land on 1, and repeatedly rolling a new d20 for any critical success rolled

+

[[((d20+20) - 10) / 5]] - Rolls a d20 die, adds 20 to that roll, subtracts off 10, and finally divide by 5

+

[[7d67d5]] - Rolls a 7 d67 dice, dropping the lowest 5 dice

+

[[(32 * 12) + 5]] - Multiplies 32 and 12, and adds 5 to that result

+

And infinitely more possibilities. Any equations and/or rolls can be thrown at the bot and it will compute it quickly. Run the [[rollhelp command for full details of this command.

+
+

Supporting Commands:

+

The following commands are just some basic utility commands.

+

Examples:

+

[[stats or [[s - Shows the stats on how many servers and users are using the bot

+

[[help or [[? - Gives the full list of available commands

+

[[rollhelp or [[?? - Gives the full details on the roll command, explaining the Roll20 format

+
+
+
+

The Artificer API

+
+

Trusted users will be provided with an API key that allows rolling of dice from third party programs. This API was developed to let DnD groups that use Excel to manage player sheets to roll dice directly from Excel to Discord. The API is very restricted and has a harsh rate limit to prevent spam.

+

There is a ZERO tolerance for API abuse. If abuse is detected or reported, the user will be banned with no chance to appeal. Currently, API keys are only given out to users known personally to the devs of this bot, but plans are in the works to open this up to more users using a form of registration.

+

If you happen to be a trusted user, information on the API endpoints can be found in the GitHub Repository. Basic administration of your API key can be done using the API Tools linked at the top of this page.

+
+
+
$nbsp;
+
+ +
+ + diff --git a/www/main.css b/www/main.css new file mode 100644 index 0000000..b6f7687 --- /dev/null +++ b/www/main.css @@ -0,0 +1,165 @@ +body { + font-family: "Play", sans-serif; + + padding: 0; + margin: 0; + overflow: hidden; +} + +#page { + height: 100vh; + display: grid; + grid-template-columns: auto; + grid-template-rows: 3rem calc(100vh - 5rem) 2rem; + grid-template-areas: "header" "page-contents" "footer"; + + color: var(--page-font-color); + background-color: var(--page-bg-color); +} + +#header { + grid-area: header; + + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto; + grid-template-areas: "header-left header-right"; + + font-family: "Cinzel", serif; + font-size: 2rem; + line-height: 3rem; + font-weight: 500; + padding: 0 10px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + background-color: var(--header-bg-color); + color: var(--header-font-color); + border-bottom: 1px solid var(--header-font-color); +} + +#header-left { + grid-area: header-left; +} + +#header-right { + grid-area: header-right; + justify-self: end; + + font-size: 1.75rem; +} + +#footer { + grid-area: footer; + + display: grid; + grid-template-columns: 1fr 1.5fr 1.5fr 1fr; + grid-template-rows: auto; + grid-template-areas: ". footer-left footer-right ."; + + line-height: 2rem; + height: 2rem; + + background-color: var(--footer-bg-color); +} + +#footer-left { + grid-area: footer-left; +} + +#footer-right { + grid-area: footer-right; + justify-self: end; +} + +#page-contents { + grid-area: page-contents; + padding: 0 20rem; + height: calc(100vh - 5rem); + + display: grid; + grid-template-columns: auto; + grid-template-rows: fit-content(5rem) fit-content(10rem) fit-content(37rem) auto 1rem; + grid-template-areas: "slogan" "logo-desc" "examples" "api" "final"; + + overflow-y: auto; +} + +#slogan { + grid-area: slogan; +} +#slogan h1 { + line-height: 2.5rem; + font-size: 2.5rem; +} + +#logo-desc { + grid-area: logo-desc; + + margin-bottom: 0.5rem; + + display: grid; + grid-template-columns: 11rem auto; + grid-template-rows: auto; + grid-template-areas: "logo description"; +} + +#logo { + grid-area: logo; + margin: auto; +} +#logo img { + height: 10rem; +} + +#description { + grid-area: description; +} + +#examples { + grid-area: examples; +} + +h4.example { + line-height: 0.25rem; +} + +p.example { + margin: 0; + margin-bottom: 0.1rem; + padding: 0; +} + +.slug h3 { + margin-top: 0; +} + +#api { + grid-area: api; +} + +#final { + grid-area: final; +} + +@media screen and (max-width: 1900px) { + #page-contents { + padding: 0 10rem; + } +} + +@media screen and (max-width: 1400px) { + #page-contents { + padding: 0 5rem; + } +} + +@media screen and (max-width: 1000px) { + #page-contents { + padding: 0 1rem; + } +} diff --git a/www/main.js b/www/main.js new file mode 100644 index 0000000..e69de29 diff --git a/www/theme.css b/www/theme.css new file mode 100644 index 0000000..9d21e11 --- /dev/null +++ b/www/theme.css @@ -0,0 +1,51 @@ +/* Color theme roughly based on: + * https://paletton.com/#uid=5000p0kw8dLmVn9rgiuHN93Sj4E + */ +:root { + --header-font-color: rgb(238, 237, 226); + --header-bg-color: rgb(110, 0, 0); + + --page-font-color: white; + --page-bg-color: rgb(32, 34, 37); + + --footer-bg-color: rgb(54, 57, 63); + + --link-new-color: rgb(147, 22, 22); + --link-hover-color: rgb(255, 94, 94); + --link-visited-color: rgb(184, 52, 52); + + --code-bg: rgb(47, 49, 54); + + --slug-bg: rgb(15, 16, 17); + --slug-border: rgb(0, 0, 0); +} + +#header a { + color: var(--header-font-color); + text-decoration: none; +} + +a { + color: var(--link-new-color); +} + +a:active, a:visited { + color: var(--link-visited-color); +} + +a:hover, +#header a:hover { + cursor: pointer; + color: var(--link-hover-color); +} + +code { + background-color: var(--code-bg); +} + +.slug { + padding: 0.5rem; + background-color: var(--slug-bg); + border: 4px solid var(--slug-border); + border-radius: 1.5rem; +}