Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
IrcBotter - IrcBotter - Guida Pratica

IrcBotter

Sommario | Admin | Forum | Bugs | Todo | Files

Avatar
Thejuster (Member)
Guru^2


Messaggi: 1877
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:50
Venerdì, 02/02/2018
Sorgente su Git

https://github.com/Thejuster/IrcBotter



Era da tantissimo tempo che avevo depositato questo progetto che volevo caricarlo.
Dopo avergli dato una bella rispolveratina eccoci qui.


Cos'è IrcBotter?

IrcBotter è non è proprio un bot, Ma un motore per realizzare il vostro bot.
Il tutto viene gestito automaticamente dal motore.
Messaggi privati, messaggi nel canale, comandi, livelli utenti etc.

In più questo motore ha un interfaccia grafica retro basata su console.
Come Checkbox, DropDown, FileBrowser, Menu, TextArea, TextBox etc.
Al momento ho caricato solo la libreria per alleggerire il sorgente.
Ma successivamente allego anche tutto il sorgente della libreria.


Come funziona?
Al file programs.cs basta costruire questa riga.

Codice sorgente

WindowManager.UpdateWindow(100, 48); //Imposta la grandezza della finestra del Client WindowManager.SetWindowTitle("IRCBotter"); //Imposta il titolo della finestra IrcBot bot = new IrcBot(host, port, "#test", "IrcBotter"); //IP, porta, canale e nome del bot new Client(host, port,bot); //Avvia il client



Schermata Iniziale
http://pichoster.net/images/2018/02/02/bfa3ca8f85bb4846dfc ...



Feature Principali:
- Plugin Host
- Gestore di Eventi
- Riconnessione Automatica
- Spam / Flood Protection
- Tentativi di riconnesione
- Gestione dei Comandi personalizzati
- GUI Interattiva
- Configurazione visiva
- Livello e Privilegi
- Registrazione utenti




Il Client?

Il client è una GUI basata su console che permette di visualizzare cosa accade nei canali dove il bot
è loggato.

Premendo il tasto "Enter" mentre si visualizza gli eventi dei canali. è possibile entrare nella gui.

http://pichoster.net/images/2018/02/02/022fa8a5e2e778daf03 ...


Da questa schermata che successivamente vi porterà in altre per configurare l'engine e varie opzioni
(Ancora in fase di sviluppo)

http://pichoster.net/images/2018/02/02/ffa79dd57acf1cf1a5a ...



Come personalizzo il mio bot?


Al file IrcBot.cs


( Qualche bug di visualizzazione del codice? )

http://www.pierotofy.it/pages/users/copypastebin/viewCode. ...



Codice sorgente

        /// <summary>         /// When server say message from the client         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         void engine_OnServerMessage(object sender, IrcEngine.OnServerMessageArgs e)         {             //Quando il server invia un messaggio             Message.MOTD(e.GetData());         }         /// <summary>         /// On Quit Event         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         void engine_OnQuit(object sender, IrcEngine.OnQuitEventArgs e)         {             //Quando un utente esce dal canale             Message.Notice(e.GetUser() + " left from " + e.GetCurrentChannel());         }                  /// <summary>         /// On user Join         /// </summary>         void engine_OnJoin(object sender, IrcEngine.OnJoinEventArgs e)         {             //Quando un utente entra nel canale             Message.Notice(e.GetUser() + " has joined to " + e.GetCurrentChannel());         }          //Quando un utente scrive un messaggio            /// <summary>         /// On user connected at same channel for the bot         /// say a message         /// </summary>         /// <param name="sender">Client</param>         /// <param name="e">Operation</param>         void engine_OnMessage(object sender, IrcEngine.OnMessageEventArgs e)         {                   //Check if user send a command             if (e.GetText().StartsWith("!"))             {                 engine.OnCommands(e.GetData());             }             Message.Text(e.GetCurrentChannel() + " " + e.GetUser() + ":>" + e.GetText());         }         






Attributi particolari:


E possibile evidenziare alcuni void con attributi pariticolare in modo da facilitarne la compresione
ed eseguirli solo quando un criterio viene rispettato
Esempio:



Codice sorgente

[UserLeve(LevelRequired = 10)] public void MioComando(string user,string RawData) {     //ToDo }



Per eseguire questo void, l'utente che esegue un comando che succissivamente viene identificato e
reindirizzato a questo void, L'utente deve essere registrato è ad evere un livello di acceso superiore a 10


Esempio impostato su HelpCommand

http://www.pierotofy.it/pages/users/copypastebin/viewCode. ...

Codice sorgente - presumibilmente C#

  1. [UserLevel(LevelRequired = 0)]
  2.         public void HelpCommand(string user,string data)
  3.         {
  4.             bool check = CheckPermission(user);
  5.            
  6.             if (check)
  7.             {
  8.                 string us = engine.GetUser(data);
  9.                 engine.Queryes.Add(new IrcEngine.Query() { username = user, message = "Ciao " + user + " hai bisogno di aiuto?"});
  10.                 engine.Queryes.Add(new IrcEngine.Query() { username = user, message = "Ecco una piccola lista di comandi a tua disposizione" });              
  11.             }
  12.             else
  13.             {
  14.                 Message.Error(user + " perform non authorized command");
  15.             }
  16.                      
  17.         }





Ulteriori funzionamenti saranno descritti dettagliatamente nei prossimi aggiornamenti.

Ultima modifica effettuata da Thejuster il 02/02/2018 alle 10:58


PM Quote