private bool UserQuit(BlackLight.Services.Nodes.IRCUser Source, string command, List<string> arguments) { //Viable String Options //--REASON try { if (Source != null&& Source is BlackLight.Services.Nodes.Client) { Command cmd = MyIRCd.Commands["QUITRECEIVE"]; if (arguments.Count == cmd.parameterCount()) { if (events.onQuitEvent != null) events.onQuitEvent(Source.name, arguments[cmd.getParameterIndex("REASON")]); Source.Dispose(); } else { SendLogMessage("Services", "Quit", BlackLight.Services.Error.Errors.DEBUG | BlackLight.Services.Error.Errors.ERROR, "Unable to match protocol with message received", "", "", ""); } return true; } return false; } catch (Exception ex) { SendLogMessage("Services", "Quit", BlackLight.Services.Error.Errors.ERROR, "Problem parsing", "", ex.Message, ex.StackTrace); return false; } }