に私は、各プレーヤーのためのHashMapでスコアをカウント:1.11 Javaのスピゴット/ Bukkitプログラミング - 保存/読み込みのHashMap Config.yml
public Map<String, Integer> PScore = new HashMap<String, Integer>();
今、私はHashMapを保存してロードすると、コンフィグレーションで。 Configは既存で、他のvaribalesにはUseで使用します。
これは、問題を解決するために、私の多くの試みだった:
public void saveHash()
{
for (String string : PScore.keySet())
{
this.getConfig().set("score.pscore", string);
this.saveConfig();
}
}
public void loadHash()
{
}
しかしConfigで私が唯一の取得:
score:
pscore: JackerNils
をロードする機能が空であるので、何も搭載しながら、もちろん起こりません。保存と読み込み機能がonEnable()とonDisable()によって制御されている
// EDIT:このメソッドは、現在正常に動作しますが、見ている
public Map<String, Integer> PScore = new HashMap<String, Integer>();
public void saveHash()
{
List<String> s = this.getConfig().getStringList("PScore");
for(String str : PScore.keySet())
{
s.add(str + ":" + PScore.get(str));
}
this.getConfig().set("PScore", s);
this.saveConfig();
}
public void loadHash()
{
List<String> s = this.getConfig().getStringList("PScore");
for(String str: s)
{
String words[] = str.split(":");
PScore.put(words[0], Integer.parseInt(words[1]));
}
}
Configが何をするか:
PScore:
- JackerNils:5
- JackerNils:19
これは表示されますか?それを上書きするのではなく、繰り返します。
私の編集を見てください!この例ではすべて正常に動作しますが、保存はちょっと間違っています。 – JackerNils
getStringListを使用する代わりに、新しいarraylistを作成してみてください。今すぐリストを取得してから、リストのすべての値をリストに再度追加して、重複しています。試してみてくださいリスト s = new ArrayList (); ' –
Squiddie
私のために働いたJoop! ;)助けてくれてありがとう! – JackerNils