следующий вопрос если потеря пакетов как я могу это узнать?
package gameserver.network.aion.serverpackets;
import gameserver.model.PlayerClass;
import gameserver.model.gameobjects.LFGApplyGroup;
import gameserver.model.gameobjects.LFGRecruitGroup;
import gameserver.model.gameobjects.player.Player;
import gameserver.model.gameobjects.player.PlayerCommonData;
import gameserver.model.group.PlayerGroup;
import gameserver.network.aion.AionConnection;
import gameserver.network.aion.AionServerPacket;
import gameserver.services.LGFService;
import java.nio.ByteBuffer;
import java.util.Collection;
import java.util.Iterator;
public class SM_FIND_GROUP extends AionServerPacket
{
public SM_FIND_GROUP(int type, Player player)
{
this.type = type;
this.player = player;
}
protected void writeImpl(AionConnection con, ByteBuffer buf)
{
writeC(buf, type);
label0:
switch(type)
{
case 2: // '\002'
case 3: // '\003'
default:
break;
case 0: // '\0'
{
Collection playerRecruitGroups = LGFService.getInstance().geRecruitGroup(player.getCommonData().getRace());
writeH(buf, playerRecruitGroups.size());
writeH(buf, playerRecruitGroups.size());
writeD(buf, (int)System.currentTimeMillis());
Iterator i$ = playerRecruitGroups.iterator();
do
{
if(!i$.hasNext())
break;
LFGRecruitGroup playerRecruitGroup = (LFGRecruitGroup)i$.next();
Player pl = playerRecruitGroup.getPlayer();
writeD(buf, pl.getObjectId().intValue());
if(pl.isInGroup())
writeD(buf, pl.getPlayerGroup().getGroupId());
else
writeD(buf, 0);
writeC(buf, playerRecruitGroup.getGroupType());
writeS(buf, playerRecruitGroup.getApplyString());
writeS(buf, pl.getName());
writeC(buf, pl.getPlayerGroup().getMembers().size());
writeC(buf, pl.getLevel());
writeC(buf, playerRecruitGroup.getMaxLevel());
writeD(buf, (int)playerRecruitGroup.getCreationTime());
if(System.currentTimeMillis() - playerRecruitGroup.getCreationTime() > 0x36ee80L)
LGFService.getInstance().removeApplyGroup(pl.getObjectId().intValue());
} while(true);
break;
}
case 1: // '\001'
{
writeD(buf, player.getObjectId().intValue());
if(player.isInGroup())
{
writeD(buf, player.getPlayerGroup().getGroupId());
} else
{
writeD(buf, 0);
writeC(buf, 0);
writeH(buf, 1);
}
break;
}
case 4: // '\004'
{
Collection playerApplyGroups = LGFService.getInstance().geApplyGroup(player.getCommonData().getRace());
writeH(buf, playerApplyGroups.size());
writeH(buf, playerApplyGroups.size());
writeD(buf, (int)System.currentTimeMillis());
Iterator i$ = playerApplyGroups.iterator();
do
{
LFGApplyGroup playerApplyGroup;
Player pl;
do
{
if(!i$.hasNext())
break label0;
playerApplyGroup = (LFGApplyGroup)i$.next();
pl = playerApplyGroup.getPlayer();
writeD(buf, pl.getObjectId().intValue());
writeC(buf, playerApplyGroup.getGroupType());
writeS(buf, playerApplyGroup.getApplyString());
writeS(buf, pl.getName());
writeC(buf, pl.getPlayerClass().getClassId());
writeC(buf, pl.getLevel());
writeD(buf, (int)playerApplyGroup.getCreationTime());
} while(System.currentTimeMillis() - playerApplyGroup.getCreationTime() <= 0x36ee80L);
LGFService.getInstance().removeApplyGroup(pl.getObjectId().intValue());
} while(true);
}
case 5: // '\005'
{
writeD(buf, player.getObjectId().intValue());
writeH(buf, 722);
writeC(buf, 0);
break;