Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
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.
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. ...
/// <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:
[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# |
[UserLevel(LevelRequired = 0)] public void HelpCommand(string user,string data) { bool check = CheckPermission(user); if (check) { string us = engine.GetUser(data); engine. Queryes. Add(new IrcEngine. Query() { username = user, message = "Ciao " + user + " hai bisogno di aiuto?"}); engine. Queryes. Add(new IrcEngine. Query() { username = user, message = "Ecco una piccola lista di comandi a tua disposizione" }); } else { Message.Error(user + " perform non authorized command"); } }
|
Ulteriori funzionamenti saranno descritti dettagliatamente nei prossimi aggiornamenti. Ultima modifica effettuata da Thejuster il 02/02/2018 alle 10:58
|