From Max`P, 1 Year ago, written in D.
This paste will slip away in 1 Second.
Embed
  1. import std.stdio;
  2. import IRC = irc.client;
  3. import irc.tls;
  4. import irc.data;
  5. import irc.handlers;
  6. import irc.chanbot;
  7.  
  8. shared static this() {
  9.         auto bot = new MyBot(User("Cuntanna"));
  10.         bot.connect(connectTCP("...", 6667));
  11. }
  12.  
  13. class MyBot : IRC.Client {
  14.         import vibe.core.log;
  15.        
  16.         this(User user) {
  17.                 super(user, autocommands(this));
  18.         }
  19.        
  20.         @command("001")
  21.         public void onWelcome(Message msg) {
  22.                 send("JOIN", "#test");
  23.         }
  24.        
  25.         mixin PerChannel;
  26.        
  27.         void onInvalidChan(string source, string chan, string command, string[] data) {
  28.                 if(chan[0] != '#') return;
  29.                 _channels[chan] = autochancommands(new MyChanBot(chan));
  30.                 toChan(chan, source, command, data);
  31.         }
  32.        
  33.         class MyChanBot {
  34.                 string channel;
  35.                
  36.                 this(string channel) {
  37.                         this.channel = channel;
  38.                 }
  39.                
  40.                 @trigger("^@ping")
  41.                 public void echo(string source, TriggerArgs args) {
  42.                         send("PRIVMSG", channel, source.parseUser().nick~": pong!");
  43.                 }
  44.         }
  45. }
  46.