/*
* IDK Game Server by Steve Winfield
* https://github.com/WinfieldSteve
*/
package org.stevewinfield.suja.idk.communication.player.writers;
import org.stevewinfield.suja.idk.Bootloader;
import org.stevewinfield.suja.idk.communication.MessageWriter;
import org.stevewinfield.suja.idk.communication.OperationCodes;
import org.stevewinfield.suja.idk.game.levels.ClubSubscription;
import org.stevewinfield.suja.idk.game.levels.ClubSubscriptionLevel;
public class SubscriptionStatusWriter extends MessageWriter {
public SubscriptionStatusWriter(final ClubSubscription subscriptionManager, final boolean boughtFromCata) {
super(OperationCodes.getOutgoingOpCode("SubscriptionStatus"));
final long timestamp = Bootloader.getTimestamp();
final long diff[] = new long[]{0, 0, 0, 0, 0};
if (subscriptionManager.getExpireTime() >= timestamp) {
long diffInSeconds = (subscriptionManager.getExpireTime() - timestamp);
diff[4] = (diffInSeconds >= 60 ? diffInSeconds % 60 : diffInSeconds);
diff[3] = (diffInSeconds = (diffInSeconds / 60)) >= 60 ? diffInSeconds % 60 : diffInSeconds;
diff[2] = (diffInSeconds = (diffInSeconds / 60)) >= 24 ? diffInSeconds % 24 : diffInSeconds;
diff[1] = (diffInSeconds = (diffInSeconds / 24));
diff[0] = (diffInSeconds = (diffInSeconds / 30)) >= 12 ? diffInSeconds % 12 : diffInSeconds;
diff[0] = (long) Math.floor(diff[0] / 31.0);
}
super.push("habbo_club");
super.push((int) (diff[1] - (31 * diff[0])));
super.push(subscriptionManager.isActive());
super.push((int) diff[0]);
super.push(boughtFromCata ? 2 : 1);
super.push(1);
super.push(subscriptionManager.isActive() && subscriptionManager.getBaseLevel() == ClubSubscriptionLevel.VIP);
super.push((int) (subscriptionManager.getPastClubTime() / 86400));
super.push((int) (subscriptionManager.getPastVipTime() / 86400));
super.push(0);
super.push(30);
super.push(25);
}
}