mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-25 22:32:50 +02:00
Refactor Zodiac Sign so it's less complex
This commit is contained in:
@@ -0,0 +1,134 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 1,
|
||||||
|
"day": 19
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 12,
|
||||||
|
"day": 22
|
||||||
|
},
|
||||||
|
"name": "Capricorn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 2,
|
||||||
|
"day": 18
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 1,
|
||||||
|
"day": 20
|
||||||
|
},
|
||||||
|
"name": "Aquarius"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 3,
|
||||||
|
"day": 20
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 2,
|
||||||
|
"day": 19
|
||||||
|
},
|
||||||
|
"name": "Pisces"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 4,
|
||||||
|
"day": 19
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 3,
|
||||||
|
"day": 21
|
||||||
|
},
|
||||||
|
"name": "Aries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 5,
|
||||||
|
"day": 20
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 4,
|
||||||
|
"day": 20
|
||||||
|
},
|
||||||
|
"name": "Taurus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 6,
|
||||||
|
"day": 20
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 5,
|
||||||
|
"day": 21
|
||||||
|
},
|
||||||
|
"name": "Gemini"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 7,
|
||||||
|
"day": 22
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 6,
|
||||||
|
"day": 21
|
||||||
|
},
|
||||||
|
"name": "Cancer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 8,
|
||||||
|
"day": 22
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 7,
|
||||||
|
"day": 23
|
||||||
|
},
|
||||||
|
"name": "Leo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 9,
|
||||||
|
"day": 22
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 8,
|
||||||
|
"day": 23
|
||||||
|
},
|
||||||
|
"name": "Virgo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 10,
|
||||||
|
"day": 22
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 9,
|
||||||
|
"day": 23
|
||||||
|
},
|
||||||
|
"name": "Libra"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 11,
|
||||||
|
"day": 21
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 10,
|
||||||
|
"day": 23
|
||||||
|
},
|
||||||
|
"name": "Scorpio"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"high": {
|
||||||
|
"month": 12,
|
||||||
|
"day": 21
|
||||||
|
},
|
||||||
|
"low": {
|
||||||
|
"month": 11,
|
||||||
|
"day": 22
|
||||||
|
},
|
||||||
|
"name": "Sagittarius"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
const Command = require('../../structures/Command');
|
const Command = require('../../structures/Command');
|
||||||
|
const signs = require('../../assets/json/zodiac-sign');
|
||||||
|
const monthsWith30 = [4, 6, 9, 11];
|
||||||
|
|
||||||
module.exports = class ZodiacSignCommand extends Command {
|
module.exports = class ZodiacSignCommand extends Command {
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
@@ -28,60 +30,16 @@ module.exports = class ZodiacSignCommand extends Command {
|
|||||||
run(msg, { month, day }) {
|
run(msg, { month, day }) {
|
||||||
const sign = this.determineSign(month, day);
|
const sign = this.determineSign(month, day);
|
||||||
if (!sign) return msg.reply('Invalid day.');
|
if (!sign) return msg.reply('Invalid day.');
|
||||||
return msg.say(`The Zodiac Sign for ${month}/${day} is ${sign}.`);
|
return msg.say(`The Zodiac Sign for ${month}/${day} is ${sign.name}.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
determineSign(month, day) { // eslint-disable-line complexity
|
determineSign(month, day) {
|
||||||
if (month === 1) {
|
if (month === 2 && day > 29) return null;
|
||||||
if (day >= 1 && day <= 19) return 'Capricorn';
|
if (monthsWith30.includes(month) && day > 30) return null;
|
||||||
if (day >= 20 && day <= 31) return 'Aquarius';
|
return signs.find(sign => {
|
||||||
return null;
|
if (month === sign.high.month && day <= sign.high.day) return true;
|
||||||
} else if (month === 2) {
|
if (month === sign.low.month && day >= sign.low.month) return true;
|
||||||
if (day >= 1 && day <= 18) return 'Aquarius';
|
return false;
|
||||||
if (day >= 19 && day <= 29) return 'Pisces';
|
});
|
||||||
return null;
|
|
||||||
} else if (month === 3) {
|
|
||||||
if (day >= 1 && day <= 20) return 'Pisces';
|
|
||||||
if (day >= 21 && day <= 31) return 'Aries';
|
|
||||||
return null;
|
|
||||||
} else if (month === 4) {
|
|
||||||
if (day >= 1 && day <= 19) return 'Aries';
|
|
||||||
if (day >= 20 && day <= 31) return 'Taurus';
|
|
||||||
return null;
|
|
||||||
} else if (month === 5) {
|
|
||||||
if (day >= 1 && day <= 20) return 'Taurus';
|
|
||||||
if (day >= 21 && day <= 31) return 'Gemini';
|
|
||||||
return null;
|
|
||||||
} else if (month === 6) {
|
|
||||||
if (day >= 1 && day <= 20) return 'Gemini';
|
|
||||||
if (day >= 21 && day <= 31) return 'Cancer';
|
|
||||||
return null;
|
|
||||||
} else if (month === 7) {
|
|
||||||
if (day >= 1 && day <= 22) return 'Cancer';
|
|
||||||
if (day >= 23 && day <= 31) return 'Leo';
|
|
||||||
return null;
|
|
||||||
} else if (month === 8) {
|
|
||||||
if (day >= 1 && day <= 22) return 'Leo';
|
|
||||||
if (day >= 23 && day <= 31) return 'Virgo';
|
|
||||||
return null;
|
|
||||||
} else if (month === 9) {
|
|
||||||
if (day >= 1 && day <= 22) return 'Virgo';
|
|
||||||
if (day >= 23 && day <= 31) return 'Libra';
|
|
||||||
return null;
|
|
||||||
} else if (month === 10) {
|
|
||||||
if (day >= 1 && day <= 22) return 'Libra';
|
|
||||||
if (day >= 23 && day <= 31) return 'Scorpio';
|
|
||||||
return null;
|
|
||||||
} else if (month === 11) {
|
|
||||||
if (day >= 1 && day <= 21) return 'Scorpio';
|
|
||||||
if (day >= 22 && day <= 31) return 'Sagittarius';
|
|
||||||
return null;
|
|
||||||
} else if (month === 12) {
|
|
||||||
if (day >= 1 && day <= 21) return 'Sagittarius';
|
|
||||||
if (day >= 22 && day <= 31) return 'Capricorn';
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xiao",
|
"name": "xiao",
|
||||||
"version": "112.5.1",
|
"version": "112.5.2",
|
||||||
"description": "Your personal server companion.",
|
"description": "Your personal server companion.",
|
||||||
"main": "Xiao.js",
|
"main": "Xiao.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user