/* * IDK Game Server by Steve Winfield * https://github.com/WinfieldSteve */ package org.stevewinfield.suja.idk.game.friendstream; import org.apache.log4j.Logger; import org.stevewinfield.suja.idk.Bootloader; import org.stevewinfield.suja.idk.IDK; import org.stevewinfield.suja.idk.communication.ISerialize; import org.stevewinfield.suja.idk.communication.MessageWriter; import org.stevewinfield.suja.idk.game.players.PlayerInformation; import java.sql.ResultSet; import java.sql.SQLException; public class FriendStreamEventData implements ISerialize { public int getPostedTimeSpan() { final long diff[] = new long[]{0, 0, 0, 0, 0}; long diffInSeconds = (Bootloader.getTimestamp() - 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; return (int) diff[2]; } public int getEventType() { return this.eventType; } public String[] getEventData() { return this.eventData; } public int getId() { return this.id; } public FriendStreamEventData() { this.eventData = new String[0]; } public FriendStreamEventData(final int id, final int playerId, final String name, final int gender, final String avatar, final int eventType, final long timestamp, final int linkType, final String[] eventData) { this.id = id; this.playerId = playerId; this.playerName = name; this.playerGender = gender; this.playerAvatar = avatar; this.eventType = eventType; this.timestamp = timestamp; this.linkType = linkType; this.eventData = eventData; this.image = String.format(IDK.FRIENDSTREAM_AVATAR_URL, avatar); } public void set(final ResultSet row) throws SQLException { this.id = row.getInt("id"); this.playerId = row.getInt("player_id"); this.playerName = row.getString("player_name"); this.playerGender = row.getString("player_gender").toLowerCase().equals("f") ? PlayerInformation.FEMALE_GENDER : PlayerInformation.MALE_GENDER; this.playerAvatar = row.getString("player_avatar"); this.eventType = row.getInt("event_type"); this.timestamp = row.getInt("timestamp"); this.linkType = row.getInt("link_type"); this.likes = row.getInt("event_likes"); this.eventData = row.getString("event_data").split((char) 13 + ""); this.image = String.format(IDK.FRIENDSTREAM_AVATAR_URL, this.playerAvatar); } @Override public void serialize(final MessageWriter writer) { writer.push(id); writer.push(eventType); writer.push(""); writer.push(playerName); writer.push(playerGender == PlayerInformation.MALE_GENDER ? "m" : "f"); // gender writer.push(image); writer.push(this.getPostedTimeSpan()); writer.push(linkType); writer.push(likes); writer.push(false); for (final String data : this.eventData) { writer.push(data); } } // fields private int id; private int eventType; private int playerId; private int playerGender; private String playerAvatar; private String playerName; private String image; private long timestamp; private int linkType; private int likes; private String[] eventData; }