Arcturus-Community/src/main/java/com/eu/habbo/messages/outgoing/rooms/RoomBannedUsersComposer.java

55 lines
1.6 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.messages.outgoing.rooms;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.rooms.Room;
import com.eu.habbo.habbohotel.rooms.RoomBan;
import com.eu.habbo.messages.ServerMessage;
import com.eu.habbo.messages.outgoing.MessageComposer;
import com.eu.habbo.messages.outgoing.Outgoing;
import gnu.trove.iterator.TIntObjectIterator;
import gnu.trove.set.hash.THashSet;
import java.util.NoSuchElementException;
2019-05-26 20:14:53 +02:00
public class RoomBannedUsersComposer extends MessageComposer {
2018-07-06 15:30:00 +02:00
private final Room room;
2019-05-26 20:14:53 +02:00
public RoomBannedUsersComposer(Room room) {
2018-07-06 15:30:00 +02:00
this.room = room;
}
@Override
2019-05-26 20:14:53 +02:00
public ServerMessage compose() {
2018-07-06 15:30:00 +02:00
int timeStamp = Emulator.getIntUnixTimestamp();
2018-09-28 21:25:00 +02:00
THashSet<RoomBan> roomBans = new THashSet<>();
2018-07-06 15:30:00 +02:00
TIntObjectIterator<RoomBan> iterator = this.room.getBannedHabbos().iterator();
2019-05-26 20:14:53 +02:00
for (int i = this.room.getBannedHabbos().size(); i-- > 0; ) {
try {
2018-07-06 15:30:00 +02:00
iterator.advance();
2019-05-26 20:14:53 +02:00
if (iterator.value().endTimestamp > timeStamp)
2018-07-06 15:30:00 +02:00
roomBans.add(iterator.value());
2019-05-26 20:14:53 +02:00
} catch (NoSuchElementException e) {
2018-07-06 15:30:00 +02:00
break;
}
}
2019-05-26 20:14:53 +02:00
if (roomBans.isEmpty())
2018-07-06 15:30:00 +02:00
return null;
this.response.init(Outgoing.RoomBannedUsersComposer);
this.response.appendInt(this.room.getId());
this.response.appendInt(roomBans.size());
2019-05-26 20:14:53 +02:00
for (RoomBan ban : roomBans) {
2018-07-06 15:30:00 +02:00
this.response.appendInt(ban.userId);
this.response.appendString(ban.username);
}
return this.response;
}
}