Ядро на 1.18.1

kusyaka

Пользователь
Сообщения
1
Добрый вечер!
Какое посоветуете ядро на сервер, с уклоном на ваниллу и на версии 1.18.1?
Пока сижу на Patina, ТПС толком и не падает. Хотел попробовать ещё Airplane, но на 1.18.1 его нет.
 
Добрый вечер!
Какое посоветуете ядро на сервер, с уклоном на ваниллу и на версии 1.18.1?
Пока сижу на Patina, ТПС толком и не падает. Хотел попробовать ещё Airplane, но на 1.18.1 его нет.
Pufferfish
 
Долгое время сижу на Pufferfish, с своей задачей справляется на ура.
 
Долгое время сижу на Pufferfish, с своей задачей справляется на ура.
не было такого что половину игроков кикает по причине timeout keepalive
Объединено

Долгое время сижу на Pufferfish, с своей задачей справляется на ура.
у меня и друга когда заходит больше 80 игроков на сервер так кикает
 
не было такого что половину игроков кикает по причине timeout keepalive
Это можно при желании отключить.
Код:
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketEvent;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Main extends JavaPlugin {

    public final String VERSION = Bukkit.getServer().getClass().getName().split("\\.")[3]; //версия пакетов

    @Override
    public void onEnable() {
        try {
            Method PlayerConnection_setPendingPing = Class.forName("net.minecraft.server." + VERSION + ".PlayerConnection").getDeclaredMethod("setPendingPing", boolean.class);
            PlayerConnection_setPendingPing.setAccessible(true);

            Field CraftPlayer_entity = Class.forName("org.bukkit.craftbukkit." + VERSION + ".entity.CraftEntity").getDeclaredField("entity");
            CraftPlayer_entity.setAccessible(true);

            Field EntityPlayer_playerConnection = Class.forName("net.minecraft.server." + VERSION + ".EntityPlayer").getDeclaredField("playerConnection");
            EntityPlayer_playerConnection.setAccessible(true);

            ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this, PacketType.Play.Client.KEEP_ALIVE) {
                @Override
                public void onPacketReceiving(PacketEvent event) {
                    try {
                        Object entity = CraftPlayer_entity.get(event.getPlayer());
                        Object playerConnection = EntityPlayer_playerConnection.get(entity);
                        PlayerConnection_setPendingPing.invoke(playerConnection, true);
                    } catch (Exception e) {
                        getLogger().info("Ошибка обработки " + event);
                        e.printStackTrace();
                    }
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
 
Это можно при желании отключить.
Код:
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketEvent;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Main extends JavaPlugin {

    public final String VERSION = Bukkit.getServer().getClass().getName().split("\\.")[3]; //версия пакетов

    @Override
    public void onEnable() {
        try {
            Method PlayerConnection_setPendingPing = Class.forName("net.minecraft.server." + VERSION + ".PlayerConnection").getDeclaredMethod("setPendingPing", boolean.class);
            PlayerConnection_setPendingPing.setAccessible(true);

            Field CraftPlayer_entity = Class.forName("org.bukkit.craftbukkit." + VERSION + ".entity.CraftEntity").getDeclaredField("entity");
            CraftPlayer_entity.setAccessible(true);

            Field EntityPlayer_playerConnection = Class.forName("net.minecraft.server." + VERSION + ".EntityPlayer").getDeclaredField("playerConnection");
            EntityPlayer_playerConnection.setAccessible(true);

            ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this, PacketType.Play.Client.KEEP_ALIVE) {
                @Override
                public void onPacketReceiving(PacketEvent event) {
                    try {
                        Object entity = CraftPlayer_entity.get(event.getPlayer());
                        Object playerConnection = EntityPlayer_playerConnection.get(entity);
                        PlayerConnection_setPendingPing.invoke(playerConnection, true);
                    } catch (Exception e) {
                        getLogger().info("Ошибка обработки " + event);
                        e.printStackTrace();
                    }
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
я в этом не понимаю
 
Я бы не доверял Patina. Сырое ядро. Может и производительнее Pufferfish, хотя я не уверен но я бы предпочел стабильность
Первые 2-3 снапшота конечно не стабильные, но стоит немного подождать, автор выпустит хорошее ядро, что он и сделал впринципе.
Сидел на патине, вопросов не было.
 
У меня на одном сервере пейпер, на другом пурпур. На пуфферфише повышается мспт на довольно мощных машинах
 
Назад
Сверху Снизу