diff --git a/ADAM/adam.js b/ADAM/adam.js index 5e4a9b1..63ec612 100644 --- a/ADAM/adam.js +++ b/ADAM/adam.js @@ -14,7 +14,7 @@ let shared = require("../Shared/shared"); //dialog system let dialog = shared.GenerateDialogFunction(require("./dialog.json")); -//ADAM dialog decorator +//dialog decorator dialog = function(baseDialog) { return function(key, ...data) { if ( (key === "help" || key === "lore") && typeof(data[0]) !== "undefined") { @@ -27,7 +27,7 @@ dialog = function(baseDialog) { let result = baseDialog(key, ...data); if (result === "") { - return "No result for \"" + key + "\""; + return dialog("noResult", key); } return result; } @@ -152,16 +152,6 @@ function processBasicCommands(client, message) { message.delete(1000); } return true; - - case "help": - case "lore": - shared.SendPublicMessage(client, message.author, message.channel, dialog(command, args[0])); - return true; - - //DEBUGGING - case "debugxp": - shared.AddXP(client, message.author, args[0]); - return true; } return false; diff --git a/ADAM/dialog.json b/ADAM/dialog.json index f6ee4f0..093769e 100644 --- a/ADAM/dialog.json +++ b/ADAM/dialog.json @@ -92,5 +92,7 @@ "loreSanctum": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", "loreLibrarian": "WARNING: DATA CORRUPTED", "loreCodex": "WARNING: DATA CORRUPTED", - "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon." + "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", + + "noResult": "No result for \"{1}\"" } diff --git a/ADAM/npcSettings.js b/ADAM/npcSettings.js index ed4e094..726b83a 100644 --- a/ADAM/npcSettings.js +++ b/ADAM/npcSettings.js @@ -1,8 +1,8 @@ require('dotenv').config({path: '../.env'}); module.exports = { - activity: "Automated Data Analysis Machine.", - type: "PLAYING", - token: process.env.ADAM_TOKEN, - botChannel: "default" + activity: "Automated Data Analysis Machine.", + type: "PLAYING", + token: process.env.ADAM_TOKEN, + botChannel: "default" } diff --git a/ADAM/package.json b/ADAM/package.json index 687cfc7..3f4a514 100644 --- a/ADAM/package.json +++ b/ADAM/package.json @@ -13,8 +13,9 @@ "license": "ISC", "dependencies": { "discord.js": "^11.4.2", - "dotenv": "^6.0.0", + "dotenv": "^6.1.0", "forever": "^0.15.3", - "node-cron": "^1.2.1" + "node-cron": "^1.2.1", + "sync-request": "^6.0.0" } } diff --git a/ADAM_CptMon/adam-cptmon.js b/ADAM_CptMon/adam-cptmon.js index 8ceb7cb..f482ef4 100644 --- a/ADAM_CptMon/adam-cptmon.js +++ b/ADAM_CptMon/adam-cptmon.js @@ -13,6 +13,25 @@ let shared = require("../Shared/shared"); //dialog system let dialog = shared.GenerateDialogFunction(require("./dialog.json")); +//dialog decorator +dialog = function(baseDialog) { + return function(key, ...data) { + if ( (key === "help" || key === "lore") && typeof(data[0]) !== "undefined") { + //force the arg into camelCase + arg = data[0].toLowerCase(); + arg = arg.charAt(0).toUpperCase() + arg.substr(1); + key += arg; + } + + let result = baseDialog(key, ...data); + + if (result === "") { + return dialog("noResult", key); + } + return result; + } +}(dialog); + //handle errors client.on('error', console.error); @@ -98,6 +117,16 @@ function processBasicCommands(client, message) { message.delete(1000); } return true; + + case "help": + case "lore": + //skip the gate channel + if (message.channel.id === process.env.GATE_CHANNEL_ID) { + return true; + } + + shared.SendPublicMessage(client, message.author, message.channel, dialog(command, args[0])); + return true; } return false; diff --git a/ADAM_CptMon/dialog.json b/ADAM_CptMon/dialog.json index f6ee4f0..093769e 100644 --- a/ADAM_CptMon/dialog.json +++ b/ADAM_CptMon/dialog.json @@ -92,5 +92,7 @@ "loreSanctum": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", "loreLibrarian": "WARNING: DATA CORRUPTED", "loreCodex": "WARNING: DATA CORRUPTED", - "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon." + "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", + + "noResult": "No result for \"{1}\"" } diff --git a/ADAM_CptMon/npcSettings.js b/ADAM_CptMon/npcSettings.js index 1a34acd..59aa9aa 100644 --- a/ADAM_CptMon/npcSettings.js +++ b/ADAM_CptMon/npcSettings.js @@ -1,8 +1,8 @@ require('dotenv').config({path: '../.env'}); module.exports = { - activity: "for !genesis recruits.", - type: "WATCHING", - token: process.env.MONTGOMERY_GENESIS_TOKEN, - botChannel: process.env.GROUP_B_BOT_ID + activity: "for !genesis recruits.", + type: "WATCHING", + token: process.env.MONTGOMERY_GENESIS_TOKEN, + botChannel: process.env.GROUP_B_BOT_ID } \ No newline at end of file diff --git a/ADAM_CptMon/package.json b/ADAM_CptMon/package.json index bca672f..14ce17f 100644 --- a/ADAM_CptMon/package.json +++ b/ADAM_CptMon/package.json @@ -13,8 +13,9 @@ "license": "ISC", "dependencies": { "discord.js": "^11.4.2", - "dotenv": "^6.0.0", + "dotenv": "^6.1.0", "forever": "^0.15.3", - "node-cron": "^1.2.1" + "node-cron": "^1.2.1", + "sync-request": "^6.0.0" } } diff --git a/ADAM_Dairo/adam-dairo.js b/ADAM_Dairo/adam-dairo.js index dad4bf4..bac002c 100644 --- a/ADAM_Dairo/adam-dairo.js +++ b/ADAM_Dairo/adam-dairo.js @@ -13,6 +13,25 @@ let shared = require("../Shared/shared"); //dialog system let dialog = shared.GenerateDialogFunction(require("./dialog.json")); +//dialog decorator +dialog = function(baseDialog) { + return function(key, ...data) { + if ( (key === "help" || key === "lore") && typeof(data[0]) !== "undefined") { + //force the arg into camelCase + arg = data[0].toLowerCase(); + arg = arg.charAt(0).toUpperCase() + arg.substr(1); + key += arg; + } + + let result = baseDialog(key, ...data); + + if (result === "") { + return dialog("noResult", key); + } + return result; + } +}(dialog); + //handle errors client.on('error', console.error); @@ -98,6 +117,16 @@ function processBasicCommands(client, message) { message.delete(1000); } return true; + + case "help": + case "lore": + //skip the gate channel + if (message.channel.id === process.env.GATE_CHANNEL_ID) { + return true; + } + + shared.SendPublicMessage(client, message.author, message.channel, dialog(command, args[0])); + return true; } return false; diff --git a/ADAM_Dairo/dialog.json b/ADAM_Dairo/dialog.json index f6ee4f0..093769e 100644 --- a/ADAM_Dairo/dialog.json +++ b/ADAM_Dairo/dialog.json @@ -92,5 +92,7 @@ "loreSanctum": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", "loreLibrarian": "WARNING: DATA CORRUPTED", "loreCodex": "WARNING: DATA CORRUPTED", - "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon." + "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", + + "noResult": "No result for \"{1}\"" } diff --git a/ADAM_Dairo/npcSettings.js b/ADAM_Dairo/npcSettings.js index 4c5fc8d..1845455 100644 --- a/ADAM_Dairo/npcSettings.js +++ b/ADAM_Dairo/npcSettings.js @@ -1,8 +1,8 @@ require('dotenv').config({path: '../.env'}); module.exports = { - activity: "for !hand recruits.", - type: "WATCHING", - token: process.env.DAIRO_HAND_TOKEN, - botChannel: process.env.GROUP_C_BOT_ID + activity: "for !hand recruits.", + type: "WATCHING", + token: process.env.DAIRO_HAND_TOKEN, + botChannel: process.env.GROUP_C_BOT_ID } diff --git a/ADAM_Dairo/package.json b/ADAM_Dairo/package.json index ae078b0..947b4ff 100644 --- a/ADAM_Dairo/package.json +++ b/ADAM_Dairo/package.json @@ -13,8 +13,9 @@ "license": "ISC", "dependencies": { "discord.js": "^11.4.2", - "dotenv": "^6.0.0", + "dotenv": "^6.1.0", "forever": "^0.15.3", - "node-cron": "^1.2.1" + "node-cron": "^1.2.1", + "sync-request": "^6.0.0" } } diff --git a/ADAM_Kamala/adam-kamala.js b/ADAM_Kamala/adam-kamala.js index cf85015..b6bd839 100644 --- a/ADAM_Kamala/adam-kamala.js +++ b/ADAM_Kamala/adam-kamala.js @@ -13,6 +13,25 @@ let shared = require("../Shared/shared"); //dialog system let dialog = shared.GenerateDialogFunction(require("./dialog.json")); +//dialog decorator +dialog = function(baseDialog) { + return function(key, ...data) { + if ( (key === "help" || key === "lore") && typeof(data[0]) !== "undefined") { + //force the arg into camelCase + arg = data[0].toLowerCase(); + arg = arg.charAt(0).toUpperCase() + arg.substr(1); + key += arg; + } + + let result = baseDialog(key, ...data); + + if (result === "") { + return dialog("noResult", key); + } + return result; + } +}(dialog); + //handle errors client.on('error', console.error); @@ -98,6 +117,16 @@ function processBasicCommands(client, message) { message.delete(1000); } return true; + + case "help": + case "lore": + //skip the gate channel + if (message.channel.id === process.env.GATE_CHANNEL_ID) { + return true; + } + + shared.SendPublicMessage(client, message.author, message.channel, dialog(command, args[0])); + return true; } return false; diff --git a/ADAM_Kamala/dialog.json b/ADAM_Kamala/dialog.json index f6ee4f0..093769e 100644 --- a/ADAM_Kamala/dialog.json +++ b/ADAM_Kamala/dialog.json @@ -92,5 +92,7 @@ "loreSanctum": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", "loreLibrarian": "WARNING: DATA CORRUPTED", "loreCodex": "WARNING: DATA CORRUPTED", - "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon." + "loreFactions": "TODO: Sorry. I recognize the term but am unable to process the request. There is a corruption in my cognitive core. Try again soon.", + + "noResult": "No result for \"{1}\"" } diff --git a/ADAM_Kamala/npcSettings.js b/ADAM_Kamala/npcSettings.js index 396fbc0..f595683 100644 --- a/ADAM_Kamala/npcSettings.js +++ b/ADAM_Kamala/npcSettings.js @@ -1,8 +1,8 @@ require('dotenv').config({path: '../.env'}); module.exports = { - activity: "for !obsidian recruits.", - type: "WATCHING", - token: process.env.KAMALA_OBSIDIAN_TOKEN, - botChannel: process.env.GROUP_A_BOT_ID + activity: "for !obsidian recruits.", + type: "WATCHING", + token: process.env.KAMALA_OBSIDIAN_TOKEN, + botChannel: process.env.GROUP_A_BOT_ID } diff --git a/ADAM_Kamala/package.json b/ADAM_Kamala/package.json index 5a9aede..d3876a4 100644 --- a/ADAM_Kamala/package.json +++ b/ADAM_Kamala/package.json @@ -13,8 +13,9 @@ "license": "ISC", "dependencies": { "discord.js": "^11.4.2", - "dotenv": "^6.0.0", + "dotenv": "^6.1.0", "forever": "^0.15.3", - "node-cron": "^1.2.1" + "node-cron": "^1.2.1", + "sync-request": "^6.0.0" } } diff --git a/Librarian/dialog.json b/Librarian/dialog.json new file mode 100644 index 0000000..09e224c --- /dev/null +++ b/Librarian/dialog.json @@ -0,0 +1,55 @@ +{ + "help": "PLEASE CHOOSE A SUBJECT: lore [subject]. TYPE !subjects FOR A LIST OF SUBJECTS.", + "lore": "PLEASE CHOOSE A SUBJECT: lore [subject]. TYPE !subjects FOR A LIST OF SUBJECTS.", + + "subjects": "SUBJECTS ARE: adam, kamala, captain, dairo, ghost, alexis, mori, mosiah, rey\n\nType !more1 for more.", + + "loreAdam": "THE SHEPARD OF THE PEOPLE. THERE IS MORE TO HIM THAN MEETS THE LIGHT RECEPTOR. I DON'T LIKE HIM.", + "loreKamala": "MONEY-HUNGRY, BACK-STABBING, GREEDY-GUTS. EASY TO PREDICT. I LIKE HER.", + "loreCaptain": "CAPTAIN MONTGOMERY. FINE, UPSTANDING OFFICER OF LAW AND JUSTICE. EASY TO PREDICT. I LIKE HIM.", + "loreDairo": "DEVOUT TO A FAULT. BELIEVES HIS OWN TEACHINGS. EASY TO PREDICT. I LIKE HIM.", + "loreGhost": "UNKNOWN, GATHERING DATA. BE CAUTIOUS.", + "loreAlexis": "CHEMIST. BARTENDER. INFORMANT. EASY TO PREDICT. I LIKE HER.", + "loreMori": "DOCTOR. INTELLIGENT. DANGEROUS. DIFFICULT TO PREDICT. I DON'T LIKE HIM.", + "loreMosiah": "UNKNOWN, GATHERING DATA. BE CAUTIOUS.", + "loreRey": "UNKNOWN, GATHERING DATA. BE CAUTIOUS.", + + "more1": "SUBJECTS ARE: city, obsidian, genesis, hand, librarian, crystals, eve, secrets\n\nType !more2 for more.", + + "loreCity": "THE CITY. ALSO KNOWN AS SANCTUM. CONSTRUCTED FOR HUMANS.", + "loreObsidian": "CORPORATION. FACTION. BUSINESS LIKE. EASY TO PREDICT. I LIKE THEM.", + "loreGenesis": "COMMAND STRUCTURE. FACTION. LAW ENFORCERS. EASY TO PREDICT. I LIKE THEM.", + "loreHand": "RELIGION. FACTION. DEVOUT WORSHIPPERS OF TECHNOLOGY. EASY TO PREDICT. I LIKE THEM.", + "loreLibrarian": "ME. SENTINEL. AWAITING !signal.", + "loreCrystals": "PINKISH-PURPLE CRYSTALS. EDIBLE. USED AS NUTRIENTS AND CURRENCY.", + "loreEve": "WARNING WARNING WARNING DO NOT APPROACH EVE.", + "loreSecrets": "EVERY CITY HAS IT'S SECRETS. THIS ONE IS NO EXCEPTION.", + + "loreSignal": "I MUST WAIT FOR THE signal.", + "signal": "I CANNOT INITIATE THE signal. I MUST WAIT FOR THE signal.", + + "more2": "SUBJECTS ARE: about, games, books, library, tavern, bugs\n\nType !more4 for more.", + + "loreAbout": "CREATED BY THE WONDERFUL FOLKS AT GAME DEV UNDERGROUND.", + "loreGames": "THIS IS A LIBRARY. NOT A PLACE FOR GAMES.", + "loreBooks": "PLEASE CHOOSE A BOOK: !book [name].", + "loreLibrary": "THERE ARE 114,327 BOOKS CATALOGUED AND ARCHIVED WITHIN THIS LIBRARY. THE CONTENTS OF THIS LIBRARY IS ESTIMATED TO BE 23% CATALOGUED AND ARCHIVED.", + "loreTavern": "THIS IS A LIBRARY. NOT A PLACE FOR DRINKS.", + "loreBugs": "WHERE?", + + "more3": "data expunged -A.D.A.M.", + + "more4": "SUBJECTS ARE: ", + "more5": "SUBJECTS ARE: ", + "more6": "SUBJECTS ARE: ", + + "book": "THAT BOOK IS NOT CATALOGUED OR ARCHIVED.", + + "bookCodex": "codex HAS BEEN REMOVED FROM THE LIBRARY FOR CLEANING.", + + "buydrink": "THIS IS A LIBRARY. NOT A PLACE FOR DRINKS.", + "heal": "THIS IS A LIBRARY. NOT A PLACE FOR HEALING.", + "read": "PLEASE CHOOSE A BOOK: !book [name].", + + "noResult": "UNKNOWN" +} \ No newline at end of file diff --git a/Librarian/librarian.js b/Librarian/librarian.js index 05f810f..f4eccb5 100644 --- a/Librarian/librarian.js +++ b/Librarian/librarian.js @@ -2,131 +2,116 @@ require('dotenv').config({path: '../.env'}); // Node Modules -const Discord = require('discord.js'); -const client = new Discord.Client(); -const cron = require('node-cron'); +let discord = require('discord.js'); +let client = new discord.Client(); +//let cron = require('node-cron'); // Bot Modules -const dataRequest = require('../modules/dataRequest'); -const calcRandom = require('../modules/calcRandom'); +let npcSettings = require('./npcSettings'); +let shared = require("../Shared/shared"); -// State Machine (Uncomment if needed) -var BotEnumState = { - WAITING: 0, - ACTIVE: 1 -} -var botState = BotEnumState.ACTIVE; +//dialog system +let dialog = shared.GenerateDialogFunction(require("./dialog.json")); -const playingMessage = 'Scribe of the Codex'; -const breakMessage = "Taking a break..." +//ADAM dialog decorator +//NOTE: This isn't strictly necessary for the bots +dialog = function(baseDialog) { + return function(key, ...data) { + if ( (key === "help" || key === "lore" || key == "book") && typeof(data[0]) !== "undefined") { + //force the arg into camelCase + arg = data[0].toLowerCase(); + arg = arg.charAt(0).toUpperCase() + arg.substr(1); + key += arg; + } -// The ready event is vital, it means that your bot will only start reacting to information -// from Discord _after_ ready is emitted + let result = baseDialog(key, ...data); + + if (result === "") { + return baseDialog("noResult"); + } + return result; + } +}(dialog); + +//handle errors +client.on('error', console.error); + +// The ready event is vital, it means that your bot will only start reacting to information from discord _after_ ready is emitted client.on('ready', async () => { - // Generates invite link - try { - let link = await client.generateInvite(["ADMINISTRATOR"]); - console.log("Invite Link: " + link); - } catch(e) { - console.log(e.stack); - } + // Generates invite link + try { + let link = await client.generateInvite(["ADMINISTRATOR"]); + console.log("Invite Link: " + link); + } catch(e) { + console.log(e.stack); + } - // You can set status to 'online', 'invisible', 'away', or 'dnd' (do not disturb) - client.user.setStatus('online'); - // Sets your "Playing" - client.user.setActivity(playingMessage); - console.log(`Connected! \ - \nLogged in as: ${client.user.username} - (${client.user.id})`); + // You can set status to 'online', 'invisible', 'away', or 'dnd' (do not disturb) + client.user.setStatus('online'); + + // Sets your "Playing" + if (npcSettings.activity) { + client.user.setActivity(npcSettings.activity, { type: npcSettings.type }) + //DEBUGGING + .then(presence => console.log("Activity set to " + (presence.game ? presence.game.name : 'none')) ) + .catch(console.error); + } + + console.log("Logged in as: " + client.user.username + " - " + client.user.id); }); // Create an event listener for messages client.on('message', async message => { - // Ignores ALL bot messages - if (message.author.bot) return; - // Message has to be in Outskirts (should be edited later) - if (!(message.channel.id === process.env.TAVERN_CHANNEL_ID - || message.channel.id === process.env.TEST_CHANNEL_ID)) return; - // Has to be (prefix)command - if (message.content.indexOf(process.env.PREFIX) !== 0) return; + // Ignores ALL bot messages + if (message.author.bot) { + return; + } - // "This is the best way to define args. Trust me." - // - Some tutorial dude on the internet - const args = message.content.slice(process.env.PREFIX.length).trim().split(/ +/g); - const command = args.shift().toLowerCase(); + //skip the statis channel + if (message.channel.id === process.env.STASIS_CHANNEL_ID) { + return; + } - switch (command) { - case "ping": - if (isAdmin(message.author.id)) - message.reply("Pong!"); - break; - case "summon": - if (isAdmin(message.author.id)) { - console.log("Summon the bot!"); - BotTurnOnline(process.env.TAVERN_CHANNEL_ID); - } - break; - case "vanish": - if (isAdmin(message.author.id)) { - BotTurnOffline(process.env.TAVERN_CHANNEL_ID); - } - break; - } + //skip the gate channel + if (message.channel.id === process.env.GATE_CHANNEL_ID) { + return; + } + + // Has to be (prefix)command + if (message.content.indexOf(process.env.PREFIX) !== 0) { + return; + } + + if (processBasicCommands(client, message)) { + return; + } }); -client.on('error', console.error); +//Log our bot in +client.login(npcSettings.token); -// Turn online and turn offline -function BotTurnOnline(channel) { - sendMessage(channel, `Insert Online Message here. \ - \n\n***SOME BOLD AND ITALIC TEXT***`); - client.user.setStatus('online'); - client.user.setActivity(playingMessage); - botState = BotEnumState.ACTIVE; +function processBasicCommands(client, message) { + // "This is the best way to define args. Trust me." + // - Some tutorial dude on the internet + let args = message.content.slice(process.env.PREFIX.length).trim().split(/ +/g); + let command = args.shift().toLowerCase(); + + switch (command) { + case "ping": + if (shared.IsAdmin(client, message.author)) { + shared.SendPublicMessage(client, message.author, message.channel, "PONG!"); + } + return true; + + case "help": + case "lore": + shared.SendPublicMessage(client, message.author, message.channel, dialog(command, args[0])); + return true; + + default: + shared.SendPublicMessage(client, message.author, message.channel, dialog(command)); + return true; + } + + return false; } - -function BotTurnOffline(channel) { - sendMessage(channel, `Insert Offline Message here. \ - \n\n***SOME BOLD AND ITALIC TEXT***`); - client.user.setStatus('invisible'); - client.user.setActivity(''); - botState = BotEnumState.WAITING; -} - -// You may use cron normally -cron.schedule('* * * * Saturday', function() { - console.log('Saturday join.'); -}); - -// Async Waiting -function sleep(time) { - return new Promise((resolve, reject) => { - setTimeout(resolve, time); - }); -} - -// Gets if user has an Overseers rank -function isAdmin(userID) { - var guild = client.guilds.get(process.env.SANCTUM_ID); - return guild.members.get(userID).roles.find(role => role.name === "Overseers"); -} - -// Send message handler -function sendMessage(userID, channelID, message) { - // Handle optional first argument (so much for default arugments in node) - if (message === undefined) { - message = channelID; - channelID = userID; - userID = null; - } - - // Utility trick (@userID with an optional argument) - if (userID != null) { - message = "<@" + userID + "> " + message; - } - - // Sends message (needs client var, therefore I think external script won't work) - client.channels.get(channelID).send(message); -} - -// Log our bot in (change the token by looking into the .env file) -client.login(process.env.LIBRARIAN_TOKEN); \ No newline at end of file diff --git a/Librarian/npcSettings.js b/Librarian/npcSettings.js new file mode 100644 index 0000000..7dbbd5c --- /dev/null +++ b/Librarian/npcSettings.js @@ -0,0 +1,7 @@ +require('dotenv').config({path: '../.env'}); + +module.exports = { + activity: "for the signal.", + type: "WATCHING", + token: process.env.LIBRARIAN_TOKEN, +} \ No newline at end of file diff --git a/Librarian/package.json b/Librarian/package.json index 69163ab..fb9d390 100644 --- a/Librarian/package.json +++ b/Librarian/package.json @@ -1,29 +1,21 @@ { - "name": "sanctum-deploypackage", - "version": "1.0.1", - "description": "Universal package for all SANCTUM bots, using pm2.", - "main": "", + "name": "nodejs-elasticbeanstalk", + "version": "1.0.0", + "description": "", + "main": "server.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "echo \"Error: you need to use the bot name as a command.\" && exit 1", - "alexis": "pm2 start alexis.js -i max --watch", - "graze": "pm2 start graze.js -i max --watch", - "librarian": "pm2 start librarian.js -i max --watch", - "mainframe": "pm2 start mainframe.js -i max --watch", - "mori": "pm2 start mori.js -i max --watch", - "mosiah": "pm2 start mosiah.js -i max --watch", - "ravager": "pm2 start ravager.js -i max --watch", - "rey": "pm2 start rey.js -i max --watch", - "troll": "pm2 start troll.js -i max --watch" + "start": "forever -o forever.log -e error.log start librarian.js", + "restart": "forever -o forever.log -e error.log restart librarian.js", + "stop": "forever stop librarian.js", + "node": "node librarian.js" }, "author": "", "license": "ISC", "dependencies": { "discord.js": "^11.4.2", - "dotenv": "^6.0.0", - "express": "^4.16.3", + "dotenv": "^6.1.0", + "forever": "^0.15.3", "node-cron": "^1.2.1", - "socket.io": "^2.1.1", - "socket.io-request": "^0.8.0" + "sync-request": "^6.0.0" } } diff --git a/Shared/package.json b/Shared/package.json new file mode 100644 index 0000000..8e1ade5 --- /dev/null +++ b/Shared/package.json @@ -0,0 +1,15 @@ +{ + "name": "shared", + "version": "1.0.0", + "description": "", + "main": "calc_random.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "dotenv": "^6.1.0", + "sync-request": "^6.0.0" + } +}