3

初めての bukkit プラグインを作成しています。を表す YAML ファイルをプログラムで作成したいと思いますHashMap。このデータ構造を設定および取得するにはどうすればよいですか?

HashMapパラメータは次のよう<Signature, Location>になります。はSignature4 つの整数を格納するクラスで、Locationorg.bukkit.Location

YAML ファイルを次のようにしたいと思いますが、この構造が最適かどうかはわかりません。

MyPlugin:
    ListOfData:
        - signature: [1,2,3,4]    # this is a unique set of 4 integers
          location: [122,64,254]  # non-unique set of 3 integers
        - signature: [4,2,1,2]
          location: [91,62,101]
        - signature: [3,3,1,3]
          location: [190,64,321]

Signature必要に応じて変更でき、必要に応じてラッパーを作成できますLocation

ありがとう!

4

1 に答える 1

2

これは推奨される解決策です。それが最善の方法かどうかはわかりません...:) これを yaml 構造と見なすことができます。

MyPlugin:
    ListOfData:
        '[1,2,3,4]': '[122,64,254]'
        '[4,2,1,2]': '[91,62,101]'
        '[3,3,1,3]': '[190,64,321]'
        anothersignature:anotherlocation
        ...

これにより、YAMLConfiguration からハッシュ マップを読み取る通常の手法を使用して "ListOfData" を読み取ることができます (以下を参照)。

ファイルからの受信情報を <String, String> の HashMap として扱い、そこから必要な変換 (たとえば、122,64,254 を場所に変換) を行う必要があります。

HashMap を読み取る場合:

this.getConfig().getConfigurationSection("path.to.map").getValues(false)

HashMap を書き込む場合 (ディスクに書き込むには saveConfig() を呼び出す必要があります):

this.getConfig().createSection("path.to.map", MyMap)

ここにはいくつかの詳細と微妙な点があります。これらを注意深く読む価値があります (同じページですが、連続していないセクションが異なります)。

http://wiki.bukkit.org/Configuration_API_Reference#HashMaps http://wiki.bukkit.org/Configuration_API_Reference#HashMaps_2

于 2013-07-22T17:50:29.313 に答える