diff --git a/Shared/testbot.js b/Shared/testbot.js index 9aa7e76..a97073f 100644 --- a/Shared/testbot.js +++ b/Shared/testbot.js @@ -50,8 +50,21 @@ client.on("message", function(msg) { } }); +//DEBUGGING +let dialogJson = { + "hello": [ + "Hi there {1}!", + "Howdy {1}!" + ], + "goodbye": "See ya!" +} + +let dialog = shared.GenerateDialogFunction(dialogJson); //eventually be require("./dialog.json") +console.log(dialog("hello", "Kayne")); + //actually log in client.login(process.env.DEVELOPER_TOKEN); //TODO: change usernames to tags throughout the shared library -//FIXME: The server currently queries chest count, which is not in the database. \ No newline at end of file +//FIXME: The server currently queries chest count, which is not in the database. + diff --git a/Shared/utility.js b/Shared/utility.js index 2f3d81f..3b51a39 100644 --- a/Shared/utility.js +++ b/Shared/utility.js @@ -20,6 +20,25 @@ exports.CloneArray = function(arg) { } } +//GenerateDialogFunction +//dialogJson - the json object containing the bot's dialog +exports.GenerateDialogFunction = function(dialogJson) { + return function(key, data1 = "", data2 = "", data3 = "") { + let result; + + if (Array.isArray(dialogJson[key])) { + result = dialogJson[key][Math.floor(Math.random() * dialogJson[key].length)]; + } else { + result = dialogJson[key]; + } + + return result + .replace(/\{1\}/g, data1) + .replace(/\{2\}/g, data2) + .replace(/\{3\}/g, data3); + } +} + //GetFooterCommands - Gets footer commands for botspam channel commands //commandArray - the array of possible commands to use //excludeCommand (optional) - the command to filter out