This commit is contained in:
2022-03-29 22:32:58 -05:00
parent e5db43c5d2
commit 4528cba9b0
7 changed files with 6 additions and 187 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
node_modules node_modules
lib lib
examples/*.js

1
examples/index.d.ts vendored
View File

@@ -1 +0,0 @@
declare const TOKEN: string;

View File

@@ -1,72 +0,0 @@
import { Client, CommandInteraction, Intents } from 'discord.js';
import { addCommand, CommandGenerator, CommandOptionGenerator, initClient } from '../lib/main';
const EightBallAnswers = [
'It is certain',
'It is decidedly so',
'Without a doubt',
'Yes - definitely',
'You may rely on it',
'As I see it, yes',
'Most likely',
'Outlook good',
'Yes',
'Signs point to yes',
'Don\'t count on it',
'My reply is no',
'My sources say no',
'Outlook not so good',
'Very doubtful',
'Reply hazy, try again',
'Ask again later',
'Better not tell you now',
'Cannot predict now',
'Concentrate and ask again'
];
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
initClient(client);
addCommand([
new CommandGenerator()
.setName('ping')
.setDescription('ping me')
.setRun((interaction: CommandInteraction) =>
interaction.reply('pong')),
new CommandGenerator()
.setName('8ball')
.setDescription('ask the magic 8ball a question')
//.addOption('question', 'string', 'question to ask the 8ball') //will add something like this later
.addOption([
new CommandOptionGenerator()
.setName('question')
.setType('string')
.setDescription('question to ask the 8ball')
.setRequired()
])
.setRun(EightBall)
]);
function EightBall(interaction: CommandInteraction) {
let question = interaction.options.get('question', true).value,
answer = EightBallAnswers[Math.floor(Math.random() * EightBallAnswers.length)];
if (typeof question === 'string') {
if (!question.endsWith('?'))
question += '?';
interaction.reply(`\`${question}\` ${answer}`);
}
}
client.on('ready', client => console.log(`Ready ${client.user.tag}`));
client.login(TOKEN);

View File

@@ -1,7 +0,0 @@
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true
}
}

View File

@@ -1,18 +1,17 @@
{ {
"name": "discordslash", "name": "lang",
"description": "", "description": "",
"version": "1.0.0", "version": "1.0.0",
"main": "lib/main.js", "main": "lib/index.js",
"types": "lib/main.d.ts", "types": "lib/index.d.ts",
"devDependencies": {}, "devDependencies": {},
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"buildexamples": "node buildexample.js", "prepare": "npm run build"
"_prepare": "npm run build"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git@git.zomo.dev:zomo/discordslash.git" "url": "git@git.zomo.dev:zomo/lang.git"
}, },
"author": "ashley zomo", "author": "ashley zomo",
"license": "ISC", "license": "ISC",

View File

@@ -1,99 +0,0 @@
import { MessageEmbed } from 'discord.js';
import { template, resolveColor, bigString } from '../main';
import { embedObject, basicObjectString, authorData, footerData } from '../types';
export * from "../main";
/**
* converts embedObj to Discord.MessageEmbed
*/
export function embedObjEmbed(embedObj: embedObject, args: basicObjectString = {}): MessageEmbed {
const embed = new MessageEmbed(),
{ author, color, description, fields, footer, image, thumbnail, timestamp, title, url } = embedObj;
if (author !== undefined) {
let authorFix: authorData;
if (typeof author === 'string')
authorFix = {
name: template(author, args)
};
else {
const {name, iconURL, url} = author;
authorFix = {
name: template(name, args)
};
if (iconURL !== undefined)
authorFix.iconURL = template(iconURL, args);
if (url !== undefined)
authorFix.url = template(url, args);
}
embed.setAuthor(authorFix);
}
if (footer !== undefined) {
let footerFix: footerData;
if (typeof footer === 'string') {
footerFix = {
text: template(footer, args)
};
} else {
const {text, iconURL} = footer;
footerFix = {
text: template(text, args)
};
if (iconURL !== undefined)
footerFix.iconURL = template(iconURL, args);
}
embed.setFooter(footerFix);
}
if (color !== undefined)
embed.setColor(resolveColor(template(color, args)));
if (description !== undefined)
embed.setDescription(template(bigString(description), args));
if (image !== undefined)
embed.setImage(template(image, args));
if (thumbnail !== undefined)
embed.setThumbnail(template(thumbnail, args));
if (title !== undefined)
embed.setTitle(template(title, args));
if (url !== undefined)
embed.setURL(template(url, args));
if (timestamp === true)
embed.setTimestamp();
else if (typeof timestamp === 'string')
embed.setTimestamp(new Date(template(timestamp, args)));
else if (timestamp !== false)
embed.setTimestamp(timestamp);
fields?.forEach(field => {
embed.addField(template(field.name, args), template(bigString(field.value), args), field.inline);
});
return embed;
}