Помогите Конфиг и даты

  • Автор темы Автор темы Laytin
  • Дата начала Дата начала

Laytin

Активный участник
Баллы
61
Имя в Minecraft
ne9ko
Нужно было сделать плагин, запрещающий класть определенные вещи в определенный сундук. Реализовал через Вайтлист. Сам по себе плагин работает, но я не понимаю как прописать в самом плагине и конфиге с разрешенными предметами (который собственно и является whitelist"ом), чтобы плагин проверял разрешенный блок не только на материал из кфг, но и на дату. Допустим, мне нужно, чтобы я мог положить в сундук только оранжевую шерсть(35:1), a остальные цвета шерсти - нет(35:2,35:3 и тд) . Только помимо этого разрешенный предмет у меня не один. Буду благодарен за идеи
 
В 1.13+ цвета шерсти имеют свои отдельные material, можешь просто их в кфг положить.
А в дино можешь просто чекать эту дату, через getId() вроде, или что-то подобное там у материала есть
 
С шерстью я сделал аналогию, забыл упомянуть что это происходит 1.7.10
По поводу даты, если я не ошибаюсь то это прописывается через getItemMeta. Через id проверять предмет не могу, ибо в будущем это будет переделываться для модовых блоков.
Но как я уже говорил, предметов много, и даты у них разные, а как это сделать листом, где каждый материал будет соответствовать своей дате, я и не могу.
 
Нужно было сделать плагин, запрещающий класть определенные вещи в определенный сундук. Реализовал через Вайтлист. Сам по себе плагин работает, но я не понимаю как прописать в самом плагине и конфиге с разрешенными предметами (который собственно и является whitelist"ом), чтобы плагин проверял разрешенный блок не только на материал из кфг, но и на дату. Допустим, мне нужно, чтобы я мог положить в сундук только оранжевую шерсть(35:1), a остальные цвета шерсти - нет(35:2,35:3 и тд) . Только помимо этого разрешенный предмет у меня не один. Буду благодарен за идеи
PHP:
// Пишу от руки

// Наш конфиг
items:
     '1':
        item: 35
        data: 1
    


config - Наша переменная конфига
List<ItemStack> whiteItems = new ArrayList<>();
ConfigurationSection section = config.getConfigurationSection("items");
for (String s : section.getKeys(false)) {
       ConfigurationSection elem = section.getConfigurationSection(s);
       int id = elem.getInt("item");
       short data = elem.getShort("data");
       whiteItems.add(new ItemStack(id, 1, data));
}

ItemStack item = new ItemStack(35, 1, (short)1); //Предмет для проверки

//Подготавливаем его что бы не испортить оригинал
ItemStack itemClone = item.clone();
itemClone.setAmount(1);
List<ItemStack> blackItems = whiteItems.stream().filter(item -> !item.isSimillar(itemClone)).collect(Collections.toList());

+- так
 
Назад
Верх