2015-05-24 2 views
0

В настоящее время я программирую плагин bukkit, который хранит кучу информации об игроке в конфигурационном файле YAML. Теперь я хочу, чтобы плагин считывал файл YAML при запуске сервера, а затем добавлял эту информацию. У меня есть мой загрузчик, но я не могу его использовать, потому что мой плагин использует пользовательскую карту. Вот код для карты:Конфигурация Java YAML для пользовательского hashmap

Map<Integer, Map<String, Object>> 

А вот код, чтобы получить информацию из файла:

info = (Map<Integer, Map<String, Object>>) ticket.getConfigurationSection("tickets"); 

Но когда я пытаюсь запустить плагин с этой строки кода я получаю эта ошибка:

Caused by: java.lang.ClassCastException: org.bukkit.configuration.MemorySection cannot be cast to java.util.Map 

Полный код размещен здесь: http://pastebin.com/Xgu8hwM0

ответ

0

Да я решил это. I HAD использовать Map<String, Object> но это сработало, потому что у меня было это (Map<Integer, Map<String, Object>>), что является второй частью!

2

решение т o это не использование пользовательской карты. Вы уже получаете MemorySection из своей конфигурации.

Работайте с этим. Вместо кастинга вы должны использовать метод: getValues(boolean), который возвращает Map<String, Object>, содержащий всю необходимую информацию, и указан интерфейсом ConfigurationSection.

ticket.getConfigurationSection("tickets").getValues(); 

Смотрите также соответствующий отрывок в bukkit's Configuration API Reference:

The getValues method will return the values in the ConfigurationSection as a map, it takes a boolean which controls if the nested maps will be returned in the map.

+0

@ Volgel612 Если я использую getValues ​​(), он возвращает 'Map ', а не 'Map >' – mttprvst13

+0

У меня есть сильное подозрение, которое вы пытаетесь решить проблема ошибочна. вы не возражаете добавить выдержку соответствующего файла конфигурации, может быть, я могу посоветовать лучше. – Vogel612

+0

Я не совсем понимаю, что вы говорите. не могли бы вы сделать пастебин для этого? – mttprvst13

Смежные вопросы