Как реализовать такой конфиг

Nespisnikersni

Пользователь
Сообщения
95
я хочу сделать чтобы в ивенте ломания блока проверялся тип блока в пути miner. и получить числовое значение присвоенное этому материалу
 
Решение
Код:
if (getConfig().contains("miner." + block.getType()) {
  // Блок в конфиге есть
  int vault = getConfig().getInt("miner." + block.getType());
} else {
  // Блока в конфиге нет
}
Объединено

Но если ты хочешь использовать эти проверки в ивенте BlockBreakEvent постоянно, то лучше записать все значения из конфига в HashMap и проверять через HashMap
Пример:
Код:
        // Plugin Loader or Main class
        
        HashMap<String, Integer> values = new HashMap<>();
        ConfigurationSection sectionMiner = getConfig().getConfigurationSection("miner");
        if (sectionMiner != null) {
            for (String str : sectionMiner.getKeys(false)) {
                values.put(str.toUpperCase(), sectionMiner.getInt(str))...
то есть конфиг например(можно его сделать подругому)
miner:
STONE: 20
ANDESITE: 15
при ломании блока проверялось наличие сломанного блока в конфиге
если в конфиге есть STONE и сломанный тоже STONE то выдавалось валюта(число после материала)
 
Код:
if (getConfig().contains("miner." + block.getType()) {
  // Блок в конфиге есть
  int vault = getConfig().getInt("miner." + block.getType());
} else {
  // Блока в конфиге нет
}
Объединено

Но если ты хочешь использовать эти проверки в ивенте BlockBreakEvent постоянно, то лучше записать все значения из конфига в HashMap и проверять через HashMap
Пример:
Код:
        // Plugin Loader or Main class
        
        HashMap<String, Integer> values = new HashMap<>();
        ConfigurationSection sectionMiner = getConfig().getConfigurationSection("miner");
        if (sectionMiner != null) {
            for (String str : sectionMiner.getKeys(false)) {
                values.put(str.toUpperCase(), sectionMiner.getInt(str));
            }
        }

        // BlocBreakEvent
                
        Block block = ;
        String blockType = block.getType().toString();
        if (values.containsKey(blockType)) {
            // Блок есть
            int value = values.get(blockType);
        } else {
            // Блока нет
        }
 
Последнее редактирование:
Назад
Сверху Снизу