
cn.nukkit.network.process.processor.PacketViolationWarningProcessor Maven / Gradle / Ivy
package cn.nukkit.network.process.processor;
import cn.nukkit.PlayerHandle;
import cn.nukkit.network.process.DataPacketProcessor;
import cn.nukkit.network.protocol.PacketViolationWarningPacket;
import cn.nukkit.network.protocol.ProtocolInfo;
import lombok.extern.log4j.Log4j2;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Optional;
@Log4j2
public class PacketViolationWarningProcessor extends DataPacketProcessor {
@Override
public void handle(@NotNull PlayerHandle playerHandle, @NotNull PacketViolationWarningPacket pk) {
Optional packetName = Arrays.stream(ProtocolInfo.class.getDeclaredFields())
.filter(field -> field.getType() == Byte.TYPE)
.filter(field -> {
try {
return field.getByte(null) == pk.packetId;
} catch (IllegalAccessException e) {
return false;
}
}).map(Field::getName).findFirst();
log.warn("Violation warning from {}{}", playerHandle.player.getName(), packetName.map(name -> " for packet " + name).orElse("") + ": " + pk);
}
@Override
public int getPacketId() {
return ProtocolInfo.toNewProtocolID(ProtocolInfo.PACKET_VIOLATION_WARNING_PACKET);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy