Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Проблема с API WorldEditа 7.2.0

Метки:
Теги Теги
api worldedit

capybebra

Новичок
Баллы
16
Имя в Minecraft
mmmiiikk
Пытаюсь сделать метод, в котором схематика из папки плагина будет спавниться на рандомных координатах.

Проблема:
в 11 строчке выскакивает ошибка: 'getEditSession(com.sk89q.worldedit.world.World, int)' in 'com.sk89q.worldedit.EditSessionFactory' cannot be applied to '(org.bukkit.World, int)'

код:

private void buildSchematic(File schemFile) {
File schemFile1 = new File(getDataFolder(), "CapyZamok/ebatzamok.schem");
try {
ClipboardFormat format = ClipboardFormats.findByFile(schemFile1);
try (ClipboardReader reader = format.getReader(new FileInputStream(schemFile1))) {
Clipboard clipboard = reader.read();
World world = getServer().getWorld("world");
Random random = new Random();
int x = random.nextInt(10000) - 5000;
int z = random.nextInt(10000) - 5000;
int y = world.getHighestBlockYAt(x, z);
try (EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1)) {
Operation operation = new ClipboardHolder(clipboard)
.createPaste(editSession)
.to(BlockVector3.at(x, y, z))
.ignoreAirBlocks(false)
.build();
Operations.complete(operation);
} catch (WorldEditException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
 
'getEditSession(com.sk89q.worldedit.world.World, int)' in 'com.sk89q.worldedit.EditSessionFactory' cannot be applied to '(org.bukkit.World, int)'
У тебя прям в ошибке написано, что в методе getEditSession() требуется мир из WE, а ты передаёшь мир из баккита. Для конвертации различных объектов из баккита в WE и обратно используется класс BukkitAdapter:
https://docs.enginehub.org/javadoc/...it/BukkitAdapter.html#adapt(org.bukkit.World)
 
У тебя прям в ошибке написано, что в методе getEditSession() требуется мир из WE, а ты передаёшь мир из баккита. Для конвертации различных объектов из баккита в WE и обратно используется класс BukkitAdapter:
https://docs.enginehub.org/javadoc/...it/BukkitAdapter.html#adapt(org.bukkit.World)
А как это должно выглядеть? Не очень понимаю что мне с этим делать :/
 
Изучай основы Java, иначе так и будешь элементарнейшие вопросы задавать.
getEditSession(BukkitAdapter.adapt(world), -1)
спасибо <3, я просто небольшой код для своих нужд написать хотел, не разбираюсь в джаве
 

Поделиться этой страницей

Назад
Верх