Помогите Не могу получить мир

VulGAR Power

Новичок
Пользователь
Баллы
11
В общем-то, продолжаю делать тот же плагин и теперь не понимаю следующее.

Код:
Polygonal2DRegion reg_points = new Polygonal2DRegion(WorldGuard.getInstance().getPlatform().getRegionContainer().get(Bukkit.getWorld("world")).getRegion(args[12]));

Ошибка:
Код:
'get(com.sk89q.worldedit.world.World)' in 'com.sk89q.worldguard.protection.regions.RegionContainer' cannot be applied to '(org.bukkit.World)'

Насколько понял, ему не нравится, что мир от бакита, а не от ворлдедита. Так и не нашел как сделать мир именно от ворлдедита.

Также я в принципе не понимаю как работает мир даже от бакита. Нужно просто написать world, чтобы выбрался обычный мир? Или нужно написать название папки мира?
 
Кастануть в мир WorldEdit'a - BukkitAdapter.adapt(world);
 
Player player = (Player) sender;
World world = player.getWorld();
Код:
Player player = (Player) sender;
World world = player.getWorld();
Polygonal2DRegion reg_points = new Polygonal2DRegion(WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world)).getRegion(args[12]));

Теперь понял, но вот ошибку все равно выдает:

Код:
'get(com.sk89q.worldedit.world.World)' in 'com.sk89q.worldguard.protection.regions.RegionContainer' cannot be applied to '(com.sk89q.worldedit.world.World)'
 
Есть идеи с чем это может быть связано? А то ошибка будто бы совсем без смысла
 
Есть идеи с чем это может быть связано? А то ошибка будто бы совсем без смысла
Ну есть. Всё даже слишком просто, если честно. WorldGuard работает с bukkit миром, а не миром worldedit.
 
Ну есть. Всё даже слишком просто, если честно. WorldGuard работает с bukkit миром, а не миром worldedit.
Вот только если передать мир баккит, то выводит это:
Код:
'get(com.sk89q.worldedit.world.World)' in 'com.sk89q.worldguard.protection.regions.RegionContainer' cannot be applied to '(org.bukkit.World)'
 
Вот только если передать мир баккит, то выводит это:
Код:
'get(com.sk89q.worldedit.world.World)' in 'com.sk89q.worldguard.protection.regions.RegionContainer' cannot be applied to '(org.bukkit.World)'
Эмм...
1) Это максимально странно.
2) Можно вопрос? Что ты вообще пытаешься сделать?
 
Да, тоже не понимаю в чем прикол, поэтому написал сюда.
Эта строчка, которую я скидывал выше, делает копию региона Polygonal2DRegion, она такая длинная, потому что я нахожу регион по его названию, которое передаю в команду, поэтому у меня указано в конце args[12] - это название региона.
 
Последнее редактирование:
Да, тоже не понимаю в чем прикол, поэтому написал сюда.
Эта строчка, которую я скидывал выше, делает копию региона Polygonal2DRegion, она такая длинная, потому что я нахожу регион по его названию, которое передаю в команду, поэтому у меня указано в конце args[12] - это название региона.

Хмм.. А разве ProtectedPolygonalRegion можно кастить к
Polygonal2DRegion ?? Конструктор Polygonal2DRegion просто принимает как параметр либо себе подобный тип либо мир либо мир и точки

Типо RegionContainer из wg в любом случае вернёт тебе ProtectedRegion.. Сомневаюсь что оно будет работать :D
А так можешь глянуть импорты / либы.. в intelliJIdea так же можно посмотреть и тип который требует метод.. И от него уже пахать.

И можно попросить скинуть весь этот кусочек кода?
 
Последнее редактирование:
А где там ProtectedPolygonalRegion?
Мне на самом деле все равно как это будет происходить, мне лишь нужна копия региона.
Код:
@Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        sender.sendMessage(ChatColor.GREEN + "Захватываем Тайл");

        // args[0-11] - список координат, args[12] - регион, который нужно изменить

        // Если аргументов недостаточно, то пишется, что я че-то забыл написать
        if(args.length < 13) {
            sender.sendMessage(ChatColor.BLUE + "Ну шо ж ты, забыл что ли?");
            sender.sendMessage(ChatColor.BLUE + "/mt *координаты подряд* 'region_name'");
            return true;
        }

        // Точки, которые мы вводим в команду
        List<BlockVector2> pointsToCapture = new ArrayList<>();

        // Добавляем указанные точки в список для последующего использования
        int i = 0;
        while(i < 13) {
            int x = Integer.parseInt(args[i]);
            i += 1;
            int z = Integer.parseInt(args[i]);
            i += 1;
            int y = 0;

            pointsToCapture.add(toBlockVector2(x,z));
        }

        Player player = (Player) sender;
        World world = player.getWorld();
        Polygonal2DRegion reg_points = new Polygonal2DRegion(WorldGuard.getInstance().getPlatform().getRegionContainer().get(world).getRegion(args[12]));

        // Список точек уже существующего региона
        List<BlockVector2> pointList = reg_points.getPoints();

Здесь, понятное дело, не дописано. Основной упор сейчас на другую функцию делаю
 
А где там ProtectedPolygonalRegion?
Мне на самом деле все равно как это будет происходить, мне лишь нужна копия региона.
Код:
@Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        sender.sendMessage(ChatColor.GREEN + "Захватываем Тайл");

        // args[0-11] - список координат, args[12] - регион, который нужно изменить

        // Если аргументов недостаточно, то пишется, что я че-то забыл написать
        if(args.length < 13) {
            sender.sendMessage(ChatColor.BLUE + "Ну шо ж ты, забыл что ли?");
            sender.sendMessage(ChatColor.BLUE + "/mt *координаты подряд* 'region_name'");
            return true;
        }

        // Точки, которые мы вводим в команду
        List<BlockVector2> pointsToCapture = new ArrayList<>();

        // Добавляем указанные точки в список для последующего использования
        int i = 0;
        while(i < 13) {
            int x = Integer.parseInt(args[i]);
            i += 1;
            int z = Integer.parseInt(args[i]);
            i += 1;
            int y = 0;

            pointsToCapture.add(toBlockVector2(x,z));
        }

        Player player = (Player) sender;
        World world = player.getWorld();
        Polygonal2DRegion reg_points = new Polygonal2DRegion(WorldGuard.getInstance().getPlatform().getRegionContainer().get(world).getRegion(args[12]));

        // Список точек уже существующего региона
        List<BlockVector2> pointList = reg_points.getPoints();

Здесь, понятное дело, не дописано. Основной упор сейчас на другую функцию делаю

Я думаю, тебе надо получить просто регион этот, например:
Код:
ProtectedPolygonalRegion rg = (ProtectedPolygonalRegion)WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(player.getWorld())).getRegion("region");

rg.getPoints();
И у него уже попробовать получить точки.

Хотя про миры вопрос всё ещё открытый, домой доберусь буду тестить и скажу в чём траблы.
 
Я думаю, тебе надо получить просто регион этот, например:
Код:
ProtectedPolygonalRegion rg = (ProtectedPolygonalRegion)WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(player.getWorld())).getRegion("region");

rg.getPoints();
И у него уже попробовать получить точки.

Хотя про миры вопрос всё ещё открытый, домой доберусь буду тестить и скажу в чём траблы.
Хорошо, спасибо, попробую
 
Я думаю, тебе надо получить просто регион этот, например:
Код:
ProtectedPolygonalRegion rg = (ProtectedPolygonalRegion)WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(player.getWorld())).getRegion("region");

rg.getPoints();
И у него уже попробовать получить точки.

Хотя про миры вопрос всё ещё открытый, домой доберусь буду тестить и скажу в чём траблы.
Те же самые ошибки, если адаптировать, то пишет про то, что ему не нравится мир worldedit, а если нет, то пишет, что ему не нравится мир баккита. Теперь почему-то еще и списки начали чудить:
Код:
Incompatible types. Found: 'java.util.List<com.sk89q.worldedit.math.BlockVector2>', required: 'java.util.List<com.sk89q.worldedit.math.BlockVector2>'
Опять какая-то непонятная ошибка, которая говорит, что этот список не BlockVector2, хотя вроде как делал именно такой и именно такой ему и нужен. Парад странностей, ну либо просто intelij не предусматривает такое, даже не знаю как такое исправить.
 
Те же самые ошибки, если адаптировать, то пишет про то, что ему не нравится мир worldedit, а если нет, то пишет, что ему не нравится мир баккита. Теперь почему-то еще и списки начали чудить:
Код:
Incompatible types. Found: 'java.util.List<com.sk89q.worldedit.math.BlockVector2>', required: 'java.util.List<com.sk89q.worldedit.math.BlockVector2>'
Опять какая-то непонятная ошибка, которая говорит, что этот список не BlockVector2, хотя вроде как делал именно такой и именно такой ему и нужен. Парад странностей, ну либо просто intelij не предусматривает такое, даже не знаю как такое исправить.

У меня есть только 1 вариант и он максимально бредовый!
WG внутри либ включает в себя и WE. ВОЗМОЖНО он жалуется на то что они как то из разных либ либо что-то такое..

Потому что никакого логичного объяснения решения данной проблемы нет и быть не может.
 
У меня есть только 1 вариант и он максимально бредовый!
WG внутри либ включает в себя и WE. ВОЗМОЖНО он жалуется на то что они как то из разных либ либо что-то такое..

Потому что никакого логичного объяснения решения данной проблемы нет и быть не может.
Может быть). Буду дальше пытаться
 
Назад
Верх