discos 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common.d.ts +27 -4
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +55 -10
- package/dist/common.js.map +1 -1
- package/dist/modules/admin.d.ts +3 -2
- package/dist/modules/admin.d.ts.map +1 -1
- package/dist/modules/admin.js +158 -24
- package/dist/modules/admin.js.map +1 -1
- package/dist/modules/command.d.ts.map +1 -1
- package/dist/modules/command.js +2 -2
- package/dist/modules/command.js.map +1 -1
- package/dist/modules/file.d.ts +3 -1
- package/dist/modules/file.d.ts.map +1 -1
- package/dist/modules/file.js +69 -8
- package/dist/modules/file.js.map +1 -1
- package/dist/modules/watch.d.ts.map +1 -1
- package/dist/modules/watch.js +2 -4
- package/dist/modules/watch.js.map +1 -1
- package/dist/shared/consts.d.ts +2 -0
- package/dist/shared/consts.d.ts.map +1 -1
- package/dist/shared/consts.js +3 -1
- package/dist/shared/consts.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/{types/db.d.ts → shared/types.d.ts} +1 -1
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/{types/db.js → shared/types.js} +1 -1
- package/dist/shared/types.js.map +1 -0
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +23 -6
- package/dist/slash-commands.js.map +1 -1
- package/dist/startup.d.ts.map +1 -1
- package/dist/startup.js +29 -6
- package/dist/startup.js.map +1 -1
- package/dist/tools/backend.d.ts +4 -0
- package/dist/tools/backend.d.ts.map +1 -1
- package/dist/tools/backend.js +46 -3
- package/dist/tools/backend.js.map +1 -1
- package/dist/tools/queue-utils.d.ts +1 -1
- package/dist/tools/queue-utils.d.ts.map +1 -1
- package/dist/tools/queue-utils.js +4 -2
- package/dist/tools/queue-utils.js.map +1 -1
- package/dist/tools/validateDb.d.ts +2 -1
- package/dist/tools/validateDb.d.ts.map +1 -1
- package/dist/tools/validateDb.js +4 -1
- package/dist/tools/validateDb.js.map +1 -1
- package/package.json +20 -4
- package/setup/install.sh +14 -1
- package/dist/types/db.d.ts.map +0 -1
- package/dist/types/db.js.map +0 -1
package/dist/common.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare const ENV_QUICK_VIEW_MAX_LENGTH = "DiscOS ERROR: QUICK_VIEW_MAX_L
|
|
|
12
12
|
export declare const DB_ERR = "DiscOS ERROR: Database file is invalid or missing.";
|
|
13
13
|
export declare const DB_USER_ERR = "DiscOS ERROR: users must be an object with numeric string keys (Discord UIDs) and string values (local users).";
|
|
14
14
|
export declare const DB_USERS_EMPTY = "DiscOS WARN: No users found in database.";
|
|
15
|
-
export declare const DB_USERS_INVALID = "User IDs must be numeric strings at least 17 characters long";
|
|
15
|
+
export declare const DB_USERS_INVALID = "User IDs must be numeric strings at least 17 characters long.";
|
|
16
16
|
export declare const DB_ADMIN_ERR = "DiscOS ERROR: adminUsers must be an array of numeric strings with at least 17 characters.";
|
|
17
17
|
export declare const DB_NO_ADMIN = "DiscOS ERROR: There must be at least one admin user in the database.";
|
|
18
18
|
export declare const DB_ADMIN_INVALID = "DiscOS ERROR: adminUsers must be a non-empty array of numeric strings with at least 17 characters.";
|
|
@@ -56,6 +56,11 @@ export declare const REPEAT = "repeat";
|
|
|
56
56
|
export declare const REPEAT_DESC = "Number of calls to make. Default: 20. Min: 1. Max: 100.";
|
|
57
57
|
export declare const DEBUG = "debug";
|
|
58
58
|
export declare const DEBUG_DESC = "Display various debug infos about the DiscOS instance.";
|
|
59
|
+
export declare const HELP = "help";
|
|
60
|
+
export declare const HELP_USER_DESC = "Display help for DiscOS commands.";
|
|
61
|
+
export declare const HELP_ADMIN_DESC = "Display help for AdmOS (admin) commands.";
|
|
62
|
+
export declare const HELP_USER = "[User commands](https://github.com/BrNi05/DiscOS/wiki/06.-Using-DiscOS-%E2%80%90-user)";
|
|
63
|
+
export declare const HELP_ADMIN: string;
|
|
59
64
|
export declare const DEFAULT_HIDDEN = true;
|
|
60
65
|
export declare const DEFAULT_LOOKBACK = -1;
|
|
61
66
|
export declare const DEFAULT_INTERVAL = 1000;
|
|
@@ -112,7 +117,7 @@ export declare const DUPLICATE_ERR = "Command (or similar one) is already being
|
|
|
112
117
|
export declare const DISCOS_GENERIC_ERR = "DiscOS ERROR:";
|
|
113
118
|
export declare const DISCOS_GENERIC_ERR2 = "DiscOS encountered an error. User: @";
|
|
114
119
|
export declare const DISCOS_CONN_FAIL = "Connection to Discord failed:";
|
|
115
|
-
export declare const LISTENING = "DiscOS IPC server is listening on
|
|
120
|
+
export declare const LISTENING = "DiscOS IPC server is listening on ";
|
|
116
121
|
export declare function CMD_EXEC_AS_MSG(userCmd: string, username: string): string;
|
|
117
122
|
export declare function CMD_EXEC_AS_MSG2(username: string): string;
|
|
118
123
|
export declare const WRITE_CMD: string;
|
|
@@ -135,11 +140,12 @@ export declare function READ_FILE_QUICK(path: string, username: string): string;
|
|
|
135
140
|
export declare const READ_FILE_QUICK_LENGTH = 50;
|
|
136
141
|
export declare function WRITE_FILE(path: string, username: string): string;
|
|
137
142
|
export declare function BACKEND_ERR_MSG(username: string, statusCode: number, resString: string): string;
|
|
143
|
+
export declare const NEW_FILE = "NEW FILE: ";
|
|
138
144
|
export declare function WATCH_CMD_BUILD(target: string, interval: number, i: number, repeat: number): string;
|
|
139
145
|
export declare const TOO_MANY_REQ = "Too many requests. Please try again later...";
|
|
140
146
|
export declare const WATCH_TERM = "Watch is terminated.";
|
|
141
147
|
export declare const UNKNOWN_USER = "Non-server member user";
|
|
142
|
-
export declare function MODE_REPLY(standalone: boolean): string;
|
|
148
|
+
export declare function MODE_REPLY(standalone: boolean, pingRes: string): string;
|
|
143
149
|
export declare function SAFEMODE_REPLY(safemode: boolean): string;
|
|
144
150
|
export declare function LOCKDOWN_REPLY(enabled: boolean): string;
|
|
145
151
|
export declare const CLEAR_ALL_USER = "?";
|
|
@@ -147,11 +153,28 @@ export declare const CLEAR_ALL_USER_REPLY = "ALL USERS";
|
|
|
147
153
|
export declare function AT_LEAST_ONE_ERR(type: string): string;
|
|
148
154
|
export declare function CH_OPERATION(channelName: string, op: boolean): string;
|
|
149
155
|
export declare function ADMIN_OPERATION(username: string, op: boolean): string;
|
|
150
|
-
export declare function ADMIN_OPS(username: string, localUser: string, op: boolean, overr: boolean): string;
|
|
156
|
+
export declare function ADMIN_OPS(username: string, localUser: string, op: boolean, overr: boolean, userDelete: boolean): string;
|
|
157
|
+
export declare function NOT_IN_USERLIST_ERR(user: string): string;
|
|
151
158
|
export declare const ADMIN = "admin";
|
|
159
|
+
export declare const PROPAGATE = "propagate";
|
|
160
|
+
export declare const PROPAGATE_DESC = "True: create / remove local user based on DiscOS operation. Default: true.";
|
|
161
|
+
export declare const DEFAULT_PROPAGATE = true;
|
|
162
|
+
export declare function COULDNT_PROPAGATE_ERR(localUser: string): string;
|
|
163
|
+
export declare const ADMIN_AS_WELL = "admin";
|
|
164
|
+
export declare const ADMIN_AS_WELL_DESC = "True: register the select user as admin as well. Default: false.";
|
|
165
|
+
export declare const DEFAULT_ADMIN_AS_WELL = false;
|
|
166
|
+
export declare const NEW_USER = "NEW USER: ";
|
|
167
|
+
export declare function USER_GREETING(user: string, localUser: string, guild: string): string;
|
|
168
|
+
export declare function USER_GOODBYE(user: string): string;
|
|
169
|
+
export declare function ADMIN_GREETING(user: string, localUser: string, guild: string): string;
|
|
170
|
+
export declare function ADMIN_GOODBYE(user: string): string;
|
|
171
|
+
export declare const UNAME_PREFIX = "discos";
|
|
152
172
|
export declare const SPAWN_ERR = "DiscOS CRITICAL ERROR: cmdex is broken.";
|
|
153
173
|
export declare const DIR_ERR = "The provided path is an existing directory.";
|
|
154
174
|
export declare const PERM_ERR = "No permission to write to the file (or to enter the directories).";
|
|
155
175
|
export declare const DOWNLOAD_ERR = "Failed to download file from Discord CDN.";
|
|
156
176
|
export declare const SET_PERM_ERR = "Failed to set file permissions.";
|
|
177
|
+
export declare const PING_FAILED = "Ping failed: ";
|
|
178
|
+
export declare const EXTERNAL_OK = "External backend is online and responded to the health check ping.";
|
|
179
|
+
export declare const EXTERNAL_NORESPONSE = "WARNING! The external backend did not respond to the health check ping. It may be offline or unreachable.";
|
|
157
180
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7D;AACD,eAAO,MAAM,SAAS,iEAAiE,CAAC;AACxF,eAAO,MAAM,SAAS,+EAA+E,CAAC;AACtG,eAAO,MAAM,UAAU,iGAAiG,CAAC;AACzH,eAAO,MAAM,OAAO,oFAAoF,CAAC;AACzG,eAAO,MAAM,aAAa,iEAAiE,CAAC;AAC5F,eAAO,MAAM,WAAW,sDAAsD,CAAC;AAC/E,eAAO,MAAM,YAAY,uFAAuF,CAAC;AACjH,eAAO,MAAM,gBAAgB,0FAA0F,CAAC;AACxH,eAAO,MAAM,cAAc,2HAC+F,CAAC;AAC3H,eAAO,MAAM,yBAAyB,uFAAuF,CAAC;AAG9H,eAAO,MAAM,MAAM,uDAAuD,CAAC;AAC3E,eAAO,MAAM,WAAW,mHAAmH,CAAC;AAC5I,eAAO,MAAM,cAAc,6CAA6C,CAAC;AACzE,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
package/dist/common.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TARGET = exports.WATCH_DESC = exports.WATCH = exports.PATH_DESC_WRITE = exports.FILE_DESC = exports.FILE = exports.WRITE_DESC = exports.WRITE = exports.PATH_DESC_READ = exports.PATH = exports.READ_DESC = exports.READ = exports.LOOKBACK_DESC = exports.LOOKBACK = exports.CLEAR_DESC = exports.CLEAR = exports.CMD_DESC = exports.CMD = exports.EXEC_DESC = exports.EXEC = exports.VERBOSE = exports.HIDE_REPLY = exports.SUCCESS_VERBOSE = exports.HIDE = exports.DCOS_DESC = exports.DCOS = exports.CMD_REG_ERR = exports.CMD_REG_2 = exports.CMD_REG_1 = exports.DB_BOOLEAN_ERR = exports.DB_ALLOWED_CH_INVALID = exports.DB_ALLOWED_CH_EMPTY = exports.DB_ALLOWED_CHANNELS_ARRAY = exports.DB_ADMIN_INVALID = exports.DB_NO_ADMIN = exports.DB_ADMIN_ERR = exports.DB_USERS_INVALID = exports.DB_USERS_EMPTY = exports.DB_USER_ERR = exports.DB_ERR = exports.ENV_QUICK_VIEW_MAX_LENGTH = exports.ENV_QUICK_VIEW = exports.ENV_BIN_OVERRIDE = exports.ENV_FILE_MAX = exports.ENV_BACKEND = exports.ENV_QUEUE_MAX = exports.ENV_VER = exports.ENV_GUILDS = exports.ENV_APPID = exports.ENV_TOKEN = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.SET_PERM_ERR = exports.DOWNLOAD_ERR = exports.PERM_ERR = exports.DIR_ERR = exports.SPAWN_ERR = exports.ADMIN = exports.CLEAR_ALL_USER_REPLY = exports.CLEAR_ALL_USER = exports.UNKNOWN_USER = exports.WATCH_TERM = exports.TOO_MANY_REQ = exports.READ_FILE_QUICK_LENGTH = exports.MSG_CLR_POST = exports.MSG_CLR_PRE = exports.MSG_CLR_FOR = exports.FETCH_ERR = exports.UNKNOWN_ERR = exports.BACKEND_EXEC_ERR_OVERRIDE = exports.BACKEND_EXEC_ERR = exports.WATCH_CMD = exports.READ_CMD = exports.WRITE_CMD = exports.LISTENING = exports.DISCOS_CONN_FAIL = exports.DISCOS_GENERIC_ERR2 = exports.DISCOS_GENERIC_ERR = exports.DUPLICATE_ERR = exports.DISCOS_NON_ADMIN = exports.LOCKDOWN_ERR = exports.DISCOS_OVERLOADED = exports.USER_ERR = exports.CHANNEL_ERR = exports.GUILD_ERR = exports.USER_SEL = exports.ADDRM = exports.ROOT_DESC = void 0;
|
|
4
|
+
exports.CHANNEL_DESC = exports.CHANNEL = exports.CH_MGMT_DESC = exports.CH_MGMT = exports.LSA_DESC = exports.LSA = exports.LSU_DESC = exports.LSU = exports.LOCAL_USER_DESC = exports.LOCAL_USER = exports.OPERATION = exports.USER = exports.ADMIN_MGMT_DESC = exports.ADMIN_MGMT = exports.USER_MGMT_DESC = exports.USER_MGMT = exports.CLEAR_USER_DESC = exports.CLEAR_USER = exports.ADMIN_CLEAR_DESC = exports.CMD_VAL_DESC = exports.CMD_VAL = exports.SAFEMODE_DESC = exports.SAFEMODE = exports.STANDALONE_DESC = exports.STANDALONE = exports.MODE_DESC = exports.MODE = exports.SHUTDOWN_MSG = exports.KILL_DESC = exports.KILL = exports.ADMOS_DESC = exports.ADMOS = exports.FALLBACK_CMD = exports.DEFAULT_DEBUG_VERBOSE = exports.DEFAULT_REPEAT = exports.DEFAULT_INTERVAL = exports.DEFAULT_LOOKBACK = exports.DEFAULT_HIDDEN = exports.HELP_ADMIN = exports.HELP_USER = exports.HELP_ADMIN_DESC = exports.HELP_USER_DESC = exports.HELP = exports.DEBUG_DESC = exports.DEBUG = exports.REPEAT_DESC = exports.REPEAT = exports.INTERVAL_DESC = exports.INTERVAL = exports.TARGET_DESC = void 0;
|
|
5
|
+
exports.SET_PERM_ERR = exports.DOWNLOAD_ERR = exports.PERM_ERR = exports.DIR_ERR = exports.SPAWN_ERR = exports.UNAME_PREFIX = exports.NEW_USER = exports.DEFAULT_ADMIN_AS_WELL = exports.ADMIN_AS_WELL_DESC = exports.ADMIN_AS_WELL = exports.DEFAULT_PROPAGATE = exports.PROPAGATE_DESC = exports.PROPAGATE = exports.ADMIN = exports.CLEAR_ALL_USER_REPLY = exports.CLEAR_ALL_USER = exports.UNKNOWN_USER = exports.WATCH_TERM = exports.TOO_MANY_REQ = exports.NEW_FILE = exports.READ_FILE_QUICK_LENGTH = exports.MSG_CLR_POST = exports.MSG_CLR_PRE = exports.MSG_CLR_FOR = exports.FETCH_ERR = exports.UNKNOWN_ERR = exports.BACKEND_EXEC_ERR_OVERRIDE = exports.BACKEND_EXEC_ERR = exports.WATCH_CMD = exports.READ_CMD = exports.WRITE_CMD = exports.LISTENING = exports.DISCOS_CONN_FAIL = exports.DISCOS_GENERIC_ERR2 = exports.DISCOS_GENERIC_ERR = exports.DUPLICATE_ERR = exports.DISCOS_NON_ADMIN = exports.LOCKDOWN_ERR = exports.DISCOS_OVERLOADED = exports.USER_ERR = exports.CHANNEL_ERR = exports.GUILD_ERR = exports.USER_SEL = exports.ADDRM = exports.ROOT_DESC = exports.ROOT = exports.LOCKDOWN_ENABLED = exports.ENABLED = exports.LOCKDOWN_DESC = exports.LOCKDOWN = void 0;
|
|
6
|
+
exports.EXTERNAL_NORESPONSE = exports.EXTERNAL_OK = exports.PING_FAILED = void 0;
|
|
6
7
|
exports.ENV_MISSING_VAR = ENV_MISSING_VAR;
|
|
7
8
|
exports.CMD_EXEC_AS_MSG = CMD_EXEC_AS_MSG;
|
|
8
9
|
exports.CMD_EXEC_AS_MSG2 = CMD_EXEC_AS_MSG2;
|
|
@@ -23,6 +24,12 @@ exports.AT_LEAST_ONE_ERR = AT_LEAST_ONE_ERR;
|
|
|
23
24
|
exports.CH_OPERATION = CH_OPERATION;
|
|
24
25
|
exports.ADMIN_OPERATION = ADMIN_OPERATION;
|
|
25
26
|
exports.ADMIN_OPS = ADMIN_OPS;
|
|
27
|
+
exports.NOT_IN_USERLIST_ERR = NOT_IN_USERLIST_ERR;
|
|
28
|
+
exports.COULDNT_PROPAGATE_ERR = COULDNT_PROPAGATE_ERR;
|
|
29
|
+
exports.USER_GREETING = USER_GREETING;
|
|
30
|
+
exports.USER_GOODBYE = USER_GOODBYE;
|
|
31
|
+
exports.ADMIN_GREETING = ADMIN_GREETING;
|
|
32
|
+
exports.ADMIN_GOODBYE = ADMIN_GOODBYE;
|
|
26
33
|
function ENV_MISSING_VAR(missingVars) {
|
|
27
34
|
return `DiscOS ERROR: Missing environment variables: ${missingVars.join(', ')}`;
|
|
28
35
|
}
|
|
@@ -39,7 +46,7 @@ exports.ENV_QUICK_VIEW_MAX_LENGTH = 'DiscOS ERROR: QUICK_VIEW_MAX_LENGTH must be
|
|
|
39
46
|
exports.DB_ERR = 'DiscOS ERROR: Database file is invalid or missing.';
|
|
40
47
|
exports.DB_USER_ERR = 'DiscOS ERROR: users must be an object with numeric string keys (Discord UIDs) and string values (local users).';
|
|
41
48
|
exports.DB_USERS_EMPTY = 'DiscOS WARN: No users found in database.';
|
|
42
|
-
exports.DB_USERS_INVALID = 'User IDs must be numeric strings at least 17 characters long';
|
|
49
|
+
exports.DB_USERS_INVALID = 'User IDs must be numeric strings at least 17 characters long.';
|
|
43
50
|
exports.DB_ADMIN_ERR = 'DiscOS ERROR: adminUsers must be an array of numeric strings with at least 17 characters.';
|
|
44
51
|
exports.DB_NO_ADMIN = 'DiscOS ERROR: There must be at least one admin user in the database.';
|
|
45
52
|
exports.DB_ADMIN_INVALID = 'DiscOS ERROR: adminUsers must be a non-empty array of numeric strings with at least 17 characters.';
|
|
@@ -83,6 +90,13 @@ exports.REPEAT = 'repeat';
|
|
|
83
90
|
exports.REPEAT_DESC = 'Number of calls to make. Default: 20. Min: 1. Max: 100.';
|
|
84
91
|
exports.DEBUG = 'debug';
|
|
85
92
|
exports.DEBUG_DESC = 'Display various debug infos about the DiscOS instance.';
|
|
93
|
+
exports.HELP = 'help';
|
|
94
|
+
exports.HELP_USER_DESC = 'Display help for DiscOS commands.';
|
|
95
|
+
exports.HELP_ADMIN_DESC = 'Display help for AdmOS (admin) commands.';
|
|
96
|
+
exports.HELP_USER = '[User commands](https://github.com/BrNi05/DiscOS/wiki/06.-Using-DiscOS-%E2%80%90-user)';
|
|
97
|
+
exports.HELP_ADMIN = '[Admin commands](https://github.com/BrNi05/DiscOS/wiki/07.-Using-DiscOS-%E2%80%90-admin)' +
|
|
98
|
+
'\n' +
|
|
99
|
+
'[User commands](https://github.com/BrNi05/DiscOS/wiki/06.-Using-DiscOS-%E2%80%90-user)';
|
|
86
100
|
exports.DEFAULT_HIDDEN = true;
|
|
87
101
|
exports.DEFAULT_LOOKBACK = -1;
|
|
88
102
|
exports.DEFAULT_INTERVAL = 1000;
|
|
@@ -139,7 +153,7 @@ exports.DUPLICATE_ERR = 'Command (or similar one) is already being processed for
|
|
|
139
153
|
exports.DISCOS_GENERIC_ERR = 'DiscOS ERROR:';
|
|
140
154
|
exports.DISCOS_GENERIC_ERR2 = 'DiscOS encountered an error. User: @';
|
|
141
155
|
exports.DISCOS_CONN_FAIL = 'Connection to Discord failed:';
|
|
142
|
-
exports.LISTENING = 'DiscOS IPC server is listening on
|
|
156
|
+
exports.LISTENING = 'DiscOS IPC server is listening on ';
|
|
143
157
|
function CMD_EXEC_AS_MSG(userCmd, username) {
|
|
144
158
|
return `Command: "${userCmd}" executed as @${username}:\n\n`;
|
|
145
159
|
}
|
|
@@ -163,7 +177,7 @@ exports.MSG_CLR_FOR = 'Cleared all messages for @';
|
|
|
163
177
|
exports.MSG_CLR_PRE = 'Cleared the last ';
|
|
164
178
|
exports.MSG_CLR_POST = ' messages for ';
|
|
165
179
|
function FILE_CORRUPT_ERR(username) {
|
|
166
|
-
return `DiscOS ERROR: The file is corrupted, too large to send, has
|
|
180
|
+
return `DiscOS ERROR: The file is corrupted, too large to send, has unknown extension or unreadable (as @${username}). Check the file path, extension, size and permissions.`;
|
|
167
181
|
}
|
|
168
182
|
function FILE_SIZE_ERR(maxSize) {
|
|
169
183
|
return `DiscOS ERROR: Target file is larger than FILE_MAX_SIZE (${maxSize} MB). Requested as @`;
|
|
@@ -184,14 +198,15 @@ function WRITE_FILE(path, username) {
|
|
|
184
198
|
function BACKEND_ERR_MSG(username, statusCode, resString) {
|
|
185
199
|
return `BACKEND ERROR as @${username}.\nHTTP status code: ${statusCode}.\nMessage: ${resString}`;
|
|
186
200
|
}
|
|
201
|
+
exports.NEW_FILE = 'NEW FILE: ';
|
|
187
202
|
function WATCH_CMD_BUILD(target, interval, i, repeat) {
|
|
188
203
|
return `echo "Watching <${target}> at ${interval}ms intervals. Tick: ${i + 1} / ${repeat}." && echo && ${target}`;
|
|
189
204
|
}
|
|
190
205
|
exports.TOO_MANY_REQ = 'Too many requests. Please try again later...';
|
|
191
206
|
exports.WATCH_TERM = 'Watch is terminated.';
|
|
192
207
|
exports.UNKNOWN_USER = 'Non-server member user';
|
|
193
|
-
function MODE_REPLY(standalone) {
|
|
194
|
-
return `DiscOS is now running in ${standalone ? 'standalone' : 'external backend'} mode
|
|
208
|
+
function MODE_REPLY(standalone, pingRes) {
|
|
209
|
+
return `DiscOS is now running in ${standalone ? 'standalone' : 'external backend'} mode.` + '\n' + pingRes;
|
|
195
210
|
}
|
|
196
211
|
function SAFEMODE_REPLY(safemode) {
|
|
197
212
|
return 'Command validation is now ' + (safemode ? 'enabled' : 'disabled') + '.';
|
|
@@ -212,15 +227,45 @@ function ADMIN_OPERATION(username, op) {
|
|
|
212
227
|
const extra = op ? '' : 'not ';
|
|
213
228
|
return `User @${username} is/was ${extra}allowed to use admin commands.`;
|
|
214
229
|
}
|
|
215
|
-
function ADMIN_OPS(username, localUser, op, overr) {
|
|
230
|
+
function ADMIN_OPS(username, localUser, op, overr, userDelete) {
|
|
216
231
|
const extra = op ? 'added' : 'removed';
|
|
217
|
-
const override = overr ? '
|
|
218
|
-
|
|
232
|
+
const override = overr ? '\nPrevious local user setting was overwritten.' : '';
|
|
233
|
+
const deleteMsg = userDelete ? '\nA local user was removed as well.' : '';
|
|
234
|
+
return `User @${username} (as ${localUser} on server) is/was ${extra} as a DiscOS user.` + override + deleteMsg;
|
|
235
|
+
}
|
|
236
|
+
function NOT_IN_USERLIST_ERR(user) {
|
|
237
|
+
return `AdmOS ERROR: @${user} is not a DiscOS user.\nUse the /admos usermgmt slash command, which can (while registering the user) add an admin user.`;
|
|
219
238
|
}
|
|
220
239
|
exports.ADMIN = 'admin';
|
|
240
|
+
exports.PROPAGATE = 'propagate';
|
|
241
|
+
exports.PROPAGATE_DESC = 'True: create / remove local user based on DiscOS operation. Default: true.';
|
|
242
|
+
exports.DEFAULT_PROPAGATE = true;
|
|
243
|
+
function COULDNT_PROPAGATE_ERR(localUser) {
|
|
244
|
+
return `AdmOS ERROR: Local user "${localUser}" is non-existent and propagation is turned off. Operation aborted.`;
|
|
245
|
+
}
|
|
246
|
+
exports.ADMIN_AS_WELL = 'admin';
|
|
247
|
+
exports.ADMIN_AS_WELL_DESC = 'True: register the select user as admin as well. Default: false.';
|
|
248
|
+
exports.DEFAULT_ADMIN_AS_WELL = false;
|
|
249
|
+
exports.NEW_USER = 'NEW USER: ';
|
|
250
|
+
function USER_GREETING(user, localUser, guild) {
|
|
251
|
+
return `Hello @${user},\n\nYou have been registered to use DiscOS commands (as ${localUser}) on Discord server: ${guild}.\nUse /${exports.DCOS} ${exports.HELP} to see available commands.`;
|
|
252
|
+
}
|
|
253
|
+
function USER_GOODBYE(user) {
|
|
254
|
+
return `Goodbye @${user},\n\nYour DiscOS user has been removed and you can no longer use DiscOS commands.\nIf this was a mistake, please contact an admin.`;
|
|
255
|
+
}
|
|
256
|
+
function ADMIN_GREETING(user, localUser, guild) {
|
|
257
|
+
return `Hello @${user},\n\nYou have been registered as a DiscOS admin on Discord server: ${guild}. Now you can use AdmOS commands.\nYou are also registered to use DiscOS commands on the host as: ${localUser}.\nUse /${exports.DCOS} ${exports.HELP} to see available user commands and /${exports.ADMOS} ${exports.HELP} to see available admin commands.`;
|
|
258
|
+
}
|
|
259
|
+
function ADMIN_GOODBYE(user) {
|
|
260
|
+
return `Hello @${user},\n\nYour DiscOS admin rights have been revoked and you can no longer use AdmOS commands.\nIf this was a mistake, please contact an admin.`;
|
|
261
|
+
}
|
|
262
|
+
exports.UNAME_PREFIX = 'discos';
|
|
221
263
|
exports.SPAWN_ERR = 'DiscOS CRITICAL ERROR: cmdex is broken.';
|
|
222
264
|
exports.DIR_ERR = 'The provided path is an existing directory.';
|
|
223
265
|
exports.PERM_ERR = 'No permission to write to the file (or to enter the directories).';
|
|
224
266
|
exports.DOWNLOAD_ERR = 'Failed to download file from Discord CDN.';
|
|
225
267
|
exports.SET_PERM_ERR = 'Failed to set file permissions.';
|
|
268
|
+
exports.PING_FAILED = 'Ping failed: ';
|
|
269
|
+
exports.EXTERNAL_OK = 'External backend is online and responded to the health check ping.';
|
|
270
|
+
exports.EXTERNAL_NORESPONSE = 'WARNING! The external backend did not respond to the health check ping. It may be offline or unreachable.';
|
|
226
271
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/admin.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ChatInputCommandInteraction, CacheType } from 'discord.js';
|
|
1
|
+
import type { ChatInputCommandInteraction, AutocompleteInteraction, CacheType, Client } from 'discord.js';
|
|
2
2
|
import type { CommandQueues } from '../types/queues';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function localUserAutocomplete(interaction: AutocompleteInteraction<CacheType>, queues: CommandQueues): Promise<void>;
|
|
4
|
+
export declare function handleAdmin(interaction: ChatInputCommandInteraction<CacheType>, subcommand: string, username: string, queues: CommandQueues, client: Client): Promise<void>;
|
|
4
5
|
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/modules/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAS,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/modules/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,SAAS,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAcjH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkDrD,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCjI;AAoFD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAsSf"}
|
package/dist/modules/admin.js
CHANGED
|
@@ -36,10 +36,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.localUserAutocomplete = localUserAutocomplete;
|
|
39
40
|
exports.handleAdmin = handleAdmin;
|
|
40
41
|
const command_1 = require("./command");
|
|
41
42
|
const ipcServer_1 = require("../tools/ipcServer");
|
|
42
43
|
const queueUtils = __importStar(require("../tools/queue-utils"));
|
|
44
|
+
const backend_1 = require("../tools/backend");
|
|
45
|
+
const shell_escape_1 = __importDefault(require("shell-escape"));
|
|
43
46
|
const COMMON = __importStar(require("../common"));
|
|
44
47
|
const consts_1 = require("../shared/consts");
|
|
45
48
|
const config_1 = require("../config");
|
|
@@ -70,11 +73,96 @@ async function dbPrep(interaction) {
|
|
|
70
73
|
return false;
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
|
-
function dbClose(db) {
|
|
76
|
+
function dbClose(db, queues) {
|
|
74
77
|
fs_1.default.writeFileSync(config_1.Config.databasePath, JSON.stringify(db, null, 2), 'utf-8');
|
|
75
|
-
(0, validateDb_1.validateDb)();
|
|
78
|
+
(0, validateDb_1.validateDb)(queues);
|
|
76
79
|
}
|
|
77
|
-
async function
|
|
80
|
+
async function localUserAutocomplete(interaction, queues) {
|
|
81
|
+
if (!interaction.guild || !config_1.Config.allowedChannels.includes(interaction.channelId) || !config_1.Config.allowedUsers.includes(interaction.user.id)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const focusedValue = interaction.options.getFocused();
|
|
85
|
+
const payload = {
|
|
86
|
+
user: consts_1.ROOT_UID,
|
|
87
|
+
cmd: `grep -vE ':(/usr/sbin/nologin|/bin/false|/sbin/nologin)$' /etc/passwd | cut -d: -f1 | grep -F -- "${(0, shell_escape_1.default)([focusedValue])}" | head -n 5`,
|
|
88
|
+
};
|
|
89
|
+
queueUtils.addToAll(queues, payload);
|
|
90
|
+
const res = await (0, backend_1.post)(payload, false);
|
|
91
|
+
queueUtils.removeFromAll(queues, payload);
|
|
92
|
+
const items = res.data
|
|
93
|
+
.toString('utf-8')
|
|
94
|
+
.split('\n')
|
|
95
|
+
.filter((item) => item.trim());
|
|
96
|
+
if (items.length === 0) {
|
|
97
|
+
items.push(focusedValue);
|
|
98
|
+
}
|
|
99
|
+
const prefix = String(res.data).trim().length === 0 ? COMMON.NEW_USER : '';
|
|
100
|
+
await interaction.respond(items.map((choice) => ({
|
|
101
|
+
name: prefix + choice,
|
|
102
|
+
value: choice,
|
|
103
|
+
})));
|
|
104
|
+
}
|
|
105
|
+
async function sendDM(client, userId, content) {
|
|
106
|
+
const user = await client.users.fetch(userId);
|
|
107
|
+
void user.send(content);
|
|
108
|
+
}
|
|
109
|
+
const LOCAL_USER_FAILED = 'false';
|
|
110
|
+
const LOCAL_USER_SUCCESS = 'true';
|
|
111
|
+
async function localUserHandler(localUser, propagate, operation, queue) {
|
|
112
|
+
if (operation) {
|
|
113
|
+
const payload = {
|
|
114
|
+
user: consts_1.ROOT_UID,
|
|
115
|
+
cmd: `id -u ${(0, shell_escape_1.default)([localUser])}`,
|
|
116
|
+
};
|
|
117
|
+
queueUtils.addToAll(queue, payload);
|
|
118
|
+
const res = await (0, backend_1.post)(payload, false);
|
|
119
|
+
queueUtils.removeFromAll(queue, payload);
|
|
120
|
+
let userExists = true;
|
|
121
|
+
if (res.data.toString('utf-8').trim().startsWith('id: ')) {
|
|
122
|
+
userExists = false;
|
|
123
|
+
}
|
|
124
|
+
if (propagate) {
|
|
125
|
+
if (!userExists) {
|
|
126
|
+
const payload = {
|
|
127
|
+
user: consts_1.ROOT_UID,
|
|
128
|
+
cmd: `useradd -m ${(0, shell_escape_1.default)([localUser])}`,
|
|
129
|
+
};
|
|
130
|
+
queueUtils.addToAll(queue, payload);
|
|
131
|
+
await (0, backend_1.post)(payload, false);
|
|
132
|
+
queueUtils.removeFromAll(queue, payload);
|
|
133
|
+
return LOCAL_USER_SUCCESS;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
if (!userExists) {
|
|
138
|
+
return LOCAL_USER_FAILED;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
if (propagate) {
|
|
144
|
+
const payload = {
|
|
145
|
+
user: consts_1.ROOT_UID,
|
|
146
|
+
cmd: `id -u ${(0, shell_escape_1.default)([localUser])} >/dev/null 2>&1 && userdel -r ${(0, shell_escape_1.default)([localUser])} >/dev/null 2>&1`,
|
|
147
|
+
};
|
|
148
|
+
queueUtils.addToAll(queue, payload);
|
|
149
|
+
void (0, backend_1.post)(payload, false);
|
|
150
|
+
queueUtils.removeFromAll(queue, payload);
|
|
151
|
+
}
|
|
152
|
+
return LOCAL_USER_SUCCESS;
|
|
153
|
+
}
|
|
154
|
+
return LOCAL_USER_SUCCESS;
|
|
155
|
+
}
|
|
156
|
+
function truncUname(input) {
|
|
157
|
+
const MAX_LEN = 32;
|
|
158
|
+
input = input.toLowerCase().trim();
|
|
159
|
+
input = input.replace(/[^a-z0-9_.]/g, '');
|
|
160
|
+
if (input.length > MAX_LEN) {
|
|
161
|
+
return input.substring(0, MAX_LEN);
|
|
162
|
+
}
|
|
163
|
+
return input;
|
|
164
|
+
}
|
|
165
|
+
async function handleAdmin(interaction, subcommand, username, queues, client) {
|
|
78
166
|
await interaction.deferReply({ flags: 64 });
|
|
79
167
|
const guild = interaction.guild;
|
|
80
168
|
switch (subcommand) {
|
|
@@ -100,7 +188,7 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
100
188
|
break;
|
|
101
189
|
}
|
|
102
190
|
case COMMON.USER_MGMT: {
|
|
103
|
-
await userMgmt(interaction);
|
|
191
|
+
await userMgmt(interaction, client);
|
|
104
192
|
break;
|
|
105
193
|
}
|
|
106
194
|
case COMMON.LSU: {
|
|
@@ -108,7 +196,7 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
108
196
|
break;
|
|
109
197
|
}
|
|
110
198
|
case COMMON.ADMIN_MGMT: {
|
|
111
|
-
await adminMgmt(interaction);
|
|
199
|
+
await adminMgmt(interaction, client);
|
|
112
200
|
break;
|
|
113
201
|
}
|
|
114
202
|
case COMMON.LSA: {
|
|
@@ -127,6 +215,10 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
127
215
|
await rootCommand(interaction);
|
|
128
216
|
break;
|
|
129
217
|
}
|
|
218
|
+
case COMMON.HELP: {
|
|
219
|
+
await interaction.editReply({ content: COMMON.HELP_ADMIN });
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
130
222
|
}
|
|
131
223
|
async function kill(interaction) {
|
|
132
224
|
await interaction.editReply({
|
|
@@ -136,6 +228,10 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
136
228
|
}
|
|
137
229
|
async function mode(interaction) {
|
|
138
230
|
const standalone = interaction.options.getBoolean(COMMON.STANDALONE, true);
|
|
231
|
+
let pingRes = '';
|
|
232
|
+
if (!standalone) {
|
|
233
|
+
pingRes = await (0, backend_1.ping)();
|
|
234
|
+
}
|
|
139
235
|
if (config_1.Config.standalone && !standalone) {
|
|
140
236
|
config_1.Config.ipcServer = (0, ipcServer_1.startIPCServer)(queues);
|
|
141
237
|
}
|
|
@@ -147,9 +243,9 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
147
243
|
if (!db)
|
|
148
244
|
return;
|
|
149
245
|
db.standalone = standalone;
|
|
150
|
-
dbClose(db);
|
|
246
|
+
dbClose(db, queues);
|
|
151
247
|
await interaction.editReply({
|
|
152
|
-
content: COMMON.MODE_REPLY(standalone),
|
|
248
|
+
content: COMMON.MODE_REPLY(standalone, pingRes),
|
|
153
249
|
});
|
|
154
250
|
}
|
|
155
251
|
async function safemode(interaction) {
|
|
@@ -158,27 +254,46 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
158
254
|
if (!db)
|
|
159
255
|
return;
|
|
160
256
|
db.safemode = enabled;
|
|
161
|
-
dbClose(db);
|
|
257
|
+
dbClose(db, queues);
|
|
162
258
|
await interaction.editReply({
|
|
163
259
|
content: COMMON.SAFEMODE_REPLY(enabled),
|
|
164
260
|
});
|
|
165
261
|
}
|
|
166
|
-
async function userMgmt(interaction) {
|
|
262
|
+
async function userMgmt(interaction, client) {
|
|
167
263
|
const userObj = interaction.options.getUser(COMMON.USER, true);
|
|
168
|
-
const
|
|
169
|
-
const targetUser =
|
|
264
|
+
const guildName = interaction.guild.name;
|
|
265
|
+
const targetUser = userObj.username;
|
|
170
266
|
const userId = userObj.id;
|
|
171
|
-
const localProfile = interaction.options.getString(COMMON.LOCAL_USER, true);
|
|
172
267
|
const operation = interaction.options.getBoolean(COMMON.OPERATION, true);
|
|
268
|
+
let localUser = interaction.options.getString(COMMON.LOCAL_USER, false)?.trim() ?? userObj.username;
|
|
269
|
+
const propagate = interaction.options.getBoolean(COMMON.PROPAGATE, false) ?? COMMON.DEFAULT_PROPAGATE;
|
|
270
|
+
const adminAsWell = interaction.options.getBoolean(COMMON.ADMIN_AS_WELL, false) ?? COMMON.DEFAULT_ADMIN_AS_WELL;
|
|
271
|
+
let deleteUser = false;
|
|
173
272
|
const db = await dbPrep(interaction);
|
|
174
273
|
if (!db)
|
|
175
274
|
return;
|
|
176
275
|
if (operation) {
|
|
276
|
+
if (!interaction.options.getString(COMMON.LOCAL_USER, false)?.trim())
|
|
277
|
+
localUser = truncUname(COMMON.UNAME_PREFIX + '_' + targetUser);
|
|
278
|
+
const res = await localUserHandler(localUser, propagate, operation, queues);
|
|
279
|
+
if (res === LOCAL_USER_FAILED) {
|
|
280
|
+
await interaction.editReply({
|
|
281
|
+
content: COMMON.COULDNT_PROPAGATE_ERR(localUser),
|
|
282
|
+
});
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
177
285
|
const existed = db.users[userId] !== undefined;
|
|
178
|
-
db.users[userId] =
|
|
286
|
+
db.users[userId] = localUser;
|
|
179
287
|
await interaction.editReply({
|
|
180
|
-
content: COMMON.ADMIN_OPS(targetUser,
|
|
288
|
+
content: COMMON.ADMIN_OPS(targetUser, localUser, true, existed, false),
|
|
181
289
|
});
|
|
290
|
+
if (!adminAsWell)
|
|
291
|
+
await sendDM(client, userId, COMMON.USER_GREETING(targetUser, localUser, guildName));
|
|
292
|
+
else {
|
|
293
|
+
dbClose(db, queues);
|
|
294
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
295
|
+
await adminMgmt(interaction, client);
|
|
296
|
+
}
|
|
182
297
|
}
|
|
183
298
|
else {
|
|
184
299
|
if (Object.keys(db.users).length === 1) {
|
|
@@ -188,27 +303,45 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
188
303
|
return;
|
|
189
304
|
}
|
|
190
305
|
else {
|
|
191
|
-
if (userId in db.users)
|
|
306
|
+
if (userId in db.users) {
|
|
307
|
+
if (db.adminUsers.includes(userId)) {
|
|
308
|
+
db.adminUsers = db.adminUsers.filter((u) => u !== userId);
|
|
309
|
+
await sendDM(client, userId, COMMON.ADMIN_GOODBYE(targetUser));
|
|
310
|
+
}
|
|
311
|
+
deleteUser = Object.values(db.users).filter((lu) => lu === db.users[userId]).length === 1 && propagate;
|
|
312
|
+
if (deleteUser)
|
|
313
|
+
await localUserHandler(db.users[userId], true, operation, queues);
|
|
192
314
|
delete db.users[userId];
|
|
315
|
+
await sendDM(client, userId, COMMON.USER_GOODBYE(targetUser));
|
|
316
|
+
}
|
|
193
317
|
await interaction.editReply({
|
|
194
|
-
content: COMMON.ADMIN_OPS(targetUser,
|
|
318
|
+
content: COMMON.ADMIN_OPS(targetUser, localUser, false, false, deleteUser),
|
|
195
319
|
});
|
|
196
320
|
}
|
|
197
321
|
}
|
|
198
|
-
|
|
322
|
+
if (!adminAsWell)
|
|
323
|
+
dbClose(db, queues);
|
|
199
324
|
}
|
|
200
|
-
async function adminMgmt(interaction) {
|
|
325
|
+
async function adminMgmt(interaction, client) {
|
|
201
326
|
const userObj = interaction.options.getUser(COMMON.USER, true);
|
|
202
|
-
const
|
|
203
|
-
const targetUser =
|
|
327
|
+
const guildName = interaction.guild.name;
|
|
328
|
+
const targetUser = userObj.username;
|
|
204
329
|
const userId = userObj.id;
|
|
205
330
|
const operation = interaction.options.getBoolean(COMMON.OPERATION, true);
|
|
331
|
+
if (!config_1.Config.allowedUsers.includes(userId)) {
|
|
332
|
+
await interaction.editReply({
|
|
333
|
+
content: COMMON.NOT_IN_USERLIST_ERR(targetUser),
|
|
334
|
+
});
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
206
337
|
const db = await dbPrep(interaction);
|
|
207
338
|
if (!db)
|
|
208
339
|
return;
|
|
209
340
|
if (operation) {
|
|
210
|
-
if (!db.adminUsers.includes(userId))
|
|
341
|
+
if (!db.adminUsers.includes(userId)) {
|
|
211
342
|
db.adminUsers.push(userId);
|
|
343
|
+
await sendDM(client, userId, COMMON.ADMIN_GREETING(targetUser, db.users[userId], guildName));
|
|
344
|
+
}
|
|
212
345
|
await interaction.editReply({
|
|
213
346
|
content: COMMON.ADMIN_OPERATION(targetUser, true),
|
|
214
347
|
});
|
|
@@ -225,9 +358,10 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
225
358
|
await interaction.editReply({
|
|
226
359
|
content: COMMON.ADMIN_OPERATION(targetUser, false),
|
|
227
360
|
});
|
|
361
|
+
await sendDM(client, userId, COMMON.ADMIN_GOODBYE(targetUser));
|
|
228
362
|
}
|
|
229
363
|
}
|
|
230
|
-
dbClose(db);
|
|
364
|
+
dbClose(db, queues);
|
|
231
365
|
}
|
|
232
366
|
async function chMgmt(interaction) {
|
|
233
367
|
const channel = interaction.options.getChannel(COMMON.CHANNEL, true);
|
|
@@ -258,7 +392,7 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
258
392
|
});
|
|
259
393
|
}
|
|
260
394
|
}
|
|
261
|
-
dbClose(db);
|
|
395
|
+
dbClose(db, queues);
|
|
262
396
|
}
|
|
263
397
|
async function lockdown(interaction) {
|
|
264
398
|
const enabled = interaction.options.getBoolean(COMMON.ENABLED, true);
|
|
@@ -266,7 +400,7 @@ async function handleAdmin(interaction, subcommand, username, queues) {
|
|
|
266
400
|
if (!db)
|
|
267
401
|
return;
|
|
268
402
|
db.lockdown = enabled;
|
|
269
|
-
dbClose(db);
|
|
403
|
+
dbClose(db, queues);
|
|
270
404
|
await interaction.editReply({
|
|
271
405
|
content: COMMON.LOCKDOWN_REPLY(enabled),
|
|
272
406
|
});
|