public Server(IPAddress ip, int port) { _listener = new TcpListener(ip, port); _ircClients = new List <IrcClient>(); _controller = new IrcController(_ircClients); _commandProcessor = new IrcCommandProcessor(_controller); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length < 3 || !args[1].StartsWith("#")) { return; } var command = args[0]; var channel = args[1]; var extra = string.Join(" ", args.Skip(2).ToArray()); var target = controller.Channels.ToList().Find(ch => ch.Name.Equals(channel.Remove(0, 1), StringComparison.InvariantCultureIgnoreCase)); if (target == null) { var errorMessage = new NoSuchChannelError { SenderAddress = Server.HostName, ClientNick = client.NickName, ChannelName = channel }.FormFullResponseString(); client.SendMessage(errorMessage); return; } target.Connections.First(t => t.IrcClient == client).Connection.Send("say", $"/{command} {extra}"); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (string.IsNullOrEmpty(client.NickName)) { client.NickName = new string(Guid.NewGuid().ToString().Substring(3, 12).Where(char.IsLetterOrDigit).ToArray()); } }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { new ChannelListBeginReply { SenderAddress = Server.HostName, ClientNick = client.NickName }.SendMessageToClient(client); var rooms = client._client.Multiplayer.ListRooms("Everybodyedits" + client._client.BigDB.Load("config", "config")["version"], null, 0, 0).ToList(); foreach (var room in rooms.OrderByDescending(ri => ri.OnlineUsers)) { new ChannelListReply { SenderAddress = Server.HostName, RecipientNickName = client.NickName, ChannelName = "#" + room.Id, ChannelUserCount = room.OnlineUsers, ChannelTopic = room.RoomData.ContainsKey("name") ? room.RoomData["name"] : "Untitled World" }.SendMessageToClient(client); } new ChannelListEndReply { SenderAddress = Server.HostName, ClientNick = client.NickName }.SendMessageToClient(client); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length == 0 || args[0].Trim() == string.Empty) { return; } if (controller.NickNameInUse(args[0])) { new NicknameInUseError { SenderAddress = Server.HostName, SenderNickName = client.NickName, AttemptedNickName = args[0] }.SendMessageToClient(client); return; } client.NickName = args[0]; // Attempt to activate the user client.AttemptUserActivation(); client.SetUserMask(); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length == 0) { new NeedMoreParamsError { Command = "JOIN", SenderAddress = Server.HostName, SenderNickName = client.NickName }.SendMessageToClient(client); return; } var name = args[0].Trim(); if (!name.StartsWith("#")) { new NoSuchChannelError { SenderAddress = Server.HostName, ChannelName = name, ClientNick = client.NickName }.SendMessageToClient(client); return; } if (name.StartsWith("#")) name = name.Substring(1); controller.JoinChannel(client, name); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length < 4) { var replyCommand = new NeedMoreParamsError { Command = "USER", SenderAddress = Server.HostName }; client.SendMessage(replyCommand.FormFullResponseString()); return; } client.FullName = args[3]; client.UserName = args[0]; var connectUserId = Server.EEGuestClient.BigDB.Load("Usernames", client.UserName.ToLower()).GetString("owner", ""); if (!connectUserId.StartsWith("simple")) { new WelcomeReply() { Message = "Whoops! You are attempting to connect with a non-simple user, which is currently unsupported." }.SendMessageToClient(client); return; } client.UsernameOrEmail = connectUserId.Remove(0, "simple".Length); client.AttemptUserActivation(); client.SetUserMask(); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length == 0) { new NeedMoreParamsError { Command = "JOIN", SenderAddress = Server.HostName, SenderNickName = client.NickName }.SendMessageToClient(client); return; } var name = args[0].Trim(); if (!name.StartsWith("#")) { new NoSuchChannelError { SenderAddress = Server.HostName, ChannelName = name, ClientNick = client.NickName }.SendMessageToClient(client); return; } if (name.StartsWith("#")) { name = name.Substring(1); } controller.JoinChannel(client, name); }
public IrcWindow(string username) { InitializeComponent(); this.Controller = new IrcController("irc.CnCIRC.NET", username + "_Via_Launcher", "#renegadex"); this.IrcChats.DataContext = this.Controller; this.IrcConnections.DataContext = this.Controller; this.Controller.Connect(); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length < 1) { return; } client.Password = args[0]; client.AttemptUserActivation(); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length == 0) return; if (!args[0].StartsWith("#") || args[0].Length < 2) return; var channel = args[0].Substring(1); controller.PartChannel(client, channel); }
public Server(IPAddress ip, int port, string hostname) { EEGuestClient = PlayerIO.QuickConnect.SimpleConnect("everybody-edits-su9rn58o40itdbnw69plyw", "guest", "guest", null); EEStaff = EEGuestClient.BigDB.Load("config", "staff").Properties.Select(p => p.ToLower()).ToList(); _listener = new TcpListener(ip, port); _ircClients = new List <IrcClient>(); _controller = new IrcController(_ircClients); _commandProcessor = new IrcCommandProcessor(_controller); HostName = hostname; }
private static void IrcIncomingMessage(IrcController controller, IrcMessage message) { ChannelMappingConfig channelMapping = _config.ChannelMappings.FirstOrDefault(mapping => mapping.IrcChannel.ToIrcLower() == message.Parameters[0].ToIrcLower()); if (channelMapping != null) { DiscordChannel channel = _discord.GetChannelAsync(channelMapping.DiscordChannel).GetAwaiter().GetResult(); if (channel != null) { channel.SendMessageAsync($"**[IRC]** <*{message.SourceNick}*> {message.Parameters[1]}"); } } }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length < 2) return; // Detect if this is being sent to a user or a channel if (args[0].StartsWith("#")) { var channel = args[0].Substring(1); controller.SendMessageToChannel(client, channel, args[1]); } else { controller.SendPrivateMessageToUser(client, args[0], args[1]); } }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length == 0) { return; } if (!args[0].StartsWith("#") || args[0].Length < 2) { return; } var channel = args[0].Substring(1); controller.PartChannel(client, channel); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length < 2) { return; } // Detect if this is being sent to a user or a channel if (args[0].StartsWith("#")) { var channel = args[0].Substring(1); controller.SendMessageToChannel(client, channel, args[1]); } else { controller.SendPrivateMessageToUser(client, args[0], args[1]); } }
public override void OnLoad(MainWindow window) { _window = window; _client = IrcController.Client; _client.OnConnecting += client_OnConnecting; _client.OnConnected += client_OnConnected; _client.OnConnectionError += client_OnConnectionError; _client.OnChannelMessage += client_OnChannelMessage; _client.OnError += client_OnError; _client.OnErrorMessage += client_OnErrorMessage; _client.OnChannelNotice += client_OnChannelNotice; _client.OnChannelAction += client_OnChannelAction; _client.OnNames += client_OnNames; _window.CreateRoom("#bots"); IrcController.Connect(); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length < 4) { var replyCommand = new NeedMoreParamsError { Command = "USER", SenderAddress = Server.HostName }; client.SendMessage(replyCommand.FormFullResponseString()); return; } client.FullName = args[3]; client.UserName = args[0]; // Attempt to activate the user client.AttemptUserActivation(); client.SetUserMask(); }
public void ProcessCommand(string[] args, IrcClient client, IrcController controller) { if (args.Length == 0 || args[0].Trim() == string.Empty) return; if (controller.NickNameInUse(args[0])) { new NicknameInUseError { SenderAddress = Server.HostName, SenderNickName = client.NickName, AttemptedNickName = args[0] }.SendMessageToClient(client); return; } client.NickName = args[0]; // Attempt to activate the user client.AttemptUserActivation(); client.SetUserMask(); }
static void Main(string[] args) { _config = MainConfig.LoadFromJsonFile("./config.json"); List <string> autoJoinChannels = new List <string>(); foreach (ChannelMappingConfig channelMapping in _config.ChannelMappings) { if (autoJoinChannels.Any(ch => ch.ToIrcLower() == channelMapping.IrcChannel.ToIrcLower())) { continue; } autoJoinChannels.Add(channelMapping.IrcChannel); } IrcConnector connector = new IrcConnector(new IrcConfig { ServerHostname = _config.IrcHost, ServerPort = _config.IrcPort, Nick = _config.IrcNick, UserName = _config.IrcUserName, RealName = _config.IrcRealName, UseSsl = _config.IrcSsl, AutoJoinChannels = autoJoinChannels }); connector.MessageReceived += IrcControlMessageReceived; connector.MessageTransmitted += IrcControlMessageTransmitted; _controller = new IrcController(connector); _controller.PrivMsg += IrcIncomingMessage; DiscordAsync(args).ConfigureAwait(false).GetAwaiter().GetResult(); }
public void RegisterController( IrcController controller ) { _ircControllers.Add( controller ); }