Помогите Выполнение команды консоли при заходе на сервер и наличие ника в конфиге из сайта

GigiGgJBIRE

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Moda84
Здравствуйте, форумчане!
Вступление: на своём проекте, я решил сделать систему, которая покажет рейтинг игрока, суть её в том, что если игрок имел баны за запрещённые моды или читы, ему ставился префикс. Я столкнулся с такой бедой, что игрок может купить префикс или используя /prefix сменить его и я решил попытаться, что-то сделать, а именно написать вам.
Суть дела: мне нужен код с помощью которого будет выдаваться префикс игроку из списка при заходе.
Но! Хотел-бы, чтобы этот список брался из моего сайта.
Внимание! СОВЕТОВАТЬ MYSQL-БАЗУ БЕСПОЛЕЗНО, так администрация хостинга сделала её только локальной, но если у вас есть хорошие хостинги MySQL обязательно пришлите, так как БД мне всё равно пригодиться.
 
Здравствуйте, форумчане!
Вступление: на своём проекте, я решил сделать систему, которая покажет рейтинг игрока, суть её в том, что если игрок имел баны за запрещённые моды или читы, ему ставился префикс. Я столкнулся с такой бедой, что игрок может купить префикс или используя /prefix сменить его и я решил попытаться, что-то сделать, а именно написать вам.
Суть дела: мне нужен код с помощью которого будет выдаваться префикс игроку из списка при заходе.
Но! Хотел-бы, чтобы этот список брался из моего сайта.
Внимание! СОВЕТОВАТЬ MYSQL-БАЗУ БЕСПОЛЕЗНО, так администрация хостинга сделала её только локальной, но если у вас есть хорошие хостинги MySQL обязательно пришлите, так как БД мне всё равно пригодиться.
Врядли бесплатно напишут
 
Здравствуйте, форумчане!
Вступление: на своём проекте, я решил сделать систему, которая покажет рейтинг игрока, суть её в том, что если игрок имел баны за запрещённые моды или читы, ему ставился префикс. Я столкнулся с такой бедой, что игрок может купить префикс или используя /prefix сменить его и я решил попытаться, что-то сделать, а именно написать вам.
Суть дела: мне нужен код с помощью которого будет выдаваться префикс игроку из списка при заходе.
Но! Хотел-бы, чтобы этот список брался из моего сайта.
Внимание! СОВЕТОВАТЬ MYSQL-БАЗУ БЕСПОЛЕЗНО, так администрация хостинга сделала её только локальной, но если у вас есть хорошие хостинги MySQL обязательно пришлите, так как БД мне всё равно пригодиться.
Так используй суффикс вместо префыкса.
 
Можешь на своем сервере (где сайт) разместить список игроков в Json (Yaml, csv, или другом, удобном формате) потом, например, при старте сервера (и потом каждые 5-10 мин) проверять состояние файла (можно просто загружать и сравнивать каждый раз. Или можно хранить и сравнивать на сервере хеш текущей версии файла. Если используете второй вариант:
1. На старте сервера (майнкрафтовского) запрашиваете текущий файл и сохраняете его. Также считаете от него хеш и тоже сохраняете
2. Когда требуется (желательно не очень часто) запрашиваете хеш текущей версии файла с сервера
3. Если он совпадает с сохраненным, используете дальше тот файл, что уже есть
4. Если нет - запрашиваете новый файл и пересчитываете хеш

Этот вариант лучше, для экономии трафика
(а еще лучше база данных)
=======================================

На счет MySql - https://cloud.google.com/sql

Ну и что бы ответ не выглядел таким пустым - вот пример вычисления хеш-суммы файла:
Код:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

public class HashSum {

    public static byte[] calculateHashSum(File input, Algorithm algorithm) {
        try (FileInputStream is = new FileInputStream(input)) {
            MessageDigest messageDigest = MessageDigest.getInstance(algorithm.getAlgorithm());
            byte[] chunk = new byte[4096];
            int currentLength;
            while ((currentLength = is.read(chunk)) > 0) {
                messageDigest.update(chunk, 0, currentLength);
            }

            return messageDigest.digest();
        } catch (IOException | NoSuchAlgorithmException e) {
            return null;
        }
    }

    public static boolean checkSum(File input, Algorithm algorithm, byte[] checkSum) {
        return Arrays.equals(calculateHashSum(input, algorithm), checkSum);
    }

    public static boolean checkSum(File first, File second, Algorithm algorithm) {
        return first.equals(second) || Arrays.equals(HashSum.calculateHashSum(first, algorithm),
                HashSum.calculateHashSum(second, algorithm));
    }


    enum Algorithm {
        MD5("MD5"),
        SHA1("SHA1"),
        SHA256("SHA-256"),
        SHA512("SHA-512");

        private final String algorithm;

        Algorithm(String algorithm) {
            this.algorithm = algorithm;
        }

        public String getAlgorithm() {
            return algorithm;
        }
    }
}

И пример использования:
Код:
byte[] otherHash = HashSum.calculateHashSum(new File("input"), HashSum.Algorithm.SHA256);
System.out.println(HashSum.checkSum(new File("input"), HashSum.Algorithm.SHA256, otherHash));
System.out.println(HashSum.checkSum(new File("first"), new File("second"), HashSum.Algorithm.SHA512));

Если нужна будете помощь - напиши в личку или сюда
 
Последнее редактирование:
Здравствуйте, форумчане!
Вступление: на своём проекте, я решил сделать систему, которая покажет рейтинг игрока, суть её в том, что если игрок имел баны за запрещённые моды или читы, ему ставился префикс. Я столкнулся с такой бедой, что игрок может купить префикс или используя /prefix сменить его и я решил попытаться, что-то сделать, а именно написать вам.
Суть дела: мне нужен код с помощью которого будет выдаваться префикс игроку из списка при заходе.
Но! Хотел-бы, чтобы этот список брался из моего сайта.
Внимание! СОВЕТОВАТЬ MYSQL-БАЗУ БЕСПОЛЕЗНО, так администрация хостинга сделала её только локальной, но если у вас есть хорошие хостинги MySQL обязательно пришлите, так как БД мне всё равно пригодиться.
Локальной? А что мешает сделать API? При заходе делаешь запрос, сайт у себя на стороне обращается к базе и возвращает ответ. Делается это на java через какой нить Apache с его API для запросов, или через голое java API для Http/Https. На сайте - смотря на чём написан.
 
Назад
Верх