提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
83行目: 83行目:
 
=== デフォルト値 ===
 
=== デフォルト値 ===
  
あなたのプラグインの設定ファイル''config.yml''は、プラグイン利用者のために、デフォルト値を設定するようにしてください。
+
''config.yml''のデフォルト値は、プラグインのユーザに提供されます。
 +
設定ファイルが、プラグインのデータディレクトリ配下に存在しない, 空である, キーが無い・・・といった状態である場合には、プラグインのJarファイル内に定義された値が、デフォルト値としてロードされます。
  
もし''config.yml''が、プラグインのデータフォルダ配下に存在しない, 空である, キーが無い・・・といった状態である場合には、プラグインのJarファイル内に含まれる''config.yml''に定義された値が、デフォルト値として使用されます。
+
デフォルト値は、データフォルダ配下に存在する''config.yml''が提供しようと意図していた内容と、まったく同一な内容のYAML形式ファイルによって提供されるべきで、そのファイル名は''config.yml''であり、[[Plugin YAML|plugin.yml]]と同一の場所に配置されている必要があります。
  
デフォルト値として使用する''config.yml''は、Jarファイルのトップに配置されるようにしてください。
+
プラグインのデータフォルダ配下の''config.yml''をデフォルト値で上書きしたい場合は、JavaPluginクラスの''saveDefaultConfig()''メソッドを呼び出す必要があります。既存のファイルを上書きしたくない場合は、copyDefaultsオプションにtrueを設定します。
[[Plugin YAML|plugin.yml]]と同一の場所になります。
 
  
プラグインのデータフォルダ配下の''config.yml''をデフォルト値で上書きしたい場合は、JavaPluginクラスの''saveDefaultConfig()''メソッドを呼び出してください。
+
動的な値をデフォルト値とする場合、addDefaults(Map<String,Object>)や'''addDefault(String, Object)'''のようにコーディングする事で実現できます。
  
<blockquote><source lang="java">this.saveDefaultConfig()</source></blockquote>
+
特殊なケースとして、新規のデフォルト値を既存の''config.yml''に追加したい場合は、copyDefaultsにtrueをセットします。
  
データフォルダにある''config.yml''の既存の設定値を上書きしたくないが、Jarファイル内にある''config.yml''に定義されている新しいキーと値のペアを追加したい場合は、copyDefaults(true) を実行してください。
+
<blockquote><source lang="java">getConfig().options().copyDefaults(true)</source></blockquote>
  
<blockquote><source lang="java">this.getConfig().options().copyDefaults(true)</source></blockquote>
+
{{warning}} '''訳者註:とても重要''' '''デフォルトのconfig.ymlには、日本語のようなマルチバイトを含めないようにしてください!'''<br>
 +
config.ymlに ShiftJISで日本語を含めたプラグインは、Windowsでしか正常に起動しなくなります。<br>
 +
逆に、UTF-8N(BOM無し) で日本語を含めたプラグインは、MacintoshとLinuxでしか正常に起動しなくなります。<br>
  
<strike>config.ymlに ShiftJISで日本語を含めたプラグインは、Windowsでしか正常に起動しなくなります。</strike><br>
 
<strike>逆に、UTF-8N(BOM無し) で日本語を含めたプラグインは、MacintoshとLinuxでしか正常に起動しなくなります。</strike><br>
 
Bukkit 1.9 以降のバージョンでは、config.yml に日本語などのマルチバイト文字を含めたい場合は、常に UTF-8N(BOM無し) のエンコードで作成してください。
 
  
 
=== コンフィグ値の取得 ===
 
=== コンフィグ値の取得 ===
122行目: 121行目:
  
 
利用例: <blockquote><source lang="java">
 
利用例: <blockquote><source lang="java">
// boolean値をセットします。
+
// setting a boolean value
 
this.getConfig().set("path.to.boolean", true);
 
this.getConfig().set("path.to.boolean", true);
  
// String値をセットします。
+
// setting a String
this.getConfig().set("path.to.string", "みなさんこんにちは!");
+
String string = "Hello World!";
 +
this.getConfig().set("path.to.string", stringValue);
  
// StringのListをセットします。
+
// Setting a List of Strings
// 配列はセットできないので、List<String>型に変換してセットします。
+
// 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);
  
// Vector(Bukkitのクラス)の値をセットします。
+
// 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.boolean", null);
+
this.getConfig().set("path.to.value", null);</source></blockquote><br>
</source></blockquote>  
+
 
  
 
==== HashMapの活用 ====
 
==== HashMapの活用 ====
145行目: 146行目:
 
また、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行目: 156行目:
 
<blockquote><source lang="java">this.reloadConfig();</source></blockquote>
 
<blockquote><source lang="java">this.reloadConfig();</source></blockquote>
  
 
+
<!--  
=== 別の設定ファイルを利用する ===
 
もしあなたが、''config.yml''ではなく、別のYamlファイルを利用したい場合は、YamlConfiguration クラスを使って読み込むことができます。
 
 
 
<blockquote><source lang="java">
 
FileConfiguration data = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "data.yml"));
 
</source></blockquote>
 
 
 
上記のサンプルコードは、データフォルダにある''data.yml''ファイルを読み込んで、FileConfiguration を返します。<br/>
 
もし、データフォルダに''data.yml''が存在しない場合は、空っぽの FileConfiguration が返されます。<br/>
 
 
 
<!-- なんか微妙。この説明、要るかなあ?
 
もしあなたが、Jarファイル内の''data.yml''を読み出したいなら、InputStreamを使って次のようにロードすることが可能です。
 
 
 
<blockquote><source lang="java">
 
FileConfiguration data = YamlConfiguration.loadConfiguration(getResource("data.yml"))
 
</source></blockquote>
 
 
 
This takes the InputStream from getResource, which gets a file embedded in the jar, and retreives a FileConfiguration from that.
 
-->
 
 
 
<!-- 下記の内容は、内容が難しくて、かえって混乱を生むので、いまのところ非表示にしています。
 
 
== 応用 ==
 
== 応用 ==
  
361行目: 342行目:
 
         // もし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 void playerJoin(PlayerJoinEvent event) {
+
             public playerJoin(PlayerJoinEvent event) {
 
                 // プレイヤーがサーバーに参加したときに、config.ymlに書かれたメッセージを送ります。
 
                 // プレイヤーがサーバーに参加したときに、config.ymlに書かれたメッセージを送ります。
 
                 event.getPlayer().sendMessage(SimpleMOTD.this.getConfig().getString("message"));
 
                 event.getPlayer().sendMessage(SimpleMOTD.this.getConfig().getString("message"));
 
                // 特定のプレイヤーだった場合は、追加メッセージを送ります。
 
                if ( SimpleMOTD.this.getConfig().contains("additional." + event.getPlayer().getName()) ) {
 
                    event.getPlayer().sendMessage(SimpleMOTD.this.getConfig().getString(
 
                            "additional." + event.getPlayer().getName()));
 
                }
 
 
             }
 
             }
 
         }, this);
 
         }, this);
380行目: 355行目:
 
         // 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行目: 377行目:
 
   - Respect others
 
   - Respect others
 
   - Have Fun
 
   - Have Fun
additional:
 
  Anna: Hi Anna!
 
  Billy: Hey Billy!
 
 
</source>
 
</source>

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート: