Как можно реализовать привязку мода к игроку?

Версия Minecraft
1.16.5
API
Forge
Как можно реализовать привязку мода к игроку?

По типу: есть база данных где список ников или хвидов компьютера, мод при запуске читает эту базу данных если игрок или хвид компьютера есть в базе то мод запускается, если нету то мод крашит майнкрафт и удаляется
 
153
21
41
Как можно реализовать привязку мода к игроку?

По типу: есть база данных где список ников или хвидов компьютера, мод при запуске читает эту базу данных если игрок или хвид компьютера есть в базе то мод запускается, если нету то мод крашит майнкрафт и удаляется
При заходе на сервер посылаем пакет с клиента, сервер коннектится к бд, проверяет, посылает пакет обратно, если все гуд - пускаем игрока, если нет - удаляем и System#exit.
 
1,074
72
372
36
1
5
Я бы это сделал так: в процессе преинициализации сделать запрос на сайт. Тут есть два варианта:
1) в агрумент запроса передать текущий никнейм, сайт обработает никнейм и вернёт true/false - вход разрешен/запрещён.
2) сайт возвращает массив никнеймов и уже в коде происходит проверка, разрешено ли пользователю входить.

Запрос можно сделать с помощью этого:
Java:
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

...

URL url = new URL("...");
URLConnection con = url.openConnection();
HttpURLConnection http = (HttpURLConnection)con;
http.setRequestMethod("POST");
arguments.put("...", "...");

Пример подключения:
Java:
public class CrashReportUpload {


    public static String uploadToUbuntuPastebin(String url, String crashReport) throws IOException {
        URL pasteUrl = new URL(url);
        HttpURLConnection connection = (HttpURLConnection) pasteUrl.openConnection();
        connection.setInstanceFollowRedirects(false);
        connection.setRequestMethod("POST");
        connection.setUseCaches(false);
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setReadTimeout(1000000);
        connection.setConnectTimeout(500000);
        PrintWriter out = new PrintWriter(connection.getOutputStream());
        String params = "poster=CrashReport&syntax=text&content=" + URLEncoder.encode(crashReport, "UTF-8");
        out.write(params);
        out.flush();
        String resultUrl = null;
        resultUrl = connection.getHeaderField("Location");
        if (resultUrl == null) {
            resultUrl = connection.getHeaderField("location");
        }
        return url + resultUrl;
    }

}


Если никнейм не в спике, то выполнить:
Java:
import java.io.File;

...
 
Sys.exit();  // или mc.shutdown();

File file = new File("...");
file.delete();

Не знаю, как это работает на 1.16.5. По идее, методы должны быть одни и те же.
 
Последнее редактирование:
Ему этот вариант для чита не подойдёт. Сервер, как правило - чужой.
мне не для того что ты написал, есть сервер с режимам PrisonEvo там есть боссы, этот аддон читает таймер боссов и записывает их на экране в реал тайме, а привязку хочу сделать чтобы мод по всему серверу не пошёл
 
Я бы это сделал так: в процессе преинициализации сделать запрос на сайт. Тут есть два варианта:
1) в агрумент запроса передать текущий никнейм, сайт обработает никнейм и вернёт true/false - вход разрешен/запрещён.
2) сайт возвращает массив никнеймов и уже в коде происходит проверка, разрешено ли пользователю входить.
Спасибо друг
 
Последнее редактирование:
23
4
Как можно реализовать привязку мода к игроку?

По типу: есть база данных где список ников или хвидов компьютера, мод при запуске читает эту базу данных если игрок или хвид компьютера есть в базе то мод запускается, если нету то мод крашит майнкрафт и удаляется
Как можно реализовать привязку мода к игроку?

По типу: есть база данных где список ников или хвидов компьютера, мод при запуске читает эту базу данных если игрок или хвид компьютера есть в базе то мод запускается, если нету то мод крашит майнкрафт и удаляется
Скорее не крашит, а выходит с исключением
 
Сверху