Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Player p = Bukkit.getPlayer("justInitialization");
MapView map = Bukkit.createMap(p.getWorld());
//clear map
Iterator<MapRenderer> iter = map.getRenderers().iterator();
while(iter.hasNext()){
map.removeRenderer(iter.next());
}
//draw
map.addRenderer(new PictureDrawer(new File(getDataFolder()+"/img/"+args[0]),Scale.NORMAL,0,0));
p.getInventory().addItem(new ItemStack(Material.MAP,1,map.getId()));
package main;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.bukkit.entity.Player;
import org.bukkit.map.MapCanvas;
import org.bukkit.map.MapRenderer;
import org.bukkit.map.MapView;
import org.bukkit.map.MapView.Scale;
public class PictureDrawer extends MapRenderer {
File picture;
Scale scale;
boolean drawed = false;
int x;
int y;
public PictureDrawer(File picture,Scale scale,int x,int y) {
this.picture = picture;
this.scale = scale;
this.x = x;
this.y = y;
}
@Override
public void render(MapView map, MapCanvas canvas, Player p) {
if (drawed) return;
BufferedImage img = null;
try {
img = ImageIO.read(picture);
} catch (IOException e) {e.printStackTrace();}
map.setScale(scale);
canvas.drawImage(x,y, img);
drawed = true;
}
}
Извините, что с задержкой, но можете объяснить, как выполняетсяКод:Player p = Bukkit.getPlayer("justInitialization"); MapView map = Bukkit.createMap(p.getWorld()); //clear map Iterator<MapRenderer> iter = map.getRenderers().iterator(); while(iter.hasNext()){ map.removeRenderer(iter.next()); } //draw map.addRenderer(new PictureDrawer(new File(getDataFolder()+"/img/"+args[0]),Scale.NORMAL,0,0)); p.getInventory().addItem(new ItemStack(Material.MAP,1,map.getId()));Код:package main; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.bukkit.entity.Player; import org.bukkit.map.MapCanvas; import org.bukkit.map.MapRenderer; import org.bukkit.map.MapView; import org.bukkit.map.MapView.Scale; public class PictureDrawer extends MapRenderer { File picture; Scale scale; boolean drawed = false; int x; int y; public PictureDrawer(File picture,Scale scale,int x,int y) { this.picture = picture; this.scale = scale; this.x = x; this.y = y; } @Override public void render(MapView map, MapCanvas canvas, Player p) { if (drawed) return; BufferedImage img = null; try { img = ImageIO.read(picture); } catch (IOException e) {e.printStackTrace();} map.setScale(scale); canvas.drawImage(x,y, img); drawed = true; } }
Очистка всего, что нарисовало ведро(указатель игрока и т.д.)MapView map = Bukkit.createMap(p.getWorld());
Установка и создание своего MapRenderer'а, тоесть отрисовщика.Iterator<MapRenderer> iter = map.getRenderers().iterator(); while(iter.hasNext()){ map.removeRenderer(iter.next()); }
Установка 'приближения' карты и отрисовка картинки.map.addRenderer(new PictureDrawer(new File(getDataFolder()+"/img/"+args[0]),Scale.NORMAL,0,0));
map.setScale(scale); canvas.drawImage(x,y, img);
А можно при запуске плагина без участия игрока все выполнялось?Создание карты:
Очистка всего, что нарисовало ведро(указатель игрока и т.д.)
Установка и создание своего MapRenderer'а, тоесть отрисовщика.
Установка 'приближения' карты и отрисовка картинки.
Понял, спасибо!Да, игрок в данном случаи только для выдачи предмета, зная id карты, можно её выдать.
Стоп, а можно задать определенный id карты? Там не написано, пожалуйста!Да, игрок в данном случаи только для выдачи предмета, зная id карты, можно её выдать.
Мда. После вставки этого кода, у меня вылезла ошибка.Bukkit.getMap(short id);
[18:01:12] [Server thread/ERROR]: Error occurred while enabling Computer v0.3.1 (Is it up to date?)
java.lang.NullPointerException: null
at net.letsdank.computer.Drawing.setPictureToMap(Drawing.java:33) ~[?:?]
at net.letsdank.computer.ComputerPlugin.onEnable(ComputerPlugin.java:85) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:402) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:374) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:323) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:745) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:641) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:443) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot.jar:git-Spigot-596221b-9a1fc1e]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_144]
[18:01:12] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[18:01:12] [Server thread/INFO]: CONSOLE: [0;32;1mReload complete.[m
@SuppressWarnings("deprecation")
public static void setPictureToMap(String path, int id) {
// render image maps
MapView map = Bukkit.getMap((short)id);
if (ComputerPlugin.isBeta)
System.out.println("Creating map, id: " + id);
// clear map
Iterator<MapRenderer> iter = map.getRenderers().iterator(); // <-- Здесь ошибка
while (iter.hasNext()) {
map.removeRenderer(iter.next());
}
// draw picture
map.addRenderer(new PictureRenderer(new File(path), Scale.NORMAL, 0, 0));
if (ComputerPlugin.isBeta)
System.out.println("Drawing picture: " + path + " with id: " + id);
}
Карту не нашел.Мда. После вставки этого кода, у меня вылезла ошибка.
Код:[18:01:12] [Server thread/ERROR]: Error occurred while enabling Computer v0.3.1 (Is it up to date?) java.lang.NullPointerException: null at net.letsdank.computer.Drawing.setPictureToMap(Drawing.java:33) ~[?:?] at net.letsdank.computer.ComputerPlugin.onEnable(ComputerPlugin.java:85) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:402) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:374) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:323) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:745) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:641) [spigot.jar:git-Spigot-596221b-9a1fc1e] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot.jar:git-Spigot-596221b-9a1fc1e] at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:443) [spigot.jar:git-Spigot-596221b-9a1fc1e] at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot.jar:git-Spigot-596221b-9a1fc1e] at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot.jar:git-Spigot-596221b-9a1fc1e] at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot.jar:git-Spigot-596221b-9a1fc1e] at java.lang.Thread.run(Unknown Source) [?:1.8.0_144] [18:01:12] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it [18:01:12] [Server thread/INFO]: CONSOLE: [0;32;1mReload complete.[mКод:@SuppressWarnings("deprecation") public static void setPictureToMap(String path, int id) { // render image maps MapView map = Bukkit.getMap((short)id); if (ComputerPlugin.isBeta) System.out.println("Creating map, id: " + id); // clear map Iterator<MapRenderer> iter = map.getRenderers().iterator(); // <-- Здесь ошибка while (iter.hasNext()) { map.removeRenderer(iter.next()); } // draw picture map.addRenderer(new PictureRenderer(new File(path), Scale.NORMAL, 0, 0)); if (ComputerPlugin.isBeta) System.out.println("Drawing picture: " + path + " with id: " + id); }
Но самое главное, что при инициализации переменой не выдает NullPointerException. Тогда попытаюсь что-то сделать, а если получится, то напишу тут результат.Карту не нашел.
Не получается. Мне надо сделать карту с определенным номером, чтобы не было ошибок, что не найдена карта. Мне надо ее сделать с самого начала.Карту не нашел.