Compare commits
2 Commits
186ffc6c84
...
05fbb6b416
Author | SHA1 | Date |
---|---|---|
Vlammar | 05fbb6b416 | |
Vlammar | b3411f89a8 |
|
@ -44,6 +44,7 @@ import fr.moribus.imageonmap.commands.maptool.GetRemainingCommand;
|
|||
import fr.moribus.imageonmap.commands.maptool.GiveCommand;
|
||||
import fr.moribus.imageonmap.commands.maptool.ListCommand;
|
||||
import fr.moribus.imageonmap.commands.maptool.NewCommand;
|
||||
import fr.moribus.imageonmap.commands.maptool.RemotePlacingCommand;
|
||||
import fr.moribus.imageonmap.commands.maptool.RenameCommand;
|
||||
import fr.moribus.imageonmap.commands.maptool.UpdateCommand;
|
||||
import fr.moribus.imageonmap.image.ImageIOExecutor;
|
||||
|
@ -158,12 +159,14 @@ public final class ImageOnMap extends QuartzPlugin {
|
|||
GetRemainingCommand.class,
|
||||
ExploreCommand.class,
|
||||
//MigrateCommand.class,//Removed for now doesn't work nor is useful, maybe useful later on
|
||||
UpdateCommand.class
|
||||
UpdateCommand.class,
|
||||
RemotePlacingCommand.class
|
||||
);
|
||||
|
||||
Commands.registerShortcut(commandGroupName, NewCommand.class, "tomap");
|
||||
Commands.registerShortcut(commandGroupName, ExploreCommand.class, "maps");
|
||||
Commands.registerShortcut(commandGroupName, GiveCommand.class, "givemap");
|
||||
Commands.registerShortcut(commandGroupName, RemotePlacingCommand.class, "placemap");
|
||||
|
||||
if (PluginConfiguration.CHECK_FOR_UPDATES.get()) {
|
||||
UpdateChecker.boot("imageonmap.26585");
|
||||
|
|
|
@ -63,7 +63,8 @@ public enum Permissions {
|
|||
BYPASS_IMAGE_LIMIT("imageonmap.bypassimagelimit"),
|
||||
BYPASS_MAP_LIMIT("imageonmap.bypassmaplimit"),
|
||||
GIVE("imageonmap.give"),
|
||||
BYPASS_WHITELIST("imageonmap.bypasswhitelist");
|
||||
BYPASS_WHITELIST("imageonmap.bypasswhitelist"),
|
||||
REMOTE_PLACING("imageonmap.remoteplacing");
|
||||
|
||||
private final String permission;
|
||||
private final String[] aliases;
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
package fr.moribus.imageonmap.commands;
|
||||
|
||||
import fr.moribus.imageonmap.PluginConfiguration;
|
||||
import fr.moribus.imageonmap.image.ImageUtils;
|
||||
import fr.moribus.imageonmap.map.ImageMap;
|
||||
import fr.moribus.imageonmap.map.MapManager;
|
||||
import fr.zcraft.quartzlib.components.commands.Command;
|
||||
|
@ -49,11 +50,32 @@ import java.util.UUID;
|
|||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public abstract class IoMCommand extends Command {
|
||||
protected UUID getPlayerUUID(String playerName) {
|
||||
return Bukkit.getOfflinePlayer(playerName).getUniqueId();
|
||||
}
|
||||
|
||||
private boolean checkTooArguments(boolean bool, String msg) throws CommandException {
|
||||
if (bool) {
|
||||
throwInvalidArgument(msg);
|
||||
}
|
||||
return bool;
|
||||
}
|
||||
|
||||
protected boolean checkTooManyArguments(boolean bool) throws CommandException {
|
||||
return checkTooArguments(bool, I.t("Too many parameters!"));
|
||||
}
|
||||
|
||||
protected boolean checkTooFewArguments(boolean bool) throws CommandException {
|
||||
return checkTooArguments(bool, I.t("Too few parameters!"));
|
||||
}
|
||||
|
||||
protected boolean checkArguments(boolean bool1, boolean bool2) throws CommandException {
|
||||
return !(checkTooManyArguments(bool1) || checkTooFewArguments(bool2));
|
||||
}
|
||||
|
||||
protected boolean checkHostnameWhitelist(final URL url) {
|
||||
final List<String> hostnames = PluginConfiguration.IMAGES_HOSTNAMES_WHITELIST.get()
|
||||
|
@ -175,4 +197,5 @@ public abstract class IoMCommand extends Command {
|
|||
|
||||
return matches;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -51,7 +51,6 @@ import fr.zcraft.quartzlib.tools.text.RawMessage;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -78,12 +77,9 @@ public class DeleteCommand extends IoMCommand {
|
|||
ArrayList<String> arguments = getArgs();
|
||||
final boolean confirm = hasFlag("confirm");
|
||||
|
||||
if (arguments.size() > 3 || (arguments.size() > 2 && !confirm)) {
|
||||
throwInvalidArgument(I.t("Too many parameters!"));
|
||||
return;
|
||||
}
|
||||
if (arguments.size() < 1) {
|
||||
throwInvalidArgument(I.t("Too few parameters!"));
|
||||
boolean isTooMany = arguments.size() > 3 || (arguments.size() > 2 && !confirm);
|
||||
boolean isTooFew = arguments.isEmpty();
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -113,8 +109,7 @@ public class DeleteCommand extends IoMCommand {
|
|||
playerName = sender.getName();
|
||||
mapName = arguments.get(0);
|
||||
}
|
||||
UUID uuid = Bukkit.getOfflinePlayer(playerName).getUniqueId();
|
||||
PluginLogger.info("UUID " + uuid.toString());
|
||||
UUID uuid = getPlayerUUID(playerName);
|
||||
ImageMap map = MapManager.getMap(uuid, mapName);
|
||||
if (map == null) {
|
||||
final String msg = "This map does not exist.";
|
||||
|
@ -136,7 +131,7 @@ public class DeleteCommand extends IoMCommand {
|
|||
RawMessage.send(sender, msg);
|
||||
}
|
||||
} else {
|
||||
if (sender != null && sender.isOnline() && sender.getInventory() != null) {
|
||||
if (sender != null && sender.isOnline()) {
|
||||
MapManager.clear(sender.getInventory(), map);
|
||||
}
|
||||
try {
|
||||
|
|
|
@ -56,13 +56,14 @@ public class ExploreCommand extends IoMCommand {
|
|||
@Override
|
||||
protected void run() throws CommandException {
|
||||
ArrayList<String> arguments = getArgs();
|
||||
if (arguments.size() > 1) {
|
||||
throwInvalidArgument(I.t("Too many parameters!"));
|
||||
boolean isTooMany = arguments.size() > 1;
|
||||
boolean isTooFew = false;
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
final String playerName;
|
||||
|
||||
final Player sender = playerSender();
|
||||
|
||||
if (arguments.size() == 1) {
|
||||
if (!Permissions.LISTOTHER.grantedTo(sender)) {
|
||||
throwNotAuthorized();
|
||||
|
|
|
@ -46,24 +46,21 @@ import fr.zcraft.quartzlib.components.i18n.I;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandInfo(name = "get",usageParameters = "[player name]:<map name>")
|
||||
@CommandInfo(name = "get", usageParameters = "[player name]:<map name>")
|
||||
public class GetCommand extends IoMCommand {
|
||||
@Override
|
||||
protected void run() throws CommandException {
|
||||
ArrayList<String> arguments = getArgs();
|
||||
|
||||
if (arguments.size() > 2) {
|
||||
throwInvalidArgument(I.t("Too many parameters!"));
|
||||
return;
|
||||
}
|
||||
if (arguments.isEmpty()) {
|
||||
throwInvalidArgument(I.t("Too few parameters!"));
|
||||
boolean isTooMany = arguments.size() > 2;
|
||||
boolean isTooFew = arguments.isEmpty();
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final String playerName;
|
||||
final String mapName;
|
||||
final Player sender = playerSender();
|
||||
|
@ -80,7 +77,7 @@ public class GetCommand extends IoMCommand {
|
|||
mapName = arguments.get(1);
|
||||
}
|
||||
|
||||
UUID uuid = Bukkit.getOfflinePlayer(playerName).getUniqueId();
|
||||
UUID uuid = getPlayerUUID(playerName);
|
||||
if (!sender.isOnline()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -63,14 +63,13 @@ public class GiveCommand extends IoMCommand {
|
|||
|
||||
ArrayList<String> arguments = getArgs();
|
||||
|
||||
if (arguments.size() > 3) {
|
||||
throwInvalidArgument(I.t("Too many parameters!"));
|
||||
return;
|
||||
}
|
||||
if (arguments.isEmpty()) {
|
||||
throwInvalidArgument(I.t("Too few parameters!"));
|
||||
|
||||
boolean isTooMany = arguments.size() > 3;
|
||||
boolean isTooFew = arguments.isEmpty();
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final String mapName;
|
||||
final String from;
|
||||
final String playerName;
|
||||
|
@ -102,8 +101,8 @@ public class GiveCommand extends IoMCommand {
|
|||
}
|
||||
|
||||
final Player sender = playerSender();
|
||||
UUID uuid = Bukkit.getOfflinePlayer(from).getUniqueId();
|
||||
UUID uuid2 = Bukkit.getOfflinePlayer(playerName).getUniqueId();
|
||||
UUID uuid = getPlayerUUID(from);
|
||||
UUID uuid2 = getPlayerUUID(playerName);
|
||||
|
||||
final ImageMap map = MapManager.getMap(uuid, mapName);
|
||||
|
||||
|
|
|
@ -51,7 +51,6 @@ import fr.zcraft.quartzlib.tools.text.RawMessage;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -61,8 +60,11 @@ public class ListCommand extends IoMCommand {
|
|||
@Override
|
||||
protected void run() throws CommandException {
|
||||
ArrayList<String> arguments = getArgs();
|
||||
if (arguments.size() > 1) {
|
||||
throwInvalidArgument(I.t("Too many parameters!"));
|
||||
|
||||
|
||||
boolean isTooMany = arguments.size() > 1;
|
||||
boolean isTooFew = false;
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -89,7 +91,7 @@ public class ListCommand extends IoMCommand {
|
|||
} else {
|
||||
playerSender = null;
|
||||
}
|
||||
UUID uuid = Bukkit.getOfflinePlayer(playerName).getUniqueId();
|
||||
UUID uuid = getPlayerUUID(playerName);
|
||||
List<ImageMap> mapList = MapManager.getMapList(uuid);
|
||||
if (mapList.isEmpty()) {
|
||||
String msg = I.t("No map found.");
|
||||
|
|
|
@ -81,6 +81,7 @@ public class NewCommand extends IoMCommand {
|
|||
|
||||
@Override
|
||||
protected void run() throws CommandException {
|
||||
//TODO check if not too many args
|
||||
final Player player = playerSender();
|
||||
ImageUtils.ScalingType scaling = ImageUtils.ScalingType.NONE;
|
||||
URL url;
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package fr.moribus.imageonmap.commands.maptool;
|
||||
|
||||
import fr.moribus.imageonmap.Permissions;
|
||||
import fr.moribus.imageonmap.commands.IoMCommand;
|
||||
import fr.zcraft.quartzlib.components.commands.CommandException;
|
||||
import fr.zcraft.quartzlib.components.commands.CommandInfo;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
@CommandInfo(name = "RemotePlacing", usageParameters = "[player name]:map name position rotation")
|
||||
public class RemotePlacingCommand extends IoMCommand {
|
||||
@Override
|
||||
protected void run() throws CommandException {
|
||||
//if wall => need position and direction N/S/E/W
|
||||
//else if floor or ceiling => same + rotation
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExecute(CommandSender sender) {
|
||||
return Permissions.REMOTE_PLACING.grantedTo(sender);
|
||||
}
|
||||
}
|
|
@ -70,20 +70,21 @@ public class RenameCommand extends IoMCommand {
|
|||
|
||||
@Override
|
||||
protected void run() throws CommandException {
|
||||
ArrayList<String> arguments = getArgs();
|
||||
|
||||
ArrayList<String> argList = getArgs();
|
||||
|
||||
if (argList.size() != 2) {
|
||||
warning(I.t("Not enough or too many arguments! Usage: /maptool rename <map name> <new map name>"));
|
||||
boolean isTooMany = arguments.size() > 2;
|
||||
boolean isTooFew = arguments.size() < 2;
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImageMap map = MapManager.getMap(playerSender().getUniqueId(), argList.get(0));
|
||||
String oldName = arguments.get(0);
|
||||
ImageMap map = MapManager.getMap(playerSender().getUniqueId(), oldName);
|
||||
if (map == null) {
|
||||
error(I.t("This map does not exist."));
|
||||
return;
|
||||
}
|
||||
map.rename(argList.get(1));
|
||||
String newName = arguments.get(1);
|
||||
map.rename(newName);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -53,7 +53,6 @@ import java.net.MalformedURLException;
|
|||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -64,17 +63,10 @@ public class UpdateCommand extends IoMCommand {
|
|||
protected void run() throws CommandException {
|
||||
//TODO fix the issue where to many quick usage of offlineNameFetch will return null
|
||||
ArrayList<String> arguments = getArgs();
|
||||
String warningMsg;
|
||||
if (arguments.size() > 4) {
|
||||
warningMsg = "Too many parameters!"
|
||||
+ " Usage: /maptool update [player name]:<map name> <new url> [stretched|covered]";
|
||||
warning(I.t(warningMsg));
|
||||
return;
|
||||
}
|
||||
if (arguments.size() < 2) {
|
||||
warningMsg =
|
||||
"Too few parameters! Usage: /maptool update [player name]:<map name> <new url> [stretched|covered]";
|
||||
warning(I.t(warningMsg));
|
||||
|
||||
boolean isTooMany = arguments.size() > 4;
|
||||
boolean isTooFew = arguments.size() < 2;
|
||||
if (!checkArguments(isTooMany, isTooFew)) {
|
||||
return;
|
||||
}
|
||||
final String playerName;
|
||||
|
@ -141,22 +133,10 @@ public class UpdateCommand extends IoMCommand {
|
|||
}
|
||||
}
|
||||
|
||||
final ImageUtils.ScalingType scaling;
|
||||
final ImageUtils.ScalingType scaling = ImageUtils.scalingTypeFromName(resize);//TODO test if nothing broke
|
||||
// because I went from 3 to 4 by adding the none as default instead of the contained one.
|
||||
|
||||
switch (resize) {
|
||||
|
||||
case "stretched":
|
||||
scaling = ImageUtils.ScalingType.STRETCHED;
|
||||
break;
|
||||
case "covered":
|
||||
scaling = ImageUtils.ScalingType.COVERED;
|
||||
break;
|
||||
default:
|
||||
scaling = ImageUtils.ScalingType.CONTAINED;
|
||||
}
|
||||
|
||||
|
||||
UUID uuid = Bukkit.getOfflinePlayer(playerName).getUniqueId();
|
||||
UUID uuid = getPlayerUUID(playerName);
|
||||
ImageMap map = MapManager.getMap(uuid, mapName);
|
||||
|
||||
if (map == null) {
|
||||
|
|
|
@ -125,6 +125,29 @@ public class ImageUtils {
|
|||
|
||||
}
|
||||
|
||||
public static ScalingType scalingTypeFromName(String resize) {
|
||||
switch (resize) {
|
||||
case "stretch":
|
||||
case "stretched":
|
||||
case "resize-stretched":
|
||||
return ScalingType.STRETCHED;
|
||||
|
||||
case "cover":
|
||||
case "covered":
|
||||
case "resize-covered":
|
||||
return ScalingType.COVERED;
|
||||
|
||||
case "contain":
|
||||
case "contained":
|
||||
case "resize-contained":
|
||||
case "resize":
|
||||
return ScalingType.CONTAINED;
|
||||
|
||||
default:
|
||||
return ScalingType.NONE;
|
||||
}
|
||||
}
|
||||
|
||||
public enum ScalingType {
|
||||
NONE,
|
||||
CONTAINED,
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package fr.moribus.imageonmap.map;
|
||||
|
||||
public class MapIndexes {
|
||||
|
||||
private final int columnIndex;
|
||||
private final int rowIndex;
|
||||
|
||||
public MapIndexes(int rowIndex, int columnIndex) {
|
||||
this.rowIndex = rowIndex;
|
||||
this.columnIndex = columnIndex;
|
||||
}
|
||||
|
||||
public int getColumnIndex() {
|
||||
return columnIndex;
|
||||
}
|
||||
|
||||
public int getRowIndex() {
|
||||
return rowIndex;
|
||||
}
|
||||
}
|
|
@ -36,11 +36,20 @@
|
|||
|
||||
package fr.moribus.imageonmap.map;
|
||||
|
||||
import fr.zcraft.quartzlib.tools.PluginLogger;
|
||||
import fr.zcraft.quartzlib.tools.world.WorldUtils;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import jdk.internal.net.http.common.Pair;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PosterMap extends ImageMap {
|
||||
protected final int[] mapsIDs;
|
||||
|
@ -206,4 +215,84 @@ public class PosterMap extends ImageMap {
|
|||
throw new IllegalArgumentException("Invalid map ID");
|
||||
}
|
||||
|
||||
public int getSortedIndex(int mapID) {
|
||||
int[] ids = mapsIDs.clone();
|
||||
Arrays.sort(ids);
|
||||
for (int i : ids) {
|
||||
PluginLogger.info("" + i);
|
||||
}
|
||||
|
||||
for (int i = 0; i < mapsIDs.length; i++) {
|
||||
if (ids[i] == mapID) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException("Invalid map ID");
|
||||
}
|
||||
|
||||
public MapIndexes getIndexes(int mapID) {
|
||||
int index = getSortedIndex(mapID);
|
||||
PluginLogger.info(rowCount + " " + columnCount + " " + index);
|
||||
return new MapIndexes(index / columnCount, index % columnCount);
|
||||
}
|
||||
|
||||
public Location findLocationFirstFrame(ItemFrame frame, Player player) {
|
||||
final ImageMap map = MapManager.getMap(frame.getItem());
|
||||
if (!(map instanceof PosterMap)) {
|
||||
return null;
|
||||
}
|
||||
PosterMap poster = (PosterMap) map;
|
||||
if (!poster.hasColumnData()) {
|
||||
return null;
|
||||
}
|
||||
int mapID = MapManager.getMapIdFromItemStack(frame.getItem());
|
||||
|
||||
BlockFace bf = WorldUtils.get4thOrientation(player.getLocation());
|
||||
|
||||
MapIndexes mapindexes = getIndexes(mapID);
|
||||
int row = mapindexes.getRowIndex();
|
||||
int column = mapindexes.getColumnIndex();
|
||||
Location loc = frame.getLocation();
|
||||
PluginLogger.info("\n\nlocalization of the initial clicked frame " + loc);
|
||||
PluginLogger.info("row " + row + " col " + column);
|
||||
switch (frame.getFacing().getOppositeFace()) {
|
||||
case UP:
|
||||
case DOWN:
|
||||
switch (bf) {
|
||||
case NORTH:
|
||||
loc.add(-row, 0, column);
|
||||
break;
|
||||
case SOUTH:
|
||||
loc.add(row, 0, -column);
|
||||
break;
|
||||
case WEST:
|
||||
loc.add(row, 0, column);
|
||||
break;
|
||||
case EAST:
|
||||
loc.add(-row, 0, -column);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected value: " + bf);
|
||||
}
|
||||
break;
|
||||
|
||||
case EAST:
|
||||
loc.add(0, -row, -column);
|
||||
break;
|
||||
case WEST:
|
||||
loc.add(0, -row, column);
|
||||
break;
|
||||
case NORTH:
|
||||
loc.add(-column, -row, 0);
|
||||
break;
|
||||
case SOUTH:
|
||||
loc.add(column, -row, 0);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected value: " + bf);
|
||||
}
|
||||
PluginLogger.info("\n\nlocalization of the first frame " + loc);
|
||||
return loc;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
|
||||
package fr.moribus.imageonmap.ui;
|
||||
|
||||
import fr.moribus.imageonmap.map.PosterMap;
|
||||
import fr.zcraft.quartzlib.tools.PluginLogger;
|
||||
import fr.zcraft.quartzlib.tools.world.FlatLocation;
|
||||
import fr.zcraft.quartzlib.tools.world.WorldUtils;
|
||||
|
@ -49,7 +48,6 @@ import org.bukkit.entity.Entity;
|
|||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
public class PosterOnASurface {
|
||||
public FlatLocation loc1;
|
||||
|
@ -164,11 +162,14 @@ public class PosterOnASurface {
|
|||
boolean isFloor = facing.equals(BlockFace.DOWN);
|
||||
boolean isCeiling = facing.equals(BlockFace.UP);
|
||||
Location loc = startingLocation;
|
||||
|
||||
int x = 0;
|
||||
int z = 0;
|
||||
PluginLogger.info(loc.toString()); //TODO to delete
|
||||
for (int r = 0; r < rows; r++) {
|
||||
for (int c = 0; c < columns; c++) {
|
||||
PluginLogger.info("column " + c);
|
||||
PluginLogger.info("row " + r);
|
||||
|
||||
itemFramesLocationMap.put(loc.clone(), getFrameAt(loc, facing));
|
||||
//do a row
|
||||
if (isWall || isFloor) {
|
||||
|
@ -219,7 +220,6 @@ public class PosterOnASurface {
|
|||
|
||||
|
||||
}
|
||||
itemFramesLocationMap.put(loc.clone(), getFrameAt(loc, facing));
|
||||
if (isWall) {
|
||||
loc = loc.add(-x, 1, -z);
|
||||
} else if (isFloor || isCeiling) {
|
||||
|
|
|
@ -43,7 +43,6 @@ import fr.moribus.imageonmap.map.MapManager;
|
|||
import fr.moribus.imageonmap.map.PosterMap;
|
||||
import fr.zcraft.quartzlib.components.i18n.I;
|
||||
import fr.zcraft.quartzlib.tools.PluginLogger;
|
||||
import fr.zcraft.quartzlib.tools.items.GlowEffect;
|
||||
import fr.zcraft.quartzlib.tools.items.ItemStackBuilder;
|
||||
import fr.zcraft.quartzlib.tools.runners.RunTask;
|
||||
import fr.zcraft.quartzlib.tools.text.MessageSender;
|
||||
|
@ -127,7 +126,7 @@ public abstract class SplatterMapManager {
|
|||
* @return The modified item stack. The instance may be different if the passed item stack is not a craft itemstack.
|
||||
*/
|
||||
public static ItemStack addSplatterAttribute(final ItemStack itemStack) {
|
||||
itemStack.addUnsafeEnchantment(Enchantment.LURE,1);
|
||||
itemStack.addUnsafeEnchantment(Enchantment.LURE, 1);
|
||||
//TODO check if safe guard for duplication XP still works
|
||||
return itemStack;
|
||||
}
|
||||
|
@ -330,13 +329,16 @@ public abstract class SplatterMapManager {
|
|||
return null;
|
||||
}
|
||||
|
||||
Location startingLocation = poster.findLocationFirstFrame(startFrame,player);
|
||||
|
||||
Map<Location, ItemFrame>
|
||||
itemFrameLocations =
|
||||
PosterOnASurface.getItemFramesLocation(player, startFrame.getLocation(), startFrame.getFacing(),
|
||||
PosterOnASurface.getItemFramesLocation(player, startingLocation, startFrame.getFacing(),
|
||||
poster.getRowCount(), poster.getColumnCount());
|
||||
|
||||
//TODO check if it is the correct map id and check the why it delete more than it should and out of place
|
||||
for (Map.Entry<Location, ItemFrame> entry : itemFrameLocations.entrySet()) {
|
||||
ItemFrame frame = itemFrameLocations.get(entry.getKey());
|
||||
PluginLogger.info("Frame to delete " + frame);
|
||||
if (frame != null) {
|
||||
removePropertiesFromFrames(player, frame);
|
||||
frame.setItem(null);
|
||||
|
|
Loading…
Reference in New Issue