ページ 11

Bukkitで新しいコンフィグを作成する方法

投稿記事Posted: 2016年4月01日(金) 19:46
by カーボンファイバー
BukkitではgetConfig()メソッドしかなく、config.yml以外の作成方法が分からないという方もいるのではないでしょうか。
大規模なプラグインのために、コンフィグを新規作成するコードを作成したのでお見せします
コード: 全て選択
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

import org.bukkit.ChatColor;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;

public class ConfigManager {

   private final JavaPlugin plugin;
   private final File configFile;
   private final YamlConfiguration config;
   /**
    * カラーコードに変換される文字
    */
   public static final char COLOR_KEY = '&';

   /**
    * 指定したファイル名でコンフィグマネージャーを作成します 場所はプラグインのデータフォルダになります
    *
    * @param fileName
    * @throws FileNotFoundException
    *             ファイルが存在しない場合
    * @throws IOException
    *             ファイルの読み取りが出来なかった場合
    * @throws InvalidConfigurationException
    *             ロードが無効だった場合
    */
   public ConfigManager(String fileName,JavaPlugin plugin) throws FileNotFoundException, IOException, InvalidConfigurationException {
      this.plugin = plugin;
      this.config = new YamlConfiguration();
      this.configFile = new File(plugin.getDataFolder(), fileName);
      if (configFile.exists() == false) {// 存在しなかったらリソースのほうから取り寄せる
         try (InputStream in = plugin.getResource(fileName)) {
            if (in != null)// リソースが存在すれば
               Files.copy(in, Paths.get(configFile.toURI()));//コピー
            else// なければ
               throw new FileNotFoundException();// 例外発生
         }
      }
      // ロードさせないと値が取得できない
      load();
   }

   /**
    * コンフィグをセーブします
    *
    * @throws IOException
    *             ファイルの書き込みが出来なかった場合
    */
   public void save() throws IOException {
      config.save(configFile);
   }

   protected void load() throws FileNotFoundException, IOException, InvalidConfigurationException {
      config.load(configFile);
   }

   /**
    * @return コンフィグを取得します
    */
   public YamlConfiguration getConfig() {
      return config;
   }

Re: Bukkitで新しいコンフィグを作成する方法

投稿記事Posted: 2016年4月07日(木) 21:03
by King(qpwakaba)
JavaPluginを継承しているクラス ってコードに埋め込むくらいならコンストラクタの引数で受け取ったほうが汎用性上がると思う。

Re: Bukkitで新しいコンフィグを作成する方法

投稿記事Posted: 2016年4月18日(月) 22:33
by カーボンファイバー
King(qpwakaba) さんが書きました:JavaPluginを継承しているクラス ってコードに埋め込むくらいならコンストラクタの引数で受け取ったほうが汎用性上がると思う。

あー・・・全く考えてなかった。ありがとう御座います!修正しておきます!