Как получить джарник клиента и сервера

Agravaine написал(а):
Нужно получить File джарника клиента и сервера.
На клиенте понятно, Minecraft.getMinecraft().mcDataDir, а на сервере как?
а зачем? он же по идеи сам понимает что из корневой папке путь начинает, я имею в виду маина. тоеть если у тебя конфиг то просто config/cfg.xml
 
Какой нахрен xtml? Ты вообще понимаешь какой бред ты несешь?
Не знаешь - не лезь.
 
Dragon2488 написал(а):
Какой нахрен xtml? Ты вообще понимаешь какой бред ты несешь?
Не знаешь - не лезь.
Скажи честно ты дебил? я спросил для чего ему это. Так как по идеи он должен путь сам понимать. Я про мод. Но ты какой-то дегинерат. Тупой модератор. только умничает, еще ни кому не помог.
 
а xml это было просто для примера бревно.
[merge_posts_bbcode]Добавлено: 02.11.2014 21:35:25[/merge_posts_bbcode]

ну попробуй указать путь руками от корня в котором лежит сервер.

[merge_posts_bbcode]Добавлено: 02.11.2014 21:36:27[/merge_posts_bbcode]

Но я не обещаю что это сработает. В моде такое не пробовал, знаю, что в плагинах все настолько просто. Не думаю что в модах это отличается кардинально.
 
LazyRavenMan написал(а):
Ну вот получишь ты директорию,kuroi.А как будешь джарник сервера получать?Мало ли кто поменяет имя
Не знаешь - не лезь.
,
смотрю все такие знающие, я пытаюсь помочь, а вы агритесь только, занешь, так чего не помогаешь? и Minecraft.getMinecraft().mcDataDir тоже получает только папку
 
Видел я такой мод.
Там получалась рабочая директория через Loader.instance().getConfigDir().getParentFile().getAbsolutePath()
а потом вычислялись контрольные суммы для файлов с раширениями .zip .jar и .class
 
Так я беру уже готовый джарник, финальный так сказать.
[merge_posts_bbcode]Добавлено: 02.11.2014 23:01:35[/merge_posts_bbcode]

Я вот так делаю:

Код:
public static String getFileHash(File inputFile){
        MessageDigest messageDigest;
        Formatter formatter = new Formatter();
        InputStream stream = null;
        String result = Strings.EMPTY;
        try{
            messageDigest = MessageDigest.getInstance("SHA1");
            stream = new BufferedInputStream(new FileInputStream(inputFile));

            byte[] buffer = new byte[1024];

            for(int read = 0; (read = stream.read(buffer)) != -1;){
                messageDigest.update(buffer, 0, read);
            }

            for(byte digetsByte : messageDigest.digest()) {
                formatter.format("%02x", digetsByte);
            }

            result = formatter.toString();
        }catch(Exception e){

        }finally{
            IOUtils.closeQuietly(stream);
            IOUtils.closeQuietly(formatter);
        }

        return result;
    }



Код:
if(event.getSide().isClient()){
            String hashClient = getFileHash(new File(FMLCommonHandler.instance().getSidedDelegate().getSavesDirectory().getParentFile(), "versions/1.7.10-Forge10.13.2.1230/1.7.10-Forge10.13.2.1230.jar"));
            if(!MessageDigest.isEqual(hashClient.getBytes(), "26f073d2dea2375bd59bd3725b3cecb474f4d296".getBytes())){
                System.out.println(hashClient);
                FMLCommonHandler.instance().handleExit(-1);
            }
        }

        if(event.getSide().isServer()){
            String hashServer = getFileHash(new File(FMLCommonHandler.instance().getSidedDelegate().getSavesDirectory().getParentFile(), "minecraft_server.1.7.10.jar"));
            if(!MessageDigest.isEqual(hashServer.getBytes(), "128cd241d74fd72e07aa0e76727a6bacdb3c5d37".getBytes())){
                System.out.println(hashServer);
                FMLCommonHandler.instance().handleExit(-1);
            }
        }
 
Ага. Все кому нужно могут и наврать в ответе, лол.
 
Agravaine написал(а):
РЕБЯТА, В ТОМ ТО И ПРИКОЛ, ЧТО ХЭШ ДЖАРНИКА ДОЛЖЕН СОВПАДАТЬ С ХЭШЕМ В ПРОВЕРКЕ.
ЧТО-ТО ТИПА АНТИ-ЧИТА.
Код:
new File(Minecraft.class.getProtectionDomain().getCodeSource().getLocation().toURI());
 
Хнык.
А хеш ты с чем сверять будешь?

С Asd73 соглашусь, защита не ахти.
 
Я равену отвечал.
А защиты хорошей и нет, если кто-то захочет - украдет, доделает недостающие части мода, либо сделает себе чит. Тут зависит от того, на кого наткнешься.
 
Назад
Сверху