public abstract void BroadcastExclusive(string command, UserBase sender, params object[] arguments);
public abstract UserBase GetUser(string nick, UserBase notifyOnError = null);
public abstract string GetPrefix(UserBase user);
public abstract void SetModes(UserBase user, string flags, string arguments);
public abstract void SetModes(UserBase user, string modes);
public abstract void AddPrefix(UserBase user, char c);
public abstract void RemovePrefix(UserBase user, char c);
public abstract void RemoveUser(UserBase user, bool removeFromUser = true);
public abstract ChannelBase CreateChannel(string name, UserBase user);
public abstract void Commit(UserBase user);
public abstract bool LogIn(UserBase user, string account, byte[] password);
public abstract bool Register(UserBase user, byte[] password, string email);