Compare commits

..

No commits in common. "823c1d4de88068d46134668e545a00d82310afa4" and "d93d42a131221b8237186eff002b86eb936c8bb5" have entirely different histories.

11 changed files with 112 additions and 108 deletions

View file

@ -2,19 +2,19 @@ module.exports = class Command {
constructor (name, category) {
// Gateway stuff
this.name = name,
this.description = 'No description provided.',
this.description = "No description provided.",
this.options = [],
this.permissions = {
DEFAULT_MEMBER_PERMISSIONS: 'SendMessages'
};
DEFAULT_MEMBER_PERMISSIONS: "SendMessages"
}
this.dm_permission = false,
// Extra stuff Woomy uses internally
this.category = category,
this.usage = 'No usage information provided.',
this.friendlyOptions = 'No options provided.',
this.usage = "No usage information provided.",
this.friendlyOptions = "No options provided."
this.enabled = true,
this.devOnly = false,
this.cooldown = 2000;
this.cooldown = 2000
}
run (client, interaction, data) { //eslint-disable-line no-unused-vars

View file

@ -1,12 +1,12 @@
const Command = require('../../base/Command.js');
const Command = require("../../base/Command.js");
const replies = require('../../assets/replies.json');
module.exports = class Ping extends Command {
constructor (name, category) {
super (name, category);
super (name, category)
this.name = name,
this.description = 'Check response time between Woomy and Discord',
this.category = category;
this.category = category
}
async run (client, interaction, data) { //eslint-disable-line no-unused-vars

View file

@ -1,32 +1,32 @@
const Command = require('../../base/Command.js');
const Command = require("../../base/Command.js");
module.exports = class Avatar extends Command {
constructor (name, category) {
super (name, category);
super (name, category)
this.name = name,
this.description = 'View a full-sized version of someone\'s avatar.',
this.options = [
{
type: 6,
name: 'user',
description: 'The user to get the avatar of.'
name: "user",
description: "The user to get the avatar of."
},
],
this.usage = '/avatar [user]',
this.friendlyOptions = '`user` - The user to get the avatar of (optional)',
this.category = category;
this.usage = "/avatar [user]"
this.friendlyOptions = "`user` - The user to get the avatar of (optional)",
this.category = category
}
async run (client, interaction, data) { //eslint-disable-line no-unused-vars
const target = await interaction.options.getUser('user') ?? interaction.user;
const user = await client.users.fetch(target.id, {force: true});
const member = await interaction.guild.members.fetch(target.id, {force: true});
const user = await client.users.fetch(target.id, {force: true})
const member = await interaction.guild.members.fetch(target.id, {force: true})
const embed = new client.EmbedBuilder()
.setTitle(user.username + '#' + user.discriminator + '\'s avatar')
.setTitle(user.username + '#' + user.discriminator + "'s avatar")
.setColor(user.hexAccentColor ?? member.displayHexColor)
.setDescription(`[Global avatar](${user.avatarURL({extension: 'png', 'size': 4096})})`)
.setImage(member.displayAvatarURL({extension: 'png', 'size': 4096}));
.setDescription(`[Global avatar](${user.avatarURL({extension: "png", "size": 4096})})`)
.setImage(member.displayAvatarURL({extension: "png", "size": 4096}));
await interaction.reply({embeds: [embed]});
}

View file

@ -1,4 +1,4 @@
const Command = require('../../base/Command.js');
const Command = require("../../base/Command.js");
const fetch = require('node-fetch');
const windrose = require('windrose');
const ISO2 = require('../../assets/ISO2.json');
@ -6,41 +6,41 @@ const ISO2 = require('../../assets/ISO2.json');
module.exports = class Weather extends Command {
constructor (name, category) {
super (name, category);
super (name, category)
this.name = name,
this.description = 'View the weather in a place ',
this.options = [
{
type: 3,
name: 'city',
description: 'The city to check the weather at',
name: "city",
description: "The city to check the weather at",
required: true
},
{
type: 3,
name: 'country',
description: 'The country the city is in',
name: "country",
description: "The country the city is in",
}
],
this.category = category,
this.cooldown = 10000;
}
this.cooldown = 10000
};
async run (client, interaction, data) { //eslint-disable-line no-unused-vars
const city = await interaction.options.get('city').value;
let country = await interaction.options.get('country');
let countryCode = '';
let countryCode = "";
if (country) {
country = country.value;
countryCode += ',';
countryCode += ","
if (ISO2.country[country.toProperCase().trim()]) {
countryCode += ISO2.country[country.toProperCase().trim()];
} else {
countryCode += country.trim();
}
}
};
fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city + countryCode}&appid=${client.config.keys.weather}`, { headers: { 'User-Agent': client.config.userAgent }})
.then(res => res.json())
@ -84,14 +84,14 @@ module.exports = class Weather extends Command {
content: `${client.config.emojis.userError} ${city.toProperCase()} is not listed in my sources.`,
ephemeral: true
});
}
client.logger.error('WEATHER_COMMAND_ERROR', `API Error: ${json}`);
};
client.logger.error('WEATHER_COMMAND_ERROR', `API Error: ${json}`)
return interaction.reply({
content: `${client.config.emojis.botError} API error occurred: \`code ${json.cod}\``,
ephemeral: true
});
}
};
});
}
};
};

View file

@ -2,7 +2,7 @@
const { REST, Routes } = require('discord.js');
const { clientId, token } = require('../botconfig.json');
const guildId = '413591792185769984';
const guildId = "413591792185769984";
const read = require('fs-readdir-recursive');
const commands = [];
const commandFiles = read('./commands').filter(file => file.endsWith('.js'));

View file

@ -1,6 +1,6 @@
/* eslint-disable indent */
class EventHandler {
class EventHandler {
constructor (client) {
this.client = client;
}

View file

@ -1,4 +1,4 @@
const Event = require('../../base/Event.js');
const Event = require("../../base/Event.js");
module.exports = class InteractionHandler extends Event {
constructor (wsEvent) {
super (wsEvent);

View file

@ -1,4 +1,4 @@
const Event = require('../../base/Event.js');
const Event = require("../../base/Event.js");
const activities = require('../../assets/activities.json');
module.exports = class Activity extends Event {
constructor (wsEvent) {

View file

@ -1,4 +1,4 @@
const Event = require('../../base/Event.js');
const Event = require("../../base/Event.js");
module.exports = class Ready extends Event {
constructor (wsEvent) {
super (wsEvent);

View file

@ -32,7 +32,7 @@ class Functions {
return Math.round((Math.random() * (max - min) + min));
}
randomColor () {
randomColour () {
const n = (Math.random() * 0xfffff * 1000000).toString(16);
return '#' + n.slice(0, 6);
}
@ -51,6 +51,10 @@ class Functions {
return role;
}
searchMembers (guild, input) {
}
embedColor (guild, member) {
if (!member) {
return guild.members.cache.get(this.client.user.id).displayHexColor;

View file

@ -34,7 +34,7 @@ class Logger {
/**
* Log something related to being successful
* @param {string} title The title of the log entry
* @param {string} title The title of the log enty
* @param {string} body The body of the log entry
* @returns {void}
*/
@ -44,7 +44,7 @@ class Logger {
/**
* Log something related to a warning
* @param {string} title The title of the log entry
* @param {string} title The title of the log enty
* @param {string} body The body of the log entry
* @returns {void}
*/
@ -54,7 +54,7 @@ class Logger {
/**
* Log something related to an error
* @param {string} title The title of the log entry
* @param {string} title The title of the log enty
* @param {string} body The body of the log entry
* @returns {void}
*/
@ -64,7 +64,7 @@ class Logger {
/**
* Log something related to debugging
* @param {string} title The title of the log entry
* @param {string} title The title of the log enty
* @param {string} body The body of the log entry
* @returns {void}
*/