Advertisement
Jordimario

MultiProcesso

Sep 16th, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Discord = require("discord.js");
  2. var fs=require("fs");
  3. const https = require('https');
  4.  
  5. // this is what we're refering to. Your client.
  6. const client = new Discord.Client();
  7. // Here we load the config.json file that contains our token and our prefix values.
  8. const config = require("../config.json");
  9.  
  10.  
  11. async function loadJSON(){
  12. //la funzione ritorna una promessa
  13. return new Promise(resolve => {
  14.        
  15.          fs.readFile('variabili.json','utf8', (err,data) => {resolve(JSON.parse(data))})//risolvera una lettura per un file e lo trasformera in un oggetto
  16.     })
  17.  
  18. }
  19.  
  20. async function postJSON(jsonData){//praticamente conferma il fatto che abbia preso un biglietto
  21. //la funzione non ritorna nulla ma aggiorna il json variabile
  22.     fs.writeFile("variabili.json",JSON.stringify(jsonData), err => {//funzione per aggiornare il file
  23.         if(err) return console.log(err);
  24.         console.log("è stato preso un biglitto! Mancano "+ jsonData.persone)
  25.     })
  26.  
  27. }
  28.  
  29. client.on("ready", guild => {
  30.           console.log(`processo1 inizializzato in ${client.guilds.size} gilde`)
  31.  
  32.  
  33. });
  34.  
  35. client.on("message", async message => {
  36.           console.log(`è stato Creato un messeggio:${message.author}: ${message.content}`);
  37.  
  38.  
  39.          /*var x = await  loadJSON() //aspetta per la risposta alla promessa oggetto
  40.           console.log(x.persone) *///pubblica il valore persone della promessa oggetto
  41.  
  42.   // This event will run on every single message received, from any channel or DM.
  43.  
  44.   if(message.author.bot) return; //non acetta messaggi inviati dai bot
  45.   if(message.content.indexOf(config.prefix) !== 0) return; //accetta solo messaggi il prfisso posto in config
  46.   // Here we separate our "command" name, and our "arguments" for the command.
  47.   // e.g. if we have the message "+say Is this the real life?" , we'll get the following:
  48.   // command = say
  49.   // args = ["Is", "this", "the", "real", "life?"]
  50.   var args = message.content.slice(config.prefix.length).trim().split(/ +/g);
  51.   var command = args.shift().toLowerCase();
  52.  
  53.  
  54. if(command==="inizia"){
  55. console.log("è passato di qui")
  56. message.channel.send("Processo **1** iniziato")//indica l'inizio del primo processo
  57.  
  58. variabili = await loadJSON();//prende il file delle variabili come oggetto
  59. console.log("superato il load \n")
  60. console.log(variabili)
  61.  
  62. while(variabili.persone>0){//inizio ciclo, finche i biglietti ci saranno continuera il ciclo
  63. console.log("passato dal while")
  64. console.log(variabili)
  65.  
  66.     variabili = await loadJSON();//riprende il file delle variabili lo fa ogni volta per prendere sempre la variabile aggiornata
  67.     console.log("preso")
  68.    
  69.     if(variabili.process){//controllo se è il turno del processo
  70.     variabili.persone--//leva un biglietto
  71.     variabili.process=false //cambia il turno
  72.     await postJSON(variabili) //aspetto che mi aggiorni il json
  73.     }
  74.  
  75.     console.log(`**Processo 1:** ho Consegnato un biglietto, *Biglietti mancanti: ${variabili.persone}*`) //messaggio per avvisare l'utente del biglietto
  76.  
  77.  
  78. }
  79.  
  80.     const m = await message.channel.send("Chiusura in corso...");
  81.     m.edit(`Processo **1** finito con latenza di ${m.createdTimestamp - message.createdTimestamp}ms. e latenza API da ${Math.round(client.ping)}ms`);
  82.  
  83. }
  84.                                       });
  85. client.login(config.token);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement