public ServerMessage SerializeTicketChatlog(SupportTicket Ticket, RoomData RoomData, double Timestamp) { using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient()) { DataTable dataTable = adapter.ReadDataTable("SELECT user_id,user_name,hour,minute,message FROM chatlogs WHERE room_id = '" + RoomData.Id + "' AND timestamp >= '" + (Timestamp - 300.0) + "' AND timestamp < UNIX_TIMESTAMP() ORDER BY timestamp DESC LIMIT 100"); ServerMessage Message = new ServerMessage(534); Message.AppendUInt(Ticket.TicketId); Message.AppendUInt(Ticket.SenderId); Message.AppendUInt(Ticket.ReportedId); Message.AppendBoolean(RoomData.IsPublicRoom); Message.AppendUInt(RoomData.Id); Message.AppendStringWithBreak(RoomData.Name); if (dataTable != null) { Message.AppendInt32(dataTable.Rows.Count); IEnumerator enumerator = dataTable.Rows.GetEnumerator(); try { while (enumerator.MoveNext()) { DataRow dataRow = (DataRow)enumerator.Current; Message.AppendInt32((int)dataRow["hour"]); Message.AppendInt32((int)dataRow["minute"]); Message.AppendUInt((uint)dataRow["user_id"]); Message.AppendStringWithBreak((string)dataRow["user_name"]); Message.AppendStringWithBreak((string)dataRow["message"]); } } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } } Message.AppendInt32(0); return Message; } }
public void SendNewTicket(GameClient Session, int Type, uint ReportedUser, string Message) { if (Session.GetHabbo().CurrentRoomId > 0) { RoomData Data = PhoenixEnvironment.GetGame().GetRoomManager().GenerateNullableRoomData(Session.GetHabbo().CurrentRoomId); uint TicketId = 0; using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient()) { adapter.AddParamWithValue("message", Message); adapter.AddParamWithValue("name", Data.Name); adapter.ExecuteQuery("INSERT INTO moderation_tickets (score,type,status,sender_id,reported_id,moderator_id,message,room_id,room_name,timestamp) VALUES (1,'" + Type + "','open','" + Session.GetHabbo().Id + "','" + ReportedUser + "','0',@message,'" + Data.Id + "',@name,UNIX_TIMESTAMP())"); adapter.ExecuteQuery("UPDATE user_info SET cfhs = cfhs + 1 WHERE user_id = '" + Session.GetHabbo().Id + "' LIMIT 1"); TicketId = (uint)adapter.ReadDataRow("SELECT Id FROM moderation_tickets WHERE sender_id = '" + Session.GetHabbo().Id + "' ORDER BY Id DESC LIMIT 1")[0]; } SupportTicket Ticket = new SupportTicket(TicketId, 1, Type, Session.GetHabbo().Id, ReportedUser, Message, Data.Id, Data.Name, PhoenixEnvironment.GetUnixTimestamp(), 0u); this.Tickets.Add(Ticket); this.SendTicketToModerators(Ticket); } }
public void SendTicketToModerators(SupportTicket Ticket) { PhoenixEnvironment.GetGame().GetClientManager().BroadcastMessage(Ticket.Serialize(), "acc_supporttool"); }
public void LoadPendingTickets(DatabaseClient class6_0) { Logging.Write("Loading Current Help Tickets.."); DataTable dataTable = class6_0.ReadDataTable("SELECT Id,score,type,status,sender_id,reported_id,moderator_id,message,room_id,room_name,timestamp FROM moderation_tickets WHERE status = 'open' OR status = 'picked'"); if (dataTable != null) { foreach (DataRow dataRow in dataTable.Rows) { SupportTicket @class = new SupportTicket((uint)dataRow["Id"], (int)dataRow["score"], (int)dataRow["type"], (uint)dataRow["sender_id"], (uint)dataRow["reported_id"], (string)dataRow["message"], (uint)dataRow["room_id"], (string)dataRow["room_name"], (double)dataRow["timestamp"], (uint)dataRow["moderator_id"]); if (dataRow["status"].ToString().ToLower() == "picked") { @class.Pick((uint)dataRow["moderator_id"], false); } this.Tickets.Add(@class); } Logging.WriteLine("completed!"); } }