public override void CheckRequest() { base.CheckRequest(); if (_session.UserInfo.NickName != _setckeyCmd.NickName) { _errorCode = Entity.Structure.ChatError.Parse; return; } if (!_session.UserInfo.IsJoinedChannel(_setckeyCmd.ChannelName)) { _errorCode = Entity.Structure.ChatError.Parse; return; } if (!ChatChannelManager.GetChannel(_setckeyCmd.ChannelName, out _channel)) { _errorCode = Entity.Structure.ChatError.Parse; return; } if (!_channel.GetChannelUser(_session, out _user)) { _errorCode = Entity.Structure.ChatError.Parse; return; } }
public ChatServer(IPAddress address, int port) : base(address, port) { SessionManager = new ChatSessionManager(); ChannelManager = new ChatChannelManager(); ChannelManager.Start(); SessionManager.Start(); }
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 ChatServer(IPAddress address, int port) : base(address, port) { SessionManager = new ChatSessionManager(); CommandManager = new ChatCommandManager(); ChannelManager = new ChatChannelManager(); //use this to add command into chatserver CommandManager.Start(); ChannelManager.Start(); SessionManager.Start(); }
private void GetChannelUsersInfo() { ChatChannel channel; if (!ChatChannelManager.GetChannel(_request.ChannelName, out channel)) { _errorCode = ChatError.NoSuchChannel; return; } _resultChannel = channel; }
public override void Handle(Client client, string alias, string[] arguments) { if (arguments.Length == 1) { var channelName = arguments[0].ToLower(); var channel = ChatChannelManager.FindByAlias(channelName); client.SendServerMessage(channel != null ? $"{channel.Name}: {channel.Description}" : $"Channel '{channelName}' not found!"); } else { client.SendServerMessage("Invalid arguments given."); } }
protected override void DataOperation() { base.DataOperation(); _user = new ChatChannelUser(_session); if (ChatChannelManager.GetChannel(_request.ChannelName, out _channel)) { //join JoinChannel(); } else { //create CreateChannel(); } }
public override void CheckRequest() { base.CheckRequest(); //can not find any user if (!_channel.GetChannelUserBySession(_session, out _user)) { _errorCode = ChatError.IRCError; _sendingBuffer = ChatIRCError.BuildNoSuchNickError(); return; } if (!ChatChannelManager.GetChannel(_cmd.ChannelName, out _channel)) { _errorCode = ChatError.IRCError; _sendingBuffer = ChatIRCError.BuildNoSuchChannelError(_cmd.ChannelName); } }
private void KickAllUserAndShutDownChannel(ChatChannelUser kicker) { foreach (var user in Property.ChannelUsers) { //kick all user out string kickMsg = ChatReply.BuildKickReply( Property.ChannelName, kicker, user, "Server Hoster leaves channel"); user.Session.SendAsync(kickMsg); } ChatChannelManager.RemoveChannel(this); GameServer.DeleteSimilarServer( kicker.Session.RemoteEndPoint, kicker.Session.UserInfo.GameName); }
private void GetChannelUsersInfo() { ChatChannelBase channel; if (!ChatChannelManager.GetChannel(_cmd.Name, out channel)) { _errorCode = ChatError.IRCError; return; } _sendingBuffer = ""; foreach (var user in channel.Property.ChannelUsers) { _sendingBuffer += ChatReply.BuildWhoReply( channel.Property.ChannelName, user.UserInfo, user.GetUserModes()); } }
public override void Handle(Client client, string alias, string[] arguments) { if (arguments.Length == 1) { var channelName = arguments[0].ToLower(); var channel = ChatChannelManager.FindByAlias(channelName); if (channel != null) { client.SendServerMessage(channel.Subscribe(client) ? $"Changed chat channel to {channel.Name}!" : $"Failed to change chat channel to {channel.Name}!"); } else { client.SendServerMessage($"Channel '{channelName}' not found!"); } } else { client.SendServerMessage("Invalid arguments given."); } }
public override void Handle(Client client, string alias, string[] arguments) { foreach (var channel in ChatChannelManager.GetChatChannels()) client.SendServerMessage($"{channel.Name}: {channel.Description}"); }