Version 1.0.2

* made item used to toggle fixed/visible configurable
* fix interaction with toggle item when permission is lacking
* fix exception thrown when maps.yml doesn't exist
This commit is contained in:
SydMontague 2020-08-26 02:23:28 +02:00
parent 2dc1c7bb6b
commit 6aba1d1c5a
3 changed files with 26 additions and 8 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>net.craftcitizen</groupId>
<artifactId>ImageMaps</artifactId>
<version>1.1.0-SNAPSHOT</version>
<version>1.0.2</version>
<name>ImageMaps</name>
<description>Render Images onto maps!</description>

View File

@ -64,6 +64,8 @@ public class ImageMaps extends JavaPlugin implements Listener {
private Map<String, BufferedImage> imageCache = new HashMap<>();
private Map<ImageMap, Integer> maps = new HashMap<>();
private Material toggleItem;
static {
ConfigurationSerialization.registerClass(ImageMap.class);
}
@ -77,6 +79,14 @@ public class ImageMaps extends JavaPlugin implements Listener {
if (!new File(getDataFolder(), IMAGES_DIR).exists())
new File(getDataFolder(), IMAGES_DIR).mkdirs();
saveDefaultConfig();
toggleItem = Material.matchMaterial(getConfig().getString("toggleItem", Material.WOODEN_HOE.name()));
if (toggleItem == null) {
toggleItem = Material.WOODEN_HOE;
getLogger().warning("Given toggleItem is invalid, defaulting to WOODEN_HOE");
}
getCommand("imagemap").setExecutor(new ImageMapCommandHandler(this));
getServer().getPluginManager().registerEvents(this, this);
@ -101,19 +111,21 @@ public class ImageMaps extends JavaPlugin implements Listener {
ItemFrame frame = (ItemFrame) event.getRightClicked();
Player p = event.getPlayer();
if (p.getInventory().getItemInMainHand().getType() != Material.WOODEN_HOE)
if (p.getInventory().getItemInMainHand().getType() != toggleItem)
return;
if (p.isSneaking() && p.hasPermission("imagemaps.toggleFixed")) {
frame.setFixed(!frame.isFixed());
MessageUtil.sendMessage(this, p, MessageLevel.INFO, String.format("Frame set to %s.", frame.isFixed() ? "fixed" : "unfixed"));
if (p.isSneaking()) {
if (p.hasPermission("imagemaps.toggleFixed")) {
event.setCancelled(true);
frame.setFixed(!frame.isFixed());
MessageUtil.sendMessage(this, p, MessageLevel.INFO, String.format("Frame set to %s.", frame.isFixed() ? "fixed" : "unfixed"));
}
}
else if (p.hasPermission("imagemaps.toggleVisible")) {
event.setCancelled(true);
frame.setVisible(!frame.isVisible());
MessageUtil.sendMessage(this, p, MessageLevel.INFO, String.format("Frame set to %s.", frame.isVisible() ? "visible" : "invisible"));
}
event.setCancelled(true);
}
public boolean isInvisibilitySupported() {
@ -152,7 +164,12 @@ public class ImageMaps extends JavaPlugin implements Listener {
}
private void loadMaps() {
Configuration config = YamlConfiguration.loadConfiguration(new File(getDataFolder(), MAPS_YML));
File configFile = new File(getDataFolder(), MAPS_YML);
if(!configFile.exists())
return;
Configuration config = YamlConfiguration.loadConfiguration(configFile);
int version = config.getInt(CONFIG_VERSION_KEY, -1);
if (version == -1)

View File

@ -0,0 +1 @@
toggleItem: WOODEN_HOE