データ操作
166字程度1分以内
2025-08-21
概要
領地は厳格なデータ一貫性が求められるため、データを不用意に変更すると重大な問題が発生する可能性があります。 データの一貫性を保つため、DominionDTO
GroupDTO
MemberDTO
オブジェクトのデータ変更は、 原則としてAPIが提供するProviderメソッドを通じて行う必要があります。
これらのProviderメソッドは、データ変更前に適合性をチェックし、変更後に対応するイベントを発火させることで、データの一貫性と完全性を保証します。
例えば、領地の名前を変更したい場合:
import java.util.concurrent.CompletableFuture;
class ChangeDominionNameExample {
public void changeDominionName(DominionDTO dominion, String newName) {
CompletableFuture<DominionDTO> changed = DominionProviderHandler.getInstance().renameDominion(
Bukkit.getConsoleSender(),
dominion,
newName
);
if (changed.get() == null) {
// change failed
} else {
// change success
}
}
}
操作権限
すべてのProviderが提供するメソッドには、操作を実行する権限を示す CommandSender
パラメータが必要です。
このパラメータは操作の権限や実行元を決定します。たとえば、プレイヤーとしてデータ操作をシミュレートしたい場合は Player
オブジェクトを渡します。 基本的なチェック(例:権限チェック)を無視して操作したい場合は、Bukkit.getConsoleSender()
を渡すことで、コンソールの最高権限操作をシミュレートできます。