public void Handle(Session session, ClientPacket message) { if (!session.Player.HasPermission("acc_modtool_ticket_queue")) { return; } int count = message.PopInt(); for (int i = 0; i < count; i++) { int ticketId = message.PopInt(); if (ticketId <= 0) { continue; } ModerationTicket ticket = Alias.Server.ModerationManager.GetTicket(ticketId); if (ticket == null || ticket.State != ModerationTicketState.OPEN) { continue; } Alias.Server.ModerationManager.PickTicket(ticket, session.Player); } }
public static ServerMessage Compose(ModerationTicket Ticket, RoomInfo Info, ReadOnlyCollection <ModerationChatlogEntry> Entries) { ServerMessage Message = new ServerMessage(OpcodesOut.MODERATION_CHATLOGS_TICKET); Message.AppendUInt32(Ticket.Id); Message.AppendUInt32(Ticket.ReporteeUserId); Message.AppendUInt32(Ticket.ReportedUserId); Message.AppendUInt32(Ticket.Id); // Number to display in title. Chatlog ID? Message.AppendBoolean(Info != null ? Info.Type == RoomType.Public : false); Message.AppendUInt32(Info != null ? Info.Id : 0); Message.AppendStringWithBreak(Info != null ? Info.Name : "(Unknown room)"); Message.AppendInt32(Entries.Count); foreach (ModerationChatlogEntry Entry in Entries) { DateTime Time = UnixTimestamp.GetDateTimeFromUnixTimestamp(Entry.Timestamp); Message.AppendInt32(Time.Hour); Message.AppendInt32(Time.Minute); Message.AppendUInt32(Entry.UserId); Message.AppendStringWithBreak(Entry.UserName); Message.AppendStringWithBreak(Entry.Message); } return(Message); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_tickets")) { return; } int TicketId = Packet.PopInt(); ModerationTicket Ticket = null; if (!RavenEnvironment.GetGame().GetModerationManager().TryGetTicket(TicketId, out Ticket) || Ticket.Room == null) { return; } RoomData Data = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(Ticket.Room.Id); if (Data == null) { return; } Session.SendMessage(new ModeratorTicketChatlogComposer(Ticket, Data, Ticket.Timestamp)); }
public ModeratorSupportTicketComposer(int Id, ModerationTicket Ticket) : base(ServerPacketHeader.ModeratorSupportTicketMessageComposer) { WriteInteger(Ticket.Id); // Id WriteInteger(Ticket.GetStatus(Id)); // Tab ID WriteInteger(Ticket.Type); // Type WriteInteger(Ticket.Category); // Category WriteInteger(Convert.ToInt32((DateTime.Now - UnixTimestamp.FromUnixTimestamp(Ticket.Timestamp)).TotalMilliseconds)); // This should fix the overflow? WriteInteger(Ticket.Priority); // Priority WriteInteger(0); //?? WriteInteger(Ticket.Sender == null ? 0 : Ticket.Sender.Id); // Sender ID //base.WriteInteger(1); WriteString(Ticket.Sender == null ? string.Empty : Ticket.Sender.Username); // Sender Name WriteInteger(Ticket.Reported == null ? 0 : Ticket.Reported.Id); // Reported ID WriteString(Ticket.Reported == null ? string.Empty : Ticket.Reported.Username); // Reported Name WriteInteger(Ticket.Moderator == null ? 0 : Ticket.Moderator.Id); // Moderator ID WriteString(Ticket.Moderator == null ? string.Empty : Ticket.Moderator.Username); // Mod Name WriteString(Ticket.Issue); // Issue WriteInteger(Ticket.Room == null ? 0 : Ticket.Room.Id); // Room Id WriteInteger(0); { // push String // push Integer // push Integer } }
public async void Handle(Session session, ClientPacket message) { if (!session.Player.HasPermission("acc_modtool_ticket_queue")) { return; } int state = message.PopInt(); int count = message.PopInt(); for (int i = 0; i < count; i++) { int ticketId = message.PopInt(); if (ticketId <= 0) { continue; } ModerationTicket issue = Alias.Server.ModerationManager.GetTicket(ticketId); if (issue == null || issue.ModId != session.Player.Id) { continue; } Player habbo = await Alias.Server.PlayerManager.ReadPlayerByIdAsync(issue.SenderId); Alias.Server.ModerationManager.ResolveTicket(issue, habbo, state); } }
public static ServerMessage Compose(ModerationTicket Ticket) { string DisplayRoomName = string.Empty; if (Ticket.RoomId > 0) { RoomInfo Info = RoomInfoLoader.GetRoomInfo(Ticket.RoomId); DisplayRoomName = Info == null ? "(Unknown room " + Ticket.RoomId + ")" : Info.Name; } ServerMessage Message = new ServerMessage(OpcodesOut.MODERATION_TICKET); Message.AppendUInt32(Ticket.Id); Message.AppendUInt32(Ticket.TabId); Message.AppendUInt32(11); // ?? unknown Message.AppendUInt32(Ticket.CategoryId); Message.AppendUInt32(11); // ?? unknown Message.AppendUInt32(Ticket.Score); Message.AppendUInt32(Ticket.ReporteeUserId); Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Ticket.ReporteeUserId)); Message.AppendUInt32(Ticket.ReportedUserId); Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Ticket.ReportedUserId)); Message.AppendUInt32(Ticket.ModeratorUserId); Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Ticket.ModeratorUserId)); Message.AppendStringWithBreak(Ticket.Message); Message.AppendUInt32(Ticket.RoomId); Message.AppendStringWithBreak(DisplayRoomName); return(Message); }
public ModeratorTicketChatlogComposer(ModerationTicket Ticket, RoomData RoomData, double Timestamp) : base(ServerPacketHeader.ModeratorTicketChatlogMessageComposer) { WriteInteger(Ticket.Id); WriteInteger(Ticket.Sender != null ? Ticket.Sender.Id : 0); WriteInteger(Ticket.Reported != null ? Ticket.Reported.Id : 0); WriteInteger(RoomData.Id); WriteByte(1); WriteShort(2); //Count WriteString("roomName"); WriteByte(2); WriteString(RoomData.Name); WriteString("roomId"); WriteByte(1); WriteInteger(RoomData.Id); WriteShort(Ticket.ReportedChats.Count); foreach (string Chat in Ticket.ReportedChats) { WriteString(UnixTimestamp.FromUnixTimestamp(Timestamp).ToShortTimeString()); WriteInteger(Ticket.Id); WriteString(Ticket.Reported != null ? Ticket.Reported.Username : "******"); WriteString(Chat); WriteBoolean(false); } }
public void Parse(HabboHotel.GameClients.GameClient session, ClientPacket packet) { if (session == null || session.GetHabbo() == null || !session.GetHabbo().GetPermissions().HasRight("mod_tickets")) { return; } int ticketId = packet.PopInt(); ModerationTicket ticket = null; if (!PlusEnvironment.GetGame().GetModerationManager().TryGetTicket(ticketId, out ticket) || ticket.Room == null) { return; } RoomData data = null; if (!RoomFactory.TryGetData(ticket.Room.Id, out data)) { return; } session.SendPacket(new ModeratorTicketChatlogComposer(ticket, data, ticket.Timestamp)); }
public ModeratorTicketChatlogComposer(ModerationTicket ticket, RoomData roomData, double timestamp) : base(ServerPacketHeader.ModeratorTicketChatlogMessageComposer) { base.WriteInteger(ticket.Id); base.WriteInteger(ticket.Sender != null ? ticket.Sender.Id : 0); base.WriteInteger(ticket.Reported != null ? ticket.Reported.Id : 0); base.WriteInteger(roomData.Id); base.WriteByte(1); base.WriteShort(2);//Count base.WriteString("roomName"); base.WriteByte(2); base.WriteString(roomData.Name); base.WriteString("roomId"); base.WriteByte(1); base.WriteInteger(roomData.Id); base.WriteShort(ticket.ReportedChats.Count); foreach (string Chat in ticket.ReportedChats) { base.WriteString(UnixTimestamp.FromUnixTimestamp(timestamp).ToShortTimeString()); base.WriteInteger(ticket.Id); base.WriteString(ticket.Reported != null ? ticket.Reported.Username : "******"); base.WriteString(Chat); base.WriteBoolean(false); } }
public ModeratorTicketChatlogComposer(ModerationTicket ticket, RoomData roomData, double timestamp) : base(ServerPacketHeader.ModeratorTicketChatlogMessageComposer) { this.ModerationTicket = ticket; this.RoomData = roomData; this.Timestamp = timestamp; }
public void Handle(Session session, ClientPacket message) { if (!session.Player.HasPermission("acc_modtool_ticket_queue")) { return; } int count = message.PopInt(); for (int i = 0; i < count; i++) { int ticketId = message.PopInt(); if (ticketId <= 0) { continue; } ModerationTicket issue = Alias.Server.ModerationManager.GetTicket(ticketId); if (issue == null || issue.ModId != session.Player.Id) { continue; } Alias.Server.ModerationManager.ReleaseTicket(issue); } }
public CallForHelpPendingCallsComposer(ModerationTicket ticket) : base(ServerPacketHeader.CallForHelpPendingCallsMessageComposer) { WriteInteger(1);// Count for whatever reason? { WriteString(ticket.Id.ToString()); WriteString(UnixUtilities.FromUnixTimestamp(ticket.Timestamp).ToShortTimeString());// "11-02-2017 04:07:05"; WriteString(ticket.Issue); } }
public CallForHelpPendingCallsComposer(ModerationTicket ticket) : base(ServerPacketHeader.CallForHelpPendingCallsMessageComposer) { base.WriteInteger(1);// Count for whatever reason? { base.WriteString(ticket.Id.ToString()); base.WriteString(UnixTimestamp.FromUnixTimestamp(ticket.Timestamp).ToShortTimeString()); base.WriteString(ticket.Issue); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } if (NeonEnvironment.GetGame().GetModerationManager().UserHasTickets(Session.GetHabbo().Id)) { ModerationTicket PendingTicket = NeonEnvironment.GetGame().GetModerationManager().GetTicketBySenderId(Session.GetHabbo().Id); if (PendingTicket != null) { Session.SendMessage(new CallForHelpPendingCallsComposer(PendingTicket)); return; } } List <string> Chats = new List <string>(); string Message = StringCharFilter.Escape(Packet.PopString().Trim()); int Category = Packet.PopInt(); int ReportedUserId = Packet.PopInt(); int Type = Packet.PopInt(); Habbo ReportedUser = NeonEnvironment.GetHabboById(ReportedUserId); if (ReportedUser == null) { return; } int Messagecount = Packet.PopInt(); for (int i = 0; i < Messagecount; i++) { Packet.PopInt(); Chats.Add(Packet.PopString()); } ModerationTicket Ticket = new ModerationTicket(1, Type, Category, UnixTimestamp.GetNow(), 1, Session.GetHabbo(), ReportedUser, Message, Session.GetHabbo().CurrentRoom, Chats); if (!NeonEnvironment.GetGame().GetModerationManager().TryAddTicket(Ticket)) { return; } using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `cfhs` = `cfhs` + '1' WHERE `user_id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } NeonEnvironment.GetGame().GetClientManager().ModAlert("A new support ticket has been submitted!"); NeonEnvironment.GetGame().GetClientManager().SendMessage(new ModeratorSupportTicketComposer(Session.GetHabbo().Id, Ticket), "mod_tool"); }
public void Parse(GameClient session, ClientPacket packet) { if (session == null || session.GetHabbo() == null) { return; } if (PlusEnvironment.GetGame().GetModerationManager().UserHasTickets(session.GetHabbo().Id)) { ModerationTicket PendingTicket = PlusEnvironment.GetGame().GetModerationManager().GetTicketBySenderId(session.GetHabbo().Id); if (PendingTicket != null) { PendingTicket.Answered = true; PlusEnvironment.GetGame().GetClientManager().SendPacket(new ModeratorSupportTicketComposer(session.GetHabbo().Id, PendingTicket), "mod_tool"); } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } int Junk = Packet.PopInt();//?? int TicketId = Packet.PopInt(); ModerationTicket Ticket = null; if (!CloudServer.GetGame().GetModerationManager().TryGetTicket(TicketId, out Ticket)) { return; } Ticket.Moderator = Session.GetHabbo(); CloudServer.GetGame().GetClientManager().SendMessage(new ModeratorSupportTicketComposer(Session.GetHabbo().Id, Ticket), "mod_tool"); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } int Result = Packet.PopInt(); // 1 = useless, 2 = abusive, 3 = resolved int Junk = Packet.PopInt(); int TicketId = Packet.PopInt(); ModerationTicket Ticket = null; if (!RavenEnvironment.GetGame().GetModerationManager().TryGetTicket(TicketId, out Ticket)) { return; } if (Ticket.Moderator.Id != Session.GetHabbo().Id) { return; } GameClient Client = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(Ticket.Sender.Id); if (Client != null) { Client.SendMessage(new ModeratorSupportTicketResponseComposer(Result)); } if (Result == 2) { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `cfhs_abusive` = `cfhs_abusive` + 1 WHERE `user_id` = '" + Ticket.Sender.Id + "' LIMIT 1"); } } Ticket.Answered = true; RavenEnvironment.GetGame().GetClientManager().SendMessage(new ModeratorSupportTicketComposer(Session.GetHabbo().Id, Ticket), "mod_tool"); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } int Amount = Packet.PopInt(); for (int i = 0; i < Amount; i++) { ModerationTicket Ticket = null; if (!BiosEmuThiago.GetGame().GetModerationManager().TryGetTicket(Packet.PopInt(), out Ticket)) { continue; } Ticket.Moderator = null; BiosEmuThiago.GetGame().GetClientManager().SendMessage(new ModeratorSupportTicketComposer(Session.GetHabbo().Id, Ticket), "mod_tool"); } }
public void Handle(Session session, ClientPacket message) { if (!session.Player.HasPermission("acc_modtool_ticket_queue")) { return; } int ticketId = message.PopInt(); if (ticketId <= 0) { return; } ModerationTicket issue = Alias.Server.ModerationManager.GetTicket(ticketId); if (issue == null || issue.ModId != session.Player.Id) { return; } string roomName = ""; List <ModerationChatlog> chatlogs = new List <ModerationChatlog>(); if (issue.RoomId > 0) { if (Alias.Server.RoomManager.TryGetRoomData(issue.RoomId, out RoomData roomData)) { roomName = roomData.Name; } chatlogs = Alias.Server.ModerationManager.GetRoomChatlog(issue.RoomId); } else { chatlogs = Alias.Server.ModerationManager.GetUserChatlog(issue.SenderId, issue.ReportedId); } session.Send(new ModerationIssueChatlogComposer(issue, chatlogs, roomName)); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_tickets")) { return; } int ticketId = Packet.PopInt(); ModerationTicket ticket = null; if (!BiosEmuThiago.GetGame().GetModerationManager().TryGetTicket(ticketId, out ticket) || ticket.Room == null) { return; } if (ticket.Room == null) { return; } Session.SendMessage(new ModeratorTicketChatlogComposer(ticket, ticket.Room, ticket.Timestamp)); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } // Run a quick check to see if we have any existing tickets. if (CloudServer.GetGame().GetModerationManager().UserHasTickets(Session.GetHabbo().Id)) { ModerationTicket PendingTicket = CloudServer.GetGame().GetModerationManager().GetTicketBySenderId(Session.GetHabbo().Id); if (PendingTicket != null) { Session.SendMessage(new CallForHelpPendingCallsComposer(PendingTicket)); return; } } List <string> Chats = new List <string>(); string Message = StringCharFilter.Escape(Packet.PopString().Trim()); int Category = Packet.PopInt(); int ReportedUserId = Packet.PopInt(); int Type = Packet.PopInt();// Unsure on what this actually is. Habbo ReportedUser = CloudServer.GetHabboById(ReportedUserId); if (ReportedUser == null) { // User doesn't exist. return; } int Messagecount = Packet.PopInt(); for (int i = 0; i < Messagecount; i++) { Packet.PopInt(); Chats.Add(Packet.PopString()); } ModerationTicket Ticket = new ModerationTicket(1, Type, Category, UnixTimestamp.GetNow(), 1, Session.GetHabbo(), ReportedUser, Message, Session.GetHabbo().CurrentRoom, Chats); if (!CloudServer.GetGame().GetModerationManager().TryAddTicket(Ticket)) { return; } using (IQueryAdapter dbClient = CloudServer.GetDatabaseManager().GetQueryReactor()) { // TODO: Come back to this. /*dbClient.SetQuery("INSERT INTO `moderation_tickets` (`score`,`type`,`status`,`sender_id`,`reported_id`,`moderator_id`,`message`,`room_id`,`room_name`,`timestamp`) VALUES (1, '" + Category + "', 'open', '" + Session.GetHabbo().Id + "', '" + ReportedUserId + "', '0', @message, '0', '', '" + CloudServer.GetUnixTimestamp() + "')"); * dbClient.AddParameter("message", Message); * dbClient.RunQuery();*/ dbClient.runFastQuery("UPDATE `user_info` SET `cfhs` = `cfhs` + '1' WHERE `user_id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } CloudServer.GetGame().GetClientManager().ModAlert("Um novo ticket de suporte foi enviado!"); CloudServer.GetGame().GetClientManager().SendMessage(new ModeratorSupportTicketComposer(Session.GetHabbo().Id, Ticket), "mod_tool"); }
public CallForHelpPendingCallsComposer(ModerationTicket ticket) : base(ServerPacketHeader.CallForHelpPendingCallsMessageComposer) { this.Ticket = ticket; }
public ModeratorSupportTicketComposer(int TabId, ModerationTicket Ticket) : base(ServerPacketHeader.ModeratorSupportTicketMessageComposer) { this.TabId = TabId; this.Ticket = Ticket; }
public ModerationIssueInfoComposer(ModerationTicket issue) { this.issue = issue; }
public ModerationIssueChatlogComposer(ModerationTicket issue, List <ModerationChatlog> chatlog, string roomName) { this.issue = issue; this.chatlog = chatlog; this.roomName = roomName; }
public void Parse(GameClient session, ClientPacket packet) { if (session == null || session.GetHabbo() == null) { return; } // Run a quick check to see if we have any existing tickets. if (PlusEnvironment.GetGame().GetModerationManager().UserHasTickets(session.GetHabbo().Id)) { ModerationTicket pendingTicket = PlusEnvironment.GetGame().GetModerationManager().GetTicketBySenderId(session.GetHabbo().Id); if (pendingTicket != null) { session.SendPacket(new CallForHelpPendingCallsComposer(pendingTicket)); return; } } List <string> chats = new List <string>(); string message = StringCharFilter.Escape(packet.PopString().Trim()); int category = packet.PopInt(); int reportedUserId = packet.PopInt(); int type = packet.PopInt();// Unsure on what this actually is. Habbo reportedUser = PlusEnvironment.GetHabboById(reportedUserId); if (reportedUser == null) { // User doesn't exist. return; } int messagecount = packet.PopInt(); for (int i = 0; i < messagecount; i++) { packet.PopInt(); chats.Add(packet.PopString()); } ModerationTicket ticket = new ModerationTicket(1, type, category, UnixTimestamp.GetNow(), 1, session.GetHabbo(), reportedUser, message, session.GetHabbo().CurrentRoom, chats); if (!PlusEnvironment.GetGame().GetModerationManager().TryAddTicket(ticket)) { return; } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { // TODO: Come back to this. /*dbClient.SetQuery("INSERT INTO `moderation_tickets` (`score`,`type`,`status`,`sender_id`,`reported_id`,`moderator_id`,`message`,`room_id`,`room_name`,`timestamp`) VALUES (1, '" + Category + "', 'open', '" + Session.GetHabbo().Id + "', '" + ReportedUserId + "', '0', @message, '0', '', '" + PlusEnvironment.GetUnixTimestamp() + "')"); * dbClient.AddParameter("message", Message); * dbClient.RunQuery();*/ dbClient.RunQuery("UPDATE `user_info` SET `cfhs` = `cfhs` + '1' WHERE `user_id` = '" + session.GetHabbo().Id + "' LIMIT 1"); } PlusEnvironment.GetGame().GetClientManager().ModAlert("A new support ticket has been submitted!"); PlusEnvironment.GetGame().GetClientManager().SendPacket(new ModeratorSupportTicketComposer(session.GetHabbo().Id, ticket), "mod_tool"); }