Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tempMute.js;
- // Ophalen van het bestand
- const fs = require("fs");
- const tempMute = JSON.parse(fs.readFileSync("./tempMutes.json", "utf8"));
- // We gaan nakijken als de persoon NIET voorkomt in het json bestand.
- // Als deze niet voorkomt in het bestand gaan we een object aanmaken van het ID
- // van de persoon met de property time die op 0 wordt gezet.
- if (!tempMute[mutePerson]) tempMute[mutePerson] = {
- time: 0
- };
- // We gaan de tijd van nu ophalen en daar onze tijd bijtellen (Milliseconden).
- let date = new Date();
- let dateMilli = date.getTime();
- let dateAdded = dateMilli + ms(muteTime);
- // We voegen de tijd toe aan die persoon.
- tempMute[mutePerson].time = dateAdded;
- // Als laatste gaan we het opslaan in het document.
- fs.writeFile("./tempMutes.json", JSON.stringify(tempMute), (err) => {
- if (err) console.log(err);
- });
- ----------
- unMute.js:
- // Ophalen van het bestand
- const fs = require("fs");
- const tempMute = JSON.parse(fs.readFileSync("./tempMutes.json", "utf8"));
- // We gaan de tijd van die persoon op 0 zetten.
- // Dit hebben we later nodig voor extra controles.
- tempMute[mutePerson].time = 0;
- // Als laatste gaan we het opslaan in het document.
- fs.writeFile("./tempMutes.json", JSON.stringify(tempMute), (err) => {
- if (err) console.log(err);
- });
- ----------
- index.js:
- // Bestand ophalen
- const tempMute = JSON.parse(fs.readFileSync("./tempMutes.json", "utf8"));
- // LET OP dat Intents.FLAGS.GUILD_PRESENCES mee in je "new Client" zit.
- // LET OOK op dat je in discord developer portal alles van PRESENCE hebt aanstaan!!
- // BIJ client.once("ready", () => {
- // Zorg ervoor dat je bij je Intents Intents.FLAGS.GUILD_PRESENCES toevoegt en dat je in de dev portal
- // bij de bot alles van intents aan hebt staan.
- const checkTempMute = async () => {
- // Omdat we over object propertys gaan moeten we dit anders doen dan een array.
- // We gaan hier over iedere key in het object gaan in het tempMutes.json bestand.
- for (const result of Object.keys(tempMute)) {
- // We halen het ID er uit.
- const idMember = result;
- // We halen de tijd op vanuit het hele bestand bij die key (ID) en dan de tijd.
- const time = tempMute[result].time;
- // Tijd van nu ophalen.
- let date = new Date();
- let dateMilli = date.getTime();
- // Tijd bij gebruiker omvormen naar leesbare tijd.
- let dateReset = new Date(time);
- // Als de tijd van het muten kleiner is als de tijd van nu en de tijd staat niet op 0
- // dan mag deze persoon verlost worden van het zwijgen.
- if (dateReset < dateMilli && time != 0) {
- try {
- // We halen de server op.
- let guild = await client.guilds.fetch("ID");
- // We gaan de persoon gegevens ophalen aan de hand van de idMember waar we de tekens < @ ! > weghalen.
- const mutePerson = guild.members.cache.find(member => member.id === idMember.replace(/[<@!>]/g, ''));
- // We halen de rol op.
- let muteRole = guild.roles.cache.get('ID');
- // We kijken na als de rol bestaat.
- if (!muteRole) return console.log("De rol muted bestaat niet.");
- // We verwijderen de rol van de persoon.
- await (mutePerson.roles.remove(muteRole.id));
- // We zetten de tijd op 0.
- tempMute[mutePerson].time = 0;
- // We slaan dit mee op in het document.
- fs.writeFile("./tempMutes.json", JSON.stringify(tempMute), (err) => {
- if (err) console.log(err);
- });
- }
- catch (err) {
- console.log(err + " Persoon kon niet geunmute worden wegens deze persoon niet meer op de server is");
- }
- }
- }
- setTimeout(checkTempMute, 1000 * 60); // We zetten een timeout van 1 minuut.
- }
- checkTempMute(); // We starten de functie met de timeout.
- BIJ client.on("guildMemberAdd"
- // Omdat we over object propertys gaan moeten we dit anders doen dan een array.
- for (const result of Object.keys(tempMute)) {
- // Voor meer uitleg zie vorig stuk.
- const idMember = result;
- const time = tempMute[result].time;
- // We kijken na als het de persoon is die op de server is gekomen.
- if (idMember.replace(/[<@!>]/g, '') == member.id) {
- let date = new Date();
- let dateMilli = date.getTime();
- let dateReset = new Date(time);
- let muteRole = member.guild.roles.cache.get('ID');
- if (!muteRole) return message.channel.send("De rol muted bestaat niet");
- try {
- // Als de tijd van de mute nog groter is dan de tijd van nu moet die de rol terug krijgen.
- if (dateReset > dateMilli) {
- await (member.roles.add(muteRole.id));
- } else if (time != 0) {
- // Anders mag de rol weg maar omdat deze opnieuw aanmeld is deze al weg en gaan we enkel
- // de tijd op nul zetten zodat we niet nog eens moeten opslaan.
- let guild = await client.guilds.fetch("ID");
- const mutePerson = guild.members.cache.find(member => member.id === idMember.replace(/[<@!>]/g, ''));
- tempMute[mutePerson].time = 0;
- fs.writeFile("./tempMutes.json", JSON.stringify(tempMute), (err) => {
- if (err) console.log(err);
- });
- }
- } catch (err) {
- console.log(err + " Iets liep mis met de rollen toevoegen/verwijderen.");
- }
- }
- }
Add Comment
Please, Sign In to add comment