allow docker command to work in DMs
This commit is contained in:
1 parent
5ff8bbbc9b
commit
b5dfa7cd14
2 files changed
+21
-6
No files matched your search
@@ -2128,16 +2128,26 @@ async function handleDockerRestart(message, name) {
|
||||
}
|
||||
}
|
||||
|
||||
async function hasDockerRole(message) {
|
||||
if (message.guild) {
|
||||
return message.member.roles.cache.has(DOCKER_ROLE_ID);
|
||||
}
|
||||
for (const guild of message.client.guilds.cache.values()) {
|
||||
let member = guild.members.cache.get(message.author.id);
|
||||
if (!member) {
|
||||
member = await guild.members.fetch(message.author.id).catch(() => null);
|
||||
}
|
||||
if (member && member.roles.cache.has(DOCKER_ROLE_ID)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async function handleDocker(message, input) {
|
||||
if (!DOCKER_ENABLED) {
|
||||
await message.reply("Docker control isn't set up. Set DOCKER_SSH_HOST, DOCKER_SSH_USER, DOCKER_SSH_KEY_PATH, and DOCKER_ROLE_ID in .env to enable it.");
|
||||
return;
|
||||
}
|
||||
if (!message.guild) {
|
||||
await message.reply("!docker only works inside a server, not in DMs.");
|
||||
return;
|
||||
}
|
||||
if (!message.member.roles.cache.has(DOCKER_ROLE_ID)) {
|
||||
if (!(await hasDockerRole(message))) {
|
||||
await message.reply("You don't have permission to use !docker.");
|
||||
return;
|
||||
}
|
||||
@@ -2516,6 +2526,11 @@ client.on("messageCreate", async (message) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (dmContent === "!docker" || dmContent.startsWith("!docker ")) {
|
||||
await handleDocker(message, message.content.trim().slice(7).trim());
|
||||
return;
|
||||
}
|
||||
|
||||
const displayName = message.author.globalName || message.author.username;
|
||||
if (dmGreetedUsers.has(message.author.id)) {
|
||||
await message.reply("Type !help for a list of my commands to be used in Text Channels.");
|
||||
|
||||
Reference in new issue
Block a user