Beispiel #1
0
		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;
			}
		}
Beispiel #2
0
        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);
			}
		}
Beispiel #3
0
		public void SendTicketToModerators(SupportTicket Ticket)
		{
			PhoenixEnvironment.GetGame().GetClientManager().BroadcastMessage(Ticket.Serialize(), "acc_supporttool");
		}
Beispiel #4
0
        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!");
			}
		}