public void CreateChannel() { _channel = new ChatChannelBase(); if (IsPeerServer(_cmd.ChannelName)) { _channel.Property.SetPeerServerFlag(true); } _user.SetDefaultProperties(true); _channel.Property.SetDefaultProperties(_user, _cmd); //simple check for avoiding program crash if (!_channel.IsUserExisted(_user)) { _channel.AddBindOnUserAndChannel(_user); } //first we send join information to all user in this channel _channel.MultiCastJoin(_user); //then we send user list which already in this channel ??????????? _channel.SendChannelUsersToJoiner(_user); //send channel mode to joiner _channel.SendChannelModesToJoiner(_user); ChatChannelManager.AddChannel(_cmd.ChannelName, _channel); }
public override void CheckRequest() { base.CheckRequest(); var result = _session.UserInfo.JoinedChannels. Where(c => c.Property.ChannelName == _modeCmd.ChannelName); if (result.Count() != 1) { _errorCode = ChatError.NoSuchChannel; return; } _channel = result.First(); }
public bool GetJoinedChannel(string channelName, out ChatChannelBase channel) { var result = JoinedChannels.Where(c => c.Property.ChannelName == channelName); if (result.Count() == 1) { channel = result.First(); return(true); } else { channel = null; return(false); } }
public static bool RemoveChannel(ChatChannelBase channel) { return(RemoveChannel(channel.Property.ChannelName)); }
public static bool AddChannel(string name, ChatChannelBase channel) { return(Channels.TryAdd(name, channel)); }
public static bool GetChannel(string name, out ChatChannelBase channel) { return(Channels.TryGetValue(name, out channel)); }
public void BuildListRPL(ChatChannelBase channel) { _sendingBuffer = ChatReply.BuildListStartReply(_session.UserInfo, channel.Property); }