提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
77行目: | 77行目: | ||
*getConfigurationSection("one.four") → four の部分がConfigurationSectionで取得されます | *getConfigurationSection("one.four") → four の部分がConfigurationSectionで取得されます | ||
*getString("one.four.five") → value というStringが取得されます | *getString("one.four.five") → value というStringが取得されます | ||
− | *getConfigurationSection("one.*") → | + | *getConfigurationSection("one.*") → four の部分がConfigurationSectionで取得されます |
*getString("one.*.six") → value というStringが取得されます | *getString("one.*.six") → value というStringが取得されます | ||
*getString("one.*.seven") → value というStringが取得されます | *getString("one.*.seven") → value というStringが取得されます | ||
+ | |||
=== デフォルト値 === | === デフォルト値 === | ||
− | + | ''config.yml''のデフォルト値は、プラグインのユーザに提供されます。 | |
+ | 設定ファイルが、プラグインのデータディレクトリ配下に存在しない, 空である, キーが無い・・・といった状態である場合には、プラグインのJarファイル内に定義された値が、デフォルト値としてロードされます。 | ||
− | + | デフォルト値は、データフォルダ配下に存在する''config.yml''が提供しようと意図していた内容と、まったく同一な内容のYAML形式ファイルによって提供されるべきで、そのファイル名は''config.yml''であり、[[Plugin YAML|plugin.yml]]と同一の場所に配置されている必要があります。 | |
− | + | プラグインのデータフォルダ配下の''config.yml''をデフォルト値で上書きしたい場合は、JavaPluginクラスの''saveDefaultConfig()''メソッドを呼び出す必要があります。既存のファイルを上書きしたくない場合は、copyDefaultsオプションにtrueを設定します。 | |
− | |||
− | + | 動的な値をデフォルト値とする場合、addDefaults(Map<String,Object>)や'''addDefault(String, Object)'''のようにコーディングする事で実現できます。 | |
− | + | 特殊なケースとして、新規のデフォルト値を既存の''config.yml''に追加したい場合は、copyDefaultsにtrueをセットします。 | |
− | + | <blockquote><source lang="java">getConfig().options().copyDefaults(true)</source></blockquote> | |
− | < | + | {{warning}} '''訳者註:とても重要''' '''デフォルトのconfig.ymlには、日本語のようなマルチバイトを含めないようにしてください!'''<br> |
+ | config.ymlに ShiftJISで日本語を含めたプラグインは、Windowsでしか正常に起動しなくなります。<br> | ||
+ | 逆に、UTF-8N(BOM無し) で日本語を含めたプラグインは、MacintoshとLinuxでしか正常に起動しなくなります。<br> | ||
− | |||
− | |||
− | |||
=== コンフィグ値の取得 === | === コンフィグ値の取得 === | ||
122行目: | 122行目: | ||
利用例: <blockquote><source lang="java"> | 利用例: <blockquote><source lang="java"> | ||
− | // | + | // setting a boolean value |
this.getConfig().set("path.to.boolean", true); | this.getConfig().set("path.to.boolean", true); | ||
− | // | + | // setting a String |
− | this.getConfig().set("path.to.string", | + | String string = "Hello World!"; |
+ | this.getConfig().set("path.to.string", stringValue); | ||
− | // | + | // Setting a List of Strings |
− | // | + | // The List of Strings is first defined in this array |
− | String[] listOfStrings = {" | + | String[] listOfStrings = {"Hello World", "Welcome to Bukkit", "Have a Good Day!"}; |
− | this.getConfig().set("path.to.list", Arrays.asList(listOfStrings | + | this.getConfig().set("path.to.list", Arrays.asList(listOfStrings); |
− | // | + | // Setting a vector |
+ | // event is assumed to be an existing event inside an "onEvent" method. | ||
Vector vector = event.getPlayer().getLocation().toVector(); | Vector vector = event.getPlayer().getLocation().toVector(); | ||
this.getConfig().set("path.to.vector", vector); | this.getConfig().set("path.to.vector", vector); | ||
− | // | + | // Erasing a value |
− | this.getConfig().set("path.to. | + | this.getConfig().set("path.to.value", null);</source></blockquote><br> |
− | </source></blockquote> | + | |
==== HashMapの活用 ==== | ==== HashMapの活用 ==== | ||
145行目: | 147行目: | ||
また、HashMapはキーがString型、値が''ConfigurationSerializable''を実装したデータ型でなければなりません。 | また、HashMapはキーがString型、値が''ConfigurationSerializable''を実装したデータ型でなければなりません。 | ||
<blockquote><source lang="java">createSection (String path, Map< String, Object > map)</source></blockquote> | <blockquote><source lang="java">createSection (String path, Map< String, Object > map)</source></blockquote> | ||
+ | |||
=== コンフィグファイルのセーブ === | === コンフィグファイルのセーブ === | ||
154行目: | 157行目: | ||
<blockquote><source lang="java">this.reloadConfig();</source></blockquote> | <blockquote><source lang="java">this.reloadConfig();</source></blockquote> | ||
− | + | <!-- | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <!-- | ||
== 応用 == | == 応用 == | ||
361行目: | 343行目: | ||
// もしconfig.ymlが存在しないなら、既定のconfig.ymlをコピーします。 | // もしconfig.ymlが存在しないなら、既定のconfig.ymlをコピーします。 | ||
this.saveDefaultConfig(); | this.saveDefaultConfig(); | ||
− | + | ||
// 新しいリスナーを登録します。 | // 新しいリスナーを登録します。 | ||
getServer().getPluginManager().registerEvents(new Listener() { | getServer().getPluginManager().registerEvents(new Listener() { | ||
− | + | ||
@EventHandler | @EventHandler | ||
− | public | + | public playerJoin(PlayerJoinEvent event) { |
// プレイヤーがサーバーに参加したときに、config.ymlに書かれたメッセージを送ります。 | // プレイヤーがサーバーに参加したときに、config.ymlに書かれたメッセージを送ります。 | ||
event.getPlayer().sendMessage(SimpleMOTD.this.getConfig().getString("message")); | event.getPlayer().sendMessage(SimpleMOTD.this.getConfig().getString("message")); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
}, this); | }, this); | ||
380行目: | 356行目: | ||
// rulesコマンドのCommandExecutorを登録します。 | // rulesコマンドのCommandExecutorを登録します。 | ||
this.getCommand("rules").setExecutor(new CommandExecutor() { | this.getCommand("rules").setExecutor(new CommandExecutor() { | ||
− | + | ||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { | public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { | ||
// コマンド実行時にコマンド実行者へ、config.ymlのrulesの内容を送ります。 | // コマンド実行時にコマンド実行者へ、config.ymlのrulesの内容を送ります。 | ||
List<String> rules = SimpleMOTD.this.getConfig().getStringList("rules"); | List<String> rules = SimpleMOTD.this.getConfig().getStringList("rules"); | ||
− | for (String s : rules) | + | for (String s : rules) |
sender.sendMessage(s); | sender.sendMessage(s); | ||
} | } | ||
402行目: | 378行目: | ||
- Respect others | - Respect others | ||
- Have Fun | - Have Fun | ||
− | |||
− | |||
− | |||
</source> | </source> |