2017-05-06 5 views
0

私のプラグインに格納されているWE Selectionクラスの変数はいくつかあります。しかし、私はプラグインが閉じられた/再起動した後にそれらを使用したいと思います。そのため、選択値をYAMLファイルに保存してから、onEnableに再度ロードする必要があります。YAMLファイルへの変数/オブジェクトの保存(Spigot)

private Selection sboss; 
private Selection s1; 
private Selection s2; 
private Selection s3; 
private Selection s4; 

どうすればいいですか?

答えて

0

YAMLファイルに保存できるのは、配列とプリミティブ型だけなので、Selectionオブジェクト全体を保存することはできません。あなたが望むものに最も近いものは、オブジェクトの値を個別に保存してから、新しいSelectionをインスタンス化することによってそれらを設定することです。

1

選択をシリアル化してから、YAMLファイルにStringとして保存する必要があります。 onEnableで同じ選択を取り戻すには、文字列を逆シリアル化するメソッドを記述する必要があります。

たとえば、CuboidSelectionは、Worldと2つのLocationがインスタンス化される必要があります。 、あなたはYAMLファイルから文字列を取得CuboidSelectionをデシリアライズ:でそれを分割し、Bukkit#getWorld(worldName)を経由して世界を取得し、座標を解析するにworldname:x1:y1:z1:x2:y2:z2

:あなたはこのような文字列にCuboidSelectionをシリアル化できます。これで、2つの場所を作成し、それらをWorldと共に使用してCuboidSelectionを元に戻すことができます。

関連する問題