mirror of
https://github.com/JonnyBro/JaBa.git
synced 2024-11-21 20:54:58 +05:00
Новые команды clips и clips
This commit is contained in:
parent
c50964e41a
commit
9694193ab0
25 changed files with 137 additions and 31 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -24,4 +24,7 @@ report*.json
|
|||
.vscode
|
||||
|
||||
# commands.md
|
||||
**/commands.md
|
||||
**/commands.md
|
||||
|
||||
# Clips
|
||||
clips
|
|
@ -74,7 +74,7 @@ class Backup extends Command {
|
|||
|
||||
backup.fetch(backupID).then(async (backupInfos) => {
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setAuthor(message.translate("administration/backup:TITLE_INFOS"))
|
||||
.setAuthor(message.translate("administration/backup:TITLE_INFO"))
|
||||
// Display the backup ID
|
||||
.addField(message.translate("administration/backup:TITLE_ID"), backupInfos.id, true)
|
||||
// Displays the server from which this backup comes
|
||||
|
|
|
@ -26,7 +26,8 @@ class Profile extends Command {
|
|||
async run (message, args, data) {
|
||||
const client = this.client;
|
||||
|
||||
let member = await client.resolveMember(args[0], message.guild);
|
||||
const arg = args[0] || message.author
|
||||
let member = await client.resolveMember(arg, message.guild);
|
||||
if (!member) member = message.member;
|
||||
|
||||
// Check if the user is a bot
|
||||
|
@ -43,8 +44,8 @@ class Profile extends Command {
|
|||
let globalMoney = 0;
|
||||
await asyncForEach(commonsGuilds.array(), async (guild) => {
|
||||
const memberData = await client.findOrCreateMember({ id: member.id, guildID: guild.id });
|
||||
globalMoney+=memberData.money;
|
||||
globalMoney+=memberData.bankSold;
|
||||
globalMoney += memberData.money;
|
||||
globalMoney += memberData.bankSold;
|
||||
});
|
||||
|
||||
const profileEmbed = new Discord.MessageEmbed()
|
||||
|
|
|
@ -17,8 +17,7 @@ class Ping extends Command {
|
|||
}
|
||||
|
||||
async run (message) {
|
||||
message.sendT("general/ping:CONTENT", { ping: "..."
|
||||
}).then((m) => {
|
||||
message.sendT("general/ping:CONTENT", { ping: "..." }).then((m) => {
|
||||
m.sendT("general/ping:CONTENT", { ping: m.createdTimestamp - message.createdTimestamp }, { edit: true });
|
||||
});
|
||||
}
|
||||
|
|
47
commands/Music/clip.js
Normal file
47
commands/Music/clip.js
Normal file
|
@ -0,0 +1,47 @@
|
|||
const Command = require("../../base/Command.js"),
|
||||
fs = require("fs");
|
||||
|
||||
class Clip extends Command {
|
||||
constructor (client) {
|
||||
super(client, {
|
||||
name: "clip",
|
||||
dirname: __dirname,
|
||||
enabled: true,
|
||||
guildOnly: true,
|
||||
aliases: [],
|
||||
memberPermissions: [],
|
||||
botPermissions: [ "SEND_MESSAGES", "EMBED_LINKS" ],
|
||||
nsfw: false,
|
||||
ownerOnly: false,
|
||||
cooldown: 5000
|
||||
});
|
||||
}
|
||||
|
||||
async run (message, args) {
|
||||
const voice = message.member.voice.channel;
|
||||
|
||||
if (!args[0]) return message.error("music/clip:NO_ARG");
|
||||
if (!fs.existsSync(`./clips/${args[0]}.mp3`)) return message.error("music/clip:NO_FILE", { file: args[0] });
|
||||
if (!voice) return message.error("music/play:NO_VOICE_CHANNEL");
|
||||
if (this.client.player.isPlaying()) return message.error("music/clip:ACTIVE_QUEUE");
|
||||
|
||||
try {
|
||||
const connection = await voice.join();
|
||||
await connection.voice.setSelfDeaf(true);
|
||||
|
||||
connection
|
||||
.play(`./clips/${args[0]}.mp3`)
|
||||
.on("finish", () => {
|
||||
voice.leave();
|
||||
})
|
||||
.on("error", err => {
|
||||
voice.leave();
|
||||
console.error(err);
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Clip;
|
42
commands/Music/clips.js
Normal file
42
commands/Music/clips.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
const Command = require("../../base/Command.js"),
|
||||
Discord = require("discord.js"),
|
||||
fs = require("fs");
|
||||
|
||||
class Clips extends Command {
|
||||
constructor (client) {
|
||||
super(client, {
|
||||
name: "clips",
|
||||
dirname: __dirname,
|
||||
enabled: true,
|
||||
guildOnly: true,
|
||||
aliases: [],
|
||||
memberPermissions: [],
|
||||
botPermissions: [ "SEND_MESSAGES", "EMBED_LINKS" ],
|
||||
nsfw: false,
|
||||
ownerOnly: false,
|
||||
cooldown: 5000
|
||||
});
|
||||
}
|
||||
|
||||
async run (message, args, data) {
|
||||
fs.readdir("./clips", function(err, files) {
|
||||
if (err) return console.log("Unable to read directory: " + err);
|
||||
|
||||
let clips = [];
|
||||
|
||||
files.forEach(function(file) {
|
||||
clips.push(file.substring(0, file.length - 4));
|
||||
});
|
||||
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle("**Список клипов:**")
|
||||
.setDescription(clips.join("\n"))
|
||||
.setColor(data.config.embed.color)
|
||||
.setFooter(data.config.embed.footer)
|
||||
.setTimestamp()
|
||||
message.channel.send(embed);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Clips;
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"DESCRIPTION": "Управление резервными копиями сервера!",
|
||||
"USAGE": "{{prefix}}backup [create/load/infos]",
|
||||
"EXAMPLES": "{{prefix}}backup create\n{{prefix}}backup load 123456789098765432\n{{prefix}}backup infos 123456789098765432",
|
||||
"USAGE": "{{prefix}}backup [create/load/info]",
|
||||
"EXAMPLES": "{{prefix}}backup create\n{{prefix}}backup load 123456789098765432\n{{prefix}}backup info 123456789098765432",
|
||||
"MISSING_STATUS": "Выберите действие: `create`, `load` или `info`!",
|
||||
"MISSING_BACKUP_ID": "Пожалуйста, укажите ID резервной копии!",
|
||||
"NO_BACKUP_FOUND": "Резервных копий для `{{backupID}} не найдено`",
|
||||
|
@ -11,7 +11,7 @@
|
|||
"CONFIRMATION": ":warning: | **Загрузка резервной копии заменит настройки текущего сервера.**\n\n:arrow_right_hook: *Отправьте `confirm` для подтверждения!*",
|
||||
"START_LOADING": "Загрузка резервной копии начата, пожалуйста подождите!",
|
||||
"LOAD_SUCCESS": "Резервная копия загружена!",
|
||||
"TITLE_INFOS": "Информация о резервной копии",
|
||||
"TITLE_INFO": "Информация о резервной копии",
|
||||
"TITLE_ID": "ID",
|
||||
"TITLE_SERVER_ID": "ID сервера",
|
||||
"TITLE_SIZE": "Размер",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"DESCRIPTION": "Включить или отключить прощальные сообщения!",
|
||||
"USAGE": "{{prefix}}goodbye",
|
||||
"EXAMPLES": "{{prefix}}goodbye",
|
||||
"USAGE": "{{prefix}}goodbye (test)",
|
||||
"EXAMPLES": "{{prefix}}goodbye\n{{prefix}}goodbye test",
|
||||
"DEFAULT_MESSAGE": "Пока, {user}! Нас теперь {membercount} без тебя :'(",
|
||||
"TEST_SUCCESS": "Тест выполнен!",
|
||||
"FORM_1": "**В какой канал будут отправляться прощальные сообщения?**\n\n:arrow_right_hook: *Отправьте упоминание канала!*",
|
||||
|
@ -11,6 +11,6 @@
|
|||
"MAX_CHARACT": "Ваше сообщение не должно быть больше 1800 символов!",
|
||||
"DISABLED": "**Прощальные сообщения отключены!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
|
||||
"IMG_GOODBYE": "Вышел с сервера {{server}}!",
|
||||
"IMG_NB": "- {{memberCount}}ый участник!",
|
||||
"IMG_NB": "{{memberCount}}ый участник!",
|
||||
"TITLE": "Прощание"
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"DESCRIPTION": "Включить или отключить приветственные сообщения!",
|
||||
"USAGE": "{{prefix}}welcome",
|
||||
"EXAMPLES": "{{prefix}}welcome",
|
||||
"USAGE": "{{prefix}}welcome (test)",
|
||||
"EXAMPLES": "{{prefix}}welcome\n{{prefix}}welcome test",
|
||||
"MISSING_STATUS": "Выберите действие: `edit` или `off`",
|
||||
"DEFAULT_MESSAGE": "Добро пожаловать на сервер {server}, {user}, теперь нас {membercount}! Ваш аккаунт был создан {createdat}.",
|
||||
"TEST_SUCCESS": "Тест выполнен!",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Установить день рождения",
|
||||
"USAGE": "{{prefix}}birthdate (дата)",
|
||||
"USAGE": "{{prefix}}birthdate [дата]",
|
||||
"EXAMPLES": "{{prefix}}birthdate 01/01/2010",
|
||||
"MISSING_DATE": "Пожалуйста, укажите правильную дату! Например, 20/11/2003",
|
||||
"INVALID_DATE": "Используйте данный фортам: ДД/ММ/ГГГГ. Например, `1 января 2010` будет `01/01/2010`.",
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"DESCRIPTION": "Показать ваш или чужой профиль",
|
||||
"USAGE": "{{prefix}}profile [@пользователь]",
|
||||
"USAGE": "{{prefix}}profile (@пользователь)",
|
||||
"EXAMPLES": "{{prefix}}profile @Jonny_Bro#4226\n{{prefix}}profile",
|
||||
"TITLE": "Профиль {{username}}",
|
||||
"NO_BIO": "",
|
||||
"BOT_USER": "У ботов нет профилей!",
|
||||
"CASH": "💵 Кредиты",
|
||||
"BANK": "💳 Банк",
|
||||
"GLOBAL": "🌍 Всего денег",
|
||||
"GLOBAL": "🌍 Всего денег на всех серверах",
|
||||
"MONEY": "**{{money}}** кредит(а/ов)",
|
||||
"REPUTATION": "🎩 Репутация",
|
||||
"REP_POINTS": "**{{points}}** очко(а/ов)",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Я говорю правду!",
|
||||
"USAGE": "{{prefix}}8ball [вопрос]",
|
||||
"USAGE": "{{prefix}}8ball [вопрос?]",
|
||||
"EXAMPLES": "{{prefix}}8ball JaBa крутой?",
|
||||
"ERR_QUESTION": "Введите вопрос!",
|
||||
"RESPONSE_1": "я уверен в этом.",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Превратить текст в ASCII!",
|
||||
"USAGE": "{{prefix}}ascii [текс]",
|
||||
"USAGE": "{{prefix}}ascii [текст]",
|
||||
"EXAMPLES": "{{prefix}}ascii Hello world!",
|
||||
"TEXT_MISSING": "Введите текст (не больше 20 символов)!"
|
||||
}
|
|
@ -5,5 +5,5 @@
|
|||
"MISSING": "Укажите больше двух вариантов!\n(либо используйте команду `flip`)",
|
||||
"EMPTY": "Кажется один из вариантов пустой.... Попробуйте ещё раз!",
|
||||
"PROGRESS": "Выбираю...",
|
||||
"DONE": "Вот мой выбор:"
|
||||
"DONE": "Мой выбор:"
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"DESCRIPTION": "Кинуть монетку!",
|
||||
"DESCRIPTION": "Подкинуть монетку!",
|
||||
"USAGE": "{{prefix}}flip",
|
||||
"EXAMPLES": "{{prefix}}flip",
|
||||
"HEADS": ":coin: | Орёл!",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"DESCRIPTION": "Создать изображение \"bed\"",
|
||||
"USAGE": "{{prefix}}bed [@пользователь1] (@пользователь2)",
|
||||
"USAGE": "{{prefix}}bed (@пользователь1) (@пользователь2)",
|
||||
"EXAMPLES": "{{prefix}}bed @Jonny_Bro#4226\n{{prefix}}bed @Jonny_Bro#4226 @Dkflbvbh k.hyfqc#9402"
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"DESCRIPTION": "Создать изображение \"love\"",
|
||||
"USAGE": "{{prefix}}love [@пользователь1] (@пользователь2)",
|
||||
"USAGE": "{{prefix}}love (@пользователь1) (@пользователь2)",
|
||||
"EXAMPLES": "{{prefix}}love @Jonny_Bro#4226\n{{prefix}}love @Jonny_Bro#4226 @JaBa#9042"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Создать изображение \"tweet\"",
|
||||
"USAGE": "{{prefix}}tweet [@пользователь_twitter] [текст]",
|
||||
"USAGE": "{{prefix}}tweet [@пользователь] [текст]",
|
||||
"EXAMPLES": "{{prefix}}tweet @Jonny_Bro#4226 Люблю спать",
|
||||
"MISSING_USERNAME": "Вы должны упомянуть пользователя!",
|
||||
"MISSING_TEXT": "Укажите текст!",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"DESCRIPTION": "Управление раздачами!",
|
||||
"USAGE": "{{prefix}}giveaway [create/reroll/delete/end] (время) (кол-во победителей) (приз)",
|
||||
"EXAMPLES": "{{prefix}}giveaway create 10m 2 100 рублей на QIWI!\n{{prefix}}giveaway reroll 597812898022031374",
|
||||
"EXAMPLES": "{{prefix}}giveaway create 10m 2 100 рублей на карту!\n{{prefix}}giveaway reroll 597812898022031374",
|
||||
"MISSING_STATUS": "Выберите действие: `create`, `reroll`, `end` или `delete`!",
|
||||
"INVALID_CREATE": "Укажите параметры так: \n\n`{{prefix}}giveaway create [время] [кол-во победителей] [приз]`",
|
||||
"MISSING_ID": "Укажите ID сообщения раздачи!",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Кикнуть пользователя!",
|
||||
"USAGE": "{{prefix}}kick [@пользователь] (Причина)",
|
||||
"USAGE": "{{prefix}}kick [@пользователь] (причина)",
|
||||
"EXAMPLES": "{{prefix}}kick @Jonny_Bro#4226 Спам",
|
||||
"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
|
||||
"MISSING_PERM": "Произошла ошибка... Проверьте, есть ли у вас право кикать пользователей и попробуйте снова!",
|
||||
|
|
|
@ -4,5 +4,5 @@
|
|||
"EXAMPLES": "{{prefix}}back",
|
||||
"NO_PREV_SONG": "Предыдущий трек отсутствует!",
|
||||
"VOTE_CONTENT": "Предыдущий трек: {{songName}}\nОтреагируйте 👍, чтобы проголосовать за воспроизведение! Необходимо ещё {{requiredCount}} голосов.",
|
||||
"SUCCESS": "Изгает предыдущий трек!"
|
||||
"SUCCESS": "Играет предыдущий трек!"
|
||||
}
|
8
languages/ru-RU/music/clip.json
Normal file
8
languages/ru-RU/music/clip.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"DESCRIPTION": "Воспроизвести клип",
|
||||
"USAGE": "{{prefix}}clip [название-файла]",
|
||||
"EXAMPLES": "{{prefix}}clip haha",
|
||||
"NO_ARG": "Укажите название файла",
|
||||
"NO_FILE": "Файл {{file}} отсутствует!",
|
||||
"ACTIVE_QUEUE": "Не могу воспроизвести клип, т.к. на сервере есть активная очередь"
|
||||
}
|
6
languages/ru-RU/music/clips.json
Normal file
6
languages/ru-RU/music/clips.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Показать список доступных звуков",
|
||||
"USAGE": "{{prefix}}clips",
|
||||
"EXAMPLES": "{{prefix}}clips",
|
||||
"EMBED_TITLE": "**Список клипов**"
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"DESCRIPTION": "Показать слова к песне",
|
||||
"USAGE": "{{prefix}}lyrics [название-песни]",
|
||||
"USAGE": "{{prefix}}lyrics [название-трека]",
|
||||
"EXAMPLES": "{{prefix}}lyrics Skyfall",
|
||||
"LYRICS_OF": "🎤 Текст {{songName}}",
|
||||
"AND_MORE": "\n**и т.д...**",
|
||||
"REST": "Больше",
|
||||
"MISSING_SONG_NAME": "Укажите название песни!",
|
||||
"MISSING_SONG_NAME": "Укажите название трека!",
|
||||
"NO_LYRICS_FOUND": "Текста для `{{songName}}` не найдено!"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"DESCRIPTION": "Начать воспроизведение трека!",
|
||||
"USAGE": "{{prefix}}play [трек/ссылка]",
|
||||
"USAGE": "{{prefix}}play [название-трека/ссылка]",
|
||||
"EXAMPLES": "{{prefix}}play Never Gonna Give You Up",
|
||||
"NO_VOICE_CHANNEL": "Вы должны находиться в голосовом канале!",
|
||||
"VOICE_CHANNEL_CONNECT": "Я не могу присоедениться к вашему голосовому каналу!",
|
||||
|
|
Loading…
Reference in a new issue