mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-23 10:44:36 +01:00
Handle GetFriendRecommendListInfoCsReq
This commit is contained in:
@@ -114,6 +114,24 @@ public class GameServer extends KcpServer {
|
||||
}
|
||||
}
|
||||
|
||||
public List<Player> getRandomOnlinePlayers(int amount, Player filter) {
|
||||
List<Player> list = new ArrayList<>();
|
||||
|
||||
synchronized (this.players) {
|
||||
var iterator = this.players.values().iterator();
|
||||
|
||||
while (iterator.hasNext() && list.size() < amount) {
|
||||
Player player = iterator.next();
|
||||
|
||||
if (player != filter) {
|
||||
list.add(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public boolean deletePlayer(String accountUid) {
|
||||
// Check if player exists
|
||||
Player player = this.getOnlinePlayerByAccountId(accountUid);
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package emu.lunarcore.server.packet.recv;
|
||||
|
||||
import emu.lunarcore.server.game.GameSession;
|
||||
import emu.lunarcore.server.packet.CmdId;
|
||||
import emu.lunarcore.server.packet.Opcodes;
|
||||
import emu.lunarcore.server.packet.PacketHandler;
|
||||
import emu.lunarcore.server.packet.send.PacketGetFriendRecommendListInfoScRsp;
|
||||
|
||||
@Opcodes(CmdId.GetFriendRecommendListInfoCsReq)
|
||||
public class HandlerGetFriendRecommendListInfoCsReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] data) throws Exception {
|
||||
var list = session.getServer().getRandomOnlinePlayers(10, session.getPlayer());
|
||||
session.send(new PacketGetFriendRecommendListInfoScRsp(list));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,8 +18,10 @@ public class HandlerSearchPlayerCsReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] data) throws Exception {
|
||||
var req = SearchPlayerCsReq.parseFrom(data);
|
||||
|
||||
// Setup result list
|
||||
List<Player> results = new ArrayList<>();
|
||||
|
||||
// Get searched player
|
||||
for (int uid : req.getSearchUidList()) {
|
||||
Player target = session.getServer().getPlayerByUid(uid, true);
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package emu.lunarcore.server.packet.send;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import emu.lunarcore.game.player.Player;
|
||||
import emu.lunarcore.proto.FriendRecommendInfoOuterClass.FriendRecommendInfo;
|
||||
import emu.lunarcore.proto.GetFriendRecommendListInfoScRspOuterClass.GetFriendRecommendListInfoScRsp;
|
||||
import emu.lunarcore.server.packet.BasePacket;
|
||||
import emu.lunarcore.server.packet.CmdId;
|
||||
|
||||
public class PacketGetFriendRecommendListInfoScRsp extends BasePacket {
|
||||
|
||||
public PacketGetFriendRecommendListInfoScRsp(Collection<Player> list) {
|
||||
super(CmdId.GetFriendRecommendListInfoScRsp);
|
||||
|
||||
var data = GetFriendRecommendListInfoScRsp.newInstance();
|
||||
|
||||
for (Player player : list) {
|
||||
var info = FriendRecommendInfo.newInstance()
|
||||
.setSimpleInfo(player.toSimpleInfo());
|
||||
|
||||
data.addFriendRecommendList(info);
|
||||
}
|
||||
|
||||
this.setData(data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user