From 0d55fe7ac0c8904fa6bf7c52b886f8a8531606b3 Mon Sep 17 00:00:00 2001 From: Beny Date: Sun, 19 May 2019 22:11:42 +0100 Subject: [PATCH] Limit of 100 shown on mod tools to avoid crashing --- .../outgoing/modtool/ModToolComposer.java | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/eu/habbo/messages/outgoing/modtool/ModToolComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/modtool/ModToolComposer.java index cce3043f..6c654c28 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/modtool/ModToolComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/modtool/ModToolComposer.java @@ -3,11 +3,16 @@ package com.eu.habbo.messages.outgoing.modtool; import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.modtool.ModToolCategory; import com.eu.habbo.habbohotel.modtool.ModToolIssue; +import com.eu.habbo.habbohotel.modtool.ModToolTicketState; import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.messages.ServerMessage; import com.eu.habbo.messages.outgoing.MessageComposer; import com.eu.habbo.messages.outgoing.Outgoing; +import gnu.trove.map.hash.THashMap; import gnu.trove.procedure.TObjectProcedure; +import gnu.trove.set.hash.THashSet; + +import java.util.Iterator; public class ModToolComposer extends MessageComposer implements TObjectProcedure { @@ -25,11 +30,28 @@ public class ModToolComposer extends MessageComposer implements TObjectProcedure if(this.habbo.hasPermission("acc_modtool_ticket_q")) { - this.response.appendInt(Emulator.getGameEnvironment().getModToolManager().getTickets().size()); //tickets + THashSet openTickets = new THashSet<>(); - for (ModToolIssue issue : Emulator.getGameEnvironment().getModToolManager().getTickets().values()) + THashMap tickets = Emulator.getGameEnvironment().getModToolManager().getTickets(); + + for(ModToolIssue t : tickets.values()) { + if(t.state != ModToolTicketState.CLOSED) + openTickets.add(t); + } + + int ticketsCount = openTickets.size(); + + if(ticketsCount > 100) { + ticketsCount = 100; + } + + this.response.appendInt(ticketsCount); //tickets + + Iterator it = openTickets.iterator(); + + for(int i = 0; i < ticketsCount; i++) { - issue.serialize(this.response); + it.next().serialize(this.response); } } else