Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Как работает замедление пакетов?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2026
Сообщения
117
Реакции
2
Вот если я начну замедлять пакеты(например отправлять их раз в 2 тика, а не раз в тик, то тогда сервер меня моментально кикнет. Как по нормальному работает их замедление?
 
вот что-то накидал самое простое должно работать

правда не уверен что keepalive и ping пакеты надо точно так же обрабатывать

idk:
Expand Collapse Copy
    private List<Packet<?>> queue = new ArrayList<>();
    private int ticks = 0; 

    public void onEventTick(EventTick event) {
        ticks++;

        if (ticks >= 5) {
            flush();
            ticks = 0;
        }
    }

    public void onEventPacket(EventPacket event) {
        if (event.isSend()) {
             queue.add(event.getPacket());
             event.cancel();
        }
    }

    private void flush() {
        if (queue.isEmpty()) return;

        if (mc.getNetworkHandler() != null) {
            for (Packet<?> packet : queue) {
                mc.getNetworkHandler().getConnection().send(packet);
            }
        }
        queue.clear();
    }
 
Последнее редактирование:
вот что-то накидал самое простое должно работать

idk:
Expand Collapse Copy
    private List<Packet<?>> queue = new ArrayList<>();
    private int ticks = 0;  

    public void onEventTick(EventTick event) {
        ticks++;

        if (ticks >= 5) {
            flush();
            ticks = 0;
        }
    }

    public void onEventPacket(EventPacket event) {
        Packet<?> packet = event.getPacket();
       
        queue.add(packet);
        event.cancel();
    }

    private void flush() {
        if (queue.isEmpty()) return;

        if (mc.getNetworkHandler() != null) {
            for (Packet<?> packet : queue) {
                mc.getNetworkHandler().getConnection().send(packet);
            }
        }
        queue.clear();
    }
понял, спасибо
 
Назад
Сверху Снизу