Files
NGECore2/src/protocol/swg/ChatOnGetFriendsList.java
T
Waverunner 7e7c454490 Most work on friends list finished
Need to be done: notifying when the checkbox is selected for certain
users, deltas (crashes right now), removing friends
2013-08-16 17:41:04 -04:00

64 lines
1.6 KiB
Java

package protocol.swg;
import java.nio.ByteOrder;
import java.util.List;
import org.apache.mina.core.buffer.IoBuffer;
import engine.resources.config.Config;
import engine.resources.config.DefaultConfig;
import resources.objects.player.PlayerObject;
public class ChatOnGetFriendsList extends SWGMessage {
private List<String> friendList;
private PlayerObject player;
private long characterId;
private int listSize;
public ChatOnGetFriendsList(PlayerObject player) {
this.characterId = player.getObjectID();
this.friendList = player.getFriendList();
this.listSize = friendList.size();
this.player = player;
}
@Override
public void deserialize(IoBuffer data) {
// XXX Auto-generated method stub
}
@Override
public IoBuffer serialize() {
Config config = new Config();
config.setFilePath("nge.cfg");
if (!(config.loadConfigFile())) {
config = DefaultConfig.getConfig();
}
IoBuffer buffer = IoBuffer.allocate(200).order(ByteOrder.LITTLE_ENDIAN);
buffer.putShort((short) 3);
buffer.putInt(0xE97AB594);
buffer.putLong(characterId);
buffer.putInt(listSize); // friends list size
for (String friend : player.getFriendList()) {
buffer.put(getAsciiString("SWG"));
buffer.put(getAsciiString(config.getString("GALAXY_NAME")));
int friendIndex = friendList.indexOf(friend);
buffer.put(getAsciiString(friendList.get(friendIndex)));
}
int size = buffer.position();
buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size);
buffer.flip();
//System.out.println("ChatOnGetFriendsList: " + buffer.getHexDump());
return buffer;
}
}