private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e) { var firstEntity = e.Message?.Entities?.FirstOrDefault(); if (null == firstEntity || firstEntity.Offset != 0 || firstEntity.Type != "bot_command") { UpdateStats(e); } }
private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e) { var firstEntity = e.Message?.Entities?.FirstOrDefault(); if (e.Message.ForwardFrom == null && (null == firstEntity || firstEntity.Offset != 0 || firstEntity.Type != "bot_command")) { bool isduplicate = IsDuplicateInput(e); if (!isduplicate) { DetectForbiddenWord(e); } } }
private void CheckForBanHandler(object sender, Botje.Messaging.Events.PublicMessageEventArgs e) { List <UserBan> bannedUsers = new List <UserBan>(); if (e.Message.NewChatMembers != null) { e.Message.NewChatMembers.ForEach(x => CheckForBan(e.Message.Chat.ID, x, bannedUsers)); } else if (e.Message.From != null) { CheckForBan(e.Message.Chat.ID, e.Message.From, bannedUsers); } bannedUsers.ForEach(bu => { Client.SendMessageToChat(e.Message.Chat.ID, $"Gebruiker {bu.User.UsernameOrName()} is hier niet welkom. Er is/zijn {bu.Rules.Count} regels die dat zeggen. Ik ban deze gebruiker voor 1 uur."); Client.KickChatMember(e.Message.Chat.ID, bu.User.ID, DateTimeOffset.UtcNow + TimeSpan.FromHours(1)); }); }
private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e) { var firstEntity = e.Message?.Entities?.FirstOrDefault(); if (null != firstEntity && firstEntity.Type == "bot_command" && firstEntity.Offset == 0) { string myName = Client.GetMe().Username; string commandText = e.Message.Text.Substring(firstEntity.Offset, firstEntity.Length); if (commandText.Contains("@") && !commandText.EndsWith($"@{myName}", StringComparison.InvariantCultureIgnoreCase)) { // not for me _log.Trace($"Got command '{commandText}' but it is not for me."); } else { commandText = commandText.Split("@").First(); ProcessCommand(e, commandText); } } }
private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e) { var info = Client.GetChat(e.Message.Chat.ID); var firstEntity = e.Message?.Entities?.FirstOrDefault(); if (e.Message.NewChatMembers != null && e.Message.NewChatMembers.Count > 0 && info.PinnedMessage != null && !string.IsNullOrEmpty(info.PinnedMessage.Text)) { string newUsers = string.Join(", ", e.Message.NewChatMembers.Select(x => '@' + x.ShortName())); Client.SendMessageToChat(e.Message.Chat.ID, MessageUtils.HtmlEscape(info.PinnedMessage.Text.Replace("$USERS$", newUsers)), "HTML", true, false); foreach (var member in e.Message.NewChatMembers) { if (string.IsNullOrEmpty(member.Username)) { string reply = GetUserSetting(e, "NoUsernameText"); if (!string.IsNullOrEmpty(reply)) { Client.SendMessageToChat(e.Message.Chat.ID, MessageUtils.HtmlEscape($"{member.ShortName()}: {reply}"), "HTML", true, false); } } } } else if (null != firstEntity && firstEntity.Type == "bot_command" && firstEntity.Offset == 0) { string myName = Client.GetMe().Username; string commandText = e.Message.Text.Substring(firstEntity.Offset, firstEntity.Length); if (commandText.Contains("@") && !commandText.EndsWith($"@{myName}", StringComparison.InvariantCultureIgnoreCase)) { // not for me _log.Trace($"Got command '{commandText}' but it is not for me."); } else { commandText = commandText.Split("@").First(); ProcessCommand(e, commandText); } } }