1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите WorldEdit отсутсвует schematic, что делать?

Тема в разделе "Разработка плагинов для новичков", создана пользователем ViperG, 18 дек 2024.

Метки:
  1. Автор темы
    ViperG

    ViperG Новичок

    Баллы:
    6
    Имя в Minecraft:
    ViperG
    (Полный 0 в разработке плагинов, учусь)
    Создаю плагин для ивентов со вставкой схематик и своими нуждами. но столкнулся с проблемой что не находит импорт schematic. Весь интернет облазил всего его используют. код написан вручную + помощь gpt.

    Версия майна 1.18.2
    Версия WorldEdit 7.2.20

    import com.sk89q.worldedit.schematic.Schematic;

    вот класс ивента:

    *
    code(
    package ru.viperg.deadmineevent;

    import com.sk89q.worldedit.WorldEdit;
    import com.sk89q.worldedit.bukkit.WorldEditPlugin;
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.block.Chest;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryOpenEvent;
    import org.*********ventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;
    import org.bukkit.scoreboard.Team;
    import com.sk89q.worldedit.world.World;
    import com.sk89q.worldedit.bukkit.BukkitAdapter;
    import com.sk89q.worldedit.EditSession;
    import com.sk89q.worldedit.WorldEdit;
    import com.sk89q.worldedit.WorldEditException;
    import com.sk89q.worldedit.bukkit.BukkitWorld;
    import com.sk89q.worldedit.schematic.Schematic;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    public class EventListener implements Listener {

    private final JavaPlugin plugin;
    private boolean eventActive = false;
    private long eventDuration = 600; // Время ивента в секундах

    public EventListener(JavaPlugin plugin) {
    this.plugin = plugin;
    }

    public void startEvent(Player player) {
    if (eventActive) {
    player.sendMessage("Ивент уже активен!");
    return;
    }

    eventActive = true;

    Location spawnLocation = new Location(player.getWorld(), 29, 92, 124); // Замените на координаты вашего спавна
    spawnStructure(spawnLocation);


    ScoreboardManager manager = Bukkit.getScoreboardManager();
    Scoreboard scoreboard = manager.getNewScoreboard();
    Team eventTeam = scoreboard.registerNewTeam("event");


    for (Player p : Bukkit.getOnlinePlayers()) {
    eventTeam.addEntry(p.getName());
    }

    // Отсчет времени ивента
    new BukkitRunnable() {
    int remainingTime = (int) eventDuration;

    @Override
    public void run() {
    if (remainingTime <= 0) {
    for (Player p : Bukkit.getOnlinePlayers()) {
    eventTeam.removeEntry(p.getName());
    }
    player.sendMessage("Ивент завершен!");
    eventActive = false;
    this.cancel();
    return;
    }
    remainingTime--;
    }
    }.runTaskTimer(plugin, 0, 20);
    }

    private void spawnStructure(Location location) {
    // Логика спавна постройки из схемы
    // Например:
    WorldEdit worldEdit = WorldEdit.getInstance();
    World weWorld = BukkitAdapter.adapt(location.getWorld());
    try (EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(weWorld, -1)) {
    InputStream inputStream = plugin.getResource("schem/test.schem");
    if (inputStream == null) {
    System.out.println("Схема не найдена!");
    return;
    }

    // Загрузка схемы
    SchematicFormat format = SchematicFormat.getFormat(inputStream);
    Schematic schematic = format.load(inputStream);

    // Вставка схемы в мир
    schematic.paste(editSession, BukkitAdapter.adapt(location), true);
    editSession.flushQueue(); // Завершение редактирования
    } catch (IOException e) {
    e.printStackTrace();
    }

    // Создание сундуков
    for (int i = 0; i < 5; i++) {
    Block block = location.clone().add(i, 0, 0).getBlock();
    block.setType(Material.CHEST);
    Chest chest = (Chest) block.getState();
    chest.getInventory().addItem(new ItemStack(Material.DIAMOND, 1));
    }
    }

    @EventHandler
    public void onChestOpen(InventoryOpenEvent event) {
    if (eventActive) { // Если ивент активен, отменяем открытие сундуков
    event.setCancelled(true);
    }
    }
    }
    )
    *
     

    Вложения:

    Последнее редактирование: 18 дек 2024
  2. Sneyzi

    Sneyzi Активный участник Пользователь

    Баллы:
    76
    открой исходники worldedit и посмотри как там вставляется схематик
     
  3. Автор темы
    ViperG

    ViperG Новичок

    Баллы:
    6
    Имя в Minecraft:
    ViperG
    Открывал уже, нету ничего с ним связанного. upload_2024-12-18_9-42-30.png
     
  4. Автор темы
    ViperG

    ViperG Новичок

    Баллы:
    6
    Имя в Minecraft:
    ViperG
    это worldedit core. и в worldedit-bukkit нету ничего. уже столько ресурсов облазил, но так и не получается вставить схему
    upload_2024-12-18_9-43-57.png
     
  5. Sneyzi

    Sneyzi Активный участник Пользователь

    Баллы:
    76
  6. Автор темы
    ViperG

    ViperG Новичок

    Баллы:
    6
    Имя в Minecraft:
    ViperG

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