Exemple #1
0
        internal void CheckIfOpAndTryToGetOpIfNotOnce()
        {
            var alreadyOp = _messageClient.AmIChannelAdmin(_clientConfiguration.Channel);

            if (alreadyOp.HasValue && !alreadyOp.Value)
            {
                var userCount = _messageClient.CountUsersInChannel(_clientConfiguration.Channel);

                if (userCount == 1) // nur noch unser Bot drin
                {
                    // nach einem Rejoin wird der Channel neu erzeugt und wir haben als 1. Bewohnen direkt die Macht
                    _messageClient.LeaveChannel(_clientConfiguration.Channel);
                    _messageClient.JoinChannel(_clientConfiguration.Channel);
                }
            }
        }
        /// <summary>
        /// Event-Handler, der bei dem Befehl !topic <neues Topic> im Channel das Topic setzt (sofern der Bot OP hat, und sonst einen Fehler ausgibt)
        /// </summary>
        /// <param name="messageData"></param>
        public void ChangeTopic(MessageData messageData)
        {
            string command = "!topic";

            if (messageData.MessageParts.Length == 0 || !messageData.MessageParts[0].StartsWith(command))
            {
                return;
            }

            if (!_messagingClient.AmIChannelAdmin(messageData.Channel).Value)
            {
                _messagingClient.SendMessage(messageData.Channel, Texts.TopicChangeRequestedButIAmNotOperator);

                return;
            }

            string newTopic = PrepareTopic(messageData.Message, command, messageData.Nickname);

            _messagingClient.ChangeTopic(messageData.Channel, newTopic);
        }