internal static void MatchingPollResults(GameClient client, Poll poll) { Room room = client.GetHabbo().CurrentRoom; if (poll == null || poll.Type != PollType.Matching || room == null) return; HashSet<RoomUser> users = room.GetRoomUserManager().GetRoomUsers(); for (int i = 0; i < 10; i++) { Thread.Sleep(1000); foreach (RoomUser roomUser in users) { Habbo user = Yupi.GetHabboById(roomUser.UserId); if (user.AnsweredPool) { ServerMessage result = new ServerMessage(LibraryParser.OutgoingRequest("MatchingPollResultMessageComposer")); result.AppendInteger(poll.Id); result.AppendInteger(2); result.AppendString("0"); result.AppendInteger(poll.AnswersNegative); result.AppendString("1"); result.AppendInteger(poll.AnswersPositive); client.SendMessage(result); } } } foreach (RoomUser roomUser in users) Yupi.GetHabboById(roomUser.UserId).AnsweredPool = false; }
/// <summary> /// Initializes the specified database client. /// </summary> /// <param name="dbClient">The database client.</param> internal void Init(IQueryAdapter dbClient) { Polls.Clear(); dbClient.SetQuery("SELECT * FROM polls_data WHERE enabled = '1'"); DataTable table = dbClient.GetTable(); if (table == null) return; foreach (DataRow dataRow in table.Rows) { uint num = uint.Parse(dataRow["id"].ToString()); dbClient.SetQuery($"SELECT * FROM polls_questions WHERE poll_id = {num}"); DataTable table2 = dbClient.GetTable(); List<PollQuestion> list = (from DataRow dataRow2 in table2.Rows select new PollQuestion(uint.Parse(dataRow2["id"].ToString()), (string) dataRow2["question"], int.Parse(dataRow2["answertype"].ToString()), dataRow2["answers"].ToString().Split('|'), (string) dataRow2["correct_answer"])).ToList(); Poll value = new Poll(num, uint.Parse(dataRow["room_id"].ToString()), (string) dataRow["caption"], (string) dataRow["invitation"], (string) dataRow["greetings"], (string) dataRow["prize"], int.Parse(dataRow["type"].ToString()), list); Polls.Add(num, value); } }
/// <summary> /// Tries the get poll. /// </summary> /// <param name="roomId">The room identifier.</param> /// <param name="poll">The poll.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> internal bool TryGetPoll(uint roomId, out Poll poll) { foreach (Poll current in Polls.Values.Where(current => current.RoomId == roomId)) { poll = current; return true; } poll = null; return false; }
internal static void MatchingPollAnswer(GameClient client, Poll poll) { if (poll == null || poll.Type != PollType.Matching) return; ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("MatchingPollMessageComposer")); message.AppendString("MATCHING_POLL"); message.AppendInteger(poll.Id); message.AppendInteger(poll.Id); message.AppendInteger(15580); message.AppendInteger(poll.Id); message.AppendInteger(29); message.AppendInteger(5); message.AppendString(poll.PollName); client.GetHabbo().CurrentRoom.SendMessage(message); }