- Баллы
- 61
- Имя в Minecraft
- sidey383
В принципе проблема ясна, но казалось бы, её уже решили много раз и это уже не актуально, а нет.
Вот, что я нашёл в документации.
https://worldguard.enginehub.org/en/latest/developer/regions/protection-query/
После этого я подправил это все под себя, но eclipse (как и сервер) выдали мне ошибки.
Часть я поправил. Получилось что-то в этом духе.
Массив создавался из-за аргумента StateFlag... Который по каким-то непонятным мне причинам не хотел принимать Flags.BUILD. Далее loc. В методе она нужна в виде com.sk89q.worldedit.util.Location. Может кто знает как такую получить или как ещё можно проверить права игрока на разрушение блока.
Вот, что я нашёл в документации.
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
}
Часть я поправил. Получилось что-то в этом духе.
Код:
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;