Arcturus-Community/src/main/java/com/eu/habbo/messages/outgoing/modtool/ModToolComposer.java

97 lines
3.6 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
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;
2018-07-06 15:30:00 +02:00
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;
2018-07-06 15:30:00 +02:00
import gnu.trove.procedure.TObjectProcedure;
import gnu.trove.set.hash.THashSet;
import java.util.Iterator;
2018-07-06 15:30:00 +02:00
2019-05-26 20:14:53 +02:00
public class ModToolComposer extends MessageComposer implements TObjectProcedure<ModToolCategory> {
2018-07-06 15:30:00 +02:00
private final Habbo habbo;
2019-05-26 20:14:53 +02:00
public ModToolComposer(Habbo habbo) {
2018-07-06 15:30:00 +02:00
this.habbo = habbo;
}
@Override
2019-05-26 20:14:53 +02:00
public ServerMessage compose() {
2018-07-06 15:30:00 +02:00
this.response.init(Outgoing.ModToolComposer);
2019-05-26 20:14:53 +02:00
if (this.habbo.hasPermission("acc_modtool_ticket_q")) {
THashSet<ModToolIssue> openTickets = new THashSet<>();
THashMap<Integer, ModToolIssue> tickets = Emulator.getGameEnvironment().getModToolManager().getTickets();
2019-05-26 20:14:53 +02:00
for (ModToolIssue t : tickets.values()) {
if (t.state != ModToolTicketState.CLOSED)
openTickets.add(t);
}
int ticketsCount = openTickets.size();
2019-05-26 20:14:53 +02:00
if (ticketsCount > 100) {
ticketsCount = 100;
}
this.response.appendInt(ticketsCount); //tickets
Iterator<ModToolIssue> it = openTickets.iterator();
2018-07-06 15:30:00 +02:00
2019-05-26 20:14:53 +02:00
for (int i = 0; i < ticketsCount; i++) {
it.next().serialize(this.response);
2018-07-06 15:30:00 +02:00
}
2019-05-26 20:14:53 +02:00
} else {
2018-07-06 15:30:00 +02:00
this.response.appendInt(0);
}
2019-05-26 20:14:53 +02:00
synchronized (Emulator.getGameEnvironment().getModToolManager().getPresets()) {
2018-07-06 15:30:00 +02:00
this.response.appendInt(Emulator.getGameEnvironment().getModToolManager().getPresets().get("user").size());
2019-05-26 20:14:53 +02:00
for (String s : Emulator.getGameEnvironment().getModToolManager().getPresets().get("user")) {
2018-07-06 15:30:00 +02:00
this.response.appendString(s);
}
}
this.response.appendInt(Emulator.getGameEnvironment().getModToolManager().getCategory().size());
Emulator.getGameEnvironment().getModToolManager().getCategory().forEachValue(this);
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_ticket_q")); //ticketQueueueuhuehuehuehue
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_user_logs")); //user chatlogs
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_user_alert")); //can send caution
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_user_kick")); //can send kick
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_user_ban")); //can send ban
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_room_info")); //room info ??Not sure
this.response.appendBoolean(this.habbo.hasPermission("acc_modtool_room_logs")); //room chatlogs ??Not sure
2019-05-26 20:14:53 +02:00
synchronized (Emulator.getGameEnvironment().getModToolManager().getPresets()) {
2018-07-06 15:30:00 +02:00
this.response.appendInt(Emulator.getGameEnvironment().getModToolManager().getPresets().get("room").size());
2019-05-26 20:14:53 +02:00
for (String s : Emulator.getGameEnvironment().getModToolManager().getPresets().get("room")) {
2018-07-06 15:30:00 +02:00
this.response.appendString(s);
}
}
return this.response;
}
@Override
2019-05-26 20:14:53 +02:00
public boolean execute(ModToolCategory category) {
2018-07-06 15:30:00 +02:00
this.response.appendString(category.getName());
2018-09-28 21:25:00 +02:00
2018-07-06 15:30:00 +02:00
//
2018-09-28 21:25:00 +02:00
2018-07-06 15:30:00 +02:00
//
2018-09-28 21:25:00 +02:00
2018-07-06 15:30:00 +02:00
return true;
}
}