Помогите Своё изображение на item Map

  • Автор темы Автор темы NoTitles
  • Дата начала Дата начала

NoTitles

Активный участник
Пользователь
Баллы
66
Здравствуйте, в общем-то, как поместить на карту своё изображение?

Спасибо.
 
Создаёшь Listener открытия карты:
Код:
@EventHandler
    public void onMapInitialise(MapInitializeEvent e) {
        MapView view = e.getMap();

        view.getRenderers().clear();

        view.addRenderer(new Renderer());

    }

И добавляешь класс, который нарисует тебе все что хочешь, либо скопирует картинку по ссылке:
Код:
public class Renderer extends MapRenderer {
        @Override
        public void render(MapView view, MapCanvas canvas, Player player) {
            try {
                BufferedImage image = ImageIO.read(new URL("https://i.imgur.com/sEf9biY.jpg"));
                canvas.drawImage(0, 0, image);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

Дальше надеюсь сам разберёшься
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/map/MapRenderer.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/map/MapCanvas.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/server/MapInitializeEvent.html
 
Создаёшь Listener открытия карты:
Код:
@EventHandler
    public void onMapInitialise(MapInitializeEvent e) {
        MapView view = e.getMap();

        view.getRenderers().clear();

        view.addRenderer(new Renderer());

    }

И добавляешь класс, который нарисует тебе все что хочешь, либо скопирует картинку по ссылке:
Код:
public class Renderer extends MapRenderer {
        @Override
        public void render(MapView view, MapCanvas canvas, Player player) {
            try {
                BufferedImage image = ImageIO.read(new URL("https://i.imgur.com/sEf9biY.jpg"));
                canvas.drawImage(0, 0, image);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

Дальше надеюсь сам разберёшься
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/map/MapRenderer.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/map/MapCanvas.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/server/MapInitializeEvent.html
Thank
 
@Goldfinch, такой вопрос:
Как установить картинку на карту один раз?
 
@Goldfinch, такой вопрос:
Как установить картинку на карту один раз?

Не совсем понял вопроса, но видимо ты хочешь сделать много разных картинок. Я так далеко не копал, но скорее всего тебе придётся записывать каждый рендер. Нашёл на гитхабе вот такой проект, может чем-то поможет:

https://github.com/JorelAli/ImageMaps
 
Не совсем понял вопроса, но видимо ты хочешь сделать много разных картинок. Я так далеко не копал, но скорее всего тебе придётся записывать каждый рендер. Нашёл на гитхабе вот такой проект, может чем-то поможет:

https://github.com/JorelAli/ImageMaps
Извиняюсь, некорректно выразился. Я хочу сделать динамическую картинку на карте и делать динамику (изменять её содержимое), когда я хочу.
А метод public void render(MapView view, MapCanvas canvas, Player player) {} вызывается бесконечно, пока сервер не перестанет работать.
 
Извиняюсь, некорректно выразился. Я хочу сделать динамическую картинку на карте и делать динамику (изменять её содержимое), когда я хочу.
А метод public void render(MapView view, MapCanvas canvas, Player player) {} вызывается бесконечно, пока сервер не перестанет работать.
Добавляете ID карты и игрока в список тех, кому не надо рендерить карту повторно и скипаете перерисовку.
Java:
    public void render(MapView mv, MapCanvas mc, Player p)
    {
        if(needToRedraw(p, mv.getId()))
        {
            mc.drawImage(0, 0, images.get(mv.getId()).image);
            addToRendered(p, mv.getId());
        }
    }
 
Добавляете ID карты и игрока в список тех, кому не надо рендерить карту повторно и скипаете перерисовку.
Java:
    public void render(MapView mv, MapCanvas mc, Player p)
    {
        if(needToRedraw(p, mv.getId()))
        {
            mc.drawImage(0, 0, images.get(mv.getId()).image);
            addToRendered(p, mv.getId());
        }
    }
Спасибо
 
Назад
Верх