Plugins

Pizza puo' essere esteso tramite plugins.

Ogni plugin e' eseguito in un thread a se: questo significa che se il plugin dovesse interrompersi o generare un errore questo sarebbe interrotto senza compromettere la funzionalita' degli altri plugin e del bot stesso!

Questa architettura rende Pizza estensibile a piacere, senza troppe preoccupazioni relative a plugin malfunzionanti!

Creazione

Per creare un uovo plugin e' necessario creare una classe che erediti dalla classe base com.neroreflex.pizza.Trancio.

A questo punto il plugin sara' funzionante, anche se non sara' in grado di fare nulla!

Ogni plugin ha due modi per essere eseguito: il primo e' a comando, il secondo e' a ciclo continuo.

Ogni plugin puo' presentare entrambi i metodi/componenti di esecuzione.

Estensione

Facendo l'override di uno o piu' dei metodi descritti di seguito si estendera' il plugin:

  • protected void onInitialize(...): metodo chiamato nel main thread, al momento della attivazione del plugin, quindi PERICOLOSO
  • protected void onShutdown(...): metodo chiamato nel main thread, al momento della attivazione del plugin, quindi PERICOLOSO
  • protected void onCall(...): metodo chiamato nel onCalls thread, quando l'utente invoca il plugin
  • protected void onPoll(): metodo invocato nel onPolls thread (timer)
  • protected void onHelp(...): metodo invocato quando l'utente richiede l'help per lo specifico plugin

Vedere il Javadoc per una lista completa e maggiorni informazioni.

API

Il plugin dovra' interagire attivamente con gli utenti della chat IRC oltre che a svolgere semplici interrogazioni del tipo: che canali occupa il bot? A che server e' connesso?

Per fare questo TUTTI i plugin hanno accesso ad una serie di metodi che formano l'interfaccia con la quale i plugin si rapportano al bot.

Tali API possono essere consultate nella documentazione della classe com.neroreflex.pizza.Trancio (vedere Javadoc per una lista completa).