Skip to content

Commit bd310fe

Browse files
committed
new version
1 parent bb629c6 commit bd310fe

28 files changed

+1803
-1507
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ node_modules
22
.vscode
33
.env
44
config.json
5-
users.json
5+
backupUser.json

.replit

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
language = "nodejs"
2+
run = "npx node server.js"

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22

33
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/danielguirra/bot-discord/)
44

5-
[Deploy replit](https://repl.it/github/DanielGuirra/bot-discord-2.0)
5+
[Deploy replit](https://github.com/danielguirra/bot-discord-2.0)
66

77
## Summary
88

99
A bot that does server administration like banning, creating important tags with embed's, welcome message and much more.
1010

11-
## PLEASE FOR COMMITS FORK PROJEC
12-
1311
### Requirements
1412

1513
For development, you will only need Node.js and a node global package, installed in your environement.
@@ -39,10 +37,10 @@ NodeJS
3937
I used this version of NodeJS, I don't guarantee it will work on older versions
4038

4139
$ node --version
42-
16.10.0
40+
v14.17.0
4341

4442
$ npm --version
45-
v7.6.2
43+
v6.14.13
4644

4745
## Install
4846

Slash/advice.js

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,25 @@ const { default: axios } = require("axios");
44
const { SlashCommandBuilder } = require("@discordjs/builders");
55
module.exports = {
66
data: new SlashCommandBuilder()
7-
.setName("conselho")
7+
.setName("advice")
88
.setDescription("Conselho aletório"),
99
async execute(interaction) {
10-
let avatar;
11-
let nick;
12-
if (interaction.type === "APPLICATION_COMMAND") {
13-
avatar = interaction.user.avatarURL();
14-
nick = interaction.user.tag;
15-
} else {
16-
avatar = interaction.author.avatarURL();
17-
nick = interaction.author.tag;
18-
}
10+
let avatar = interaction.user.displayAvatarURL();
1911
let url = `https://api.adviceslip.com/advice`;
20-
let response = await axios.get(url);
21-
let json = response["data"];
22-
let text = json["slip"]["advice"];
23-
translate(`${text}`, { to: `pt` })
24-
.then((res) => {
25-
interaction.channel.send({
26-
embeds: [
27-
getEmbed(
28-
"Conselho",
29-
`${res.text}
30-
`,
31-
avatar,
32-
nick
33-
),
34-
],
12+
let advice;
13+
advice = await axios.get(url).then(async (response) => {
14+
let text = response["data"]["slip"]["advice"];
15+
translate(`${text}`, { to: `pt` })
16+
.then((res) => {
17+
interaction.reply({
18+
embeds: [
19+
getEmbed("Conselho", res.text, avatar, interaction.user.tag),
20+
],
21+
});
22+
})
23+
.catch((err) => {
24+
console.log(err);
3525
});
36-
if (interaction.type === "APPLICATION_COMMAND") {
37-
interaction.reply({ content: "**Conselho usado**", ephemeral: true });
38-
}
39-
})
40-
.catch((err) => {
41-
console.error(err);
42-
});
26+
});
4327
},
4428
};

Slash/avatar.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,13 @@ module.exports = {
1212
.setDescription("O avatar do usuário para mostrar")
1313
),
1414
async execute(interaction) {
15-
let user;
16-
if (interaction.type === "APPLICATION_COMMAND") {
17-
user = interaction.options.getUser("target");
18-
} else {
19-
user = interaction.mentions.users.first();
20-
}
21-
if (user != undefined) {
15+
const user = interaction.options.getUser("target");
16+
if (user)
2217
return interaction.reply(
23-
`${user.username} avatar: ${user.displayAvatarURL({ dynamic: true })}`
18+
`${user.username}'s avatar: ${user.displayAvatarURL({ dynamic: true })}`
2419
);
25-
} else {
26-
return interaction.reply("Verifique se foi marcado o usuário");
27-
}
20+
return interaction.reply(
21+
`Seu avatar ${interaction.user.displayAvatarURL({ dynamic: true })}`
22+
);
2823
},
2924
};

Slash/ban.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { getEmbed } = require("../util/getEmbed");
1+
const getEmbed = require("../util/getEmbed");
22
const { SlashCommandBuilder } = require("@discordjs/builders");
33

44
module.exports = {
@@ -17,7 +17,7 @@ module.exports = {
1717
.then(() => {
1818
interaction.reply({
1919
embeds: [
20-
getEmbed(
20+
getEmbed.getEmbed(
2121
`${user.username}Banido`,
2222
`Por ${interaction.author.tag}`,
2323
interaction.displayAvatarURL(),
@@ -30,12 +30,12 @@ module.exports = {
3030
})
3131
.catch((err) => {
3232
interaction.reply({
33-
embeds: [getEmbed(`Erro`, `Não posso banir`)],
33+
embeds: [getEmbed.getEmbed(`Erro`, `Não posso banir`)],
3434
});
3535
});
3636
} else {
3737
interaction.reply({
38-
embeds: [getEmbed(`Erro`, `Ele tem que estar no servidor`)],
38+
embeds: [getEmbed.getEmbed(`Erro`, `Ele tem que estar no servidor`)],
3939
});
4040
}
4141
},

Slash/clima.js

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
const { SlashCommandBuilder } = require("@discordjs/builders");
2-
const Canvas = require("canvas");
3-
const { MessageAttachment, MessageEmbed } = require("discord.js");
42
const { registerFont } = require("canvas");
53
registerFont("./fonts/comic.ttf", { family: "Comic" });
64

5+
const { sendClimateCurrentTime } = require("../service/sendclimate");
6+
77
module.exports = {
88
data: new SlashCommandBuilder()
99
.setName("temperatura")
@@ -12,26 +12,9 @@ module.exports = {
1212
option.setName("cidade").setDescription("A cidade")
1313
),
1414
async execute(interaction) {
15-
const text = interaction.options.getString("cidade");
16-
17-
let url = `https://wttr.in/${text}%20brasil.png`;
18-
if (text === "ribeirao") {
19-
url = "https://wttr.in/ribeir%C3%A3o%20preto%20brasil.png";
20-
}
21-
const canvas = Canvas.createCanvas(500, 170);
22-
const context = canvas.getContext("2d");
23-
const background = await Canvas.loadImage(url);
24-
context.drawImage(background, 3, 136, 250, 85, 0, 0, 250, 85);
25-
context.drawImage(background, 254, 136, 250, 85, 250, 0, 250, 85);
26-
context.drawImage(background, 499, 136, 250, 85, 0, 85, 250, 85);
27-
context.drawImage(background, 750, 136, 250, 85, 250, 85, 250, 85);
28-
29-
const attachment = new MessageAttachment(canvas.toBuffer(), "clima.png");
30-
31-
let manha = new MessageEmbed()
32-
.setTitle("Clima")
33-
.setDescription(`Clima de hoje de ${text}`);
34-
35-
interaction.reply({ embeds: [manha], files: [attachment] });
15+
let city = interaction.options.getString("cidade");
16+
return sendClimateCurrentTime(interaction.channel, city).then((f) => {
17+
if (f) console.log(f);
18+
});
3619
},
3720
};

Slash/gif.js

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { SlashCommandBuilder } = require("@discordjs/builders");
22
const { default: axios } = require("axios");
3-
const tenor = process.env.TENORKEY;
3+
const tenor = process.env.TENORKEY
44
module.exports = {
55
data: new SlashCommandBuilder()
66
.setName("gif")
@@ -9,30 +9,12 @@ module.exports = {
99
option.setName("input").setDescription("Digite algo")
1010
),
1111
async execute(interaction) {
12-
if (interaction.type === "APPLICATION_COMMAND") {
13-
const string = interaction.options.getString("input");
14-
let url = `https://g.tenor.com/v1/search?q=${string}&key=${tenor}&ContentFilter=G`;
15-
let response = await axios.get(url);
16-
let json = await response["data"];
17-
const random = Math.floor(Math.random() * json.results.length);
12+
const string = interaction.options.getString("input");
13+
let url = `https://g.tenor.com/v1/search?q=${string}&key=${tenor}&ContentFilter=G`;
14+
let response = await axios.get(url);
15+
let json = await response["data"];
16+
const random = Math.floor(Math.random() * json.results.length);
1817

19-
interaction.reply(json.results[random].url);
20-
} else {
21-
let tokens = interaction.content.split(" "); //Gif
22-
if (tokens[0] === "*gif") {
23-
let searchGif = "Capivara";
24-
25-
if (tokens.length > 1) {
26-
searchGif = tokens.slice(1, tokens.length).join(" ");
27-
}
28-
29-
let url = `https://g.tenor.com/v1/search?q=${searchGif}&key=${process.env.TENORKEY}&ContentFilter=G`;
30-
let response = await axios.get(url);
31-
let json = response["data"];
32-
const random = Math.floor(Math.random() * json.results.length);
33-
34-
interaction.reply(json.results[random].url);
35-
}
36-
}
18+
interaction.reply(json.results[random].url);
3719
},
3820
};

Slash/joke.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ module.exports = {
1919
getEmbed;
2020
const $ = cheerio.load(response.data.toString("binary"));
2121
const text = $("p[class=piada]").text();
22-
interaction.reply({
22+
interaction.channel.send({
2323
embeds: [
2424
getEmbed(
2525
"Piada-curtas",

Slash/pensador.js

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,8 @@ module.exports = {
88
.setDescription("Frase de um pensador"),
99
async execute(interaction) {
1010
getFromCollection().then((result) => {
11-
console.log(result.author);
12-
gis(result.author, logResults);
13-
async function logResults(err, results) {
14-
if (err) throw err;
15-
else {
16-
interaction.reply({
17-
embeds: [
18-
getEmbed(
19-
`Frase de ${result.author}`,
20-
result.message,
21-
results[0].url,
22-
result.author,
23-
results[0].url
24-
),
25-
],
26-
});
27-
}
28-
}
29-
});
11+
interaction.reply(`Frase de ${result.author}
12+
13+
${result.message}`)});
3014
},
3115
};

Slash/pokemon.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ module.exports = {
1717
if (res["data"]["type"][1]) {
1818
type = type + ` ${res["data"]["type"][1]}`;
1919
}
20+
// interaction.reply({
21+
// content: `${poke.toUpperCase()} foi selecionado carregandooo...`,
22+
// ephemeral: true,
23+
// });
2024
interaction.reply({
2125
embeds: [
2226
getEmbed(

Slash/salvaDm.js

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const { SlashCommandBuilder } = require("@discordjs/builders");
22
const fs = require("fs");
3-
const users = require("../users.json");
43
const { getEmbed } = require("../util/getEmbed");
54

65
let user;
@@ -9,28 +8,21 @@ let hora;
98
let avatar;
109
let userArray = [];
1110

12-
async function userExist(user, userFinal) {
13-
let ifUser = userFinal.findIndex((usr) => (usr = user.id));
14-
if (ifUser < 0) {
15-
return false;
16-
} else {
17-
return true;
18-
}
19-
}
20-
2111
module.exports = {
2212
data: new SlashCommandBuilder()
2313
.setName("salva")
2414
.setDescription("Salva usuário no banco pra dms")
25-
.addIntegerOption((option) =>
26-
option.setName("input").setDescription("digite a hora ")
15+
.addStringOption((option) =>
16+
option
17+
.setName("input")
18+
.setDescription("Digite o nome da sua cidade sem acento")
2719
),
2820
async execute(interaction) {
29-
for (const user of users) {
30-
userArray.push(user);
31-
}
21+
let cidade;
22+
const users = require("../users.json");
3223
if (interaction.type === "DEFAULT") {
33-
hora = interaction.content.replace("*salva ", "");
24+
cidade = interaction.content.split("*salva ", "");
25+
hora = "8";
3426
avatar = interaction.author.avatarURL();
3527

3628
user = interaction.author;
@@ -41,8 +33,9 @@ module.exports = {
4133
hour: hora,
4234
};
4335
} else {
36+
cidade = interaction.options.getString("input");
4437
avatar = interaction.user.avatarURL();
45-
hora = interaction.options.getInteger("input");
38+
hora = "8";
4639
user = interaction.user;
4740
guild = {
4841
id: interaction.guild.id,
@@ -57,14 +50,20 @@ module.exports = {
5750
discriminator: user.discriminator,
5851
guildUser: guild,
5952
hour: hora,
53+
cidade,
6054
};
61-
let resul = await userExist(user, userArray);
62-
if (resul) return interaction.reply("**Usuário já consta no banco**");
63-
userArray.push(userSave);
6455

65-
fs.writeFile("./users.json", JSON.stringify(userArray), "utf-8", (err) => {
66-
if (err) throw err;
56+
for (const userold of users) {
57+
if (userold.id === userSave.id) {
58+
console.log(userold.id + " Banco");
59+
return interaction.reply("**Usuário já consta no banco**");
60+
}
61+
}
62+
userArray.push(userSave);
63+
fs.writeFile("./users.json", JSON.stringify(userArray), "utf-8", (f) => {
64+
if (f) throw f;
6765
});
66+
6867
interaction.reply({
6968
embeds: [
7069
getEmbed(

0 commit comments

Comments
 (0)