void SetChan(const CString& sLine) { const CString var = sLine.Token(1).AsLower(); CString username = sLine.Token(2); CString chan = sLine.Token(3); CString value = sLine.Token(4, true); if (value.empty()) { PutModule("Usage: setchan <variable> <username> <chan> <value>"); return; } CUser* user = GetUser(username); if (!user) return; CChan* pChan = user->FindChan(chan); if (!pChan) { PutModule("Error: Channel not found: " + chan); return; } if (var == "defmodes") { pChan->SetDefaultModes(value); PutModule("DefModes = " + value); } else if (var == "buffer") { unsigned int i = value.ToUInt(); pChan->SetBufferCount(i); PutModule("Buffer = " + CString(i)); } else if (var == "inconfig") { bool b = value.ToBool(); pChan->SetInConfig(b); PutModule("InConfig = " + CString(b)); } else if (var == "keepbuffer") { bool b = value.ToBool(); pChan->SetKeepBuffer(b); PutModule("KeepBuffer = " + CString(b)); } else if (var == "detached") { bool b = value.ToBool(); if (pChan->IsDetached() != b) { if (b) pChan->DetachUser(); else pChan->AttachUser(); } PutModule("Detached = " + CString(b)); } else PutModule("Error: Unknown variable"); }