[1.7.10] MJUtils

1,200
37
237
MJUtilsLogo.png


Вот, сделал первую альфу своего букета костылей, теперь смогу продолжить писать торфобредмод.

Возможности:
  • Модульная система загрузки мода (Я таки добил её с аннотациями).
  • Шаблоны для прокси и конфигурации.
  • Простой JSON чтец/обработчик (из-за него-то я и решил сделать эту либу).
  • Крафты на нЯковальне (с NEI интеграцией), можно даже уточнение в названиях предметов и строчки в GUI делать.
  • Обёртка для работы с рыбалкой (уловом) и топливом для печи (из-за этого я тоже решил писать либу).
  • Опционально: перевод целой (!) кольчуги в железную броню за слиток и 1 уровень (рецепты не позволяют делать без опыта) на нЯковальне .
  • Опционально: oreDict имена предмета в его описании.



Списки изменений:
  • Исправлен косяк с конфигурацией (хотя его и не было, лол. Считайте, что доработал).
  • К модульной системе добавлена опция приоритета загрузки.
  • Немного дописаны комментарии, но они водянистые.
  • Фикс кривого рендера текста (подложки к нему) в NEI подсказке наковальни при включенном юникоде.
  • Фикс цены рецептов наковальни (метод получения цены всегда возвращал единицу).
  • Завершены примеры (на GitHub);
  • Изменена ветка версий (сменаверсииигры.новыйконтент.багофиксы);
  • Переработаны утилиты рецептов наковальни;
  • Добавлен возможность добавления блоков в список тех, от ломания которых будут злится свинозомби;
  • Добавлена интеграция с Thaumcraft.
 
Последнее редактирование:

Eifel

Модератор
1,623
78
608
Гуд жоб ма френд. Скоро высуну сюда и свою какаху которую я написал за сегодня, бо было скучно и решил сделать себе выходной на выходных. гы
 
1,200
37
237
Thunder написал(а):
Гуд жоб ма френд. Скоро высуну сюда и свою какаху которую я написал за сегодня, бо было скучно и решил сделать себе выходной на выходных. гы

Главное - подача :D
 
1,470
19
189
MJaroslav написал(а):
Thunder написал(а):
Гуд жоб ма френд. Скоро высуну сюда и свою какаху которую я написал за сегодня, бо было скучно и решил сделать себе выходной на выходных. гы

Главное - подача :D

Там есть пакеты?
 
1,200
37
237
Nix13 написал(а):
MJaroslav написал(а):
Thunder написал(а):
Гуд жоб ма френд. Скоро высуну сюда и свою какаху которую я написал за сегодня, бо было скучно и решил сделать себе выходной на выходных. гы

Главное - подача :D

Там есть пакеты?

Нет, но после сегодняшнего температурного диссонанса я захотел их туда добавить (будет в след. версиях). xd
 
1,470
19
189
WhiteWarrior написал(а):
MJaroslav написал(а):
  • Простой JSON чтец/обработчик (из-за него-то я и решил сделать эту либу).

Json? 1.7.10?

Судя по всему, да 1.7.10


MJaroslav написал(а):
Nix13 написал(а):
MJaroslav написал(а):
Thunder написал(а):
Гуд жоб ма френд. Скоро высуну сюда и свою какаху которую я написал за сегодня, бо было скучно и решил сделать себе выходной на выходных. гы

Главное - подача :D

Там есть пакеты?

Нет, но после сегодняшнего температурного диссонанса я захотел их туда добавить (будет в след. версиях). xd

О, да
 
1,200
37
237
WhiteWarrior написал(а):
MJaroslav написал(а):
  • Простой JSON чтец/обработчик (из-за него-то я и решил сделать эту либу).

Json? 1.7.10?

Це для конфигов. Я просто не человек, люблю рецепты для машинок так записывать:

Код:
{
  "ingredient": {
    "type": "item",
    "id": "minecraft:coal",
    "count": 64,
    "meta": 0
  },
  "result": {
    "type": "item",
    "id": "minecraft:diamond",
    "count": 1,
    "meta": 0
  },
  "experience": 1.0,
  "jumps": 100,
  "automatic": false
}

Вот и запилил, ещё во времена страдания по дискорд ботам, класс для работы с json конфигом.
 

Eifel

Модератор
1,623
78
608
Нужно просто понять как это работает, я тоже долго парился с пакетами пытаясь сделать на удачу
 
1,200
37
237
Thunder написал(а):
Нужно просто понять как это работает, я тоже долго парился с пакетами пытаясь сделать на удачу

А я как-то в торфомоде накостылялся и смог сделать отправку крафтов компрессора игроку. /Ну и ресторинг его при выходе/)
 
1,470
19
189
MJaroslav написал(а):
Thunder написал(а):
Нужно просто понять как это работает, я тоже долго парился с пакетами пытаясь сделать на удачу

А я как-то в торфомоде накостылялся и смог сделать отправку крафтов компрессора игроку. /Ну и ресторинг его при выходе/)

А потом пакеты тебе накостыляют
 
1,200
37
237
Nix13 написал(а):
А потом пакеты тебе накостыляют

Они у меня дрессированными будут, не накостыляют.


Мде, только сейчас, со второй попытки, подтвердили проект на curse (а залил я его до создания этой темы).
 
2,505
81
397
О, люблю чужие Utils рассматривать :)


Есть же new FileReader(File). Убери ту длинную конструкцию.


Если возвращаешь this объект, то не забывай и generic тип.
public JSONReader<T> setFile(...)
 
1,200
37
237
Dahaka написал(а):
Есть же new FileReader(File). Убери ту длинную конструкцию.

Ты ведь про это говоришь?

Код:
public boolean init() {
 file = new File(filePath);
 folder = getFolder(file);
 if (!folder.exists() || !folder.isDirectory())
 folder.mkdirs();
 if (!file.exists() || !file.isFile()) {
 try {
 file.createNewFile();
 toDefault();
 return write();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 return read();
 }

Если возвращаешь this объект, то не забывай и generic тип.

public JSONReader<T> setFile(...)

Вроде, ничего не ломалось от этого, но хорошо.
 
2,505
81
397
Твой JSONReader требует предварительного создания дефолтного объекта. Это не очень хорошо. Например, ты хочешь прочитать объект из файла. Для заранее создаешь один объект, а потом создается еще один при чтении из файла. Лучше задавать не дефолтный объект, а фабрику объекта (Supplier из конструктора по-умолчанию, например). Или создавать объект рефлексией.


MJaroslav написал(а):
Ты ведь про это говоришь?
Нет, про это:
Reader reader = new InputStreamReader(new FileInputStream(file.getAbsolutePath()), StandardCharsets.UTF_8);
 
1,200
37
237
Dahaka написал(а):
Нет, про это:
Reader reader = new InputStreamReader(new FileInputStream(file.getAbsolutePath()), StandardCharsets.UTF_8);

Agravaine написал(а):
Нельзя, файлРидер не поддерживает кодировку, при чтении русских символов будет эксепшн.

Вроде, я файлридер ставил в самой первой версии этого класса, потом около недели сношался с кодировками, пока мне один хороший человек не подсказал то, что теперь есть.
 
1,200
37
237
Господа, я рукожоп. Пойду фиксить краши (при использовании с ThaumOres дало краш при открытии мои исследований) и баги (отсутствие javadoc'ов, названий logger'ов и нормальной работы конфигов)
 

CumingSoon

Местный стендапер
1,634
12
269
Обертка над джсоном?)
И вообще, зачем reader? Возьми Files.read и пр. И кратче будет, и новее.
(вспомнил Эм Джей Уотсон)
 
1,200
37
237
CoomingSoon написал(а):
Обертка над джсоном?)
И вообще, зачем reader? Возьми Files.read и пр. И кратче будет, и новее.
(вспомнил Эм Джей Уотсон)

Можно, конечно, но чисто в этом случае, я придерживаюсь принципа 'работает - не трогай'. Ибо в первый раз я столько нервов убил на написание этого класса (особенно из-за generic'ов).
 
Сверху