Создание конфигов

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

Tyzun

Старожил
Баллы
153
Имя в Minecraft
_Tyzun_
Искал, и так не нашел путящих уроков по созданию конфигов в плагинах, можете посоветовать какой-нить?
 
Цитирую себя из соседней темы:
Я для себя работу с конфигом давно привёл к подобным процедурам:
https://github.com/fromgate/PlayEff...e/fromgate/playeffect/PlayEffect.java#L52-L72

При старте плагина всегда вызываю последовательно loadCfg() и saveCfg(). Это приводит к тому, что при первом запуске плагина создается конфиг с дефолтными значениями.
 
ок, спасибо
Разобрался как создавать файл конфига с нужными пунктами, но непонял как сделать считывание из конфига, например считывание списка айди предметов.
 
ок, спасибо
Разобрался как создавать файл конфига с нужными пунктами, но непонял как сделать считывание из конфига, например считывание списка айди предметов.
Что-то типо этого:
plugin.getConfig().getInt("my-ID-Blocks")
plugin - ну это наш плагин
getConfig - конфиг по дефолту
getInt("my-ID-Blocks") - берем числа из my-ID-Blocks
 
Что-то типо этого:

plugin - ну это наш плагин
getConfig - конфиг по дефолту
getInt("my-ID-Blocks") - берем числа из my-ID-Blocks
Это вернёт только одно число.
Если нужно из одного пути считать список чисел, нужно использовать getConfig().getIntegerList("path"), который вернёт List интегеров. В конфиге числа должны быть записаны в path либо так:
Код:
path: [1, 2, 3, 4]
Либо так
Код:
path:
- 1
- 2
- 3
 
Мучился с плагином, ничего путящего не вышло, сделал вот так
Код:
package ru.tyzun.limits;


import java.io.File;

import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Limits extends JavaPlugin implements Listener {

    public void OnEnable(){
    getServer().getPluginManager().registerEvents(this, this);
    File configFile = new File(getDataFolder(), "config.yml");
    if (!configFile.exists())
      saveDefaultConfig();
    reloadConfig();
    }

    @EventHandler
        public void Bedrock(BlockBreakEvent e){
          Player pl = e.getPlayer();
                    if((this.getConfig().getIntegerList("break").contains(Integer.valueOf(e.getBlock().getTypeId()))) && (!pl.hasPermission("limits.break"))){
                    e.setCancelled(true);
                    }
               
            }
               
     
}

Файл config.yml присутствует рядом с plugin.yml, запускаю серв, плагин в списке зеленым цветом, но папка с конфигом всеравно не создается. Что я не так сделал?
 
Если config.yml рядом с plugin.yml (т.е. я так понимаю он в jar) - то таким образом Вы его не прочитаете. Он ещё не попал в директорию плагина. Его нужно там создать или скопировать. По моему так.

В любом случае, не понимаю к чему эта возня с файлами. При обращении к getConfig() создание файла (и директории плагина) происходит автоматически. Я выше приводил ссылку на свой плагин, посмотрите процедурки -- проще не бывает.
 
Мучился с плагином, ничего путящего не вышло, сделал вот так
JavaScript:
package ru.tyzun.limits;


import java.io.File;

import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Limits extends JavaPlugin implements Listener {

    public void OnEnable(){
    getServer().getPluginManager().registerEvents(this, this);
    File configFile = new File(getDataFolder(), "config.yml");
    if (!configFile.exists())
      saveDefaultConfig();
    reloadConfig();
    }

    @EventHandler
        public void Bedrock(BlockBreakEvent e){
          Player pl = e.getPlayer();
                    if((this.getConfig().getIntegerList("break").contains(Integer.valueOf(e.getBlock().getTypeId()))) && (!pl.hasPermission("limits.break"))){
                    e.setCancelled(true);
                    }
              
            }
              
    
}

Файл config.yml присутствует рядом с plugin.yml, запускаю серв, плагин в списке зеленым цветом, но папка с конфигом всеравно не создается. Что я не так сделал?

чувак здесь всё просто вот тебе ахрененный код для конфига.
JavaScript:
File config = new File(getDataFolder() + File.separator + "config.yml");
        if(!config.exists()){
            getLogger().info("Creating new ,file config...");
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
 
чувак здесь всё просто вот тебе ахрененный код для конфига.
JavaScript:
File config = new File(getDataFolder() + File.separator + "config.yml");
        if(!config.exists()){
            getLogger().info("Creating new ,file config...");
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
1 строчка в коде пожалуйста обьясни что ты с помощью нее делаешь?
 
чувак здесь всё просто вот тебе ахрененный код для конфига.
JavaScript:
File config = new File(getDataFolder() + File.separator + "config.yml");
        if(!config.exists()){
            getLogger().info("Creating new ,file config...");
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
Зачем там File.separator? Если можно сделать так File config = new File(getDataFolder(), "config.yml");
 
Если config.yml рядом с plugin.yml (т.е. я так понимаю он в jar) - то таким образом Вы его не прочитаете. Он ещё не попал в директорию плагина. Его нужно там создать или скопировать. По моему так.

В любом случае, не понимаю к чему эта возня с файлами. При обращении к getConfig() создание файла (и директории плагина) происходит автоматически. Я выше приводил ссылку на свой плагин, посмотрите процедурки -- проще не бывает.
Выдаёт 404, что там было?
 
Вы бы ещё самую первую открытую тему апнули.
 
Назад
Верх