@Override
  public void compose(IComposer msg) {
    msg.writeInt(SoundMachineFloorItem.MAX_CAPACITY);
    msg.writeInt(songItemDatas.size());

    for (SongItemData songItemData : this.songItemDatas) {
      msg.writeInt(songItemData.getItemSnapshot().getBaseItemId());
      msg.writeInt(songItemData.getSongId());
    }
  }
  @Override
  public void compose(IComposer msg) {
    msg.writeInt(roomId);
    msg.writeInt(playersWithRights.size());

    for (Integer id : playersWithRights) {
      msg.writeInt(id);

      String username = PlayerDao.getUsernameByPlayerId(id);
      msg.writeString(username != null ? username : "******");
    }
  }
  @Override
  public void compose(IComposer msg) {
    int timeLeft = 0;
    int days = 0;
    int months = 0;

    if (subscriptionComponent.isValid()) {
      timeLeft = subscriptionComponent.getExpire() - (int) Comet.getTime();
      days = (int) Math.ceil(timeLeft / 86400);
      months = days / 31;

      if (months >= 1) {
        months--;
      }
    } else {
      if (subscriptionComponent.exists()) {
        subscriptionComponent.delete();
      }
    }

    msg.writeString("habbo_club");

    msg.writeInt(0);
    msg.writeInt(2);
    msg.writeInt(0);
    msg.writeInt(1);
    msg.writeBoolean(subscriptionComponent.isValid());
    msg.writeBoolean(true);
    msg.writeInt(0);
    msg.writeInt(0);
    msg.writeInt(495);
  }
 @Override
 public void compose(IComposer msg) {
   msg.writeInt(this.roomId);
   msg.writeString(this.roomName);
 }
 @Override
 public void compose(IComposer msg) {
   msg.writeString("helper");
   msg.writeInt(4);
   msg.writeInt(4);
 }
  @Override
  public void compose(IComposer msg) {
    msg.writeInt(errorCode);

    if (!extras.isEmpty()) msg.writeString(extras);
  }
 @Override
 public void compose(IComposer msg) {
   msg.writeInt(0);
 }
 @Override
 public void compose(IComposer msg) {
   msg.writeString(credits + ".0");
 }