플러그인 설정

설정 파일은 플러그인이 데이터를 저장하고, 서버 관리자가 플러그인의 특정 부분을 통제할 수 있게 합니다. 쉽게 설정 파일을 조작할 수 있도록 Sponge는 Configurate를 이용합니다. 이 페이지들은 설정 파일을 완전히 이용하기 위해 Configurate를 활용하는 방법을 설명합니다.

참고

Configurate의 구성 요소를 활용하는 자세한 방법은 Configurate 위키 에서 확인하세요.

주석

Sponge는 설정 파일을 저장하는 표준 형식으로 JSON에서 확장된 HOCON 설정 형식을 사용하고 있습니다. 이 지침서는 당신이 HOCON을 사용한다는 가정 하에 작성되었습니다. HOCON 형식에 대해 자세히 알고 싶으면 HOCON 소개을 확인하세요. Configurate 체계는 다른 파일 형식에서도 유사하게 동작하므로, 다른 형식을 사용하는 것에서 큰 문제가 생기지는 않을 것입니다.

빠르게 시작하기

기본 플러그인 설정 만들기

Sponge API로 개발된 플러그인은 한 개 이상의 설정 파일을 가질 수 있습니다. 설정 파일은 플러그인의 데이터를 저장하고, (원한다면) 서버 관리자가 플러그인 옵션을 조작할 수 있도록 해줍니다.

나만의 플러그인 설정 갖기

당신의 플러그인을 위한 기본 설정 파일을 가져오려면 Path 타입의 필드나 setter 메소드에 Sponge API가 제공하는 DefaultConfig 어노테이션을 붙이면 됩니다.

@DefaultConfig 어노테이션의 요소는 sharedRoot의 boolean 값을 요구합니다. sharedRoottrue로 대입하면 공용 설정 폴더의 경로가 반환됩니다. 이 경우, 당신의 플러그인 설정 파일명은 다음과 같습니다: your_plugin_id.conf ("your_plugin_id"는 플러그인 ID로 치환됨)

참고

당신의 플러그인 ID를 설정하는 방법은 :doc:`../plugin-class`를 참조하세요.

If you set sharedRoot to false, the returned pathname will refer to a file named {pluginname}.conf in a directory specific to your plugin.

sharedRoot를 어떤 값으로 정할지 고려하는 방법:

  • 앞으로 (복잡한 플러그인으로써) 여러 개의 설정 파일을 만들 계획이라면, false가 적절합니다.
  • (간단한 플러그인으로써) 한 개의 설정 파일만 가질 계획이라면, true가 적절합니다.

You can also obtain a Path instance pointing to the config directory instead of a particular file. Just have it injected using the ConfigDir annotation, either with sharedRoot set to false for a plugin specific directory or to true to get the shared configuration directory.

주석

While it may be possible to get a File instead of a Path, Configurate (and Sponge) recommend using Path.

Example - Field using @DefaultConfig

import java.nio.file.Path;
import com.google.inject.Inject;
import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.config.DefaultConfig;
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
import ninja.leaping.configurate.loader.ConfigurationLoader;

@Inject
@DefaultConfig(sharedRoot = true)
private Path defaultConfig;

@Inject
@DefaultConfig(sharedRoot = true)
private ConfigurationLoader<CommentedConfigurationNode> configManager;

@Inject
@ConfigDir(sharedRoot = false)
private Path privateConfigDir;

경고

When your plugin is running for the first time, returned pathnames for configuration files and directories may not yet exist. If you delegate all reading / writing of files to Configurate, you do not need to worry about non-existant paths as the library will handle them appropriately.

주석

The use of YAML format (http://yaml.org/spec/1.1/) is also supported, but the preferred config format for Sponge plugins is HOCON. Conversion from YAML to HOCON can be automated by using a YAMLConfigurationLoader to load the old config and then saving it using a HoconConfigurationLoader.