212 lines
No EOL
6.1 KiB
JavaScript
212 lines
No EOL
6.1 KiB
JavaScript
const Discord = require('discord.js');
|
||
const client = new Discord.Client();
|
||
var author = " ";
|
||
var storedLink = " ";
|
||
var link;
|
||
var messageId;
|
||
var yes = false;
|
||
var linkNo = 0;
|
||
var now = new Date().getTime();
|
||
var sjl = new Date("2021-03-16").getTime();
|
||
var mat = new Date("2021-03-19").getTime();
|
||
var dokument = new Date("2021, 3, 5, 13:00").getTime();
|
||
var martinovOdpocet = new Date("2020-12-25").getTime();
|
||
var petrovOdpocet = new Date("2020, 12, 10, 12:00").getTime();
|
||
var remainingSjl;
|
||
var remainingMat;
|
||
var remainingDok;
|
||
var remainingMartin;
|
||
var left = 0;
|
||
var ping = 86400;
|
||
var countdownChannel;
|
||
var first = true;
|
||
var setNew = true;
|
||
|
||
client.once('ready', () => {
|
||
console.log('Im online!');
|
||
});
|
||
|
||
client.on('message', message => {
|
||
|
||
const args = message.content.split(' ');
|
||
|
||
//storedMessages.push(message.content);
|
||
|
||
let msg = message.content.toLowerCase();
|
||
|
||
|
||
if (msg.startsWith("countdownchannel") && args.length == 2 && message.mentions.channels.first()){
|
||
let countdownId = message.mentions.channels.first().id;
|
||
countdownChannel = client.channels.cache.get(countdownId);
|
||
if(setNew == true){
|
||
setInterval(countdowns, 1000, 1);
|
||
setNew == false;
|
||
}
|
||
else{
|
||
}
|
||
}
|
||
|
||
|
||
if (message.attachments.first() === undefined) {
|
||
}
|
||
|
||
if (message.content.startsWith("http")) {
|
||
author = message.author.id;
|
||
storedLink = message.content;
|
||
messageId = message.id;
|
||
yes = true;
|
||
linkNo++;
|
||
}
|
||
else if (message.attachments.first() != undefined) {
|
||
let storedMessage = message.attachments.first();
|
||
storedLink = new Discord.MessageAttachment(storedMessage.url);
|
||
messageId = message.id;
|
||
author = message.author.id;
|
||
yes = true;
|
||
linkNo++;
|
||
}
|
||
|
||
if (msg.startsWith("henlo") && message.author.bot == false) {
|
||
var emojis = ["🥰", "🐄", "🐮", "❤️", "👋", "🤠", "😊"];
|
||
let randomNum = Math.floor(Math.random() * 7);
|
||
message.channel.send("Henlooo " + message.author.username + " " + emojis[randomNum]);
|
||
}
|
||
else if (message.mentions.channels.first() && yes) {
|
||
|
||
if (args.length === 1) {
|
||
message.react('🐮');
|
||
let channelId = "";
|
||
let channelIdArray = message.content.split('');
|
||
channelIdArray.splice(0, 2);
|
||
channelIdArray.pop();
|
||
|
||
for (i = 0; i < channelIdArray.length; i++) {
|
||
channelId += channelIdArray[i];
|
||
}
|
||
|
||
message.delete({ timeout: 5000 });
|
||
|
||
var toDelete = message.channel.messages.cache.get(messageId);
|
||
toDelete.delete();
|
||
|
||
let getChannel = client.channels.cache.get(channelId);
|
||
getChannel.send("Posted by <@!" + author + ">");
|
||
getChannel.send(storedLink);
|
||
}
|
||
|
||
yes = false;
|
||
}
|
||
else if (msg.startsWith("how ye") && message.author.bot === false) {
|
||
let randomNum = Math.floor(Math.random() * 5);
|
||
var responses = ["Not bad, how yee?", "MOOdy", "A bit sad 😢", "Good, how yee?", "I'm fine, how yee?"];
|
||
message.channel.send(responses[randomNum]);
|
||
}
|
||
else if (msg.startsWith("tylko jedno")) {
|
||
message.channel.send("Koksu pięć gram odlecieć sam");
|
||
}
|
||
else if (msg.startsWith("time?") || msg.startsWith("left?")){
|
||
countdowns(0);
|
||
}
|
||
|
||
});
|
||
|
||
function countdowns(plus) {
|
||
now = new Date().getTime();
|
||
|
||
remainingSjl = calcTime(sjl - now);
|
||
remainingMat = calcTime(mat - now);
|
||
remainingDok = calcTime(dokument - now);
|
||
remainingMartin = calcTime(martinovOdpocet - now);
|
||
remainingPeter = calcTime(petrovOdpocet - now);
|
||
|
||
const embed = new Discord.MessageEmbed()
|
||
.addField("Čas do odovzdania dokumentácie: ", remainingDok)
|
||
.addField("", "")
|
||
.addField("Čas do maturity zo Slovenského jazyka: ", remainingSjl)
|
||
.addField("", "")
|
||
.addField("Čas do maturity z Matematiky ", remainingMat)
|
||
.addField("", "")
|
||
.addField("Martinov nenápadný odpočet: ", remainingMartin)
|
||
.addField("", "")
|
||
.addField("Cyberpunk 2077: ", remainingPeter)
|
||
.setColor("RANDOM");
|
||
|
||
|
||
if(remainingPeter > 0){
|
||
embed.spliceFields(8);
|
||
}
|
||
if (remainingMartin > 0) {
|
||
embed.spliceFields(6, 3);
|
||
}
|
||
|
||
|
||
left += plus;
|
||
|
||
if(first == true || plus == 0){
|
||
first = false;
|
||
if(plus == 0){
|
||
var random = Math.floor((Math.random() * 100) + 1);;
|
||
if(random == 1){
|
||
let responseNo = Math.floor(Math.random() * 3);
|
||
var responses = ["idk", "to by si mal vedieť 😉", "nie"];
|
||
countdownChannel.send(responses[responseNo]);
|
||
}
|
||
else{
|
||
countdownChannel.send(embed);
|
||
}
|
||
}
|
||
else {
|
||
countdownChannel.send(embed);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
if (left == ping) {
|
||
left = 0;
|
||
countdownChannel.send(embed);
|
||
}
|
||
};
|
||
|
||
function calcTime(time){
|
||
|
||
let returnNo = Math.floor(time / (1000 * 60 * 60 * 24));
|
||
|
||
if(returnNo > 5 && returnNo > 1)
|
||
returnNo += " dni ";
|
||
else if(returnNo == 1)
|
||
returnNo += " deň ";
|
||
else
|
||
returnNo += " dní ";
|
||
|
||
let hours = Math.floor((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||
|
||
if(hours > 5 && returnNo > 1)
|
||
returnNo += hours + " hodiny ";
|
||
else if(returnNo == 1)
|
||
returnNo += hours + " hodina ";
|
||
else
|
||
returnNo += hours + " hodín ";
|
||
|
||
let minutes = Math.floor(( time % ( 1000 * 60 * 60)) / (1000 * 60));
|
||
|
||
if(minutes > 5 && returnNo > 1)
|
||
returnNo += minutes + " minúty ";
|
||
else if(returnNo == 1)
|
||
returnNo += minutes + " minúta ";
|
||
else
|
||
returnNo += minutes + " minút ";
|
||
|
||
let seconds = Math.floor(( time % ( 1000 * 60)) / 1000);
|
||
|
||
if(seconds > 5 && returnNo > 1)
|
||
returnNo += seconds + " sekundy ";
|
||
else if(returnNo == 1)
|
||
returnNo += seconds + " sekunda ";
|
||
else
|
||
returnNo += seconds + " sekúnd ";
|
||
|
||
return returnNo;
|
||
}
|
||
|
||
client.login(process.env.token); |