mirror of
https://github.com/ApfelTeeSaft/LawinServerV2.git
synced 2026-08-26 19:23:39 +00:00
48 lines
2.1 KiB
JavaScript
48 lines
2.1 KiB
JavaScript
const User = require("../../model/user.js");
|
|
const functions = require("../../structs/functions.js");
|
|
const fs = require("fs");
|
|
const config = JSON.parse(fs.readFileSync("./Config/config.json").toString());
|
|
|
|
module.exports = {
|
|
commandInfo: {
|
|
name: "kick",
|
|
description: "Kick someone out of their current session by their username.",
|
|
options: [
|
|
{
|
|
name: "username",
|
|
description: "Target username.",
|
|
required: true,
|
|
type: 3 // string
|
|
}
|
|
]
|
|
},
|
|
execute: async (interaction) => {
|
|
await interaction.deferReply({ ephemeral: true });
|
|
|
|
if (!config.moderators.includes(interaction.user.id)) return interaction.editReply({ content: "You do not have moderator permissions.", ephemeral: true });
|
|
|
|
const { options } = interaction;
|
|
const targetUser = await User.findOne({ username_lower: (options.get("username").value).toLowerCase() });
|
|
|
|
if (!targetUser) return interaction.editReply({ content: "The account username you entered does not exist.", ephemeral: true });
|
|
|
|
let refreshToken = global.refreshTokens.findIndex(i => i.accountId == targetUser.accountId);
|
|
if (refreshToken != -1) global.refreshTokens.splice(refreshToken, 1);
|
|
|
|
let accessToken = global.accessTokens.findIndex(i => i.accountId == targetUser.accountId);
|
|
if (accessToken != -1) {
|
|
global.accessTokens.splice(accessToken, 1);
|
|
|
|
let xmppClient = global.Clients.find(client => client.accountId == targetUser.accountId);
|
|
if (xmppClient) xmppClient.client.close();
|
|
}
|
|
|
|
if (accessToken != -1 || refreshToken != -1) {
|
|
functions.UpdateTokens();
|
|
|
|
return interaction.editReply({ content: `Successfully kicked ${targetUser.username}`, ephemeral: true });
|
|
}
|
|
|
|
interaction.editReply({ content: `There are no current active sessions by ${targetUser.username}`, ephemeral: true });
|
|
}
|
|
} |