internal bool TryAddTrainer(Trainer trainer) { if (Trainers.Contains(trainer)) { return(false); } Trainers.Add(trainer); return(true); }
internal bool TryAddPerson(Person person, Trainer personTrainer) { if (Persons.Contains(person)) { return(false); } if (!Trainers.Contains(personTrainer)) { return(false); } person.AssignTrainer(personTrainer); Persons.Add(person); personTrainer.TryAssignPerson(person); return(true); }
void _increaseOccupationNum(CSPersonnel person, int occupation) { if (occupation == CSConst.potWorker) { if (!m_Workers.Contains(person)) { m_Workers.Add(person); } m_WorkerNum++; } else if (occupation == CSConst.potSoldier) { if (!m_Soldiers.Contains(person)) { m_Soldiers.Add(person); } m_SoldierNum++; } else if (occupation == CSConst.potFarmer) { if (!m_Farmers.Contains(person)) { m_Farmers.Add(person); } m_FarmerNum++; } else if (occupation == CSConst.potProcessor) { if (!m_Processors.Contains(person)) { m_Processors.Add(person); } m_ProcessorNum++; } else if (occupation == CSConst.potTrainer) { if (!Trainers.Contains(person)) { Trainers.Add(person); } m_TrainerNum++; } }
public override ProcessResult ProcessMessage(int userid, string text) { // Обработка сообщений с обучением if (Trainers.Contains(userid)) { return(ProcessMessageFromTrainer(userid, text)); } // Обработка команды начала обучения else if (text.ToLower() == "учить") { Trainers.Add(userid); CallUsersGridUpdate(new UsersGridUpdateEventArgs("LearningNow", userid, "Yes")); vk.SendMessage(userid, "Добро пожаловать в режим обучения бота.\n" + "В данном режиме вы можете научить меня отвечать на различные сообщения.\n" + "Чтобы добавить фразы, которыми я буду отвечать на определённое сообщение, " + "пришлите мне сообщение в виде: ШАБЛОН *перенос строки* ОТВЕТ. " + "Ответов можно добавлять несколько, разделяя их так же переносом строки.\n" + "Пример:\n\nЗДРАВСТВУЙ\nПриветик\nДобрый день\nХей! Как делишки?\n\n" + "Таким образом бот будет отвечать на сообщение с текстом \"здравствуй\" одной из трёх фраз.\n" + "Так же вы можете дать ответ на одну из фраз, которую писали боту, на которую он не смог ответить сам," + "тем самым так же пополнив его базу данных. Для получения случайной фразы, на которую нужно дать ответ, напишите ОТВЕТ" + "Ближайшее время будет добавлена возможность вводить шаблоны в виде регулярных выражений.\n" + "Для выхода из режима обучения пожалуйста напишите ОТМЕНА\n\n" + "Надеюсь Вы научите меня правильно отвечать. Пожалуйста, не вставляйте различные ссылки/рекламу в ответы," + "или же сообщения не по теме. Злоупотребление данной функцией может привести к вашей блокировке. <3"); return(ProcessResult.Processed); } // Ответ на фразу, ответ на которую существует else if (CustomAnswers.ContainsKey(text.ToLower()) || CustomAnswers.ContainsKey(text.ToLower() + '?') || CustomAnswers.ContainsKey(text.ToLower().Trim(new[] { ' ', '.', '?', '!' }))) { text = text.ToLower(); var answers = CustomAnswers.ContainsKey(text) ? CustomAnswers[text] : (CustomAnswers.ContainsKey(text + '?') ? CustomAnswers[text + '?'] : CustomAnswers[text.Trim(new[] { ' ', '.', '?', '!' })]); var i = rnd.Next(answers.Count); vk.SendMessage(userid, answers[i]); return(ProcessResult.Processed); } // Добавление фразы в неотвеченные NotAnswered.Add(text); Tab.Invoke((Action)(() => Tab.listBoxNotAnswered.Items.Add(text))); return(ProcessResult.Skipped); }