Arcturus-Community/src/main/java/com/eu/habbo/messages/outgoing/users/ProfileFriendsComposer.java
2019-05-26 21:15:26 +03:00

109 lines
3.9 KiB
Java

package com.eu.habbo.messages.outgoing.users;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.messenger.MessengerBuddy;
import com.eu.habbo.habbohotel.users.Habbo;
import com.eu.habbo.messages.ServerMessage;
import com.eu.habbo.messages.outgoing.MessageComposer;
import com.eu.habbo.messages.outgoing.Outgoing;
import gnu.trove.map.hash.THashMap;
import gnu.trove.set.hash.THashSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class ProfileFriendsComposer extends MessageComposer {
private final List<MessengerBuddy> lovers = new ArrayList<>();
private final List<MessengerBuddy> friends = new ArrayList<>();
private final List<MessengerBuddy> haters = new ArrayList<>();
private final int userId;
public ProfileFriendsComposer(THashMap<Integer, THashSet<MessengerBuddy>> map, int userId) {
this.lovers.addAll(map.get(1));
this.friends.addAll(map.get(2));
this.haters.addAll(map.get(3));
this.userId = userId;
}
public ProfileFriendsComposer(Habbo habbo) {
try {
for (Map.Entry<Integer, MessengerBuddy> map : habbo.getMessenger().getFriends().entrySet()) {
if (map.getValue().getRelation() == 0)
continue;
switch (map.getValue().getRelation()) {
case 1:
this.lovers.add(map.getValue());
break;
case 2:
this.friends.add(map.getValue());
break;
case 3:
this.haters.add(map.getValue());
break;
}
}
} catch (Exception e) {
Emulator.getLogging().logErrorLine(e);
}
this.userId = habbo.getHabboInfo().getId();
}
@Override
public ServerMessage compose() {
try {
this.response.init(Outgoing.ProfileFriendsComposer);
this.response.appendInt(this.userId);
int total = 0;
if (!this.lovers.isEmpty())
total++;
if (!this.friends.isEmpty())
total++;
if (!this.haters.isEmpty())
total++;
this.response.appendInt(total);
Random random = new Random();
if (!this.lovers.isEmpty()) {
int loversIndex = random.nextInt(this.lovers.size());
this.response.appendInt(1);
this.response.appendInt(this.lovers.size());
this.response.appendInt(this.lovers.get(loversIndex).getId());
this.response.appendString(this.lovers.get(loversIndex).getUsername());
this.response.appendString(this.lovers.get(loversIndex).getLook());
}
if (!this.friends.isEmpty()) {
int friendsIndex = random.nextInt(this.friends.size());
this.response.appendInt(2);
this.response.appendInt(this.friends.size());
this.response.appendInt(this.friends.get(friendsIndex).getId());
this.response.appendString(this.friends.get(friendsIndex).getUsername());
this.response.appendString(this.friends.get(friendsIndex).getLook());
}
if (!this.haters.isEmpty()) {
int hatersIndex = random.nextInt(this.haters.size());
this.response.appendInt(3);
this.response.appendInt(this.haters.size());
this.response.appendInt(this.haters.get(hatersIndex).getId());
this.response.appendString(this.haters.get(hatersIndex).getUsername());
this.response.appendString(this.haters.get(hatersIndex).getLook());
}
} catch (Exception e) {
Emulator.getLogging().logErrorLine(e);
}
return this.response;
}
}