Browse Source

Add maintenance message

ghorsington 5 years ago
parent
commit
fc80f7899a
5 changed files with 42 additions and 3 deletions
  1. 17 0
      .vscode/launch.json
  2. 3 0
      db.js
  3. 8 2
      main.js
  4. 1 1
      package.json
  5. 13 0
      util.js

+ 17 - 0
.vscode/launch.json

@@ -0,0 +1,17 @@
+{
+    // Use IntelliSense to learn about possible attributes.
+    // Hover to view descriptions of existing attributes.
+    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "type": "node",
+            "request": "launch",
+            "name": "Launch Program",
+            "program": "${workspaceFolder}\\main.js",
+            "env": {
+                "NODE_ENV": "dev"
+            }
+        }
+    ]
+}

+ 3 - 0
db.js

@@ -9,6 +9,9 @@ db._.mixin({
 });
 
 db.defaults({
+    devServers: [
+        "429295461099110400"
+    ],
     emotes: {
         angery: [
             "488797492352385034",

+ 8 - 2
main.js

@@ -40,11 +40,16 @@ client.on("message", m => {
 
     let content = m.cleanContent.trim();
 
-    if (trigger(msgActions, m, content))
+    if (!util.shouldShowMaintenanceMessage() && trigger(msgActions, m, content))
         return;
 
     if (m.mentions.users.size > 0 && m.mentions.users.first().id == client.user.id) {
 
+        if(util.shouldShowMaintenanceMessage(m.guild.id)) {
+            m.channel.send(`${m.author.toString()} I'm currently being maintained; please wait.`);
+            return;
+        }
+
         if (content.startsWith(`@${client.user.username}`)) {
             content = content.substring(`@${client.user.username}`.length).trim();
 
@@ -71,7 +76,8 @@ client.on("message", m => {
             return;
     }
 
-    trigger(postActions);
+    if(!util.shouldShowMaintenanceMessage())
+        trigger(postActions);
 });
 
 client.on("messageReactionAdd", (r, u) => {

+ 1 - 1
package.json

@@ -32,6 +32,6 @@
     "uws": "^99.0.0"
   },
   "devDependencies": {
-    "eslint": "^5.5.0"
+    "eslint": "^5.16.0"
   }
 }

+ 13 - 0
util.js

@@ -7,6 +7,17 @@ const VALID_EXTENSIONS = new Set([
     "bmp",
 ]);
 
+function isDevelopment() {
+    return process.env.NODE_ENV == "dev";
+}
+
+function shouldShowMaintenanceMessage(serverId) {
+    if(process.env.NODE_ENV != "dev")
+        return false;
+    
+    return !db.get("devServers").includes(serverId).value();
+}
+
 function isValidImage(fileName) {
     let extPosition = fileName.lastIndexOf(".");
     if(extPosition < 0)
@@ -26,5 +37,7 @@ function isAuthorised(member) {
 module.exports = {
     isAuthorised: isAuthorised,
     isValidImage: isValidImage,
+    shouldShowMaintenanceMessage: shouldShowMaintenanceMessage,
+    isDevelopment: isDevelopment,
     documentation: {}
 };