All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.nukkit.network.process.processor.PositionTrackingDBClientRequestProcessor Maven / Gradle / Ivy

package cn.nukkit.network.process.processor;

import cn.nukkit.Player;
import cn.nukkit.PlayerHandle;
import cn.nukkit.network.process.DataPacketProcessor;
import cn.nukkit.network.protocol.PositionTrackingDBClientRequestPacket;
import cn.nukkit.network.protocol.PositionTrackingDBServerBroadcastPacket;
import cn.nukkit.network.protocol.ProtocolInfo;
import cn.nukkit.positiontracking.PositionTracking;
import lombok.extern.log4j.Log4j2;
import org.jetbrains.annotations.NotNull;

import java.io.IOException;

@Log4j2
public class PositionTrackingDBClientRequestProcessor extends DataPacketProcessor {
    @Override
    public void handle(@NotNull PlayerHandle playerHandle, @NotNull PositionTrackingDBClientRequestPacket pk) {
        Player player = playerHandle.player;
        try {
            PositionTracking positionTracking = player.getServer().getPositionTrackingService().startTracking(player, pk.getTrackingId(), true);
            if (positionTracking != null) {
                return;
            }
        } catch (IOException e) {
            log.warn("Failed to track the trackingHandler {}", pk.getTrackingId(), e);
        }
        PositionTrackingDBServerBroadcastPacket notFound = new PositionTrackingDBServerBroadcastPacket();
        notFound.setAction(PositionTrackingDBServerBroadcastPacket.Action.NOT_FOUND);
        notFound.setTrackingId(pk.getTrackingId());
        player.dataPacket(notFound);
    }

    @Override
    public int getPacketId() {
        return ProtocolInfo.toNewProtocolID(ProtocolInfo.POS_TRACKING_CLIENT_REQUEST_PACKET);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy