- Версия(и) Minecraft
- Любая
Всем привет.
Данный гайд научит вас использовать JSON конфиги.
Я покажу несколько примеров использования.
Первый пример - регистрация предметов через конфиг.
Для начала сделаем предмет в главном классе.
Далее делаем метод, который:
- Читает данные из JSON конфига.
- Регистрирует предметы, используя полученные данные.
Добавляем вызов метода в евент FMLPreInitializationEvent.
JSON конфиг использовавшийся в примере:
Второй пример - чтение определенных данных из конфига и использование их в игре.
Первым делом создаем JsonObject в главном классе, в него будут записанны данные из конфига:
Далее делаем метод, который будет читать JSON конфиг и инитилизировать JsonObject:
Получение определенных данных описанно в методе выше.
Добавляем вызов метода в евент FMLPreInitializationEvent.
Можно например поменять название окна игры на название из конфига
Да и вообще это можно использовать много где.
JSON конфиг использовавшийся в примере:
Завтра добавлю архив с исходниками.
Так же скоро добавлю больше примеров использования, покажу как записывать данные в файл, а на сегодня это всё. Удачи.
Данный гайд научит вас использовать JSON конфиги.
Я покажу несколько примеров использования.
Первый пример - регистрация предметов через конфиг.
Для начала сделаем предмет в главном классе.
Java:
public static Item testitem;
Далее делаем метод, который:
- Читает данные из JSON конфига.
- Регистрирует предметы, используя полученные данные.
Java:
void loadItems()
{
try {
JsonParser parser = new JsonParser();
Object obj = parser.parse(new FileReader("config/items.json")); //читаем JSON файл
JsonObject itemsobject = (JsonObject) obj; //создаем экземпляр JsonObject и инитилизируем его данными из JSON конфига
for(int i = 0; i < itemsobject.get("items").getAsJsonArray().size(); i++)
{
String name = itemsobject.get("items").getAsJsonArray().get(i).getAsJsonObject().get("name").getAsString(); //получаем строчку name из конфига
int size = itemsobject.get("items").getAsJsonArray().get(i).getAsJsonObject().get("size").getAsInt(); //получаем число size из конфига
//сама регистрация предмета, используя данные выше.
testitem = new Item().setUnlocalizedName(name).setMaxStackSize(size).setCreativeTab(CreativeTabs.tabCombat);
GameRegistry.registerItem(testitem, name);
LanguageRegistry.addName(testitem, name);
}
}
catch (IOException e) {e.printStackTrace();}
}
Добавляем вызов метода в евент FMLPreInitializationEvent.
Java:
@EventHandler
public void preInit(FMLPreInitializationEvent event){
this.loadItems();
}
JSON конфиг использовавшийся в примере:
JSON:
{
"items": [
{
"name": "TestItem1",
"size": 10
},
{
"name": "JSON",
"size": 5
},
{
"name": "test2",
"size": 3
},
{
"name": "test3",
"size": 2
}
]
}
Второй пример - чтение определенных данных из конфига и использование их в игре.
Первым делом создаем JsonObject в главном классе, в него будут записанны данные из конфига:
Java:
public static JsonObject jsonObject;
Далее делаем метод, который будет читать JSON конфиг и инитилизировать JsonObject:
Java:
void loadConfig() {
try {
JsonParser parser = new JsonParser();
Object obj = parser.parse(new FileReader("config/testconfig.json")); //читаем JSON файл
jsonObject = (JsonObject) obj; //инитилизируем JSON объект, данными из JSON конфига
System.out.println(jsonObject.get("title").getAsString()); //получаем строчку title из конфига и выводим в лог
System.out.println(jsonObject.get("test").getAsInt()); //получаем число test из конфига и выводим в лог
}
catch (FileNotFoundException e) {e.printStackTrace();}
}
Получение определенных данных описанно в методе выше.
Добавляем вызов метода в евент FMLPreInitializationEvent.
Java:
@EventHandler
public void preInit(FMLPreInitializationEvent event){
this.loadConfig();
}
Можно например поменять название окна игры на название из конфига
Java:
Display.setTitle(jsonObject.get("title").getAsString());
Да и вообще это можно использовать много где.
JSON конфиг использовавшийся в примере:
JSON:
{
"title": "Test",
"test": 5
}
Завтра добавлю архив с исходниками.
Так же скоро добавлю больше примеров использования, покажу как записывать данные в файл, а на сегодня это всё. Удачи.