Операции с данными
Около 168 словМеньше 1 минуты
2025-08-21
Введение
Из-за строгих требований к согласованности данных в домене, произвольное изменение некоторых данных может привести к серьезным проблемам. Для обеспечения согласованности данных, любые изменения объектов DominionDTO
, GroupDTO
, MemberDTO
должны выполняться исключительно через методы Provider, предоставляемые API.
Эти методы 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()
, чтобы имитировать выполнение от имени консоли с максимальными правами.