Skip to content

Wiadomość na wzmiankę @everyone #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.idea/
node_modules/
.env
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM node:14-alpine

ENV NODE_ENV=production
WORKDIR /app

COPY ./package*.json ./

RUN npm ci

COPY . .

CMD ["npm", "run", "start:prod"]
11 changes: 11 additions & 0 deletions Dockerfile-dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM node:14-alpine

WORKDIR /app

COPY ./package*.json ./

RUN npm ci

COPY . .

CMD ["npm", "run", "start:watch"]
4 changes: 0 additions & 4 deletions commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,5 @@ module.exports = {
"gotowce": {
"title": "Nie dajemy gotowców",
"content": "Wybacz, ale nikt nie odrobi Twojego zadania dla Ciebie, jeżeli sam nie masz ochoty zrobić nic. Nawet gdyby tak się stało, to problem powróci już przy kolejnym zadaniu - otrzymując tylko rozwiązanie nadal się niczego nie nauczysz.\n\nZaangażuj się, poszukaj, spróbuj sam. Zapytaj konkretnie czego nie wiesz i powiedz jak możemy Ci pomóc, a wtedy pewnie ktoś spróbuje doradzić."
},
"irc": {
"title": "Połączenie z IRC",
"content": "Spokojnie, osoby wypowiadające się podobnie do ludzi z plakietką BOT, nie są rzeczywistymi botami. To prawdziwe osoby z naszego dawnego [czatu IRC](https://forum.pasja-informatyki.pl/chat-irc), z którego wiadomości na kanale #offtop są synchronizowane. Warto wiedzieć, że większość opcji formatowania z Discorda nie zadziała właściwie na [IRC](https://pl.wikipedia.org/wiki/Internet_Relay_Chat)."
}
};
33 changes: 33 additions & 0 deletions handlers/mentionHandler.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
require('discord-reply');
const Discord = require('discord.js');
const MENTIONS_DICT = Object.freeze({
EVERYONE: '@everyone',
HERE: '@here',
});
const MENTION_PERMISSION = 'MENTION_EVERYONE';
const EMBED_COLOR = '#eb1540';
const EMBED_TITLE = 'Nie wołaj wszystkich!';
const EMBED_THUMBNAIL = 'https://i.imgur.com/nREiJww.png';
const EMBED_DESCRIPTION = '\nRozumiemy, że potrzebujesz pomocy, ale nie wszyscy chcą zostać o tym powiadomieni.\n Jest nas tutaj dużo i nie ma sensu, aby każdy dostał bezpośrednio taką informację.\n Nie trudno sobie wyobrazić jak irytujące byłoby, gdyby każdy wołał wszystkich do każdego tematu.\n Dlatego zadaj pytanie i po prostu poczekaj - jeśli ktoś będzie wiedział i mógł, to na pewno spróbuje odpowiedzieć.';

function mentionHandler(message){
const pingEmbed = new Discord.MessageEmbed()
.setColor(EMBED_COLOR)
.setTitle(EMBED_TITLE)
.setThumbnail(EMBED_THUMBNAIL)
.setDescription(EMBED_DESCRIPTION);
const mentions = message.content.includes(MENTIONS_DICT.EVERYONE) || message.content.includes(MENTIONS_DICT.HERE);

try{ //needed, if someone sends private message to bot, it crashes without try..catch
const hasPermission = message.member.hasPermission(MENTION_PERMISSION);
if (mentions && !hasPermission) {
//message.reply(pingEmbed);
message.lineReply(pingEmbed);
}
}
catch(err){
console.error(err);
}
}

module.exports = mentionHandler;
7 changes: 5 additions & 2 deletions main.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
const Discord = require('discord.js');
const commands = require('./commands');
const mentionHandler = require('./handlers/mentionHandler');
require('discord-reply');
require('dotenv').config();

const client = new Discord.Client();

client.on('ready', () => {
Expand Down Expand Up @@ -30,5 +31,7 @@ client.on('ready', () => {
}
});
});

client.on('message', (message) => {
mentionHandler(message);
});
client.login(process.env.TOKEN);
Loading