Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Браво, не зналbukkit api
@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();
}
}
}
ThankСоздаёшь 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
@Goldfinch, такой вопрос:
Как установить картинку на карту один раз?
Извиняюсь, некорректно выразился. Я хочу сделать динамическую картинку на карте и делать динамику (изменять её содержимое), когда я хочу.Не совсем понял вопроса, но видимо ты хочешь сделать много разных картинок. Я так далеко не копал, но скорее всего тебе придётся записывать каждый рендер. Нашёл на гитхабе вот такой проект, может чем-то поможет:
https://github.com/JorelAli/ImageMaps
Добавляете ID карты и игрока в список тех, кому не надо рендерить карту повторно и скипаете перерисовку.Извиняюсь, некорректно выразился. Я хочу сделать динамическую картинку на карте и делать динамику (изменять её содержимое), когда я хочу.
А метод public void render(MapView view, MapCanvas canvas, Player player) {} вызывается бесконечно, пока сервер не перестанет работать.
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());
}
}
Метод render и устанавливает, просто не дергай его когда не надо.Как установить картинку на карту один раз?
Он вызывается каждый раз, снова и снова =)Метод render и устанавливает, просто не дергай его когда не надо.
СпасибоДобавляете 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()); } }