Arcturus-Community/src/main/java/com/eu/habbo/messages/outgoing/users/ProfileFriendsComposer.java

120 lines
4.0 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.messages.outgoing.users;
2019-03-18 02:22:00 +01:00
import com.eu.habbo.Emulator;
2018-07-06 15:30:00 +02:00
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
{
2018-09-28 21:25:00 +02:00
private final List<MessengerBuddy> lovers = new ArrayList<>();
private final List<MessengerBuddy> friends = new ArrayList<>();
private final List<MessengerBuddy> haters = new ArrayList<>();
2018-07-06 15:30:00 +02:00
private final int userId;
public ProfileFriendsComposer(THashMap<Integer, THashSet<MessengerBuddy>> map, int userId)
{
2019-03-18 02:22:00 +01:00
this.lovers.addAll(map.get(1));
this.friends.addAll(map.get(2));
this.haters.addAll(map.get(3));
2018-07-06 15:30:00 +02:00
this.userId = userId;
}
public ProfileFriendsComposer(Habbo habbo)
{
2019-03-18 02:22:00 +01:00
try
{
for (Map.Entry<Integer, MessengerBuddy> map : habbo.getMessenger().getFriends().entrySet())
{
2018-07-06 15:30:00 +02:00
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)
{
2019-03-18 02:22:00 +01:00
Emulator.getLogging().logErrorLine(e);
2018-07-06 15:30:00 +02:00
}
this.userId = habbo.getHabboInfo().getId();
}
@Override
public ServerMessage compose()
{
2019-03-18 02:22:00 +01:00
try
{
2018-07-06 15:30:00 +02:00
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());
}
2019-03-18 02:22:00 +01:00
if (!this.friends.isEmpty()) {
2018-07-06 15:30:00 +02:00
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)
{
2019-03-18 02:22:00 +01:00
Emulator.getLogging().logErrorLine(e);
2018-07-06 15:30:00 +02:00
}
return this.response;
}
}