mirror of
https://github.com/warengroup/eximiabots-radiox.git
synced 2024-11-09 16:20:18 +00:00
commit
d3296efa57
@ -1,4 +1,5 @@
|
||||
# RadioX by EximiaBots
|
||||
We will bring you finnish radio to your discord server.
|
||||
|
||||
Join our Discord Server
|
||||
https://discord.gg/rRA65Mn
|
||||
|
@ -3,13 +3,24 @@ module.exports = {
|
||||
alias: 'none',
|
||||
usage: '',
|
||||
description: 'Report a bug',
|
||||
onlyDev: false,
|
||||
permission: 'none',
|
||||
category: 'info',
|
||||
async execute(msg, args, client, Discord, prefix) {
|
||||
|
||||
let developers = "";
|
||||
let user = "";
|
||||
for(i = 0; i < client.config.devId.length; i++){
|
||||
user = await client.users.fetch(client.config.devId[i]);
|
||||
if(i == client.config.devId.length-1){
|
||||
developers += user.tag;
|
||||
} else {
|
||||
developers += user.tag + " & ";
|
||||
}
|
||||
}
|
||||
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(`Found a bug with ${client.user.username}?\nDM the core developer:`)
|
||||
.setDescription(`Matte#0002\nOr join the support server: ${client.config.supportGuild}`)
|
||||
.setDescription(`${developers}\nOr join the support server: ${client.config.supportGuild}`)
|
||||
.setColor(client.config.embedColor);
|
||||
msg.channel.send(embed);
|
||||
},
|
||||
|
@ -3,12 +3,11 @@ module.exports = {
|
||||
alias: 'h',
|
||||
usage: '<command(opt)>',
|
||||
description: 'See the help for RadioX.',
|
||||
onlyDev: false,
|
||||
permission: 'none',
|
||||
category: 'info',
|
||||
execute(msg, args, client, Discord, prefix, command) {
|
||||
if (args[1]) {
|
||||
if (!client.commands.has(args[1]) || (client.commands.has(args[1]) && client.commands.get(args[1]).omitFromHelp === true && msg.guild.id !== '489083836240494593')) return msg.channel.send('That command does not exist');
|
||||
if (!client.commands.has(args[1]) || (client.commands.has(args[1]) && client.commands.get(args[1]).omitFromHelp === true)) return msg.channel.send('That command does not exist');
|
||||
const command = client.commands.get(args[1]);
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(`${client.global.db.guilds[msg.guild.id].prefix}${command.name} ${command.usage}`)
|
||||
@ -23,7 +22,7 @@ module.exports = {
|
||||
}
|
||||
let commands = '';
|
||||
for (let i = 0; i < categories.length; i++) {
|
||||
commands += `**» ${categories[i].toUpperCase()}**\n${client.commands.filter(x => x.category === categories[i] && !x.omitFromHelp && !x.onlyDev).map(x => `\`${x.name}\``).join(', ')}\n`;
|
||||
commands += `**» ${categories[i].toUpperCase()}**\n${client.commands.filter(x => x.category === categories[i] && !x.omitFromHelp).map(x => `\`${x.name}\``).join(', ')}\n`;
|
||||
}
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(`${client.user.username} help:`)
|
||||
|
@ -3,7 +3,6 @@ module.exports = {
|
||||
alias: 'i',
|
||||
usage: '',
|
||||
description: 'Invite RadioX.',
|
||||
onlyDev: false,
|
||||
permission: 'none',
|
||||
category: 'info',
|
||||
execute(msg, args, client, Discord, prefix) {
|
||||
|
@ -3,7 +3,6 @@ module.exports = {
|
||||
alias: 'np',
|
||||
usage: '',
|
||||
description: 'See the currently playing song position and length.',
|
||||
onlyDev: false,
|
||||
permission: 'none',
|
||||
category: 'music',
|
||||
async execute(msg, args, client, Discord, prefix) {
|
||||
@ -11,11 +10,10 @@ module.exports = {
|
||||
if (!radio) return msg.channel.send('<:redx:674263474704220182> There is nothing playing.');
|
||||
if (!radio.playing) return msg.channel.send('<:redx:674263474704220182> There is nothing playing.');
|
||||
radio.time = radio.connection.dispatcher.streamTime;
|
||||
let completed = (radio.time.toFixed(0));
|
||||
const completed = (radio.time.toFixed(0));
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle("__Now playing__")
|
||||
.setDescription(`<a:aNotes:674602408105476106>**Now playing:** ${radio.url}\n\`${client.funcs.msToTime(completed, "hh:mm:ss")}\``)
|
||||
.setThumbnail(thumbnail._rejectionHandler0)
|
||||
.setColor(client.config.embedColor)
|
||||
return msg.channel.send(embed);
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ module.exports = {
|
||||
alias: 'p',
|
||||
usage: '<song name>',
|
||||
description: 'Play some music.',
|
||||
onlyDev: false,
|
||||
permission: 'none',
|
||||
category: 'music',
|
||||
async execute(msg, args, client, Discord, prefix) {
|
||||
@ -25,7 +24,8 @@ module.exports = {
|
||||
}
|
||||
|
||||
if (radio) {
|
||||
radio.connection.dispatcher.end();
|
||||
radio.connection.dispatcher.destroy();
|
||||
client.funcs.play(msg.guild, client, url);
|
||||
}
|
||||
|
||||
const construct = {
|
||||
|
@ -3,14 +3,13 @@ module.exports = {
|
||||
description: 'Stop command.',
|
||||
alias: 'none',
|
||||
usage: '',
|
||||
onlyDev: false,
|
||||
permission: 'MANAGE_CHANNELS',
|
||||
permission: 'none',
|
||||
category: 'music',
|
||||
execute(msg, args, client, Discord, prefix, command) {
|
||||
const radio = client.radio.get(msg.guild.id);
|
||||
if (client.funcs.check(client, msg, command)) {
|
||||
radio.connection.dispatcher.end();
|
||||
msg.channel.send('<:stop:674685626108477519> Stopped the music!')
|
||||
}
|
||||
radio.connection.dispatcher.destroy();
|
||||
radio.voiceChannel.leave();
|
||||
client.radio.delete(guild.id);
|
||||
msg.channel.send('<:stop:674685626108477519> Stopped the music!');
|
||||
}
|
||||
};
|
@ -3,7 +3,6 @@ module.exports = {
|
||||
description: 'Volume command.',
|
||||
alias: 'none',
|
||||
usage: '<volume>',
|
||||
onlyDev: false,
|
||||
permission: 'MANAGE_MESSAGES',
|
||||
category: 'music',
|
||||
execute(msg, args, client, Discord, prefix, command) {
|
||||
|
23
config.js
Normal file
23
config.js
Normal file
@ -0,0 +1,23 @@
|
||||
require('dotenv/config');
|
||||
|
||||
module.exports = {
|
||||
|
||||
//credentials
|
||||
token: "Njg0MTA5NTM1MzEyNjA5NDA5.XmOUxg.u2XChDQMZtokzueQRqGWc-CAvWE",
|
||||
|
||||
//support
|
||||
supportGuild: "https://discord.gg/rRA65Mn",
|
||||
devId: [
|
||||
"493174343484833802",
|
||||
"360363051792203779"
|
||||
],
|
||||
|
||||
//misc
|
||||
embedColor: "#88aa00",
|
||||
invite: "https://discordapp.com/api/oauth2/authorize?client_id=684109535312609409&permissions=3427328&scope=bot",
|
||||
|
||||
//Settings
|
||||
prefix: "rx>",
|
||||
volume: 5
|
||||
|
||||
}
|
@ -2,8 +2,7 @@ module.exports = {
|
||||
name: 'message',
|
||||
async execute(client, msg, Discord) {
|
||||
if (msg.author.bot || !msg.guild) return;
|
||||
let prefix = client.config.prefix
|
||||
if (client.config.devMode) prefix = client.config.devPrefix;
|
||||
let prefix = client.config.prefix;
|
||||
const args = msg.content.slice(prefix.length).split(' ');
|
||||
if (msg.mentions.users.first()) {
|
||||
if (msg.mentions.users.first().id === client.user.id) {
|
||||
@ -20,8 +19,6 @@ module.exports = {
|
||||
const commandName = args[0].toLowerCase();
|
||||
const command = client.commands.get(commandName) || client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName)) || client.commandAliases.get(commandName);
|
||||
if (!command && msg.content !== `${prefix}`) return;
|
||||
if (command.onlyDev && msg.author.id !== client.config.devId) return msg.channel.send('<:redx:674263474704220182> You are not allowed to do that!');
|
||||
if (client.config.devMode && msg.member.id !== client.config.devId) return msg.channel.send('<:redx:674263474704220182> Dev mode has been turned on! Commands are only available to developer(s)!');
|
||||
client.funcs.exe(msg, args, client, Discord, prefix, command);
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,8 @@
|
||||
module.exports = {
|
||||
name: 'ready',
|
||||
async execute(client, Discord) {
|
||||
const debugChannel = await client.channels.fetch(client.config.debug_channel);
|
||||
client.debug_channel = debugChannel
|
||||
if (client.config.devMode) {
|
||||
console.log('dev mode');
|
||||
}
|
||||
console.log('- Activated -');
|
||||
console.log('RadioX');
|
||||
console.log('We will bring you finnish radio to your discord server');
|
||||
console.log('(c)2020 EximiaBots by Warén Media / Christer Warén & MatteZ02');
|
||||
}
|
||||
}
|
17
package.json
17
package.json
@ -1,18 +1,25 @@
|
||||
{
|
||||
"name": "radiox",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"description": "We will bring you finnish radio to your discord server",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"start": "node ."
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/warengroup/eximiabots-radiox.git"
|
||||
},
|
||||
"author": "EximiaBots",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/warengroup/eximiabots-radiox/issues"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@discordjs/opus": "^0.1.0",
|
||||
"discord.js": "^12.0.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"fs": "0.0.1-security",
|
||||
"node-opus": "^0.3.3",
|
||||
"path": "^0.12.7"
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ module.exports = class extends Client {
|
||||
this.radio = new Map();
|
||||
this.funcs = {};
|
||||
this.dispatcher = {};
|
||||
this.config = require('./config/config.js');
|
||||
this.config = require('../config.js');
|
||||
|
||||
fs.readdirSync(path.join(__dirname, 'funcs')).forEach(filename => {
|
||||
this.funcs[filename.slice(0, -3)] = require(`./funcs/${filename}`);
|
||||
|
@ -1,22 +0,0 @@
|
||||
require('dotenv/config');
|
||||
|
||||
module.exports = {
|
||||
//credentials
|
||||
token: process.env.TOKEN,
|
||||
devToken: process.env.DEVTOKEN,
|
||||
//support guild
|
||||
supportGuild: "https://discord.gg/rRA65Mn",
|
||||
//channels
|
||||
debug_channel: "634718645188034560",
|
||||
primary_test_channel: "617633098296721409",
|
||||
secondary_test_channel: "570531724002328577",
|
||||
devId: "360363051792203779",
|
||||
//misc
|
||||
embedColor: "",
|
||||
invite: "https://discordapp.com/api/oauth2/authorize?client_id=684109535312609409&permissions=3427328&scope=bot",
|
||||
//Settings
|
||||
devMode: false,
|
||||
prefix: "rx>",
|
||||
devPrefix: "-",
|
||||
volume: 5,
|
||||
}
|
@ -6,11 +6,6 @@ module.exports = function (msg, args, client, Discord, prefix, command) {
|
||||
command.execute(msg, args, client, Discord, prefix, command);
|
||||
} catch (error) {
|
||||
msg.reply(`<:redx:674263474704220182> there was an error trying to execute that command! Please contact support with \`${prefix}bug\`!`);
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(`Musix ${error.toString()}`)
|
||||
.setDescription(error.stack.replace(/at /g, '**at **'))
|
||||
.setColor('#b50002');
|
||||
client.debug_channel.send(embed);
|
||||
console.error(error);
|
||||
}
|
||||
};
|
||||
|
17
struct/funcs/msToTime.js
Normal file
17
struct/funcs/msToTime.js
Normal file
@ -0,0 +1,17 @@
|
||||
module.exports = function msToTime(duration, format) {
|
||||
var seconds = Math.floor((duration / 1000) % 60),
|
||||
minutes = Math.floor((duration / (1000 * 60)) % 60),
|
||||
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
|
||||
days = Math.floor((duration / (1000 * 60 * 60 * 24)) % 24);
|
||||
|
||||
days = (days < 10) ? "0" + days : days;
|
||||
hours = (hours < 10) ? "0" + hours : hours;
|
||||
minutes = (minutes < 10) ? "0" + minutes : minutes;
|
||||
seconds = (seconds < 10) ? "0" + seconds : seconds;
|
||||
|
||||
if (format === "hh:mm:ss") {
|
||||
return `${hours}:${minutes}:${seconds}`;
|
||||
} else if (format === "dd:hh:mm:ss") {
|
||||
return `${days}:${hours}:${minutes}:${seconds}`;
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = async function (guild, client, url) {
|
||||
.play(url, { bitrate: 1024, passes: 10, volume: 1, highWaterMark: 1 << 25 })
|
||||
.on("finish", () => {
|
||||
radio.voiceChannel.leave();
|
||||
radio.delete();
|
||||
client.radio.delete(guild.id);
|
||||
return;
|
||||
});
|
||||
dispatcher.on('start', () => {
|
||||
@ -13,7 +13,6 @@ module.exports = async function (guild, client, url) {
|
||||
});
|
||||
dispatcher.on('error', error => {
|
||||
console.error(error);
|
||||
client.channels.fetch(client.config.debug_channel).send('Error with the dispatcher: ' + error);
|
||||
radio.voiceChannel.leave();
|
||||
client.radio.delete(guild.id);
|
||||
return radio.textChannel.send('<:redx:674263474704220182> An error has occured while playing radio!');
|
||||
|
Loading…
Reference in New Issue
Block a user