mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-18 05:49:49 +02:00
Remove more commands
This commit is contained in:
@@ -1,60 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
const request = require('node-superfetch');
|
||||
const moment = require('moment');
|
||||
const { embedURL, formatNumber } = require('../../util/Util');
|
||||
|
||||
module.exports = class BotCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'bot',
|
||||
aliases: ['discord-bot', 'bot-info', 'discord-bot-info'],
|
||||
group: 'info',
|
||||
memberName: 'bot',
|
||||
description: 'Responds with information on a Discord bot.',
|
||||
clientPermissions: ['EMBED_LINKS'],
|
||||
credit: [
|
||||
{
|
||||
name: 'Discord Bots',
|
||||
url: 'https://discord.bots.gg/',
|
||||
reason: 'API'
|
||||
}
|
||||
],
|
||||
args: [
|
||||
{
|
||||
key: 'user',
|
||||
prompt: 'What bot would you like to get information on?',
|
||||
type: 'user'
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
async run(msg, { user }) {
|
||||
if (!user.bot) return msg.say('This user is not a bot.');
|
||||
try {
|
||||
const { body } = await request.get(`https://discord.bots.gg/api/v1/bots/${user.id}`);
|
||||
const avatar = body.avatarURL === '/img/bot_icon_placeholder.png'
|
||||
? 'https://discord.bots.gg/img/bot_icon_placeholder.png'
|
||||
: body.avatarURL;
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(0x000001)
|
||||
.setTitle(`${body.username} by ${body.owner.username}#${body.owner.discriminator}`)
|
||||
.setDescription(body.shortDescription)
|
||||
.setAuthor('Discord Bots', 'https://i.imgur.com/OhZCqVd.jpg', 'https://discord.bots.gg/')
|
||||
.setThumbnail(avatar)
|
||||
.setURL(`https://discord.bots.gg/bots/${user.id}`)
|
||||
.setFooter(user.id)
|
||||
.addField('❯ Prefix', body.prefix || '???', true)
|
||||
.addField('❯ Library', body.libraryName || '???', true)
|
||||
.addField('❯ Servers', body.guildCount ? formatNumber(body.guildCount) : '???', true)
|
||||
.addField('❯ Invite', body.botInvite ? embedURL('Here', body.botInvite) : '???', true)
|
||||
.addField('❯ Server', body.supportInvite ? embedURL('Here', body.supportInvite) : '???', true)
|
||||
.addField('❯ Public List Date', moment.utc(body.addedDate).format('MM/DD/YYYY h:mm A'), true);
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.status === 404) return msg.say('This bot is not publicly listed.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1,45 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const moment = require('moment');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
const types = {
|
||||
dm: 'DM',
|
||||
group: 'Group DM',
|
||||
text: 'Text Channel',
|
||||
voice: 'Voice Channel',
|
||||
category: 'Category',
|
||||
unknown: 'Unknown'
|
||||
};
|
||||
|
||||
module.exports = class ChannelCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'channel',
|
||||
aliases: ['channel-info'],
|
||||
group: 'info',
|
||||
memberName: 'channel',
|
||||
description: 'Responds with detailed information on a channel.',
|
||||
clientPermissions: ['EMBED_LINKS'],
|
||||
args: [
|
||||
{
|
||||
key: 'channel',
|
||||
prompt: 'Which channel would you like to get information on?',
|
||||
type: 'channel',
|
||||
default: msg => msg.channel
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
run(msg, { channel }) {
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(0x00AE86)
|
||||
.addField('❯ Name', channel.type === 'dm' ? `@${channel.recipient.username}` : channel.name, true)
|
||||
.addField('❯ ID', channel.id, true)
|
||||
.addField('❯ NSFW', channel.nsfw ? 'Yes' : 'No', true)
|
||||
.addField('❯ Category', channel.parent ? channel.parent.name : 'None', true)
|
||||
.addField('❯ Type', types[channel.type], true)
|
||||
.addField('❯ Creation Date', moment.utc(channel.createdAt).format('MM/DD/YYYY h:mm A'), true)
|
||||
.addField('❯ Topic', channel.topic || 'None');
|
||||
return msg.embed(embed);
|
||||
}
|
||||
};
|
||||
@@ -1,32 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const { list } = require('../../util/Util');
|
||||
const types = ['animated', 'regular'];
|
||||
|
||||
module.exports = class EmojiListCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'emoji-list',
|
||||
aliases: ['emojis', 'emotes', 'emote-list'],
|
||||
group: 'info',
|
||||
memberName: 'emoji-list',
|
||||
description: 'Responds with a list of the server\'s custom emoji.',
|
||||
guildOnly: true,
|
||||
args: [
|
||||
{
|
||||
key: 'type',
|
||||
prompt: `What type of emoji would you like to view? Either ${list(types, 'or')}.`,
|
||||
type: 'string',
|
||||
default: 'regular',
|
||||
oneOf: types,
|
||||
parse: type => type.toLowerCase()
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
run(msg, { type }) {
|
||||
const emojis = msg.guild.emojis.cache.filter(emoji => type === 'animated' ? emoji.animated : !emoji.animated);
|
||||
if (!emojis.size) return msg.say(`This server has no ${type} custom emoji.`);
|
||||
return msg.say(emojis.map(emoji => emoji.toString()).sort().join(' '), { split: { char: ' ' } });
|
||||
}
|
||||
};
|
||||
@@ -1,38 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const moment = require('moment');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class EmojiCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'emoji',
|
||||
aliases: ['emoji-info', 'emote'],
|
||||
group: 'info',
|
||||
memberName: 'emoji',
|
||||
description: 'Responds with detailed information on an emoji.',
|
||||
guildOnly: true,
|
||||
clientPermissions: ['EMBED_LINKS', 'MANAGE_EMOJIS'],
|
||||
args: [
|
||||
{
|
||||
key: 'emoji',
|
||||
prompt: 'Which emoji would you like to get information on?',
|
||||
type: 'custom-emoji'
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
async run(msg, { emoji }) {
|
||||
if (!emoji.author && !emoji.managed) await emoji.fetchAuthor();
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(0x00AE86)
|
||||
.setThumbnail(emoji.url)
|
||||
.addField('❯ Name', emoji.name, true)
|
||||
.addField('❯ ID', emoji.id, true)
|
||||
.addField('❯ Creation Date', moment.utc(emoji.createdAt).format('MM/DD/YYYY h:mm A'), true)
|
||||
.addField('❯ Animated?', emoji.animated ? 'Yes' : 'No', true)
|
||||
.addField('❯ External?', emoji.managed ? 'Yes' : 'No', true)
|
||||
.addField('❯ Added By', emoji.author ? emoji.author.tag : '???', true);
|
||||
return msg.embed(embed);
|
||||
}
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
|
||||
module.exports = class IDCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'id',
|
||||
aliases: ['user-id', 'member-id'],
|
||||
group: 'info',
|
||||
memberName: 'id',
|
||||
description: 'Responds with a user\'s ID.',
|
||||
args: [
|
||||
{
|
||||
key: 'user',
|
||||
prompt: 'Which user do you want to get the ID of?',
|
||||
type: 'user',
|
||||
default: msg => msg.author
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
run(msg, { user }) {
|
||||
return msg.reply(`${user.id === msg.author.id ? 'Your' : `${user.username}'s`} ID is ${user.id}.`);
|
||||
}
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const { shorten } = require('../../util/Util');
|
||||
|
||||
module.exports = class MessageSourceCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'message-source',
|
||||
aliases: ['msg-source', 'message-src', 'msg-src', 'source', 'src'],
|
||||
group: 'info',
|
||||
memberName: 'message-source',
|
||||
description: 'Responds with a codeblock containing a message\'s contents.',
|
||||
args: [
|
||||
{
|
||||
key: 'message',
|
||||
prompt: 'Which message do you want to get the source of?',
|
||||
type: 'message'
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
run(msg, { message }) {
|
||||
if (!message.content) return msg.reply('That message has no content. Maybe it\'s an embed or image?');
|
||||
return msg.code(null, shorten(message.content, 1990));
|
||||
}
|
||||
};
|
||||
@@ -1,36 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
|
||||
module.exports = class MessageCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'message',
|
||||
aliases: ['message-info', 'msg', 'msg-info'],
|
||||
group: 'info',
|
||||
memberName: 'message',
|
||||
description: 'Responds with detailed information on a message.',
|
||||
clientPermissions: ['EMBED_LINKS'],
|
||||
args: [
|
||||
{
|
||||
key: 'message',
|
||||
prompt: 'Which message would you like to get information on?',
|
||||
type: 'message'
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
run(msg, { message }) {
|
||||
const hasImage = message.attachments.size && message.attachments.first().width;
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(message.member ? message.member.displayHexColor : 0x00AE86)
|
||||
.setThumbnail(message.author.displayAvatarURL({ format: 'png', dynamic: true }))
|
||||
.setImage(hasImage ? message.attachments.first().url : null)
|
||||
.setAuthor(message.author.tag, message.author.displayAvatarURL({ format: 'png', dynamic: true }))
|
||||
.setDescription(message.content)
|
||||
.setTimestamp(message.createdAt)
|
||||
.setFooter(`ID: ${message.id}`)
|
||||
.addField('❯ Jump', `[Click Here to Jump](${message.url})`);
|
||||
return msg.embed(embed);
|
||||
}
|
||||
};
|
||||
@@ -1,40 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const moment = require('moment');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
const permissions = require('../../assets/json/permission-names');
|
||||
|
||||
module.exports = class RoleCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'role',
|
||||
aliases: ['role-info'],
|
||||
group: 'info',
|
||||
memberName: 'role',
|
||||
description: 'Responds with detailed information on a role.',
|
||||
guildOnly: true,
|
||||
clientPermissions: ['EMBED_LINKS'],
|
||||
args: [
|
||||
{
|
||||
key: 'role',
|
||||
prompt: 'Which role would you like to get information on?',
|
||||
type: 'role'
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
run(msg, { role }) {
|
||||
const serialized = role.permissions.serialize();
|
||||
const perms = Object.keys(permissions).filter(perm => serialized[perm]);
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(role.hexColor)
|
||||
.addField('❯ Name', role.name, true)
|
||||
.addField('❯ ID', role.id, true)
|
||||
.addField('❯ Color', role.hexColor.toUpperCase(), true)
|
||||
.addField('❯ Creation Date', moment.utc(role.createdAt).format('MM/DD/YYYY h:mm A'), true)
|
||||
.addField('❯ Hoisted?', role.hoist ? 'Yes' : 'No', true)
|
||||
.addField('❯ Mentionable?', role.mentionable ? 'Yes' : 'No', true)
|
||||
.addField('❯ Permissions', perms.map(perm => permissions[perm]).join(', ') || 'None');
|
||||
return msg.embed(embed);
|
||||
}
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const moment = require('moment');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
const { formatNumber } = require('../../util/Util');
|
||||
const filterLevels = {
|
||||
DISABLED: 'Off',
|
||||
MEMBERS_WITHOUT_ROLES: 'No Role',
|
||||
ALL_MEMBERS: 'Everyone'
|
||||
};
|
||||
const verificationLevels = {
|
||||
NONE: 'None',
|
||||
LOW: 'Low',
|
||||
MEDIUM: 'Medium',
|
||||
HIGH: 'High',
|
||||
VERY_HIGH: 'Highest'
|
||||
};
|
||||
|
||||
module.exports = class ServerCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'server',
|
||||
aliases: ['guild', 'server-info', 'guild-info'],
|
||||
group: 'info',
|
||||
memberName: 'server',
|
||||
description: 'Responds with detailed information on the server.',
|
||||
guildOnly: true,
|
||||
clientPermissions: ['EMBED_LINKS']
|
||||
});
|
||||
}
|
||||
|
||||
async run(msg) {
|
||||
const owner = await msg.guild.fetchOwner();
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(0x00AE86)
|
||||
.setThumbnail(msg.guild.iconURL({ format: 'png' }))
|
||||
.addField('❯ Name', msg.guild.name, true)
|
||||
.addField('❯ ID', msg.guild.id, true)
|
||||
.addField('❯ Creation Date', moment.utc(msg.guild.createdAt).format('MM/DD/YYYY h:mm A'), true)
|
||||
.addField('❯ Owner', owner.user.tag, true)
|
||||
.addField('❯ Boost Count', formatNumber(msg.guild.premiumSubscriptionCount || 0), true)
|
||||
.addField('❯ Boost Tier', msg.guild.premiumTier ? `Tier ${msg.guild.premiumTier}` : 'None', true)
|
||||
.addField('❯ Region', msg.guild.region.toUpperCase(), true)
|
||||
.addField('❯ Explicit Filter', filterLevels[msg.guild.explicitContentFilter], true)
|
||||
.addField('❯ Verification Level', verificationLevels[msg.guild.verificationLevel], true)
|
||||
.addField('❯ Members', formatNumber(msg.guild.memberCount), true)
|
||||
.addField('❯ Roles', formatNumber(msg.guild.roles.cache.size), true)
|
||||
.addField('❯ Channels',
|
||||
formatNumber(msg.guild.channels.cache.filter(channel => channel.type !== 'category').size), true);
|
||||
return msg.embed(embed);
|
||||
}
|
||||
};
|
||||
@@ -1,72 +0,0 @@
|
||||
const Command = require('../../framework/Command');
|
||||
const moment = require('moment');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
const { trimArray } = require('../../util/Util');
|
||||
const flags = {
|
||||
DISCORD_EMPLOYEE: 'Discord Employee',
|
||||
PARTNERED_SERVER_OWNER: 'Discord Partner',
|
||||
BUGHUNTER_LEVEL_1: 'Bug Hunter (Level 1)',
|
||||
BUGHUNTER_LEVEL_2: 'Bug Hunter (Level 2)',
|
||||
HYPESQUAD_EVENTS: 'HypeSquad Events',
|
||||
HOUSE_BRAVERY: 'House of Bravery',
|
||||
HOUSE_BRILLIANCE: 'House of Brilliance',
|
||||
HOUSE_BALANCE: 'House of Balance',
|
||||
EARLY_SUPPORTER: 'Early Supporter',
|
||||
TEAM_USER: 'Team User',
|
||||
SYSTEM: 'System',
|
||||
VERIFIED_BOT: 'Verified Bot',
|
||||
EARLY_VERIFIED_BOT_DEVELOPER: 'Early Verified Bot Developer'
|
||||
};
|
||||
const deprecated = ['DISCORD_PARTNER', 'VERIFIED_DEVELOPER'];
|
||||
|
||||
module.exports = class UserCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'user',
|
||||
aliases: ['user-info', 'member', 'member-info', 'profile', 'who-is', 'who'],
|
||||
group: 'info',
|
||||
memberName: 'user',
|
||||
description: 'Responds with detailed information on a user.',
|
||||
clientPermissions: ['EMBED_LINKS'],
|
||||
args: [
|
||||
{
|
||||
key: 'user',
|
||||
prompt: 'Which user would you like to get information on?',
|
||||
type: 'user',
|
||||
default: msg => msg.author
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
async run(msg, { user }) {
|
||||
const userFlags = user.flags ? user.flags.toArray().filter(flag => !deprecated.includes(flag)) : [];
|
||||
const embed = new MessageEmbed()
|
||||
.setThumbnail(user.displayAvatarURL({ format: 'png', dynamic: true }))
|
||||
.setAuthor(user.tag)
|
||||
.addField('❯ Discord Join Date', moment.utc(user.createdAt).format('MM/DD/YYYY h:mm A'), true)
|
||||
.addField('❯ ID', user.id, true)
|
||||
.addField('❯ Bot?', user.bot ? 'Yes' : 'No', true)
|
||||
.addField('❯ Flags', userFlags.length ? userFlags.map(flag => flags[flag]).join(', ') : 'None');
|
||||
if (msg.guild) {
|
||||
try {
|
||||
const member = await msg.guild.members.fetch(user.id);
|
||||
const defaultRole = msg.guild.roles.cache.get(msg.guild.id);
|
||||
const roles = member.roles.cache
|
||||
.filter(role => role.id !== defaultRole.id)
|
||||
.sort((a, b) => b.position - a.position)
|
||||
.map(role => role.name);
|
||||
embed
|
||||
.addField('❯ Server Join Date', moment.utc(member.joinedAt).format('MM/DD/YYYY h:mm A'), true)
|
||||
.addField('❯ Highest Role',
|
||||
member.roles.highest.id === defaultRole.id ? 'None' : member.roles.highest.name, true)
|
||||
.addField('❯ Hoist Role', member.roles.hoist ? member.roles.hoist.name : 'None', true)
|
||||
.addField(`❯ Roles (${roles.length})`, roles.length ? trimArray(roles, 6).join(', ') : 'None')
|
||||
.setColor(member.displayHexColor);
|
||||
} catch {
|
||||
embed.setFooter('Failed to resolve member, showing basic user information instead.');
|
||||
}
|
||||
}
|
||||
return msg.embed(embed);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user