I was implementing location updating on my 317 server but I cannot figure out why it is not working. Everytime I login it kicks me off and the client prints T1 errors which are different everytime. Can someone explain the problem to me so I can fix it? Thanks.
Code:
package net.teamrocket.rs2.model.entity.player; import net.teamrocket.rs2.model.World; import net.teamrocket.rs2.model.entity.Entity; import net.teamrocket.rs2.model.entity.EntityUpdater; import net.teamrocket.rs2.net.packet.Packet.PacketType; import net.teamrocket.rs2.net.packet.PacketBuilder; import net.teamrocket.rs2.net.packet.PacketBuilder.AccessType; /** * Handles the updating process for a player. * * @author Lieutenant Smith * */ public class PlayerUpdater extends EntityUpdater { /** * Creates a new player updater * * @param plr * the player we are creating it for. */ public PlayerUpdater(Player plr) { super(plr); } @Override public PlayerUpdater addNew(Entity target, PacketBuilder builder) { builder.writeBits(11, target.getIndex()); builder.writeBits(1, 1); builder.writeBits(1, 1); final int yDiff = target.getLocation().getY() - getPlayer().getLocation().getY(); final int xDiff = target.getLocation().getX() - getPlayer().getLocation().getX(); builder.writeBits(5, yDiff); builder.writeBits(5, xDiff); return this; } @Override public PlayerUpdater update() { getPlayer().getActionSender().sendMapRegion(); final PacketBuilder update = new PacketBuilder(); final PacketBuilder packet = new PacketBuilder(81, PacketType.SHORT); packet.initializeAccess(AccessType.BIT); for (final Player otherPlayer : World.getWorld().getPlayers()) addNew(otherPlayer, packet); if (update.toPacket().getBuffer().writerIndex() > 0) { packet.writeBits(11, 2047); packet.initializeAccess(AccessType.BYTE); packet.writeBuffer(update.toPacket().getBuffer()); } else packet.initializeAccess(AccessType.BYTE); getPlayer().write(packet.toPacket()); return this; } }