Помогите [Решено] Проверка прав игрока на разрушение блоков WG 7.0.1 (WorldEdit)

Статус
Закрыто для дальнейших ответов.

sidey383

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
sidey383
В принципе проблема ясна, но казалось бы, её уже решили много раз и это уже не актуально, а нет.
Вот, что я нашёл в документации.
https://worldguard.enginehub.org/en/latest/developer/regions/protection-query/
Код:
LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
Location loc = new Location(world, 10, 64, 100);
RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
RegionQuery query = container.createQuery();

if (!query.testState(loc, localPlayer, Flags.BUILD)) {
    // Can't build
}
После этого я подправил это все под себя, но eclipse (как и сервер) выдали мне ошибки.
Часть я поправил. Получилось что-то в этом духе.
Код:
org.bukkit.Location loc = e.getBlock().getLocation();
                        LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(e.getPlayer());
                        RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
                        RegionQuery query = container.createQuery();
                        StateFlag[] flag = new StateFlag[1];
                        flag[0] = Flags.BUILD;
                        if (!query.testState(loc, localPlayer,flag))return;
Массив создавался из-за аргумента StateFlag... Который по каким-то непонятным мне причинам не хотел принимать Flags.BUILD. Далее loc. В методе она нужна в виде com.sk89q.worldedit.util.Location. Может кто знает как такую получить или как ещё можно проверить права игрока на разрушение блока.
 
Код:
    public boolean isFlagAllows(Player player, Location location, StateFlag flag) {
        return RG.testState(BukkitAdapter.adapt(location), WG.wrapPlayer(player), flag);
    }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх