/// <summary> /// Joins the room with the settings passed in. /// </summary> public void JoinRoom(InstallationSettings settings) { // Copy over the settings into this class so this class can use it. this.settings = settings; // Create the ChatMessageProcessor. cmp = new ChatMessageProcessor(settings); cmp.StopBotCommandIssued += cmp_StopBotCommandIssued; // Logic to join the chat room. chatClient = new Client(settings.Email, settings.Password); cvChatRoom = chatClient.JoinRoom(settings.ChatRoomUrl); ChatBotStats.LoginDate = DateTime.Now; cvChatRoom.StripMention = false; // Say the startup message? if (!settings.StartUpMessage.IsNullOrWhiteSpace()) { // This is the one of the few instances to not using the "OrThrow" method. var startMessage = cvChatRoom.PostMessage(settings.StartUpMessage); if (startMessage == null) { throw new InvalidOperationException("Unable to post start up message to room."); } } cvChatRoom.EventManager.ConnectListener(EventType.MessagePosted, new Action<Message>(cvChatRoom_NewMessage)); cvChatRoom.EventManager.ConnectListener(EventType.MessageEdited, new Action<Message>(cvChatRoom_NewMessage)); }
public void Execute(string command, string arguments, User user, Room room, Client client) { if (!AdaPermissions.IsAuthorized(permissionLevel, user)) { var messageBuilder = new MessageBuilder(); messageBuilder.AppendPing(user); messageBuilder.AppendText("You are not authorised to make this command."); room.PostMessage(messageBuilder); } else { Action(command, arguments, user, room, client); } }