[Richiesta] Classe di BukkitAPI

Ciao a tutti ragazzi, oggi sono qui a chiedere di chi di plugin ne sa qual'è la classe che ogni mese esegua una determinata azione in bukkit!

E qui cito @filoghost @Alberto01 vi ringrazio!


Inviato dal mio iPad utilizzando Tapatalk
Utilizza Scheduler.
Non rispondo a richieste di supporto in privato!

Moderatore&Neswer
Sviluppatore

Come dice Alberto, scheduler is the way, ma non ti consiglio di fare un "timer" da un mese: se il server si spegne ricomincia il conto. Fai che ogni ora confronta la data corrente con la data in cui è stata eseguita l'ultima azione (questa data memorizzala in uno yaml) e se è passato piú di un mese fagli eseguire l'azione.
"È come se ci fossimo dimenticati chi siamo, Donald: esploratori, pionieri. Non dei guardiani."

"Un tempo per la meraviglia alzavamo al cielo lo sguardo sentendoci parte del firmamento, ora invece lo abbassiamo preoccupati di far parte del mare di fango."

- Cooper (Interstellar)
@MCinemaGamer il PROBLEMONE é che io di programmazione ne so l' 1% perciò questa cosa si potrebbe fare con Skipt?? Grazie pure ad @Alberto01 ... Siceramente non ho neanche chiesto se qualcuno me lo potrebbe fare perchè lo so che la persona che programma non fà plugin per altri server! Grazie a tutti, se mi rispondete alla domanda qui sopra vi ringrazio!


Inviato dal mio iPad utilizzando Tapatalk
Non conosco bene skript, però se puoi fare delle task che si ripetono, e controllare il giorno del mese, sei a posto.
[Immagine: filoghost] filoghost
 
@filoghost con skript intendi? Che comando... Io pensavo: money [player] give 250 every mounth?? Possibile?? Comunque siccome fino a domenica sono libero mattina/pomeriggio e sera mi leggo una breve guida su java! Quello di HTML è valido?


Inviato dal mio iPad utilizzando Tapatalk
18/03/2014, 19:58Filippo2000 ha scritto: @filoghost con skript intendi? Che comando... Io pensavo: money [player] give 250 every mounth?? Possibile?? Comunque siccome fino a domenica sono libero mattina/pomeriggio e sera mi leggo una breve guida su java! Quello di HTML è valido?


Inviato dal mio iPad utilizzando Tapatalk

Sì, ma associala alle guide presenti nel portale Developers della wiki di Bukkit Smile
Non rispondo a richieste di supporto in privato!

Moderatore&Neswer
Sviluppatore

Ok... Ci proverò! Ora ho chiesto a @LordSpyder99 sul suo topic guida di Skript


Inviato dal mio iPad utilizzando Tapatalk
@Filippo2000
Allora utilizza questo nel void onEnable() :
Codice:
        int dayOfMonth = 1;
        int hourOfDay = 16;

        TimerMensile.schedule( new Runnable() { 
            public void run() { 
                //Qua ci metti quello che devi fare ogni Mese il giorno 'dayOfMonth' alle 'hourOfDay'
            }
        }, dayOfMonth, hourOfDay);

E poi crea una nuova classe chiamata TimerMensile e ci metti dentro questo :
Codice:
//Ricordati di mettere il tuo PACKAGE

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TimerMensile {

    private final Runnable theRunnable;
    private final int dayOfMonth;
    private final int hourOfDay;
    private Timer timerAttuale = new Timer();

    public static TimerMensile schedule( Runnable runnable, int dayOfMonth, int hourOfDay ) { 
        return new TimerMensile( runnable, dayOfMonth, hourOfDay );
    }

    private TimerMensile(Runnable runnable, int day, int hour ) { 
        this.theRunnable = runnable;
        this.dayOfMonth = day;
        this.hourOfDay = hour;
        schedule();
    }

    public void cancellaTimerAttuale(){
        timerAttuale.cancel();
        timerAttuale.purge();
    }
    
    private void schedule() { 
     cancellaTimerAttuale();
        timerAttuale = new Timer(); 
        timerAttuale.schedule( new TimerTask() { 
            public void run() { 
                try { 
                    theRunnable.run();
                } finally { 
                    schedule();
                }
            }
        } , prossimaData() );           
    }
    
    private Date prossimaData() { 
        Calendar prossimaData = Calendar.getInstance();
        prossimaData.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        prossimaData.set(Calendar.HOUR_OF_DAY, hourOfDay);
        prossimaData.set(Calendar.MINUTE, 0);
        prossimaData.add(Calendar.MONTH, 1);
        return prossimaData.getTime();
    }

}

A me ha sempre funzionato questo codice, dimmi se a te funziona. (P.S Non uso questo codice da parecchio)
@HeadHunts non ho parole,che dire... +1 mertitato!


Inviato dal mio iPad utilizzando Tapatalk
1 utente apprezza questo post
18/03/2014, 21:26Filippo2000 ha scritto: @HeadHunts non ho parole,che dire... +1 mertitato!


Inviato dal mio iPad utilizzando Tapatalk


Figurati.
@HeadHunts rep gia dato, ora non posso verificare perche sono all'ospedale... Giovedì provo... Grazie mille Smile se ho problemi posso chiedere pure a te?


Inviato dal mio iPad utilizzando Tapatalk
18/03/2014, 21:30Filippo2000 ha scritto: @HeadHunts rep gia dato, ora non posso verificare perche sono all'ospedale... Giovedì provo... Grazie mille Smile se ho problemi posso chiedere pure a te?


Inviato dal mio iPad utilizzando Tapatalk

Dipende dal tipo di problema, ma comunque cerchero' sempre di darti una risposta concreta.
Discussioni simili
Risposta di Maxetto
07/07/2017, 18:44

Utente(i) che stanno guardando questa discussione: 1 Ospite(i)