2018-07-06 15:30:00 +02:00
|
|
|
package com.eu.habbo.messages.outgoing.rooms.items;
|
|
|
|
|
|
|
|
import com.eu.habbo.habbohotel.items.interactions.InteractionGift;
|
|
|
|
import com.eu.habbo.habbohotel.items.interactions.InteractionMusicDisc;
|
|
|
|
import com.eu.habbo.habbohotel.users.HabboItem;
|
|
|
|
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.map.TIntObjectMap;
|
|
|
|
import gnu.trove.set.hash.THashSet;
|
|
|
|
|
|
|
|
import java.util.NoSuchElementException;
|
|
|
|
|
|
|
|
public class RoomFloorItemsComposer extends MessageComposer
|
|
|
|
{
|
|
|
|
private final TIntObjectMap<String> furniOwnerNames;
|
2018-09-28 21:25:00 +02:00
|
|
|
private final THashSet<? extends HabboItem> items;
|
2018-07-06 15:30:00 +02:00
|
|
|
|
2018-09-28 21:25:00 +02:00
|
|
|
public RoomFloorItemsComposer(TIntObjectMap<String> furniOwnerNames, THashSet<? extends HabboItem> items)
|
2018-07-06 15:30:00 +02:00
|
|
|
{
|
|
|
|
this.furniOwnerNames = furniOwnerNames;
|
|
|
|
this.items = items;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ServerMessage compose()
|
|
|
|
{
|
|
|
|
this.response.init(Outgoing.RoomFloorItemsComposer);
|
|
|
|
|
2019-03-18 02:22:00 +01:00
|
|
|
TIntObjectIterator<String> iterator = this.furniOwnerNames.iterator();
|
2018-07-06 15:30:00 +02:00
|
|
|
|
2019-03-18 02:22:00 +01:00
|
|
|
this.response.appendInt(this.furniOwnerNames.size());
|
|
|
|
for(int i = this.furniOwnerNames.size(); i-- > 0;)
|
2018-07-06 15:30:00 +02:00
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
iterator.advance();
|
|
|
|
this.response.appendInt(iterator.key());
|
|
|
|
this.response.appendString(iterator.value());
|
|
|
|
}
|
|
|
|
catch (NoSuchElementException e)
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-03-18 02:22:00 +01:00
|
|
|
this.response.appendInt(this.items.size());
|
2018-07-06 15:30:00 +02:00
|
|
|
|
2019-03-18 02:22:00 +01:00
|
|
|
for(HabboItem item : this.items)
|
2018-07-06 15:30:00 +02:00
|
|
|
{
|
|
|
|
item.serializeFloorData(this.response);
|
|
|
|
this.response.appendInt(item instanceof InteractionGift ? ((((InteractionGift) item).getColorId() * 1000) + ((InteractionGift) item).getRibbonId()) : (item instanceof InteractionMusicDisc ? ((InteractionMusicDisc) item).getSongId() : 1));
|
|
|
|
item.serializeExtradata(this.response);
|
|
|
|
this.response.appendInt(-1);
|
2018-11-17 14:28:00 +01:00
|
|
|
this.response.appendInt(item.isUsable() ? 1 : 0);
|
2018-07-06 15:30:00 +02:00
|
|
|
this.response.appendInt(item.getUserId());
|
|
|
|
}
|
|
|
|
return this.response;
|
|
|
|
}
|
|
|
|
}
|