irce = require "irce" socket = require "socket" get_client_modules = (irc) -> irc\load_module require "irce.modules.base" irc\load_module require "irce.modules.message" irc\load_module require "irce.modules.channel" class Client new: (nick) => @nick = nick socket = socket.tcp! irc = irce.new! get_client_modules irc irc\set_send_func (message) => print string.format "[client %s] > %s", nick, message socket\send message socket\connect "127.0.0.1", 6667 irc\NICK nick irc\USER nick, nick @socket = socket @irc = irc wait_for: (event) => running = true nick = @nick @irc\set_callback event, => print string.format "[client %s] ! got event %s", nick, event running = false while running msg = @socket\receive! print string.format "[client %s] < %s", nick, msg @irc\process msg quit: => @irc\QUIT "bye" @socket\close! { :Client }