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); }