private void OnQueueChat(QueueChatEvent e) { if (!e.Cancelled) { this.QueueChat(e.Message); } }
private void OnQueueChat(QueueChatEvent e) { var pm = e.Message.StartsWith("/pm ", StringComparison.OrdinalIgnoreCase); var kick = e.Message.StartsWith("/kick ", StringComparison.OrdinalIgnoreCase); var sendraw = e.Message.StartsWith(SendPrefix, StringComparison.OrdinalIgnoreCase); if (e.Message.StartsWith("/", StringComparison.OrdinalIgnoreCase) && !pm && !kick && !sendraw) { return; } if (pm || kick) { var args = e.Message.Split(' '); var target = args.Skip(1).FirstOrDefault(); var message = String.Join(" ", args.Skip(2)); if (String.IsNullOrEmpty(message)) { message = "Tsk Tsk Tsk"; } e.Message = pm ? this.SyntaxProvider.ApplyPrivateMessageSyntax(target, message) : this.SyntaxProvider.ApplyKickSyntax(target, message); } else if (sendraw) { e.Message = e.Message.Substring(SendPrefix.Length, e.Message.Length - SendPrefix.Length); } else { e.Message = this.SyntaxProvider.ApplyChatSyntax(e.Message); } }
private void OnQueueChatEx(QueueChatEvent e) { // Trim chars e.Message = this.TrimChars(e.Message); // There is no speed limit on commands var pm = e.Message.StartsWith("/pm ", StringComparison.OrdinalIgnoreCase); if (e.Message.StartsWith("/", StringComparison.OrdinalIgnoreCase) && !pm) { new ChatSendMessage(this.Truncate(e.Message, MaxMessageLength)) .SendIn(this.BotBits); e.Cancelled = true; return; } // Queue the message and chop it into 140 char parts var prefix = String.Empty; var message = e.Message; if (pm) { var args = e.Message.Split(' '); prefix = String.Join(" ", args.Take(2)) + " "; message = String.Join(" ", args.Skip(2)); } // Dont send the same thing more than 3 times var channel = GetChannel(e.Message); var maxLength = MaxMessageLength - prefix.Length; while (this.CheckHistory(this.Truncate(message, maxLength), channel)) { message = "." + message; } if (message.Length > maxLength) { new QueueChatEvent(prefix + this.Truncate(message, maxLength)) .RaiseIn(this.BotBits); this.OnQueueChatEx(new QueueChatEvent(prefix + message.Substring(maxLength))); } else { e.Message = prefix + message; } }
private void OnAfterMost(QueueChatEvent e) { if (e.Cancelled) { return; } if (e.IsCommand && !e.IsPrivateMessage) { new ChatSendMessage(this.Truncate(e.Message)) .SendIn(this.BotBits); return; } var prefix = string.Empty; var message = e.Message; if (e.IsPrivateMessage) { var args = e.Message.Split(' '); prefix = string.Join(" ", args.Take(2)) + " "; message = string.Join(" ", args.Skip(2)); } var maxLength = MaxLength - prefix.Length; while (message.Length > 0) { var channel = this.GetChannel(e.Message); var truncated = this.Truncate(message, maxLength); if (!Players.Of(this.BotBits).OwnPlayer.Owner&& this.CheckHistory(truncated, channel)) { var bypass = '******'; if (truncated.All(c => c == bypass)) { bypass = '******'; } message = bypass + message; truncated = this.Truncate(message, maxLength); } this.QueueChat(prefix + truncated); message = message.Substring(truncated.Length); } }
private void OnAfterMost(QueueChatEvent e) { if (e.Cancelled) { return; } if (e.IsCommand && !e.IsPrivateMessage) { new ChatSendMessage(Truncate(e.Message)) .SendIn(this.BotBits); } else { foreach (var msg in this.SplitMessage(e.Message, e.IsPrivateMessage)) { this.QueueChat(msg, e.IsPrivateMessage); } } }