Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require("discord.js");
- var fs=require("fs");
- const https = require('https');
- const client = new Discord.Client();
- const config = require("../config.json");
- async function loadJSON(){
- //la funzione ritorna una promessa
- return new Promise((resolve, reject) => {
- fs.readFile('variabili.json','utf8', (err,data) => {resolve(JSON.parse(data.match(/{"persone":\d+,"process":(true|false)}/gi)))})//risolvera una lettura per un file e lo trasformera in un oggetto
- })
- }
- async function postJSON(jsonData){
- //la funzione non ritorna nulla ma aggiorna il json variabile
- await fs.writeFile("variabili.json",JSON.stringify(jsonData), err => {//funzione per aggiornare il file
- if(err) return console.log(err);
- })
- }
- client.on("ready", guild => {
- console.log(`processo1 inizializzato in ${client.guilds.size} gilde`)
- });
- client.on("message", async message => {
- if(message.author.bot) return; //non acetta messaggi inviati dai bot
- if(message.content.indexOf(config.prefix) !== 0) return; //accetta solo messaggi il prfisso posto in config
- var args = message.content.slice(config.prefix.length).trim().split(/ +/g);
- var command = args.shift().toLowerCase();
- if(command==="inizia"){
- message.channel.send("Processo **2** iniziato")//indica l'inizio del primo processo
- pro=setInterval(async ()=>{
- //inizio ciclo
- variabili = await loadJSON();//prende il file delle variabili come oggetto
- if(variabili.persone>0){
- if(variabili.process){//controllo se è aperto il canale
- variabili.process=false //chiusura sezione critica
- await postJSON(variabili) //aspetto che mi aggiorni il json
- console.log(JSON.stringify(variabili))
- variabili.persone--//leva un biglietto
- //await postJSON(variabili) //aspetto che mi aggiorni il json
- message.channel.send("**P2:** biglietti rimanenti: "+variabili.persone);
- variabili.process=true //apertura sezione critica
- postJSON(variabili) //apporto le modifiche in modo permanenete
- }
- return 0;
- }
- else{
- console.log("stop!");
- message.channel.send("il processo è finito");
- return clearInterval(pro);
- }
- },1000)
- }
- });
- client.login(config.token);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement