diff --git a/pom.xml b/pom.xml
index 244e607..16f2bbd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -156,24 +156,17 @@
1.20.4-R0.1-SNAPSHOT
provided
+
- org.bukkit
- bukkit
- 1.15.2-R0.1-SNAPSHOT
+ org.bstats
+ bstats-bukkit
+ 1.8
compile
-
fr.zcraft
quartzlib
0.0.7-SNAPSHOT
-
-
- org.bstats
- bstats-bukkit
- 1.8
- compile
-
diff --git a/src/main/java/fr/moribus/imageonmap/Argument.java b/src/main/java/fr/moribus/imageonmap/Argument.java
index 2b9887b..b678a96 100644
--- a/src/main/java/fr/moribus/imageonmap/Argument.java
+++ b/src/main/java/fr/moribus/imageonmap/Argument.java
@@ -39,7 +39,9 @@
import fr.zcraft.quartzlib.tools.PluginLogger;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import org.bukkit.Bukkit;
@@ -50,7 +52,7 @@ public class Argument {
private final Status status;
private String content;
- private String defaultValue;
+ private Object defaultValue;
public Argument(String name, Type type, Status status) {
this.name = name;
@@ -108,19 +110,19 @@ public T getDefault() {
}
switch (type) {
case BOOLEAN:
- return (T) Boolean.valueOf(defaultValue);
+ return (T) Boolean.valueOf((Boolean) defaultValue);
case INT:
- return (T) Integer.getInteger(defaultValue);
+ return (T) Integer.getInteger((String) defaultValue);
case UUID:
- return (T) UUID.fromString(defaultValue);
+ return (T) UUID.fromString((String) defaultValue);
case DOUBLE:
- return (T) Double.valueOf(defaultValue);
+ return (T) Double.valueOf((String) defaultValue);
case STRING:
return (T) defaultValue;
case ONLINE_PLAYER:
- return (T) Bukkit.getPlayer(toUUID(defaultValue));
+ return (T) Bukkit.getPlayer(toUUID((String) defaultValue));
case OFFLINE_PLAYER:
- return (T) Bukkit.getOfflinePlayer(toUUID(defaultValue));
+ return (T) Bukkit.getOfflinePlayer(toUUID((String) defaultValue));
default:
PluginLogger.info("To be implemented");
@@ -232,7 +234,8 @@ public static boolean isAmbiguous(List prototype, boolean isPlayer) {
return false;
}
- public static List parseArguments(List prototype, ArrayList args, boolean isPlayer)
+ public static Map parseArguments(List prototype, ArrayList args,
+ boolean isPlayer)
throws Exception {
//check if the command is not ambiguous
if (isAmbiguous(prototype, isPlayer)) {
@@ -240,7 +243,7 @@ public static List parseArguments(List prototype, ArrayList<
}
// givemap Vlammar Vlammar:"carte 1" 10
// string |string| string
- List list = new ArrayList<>();
+ Map map = new HashMap<>();
List uncertain = new ArrayList<>();
for (int i = 0; i < args.size(); i++) {
@@ -250,13 +253,11 @@ public static List parseArguments(List prototype, ArrayList<
for (int j = i; j < prototype.size(); j++) {
PluginLogger.info("j = {0}", j);
Argument a = prototype.get(j);
- PluginLogger.info("argument name: \n{0}", a.toString());
switch (a.status) {
- case OBLIGATORY:
+ case MANDATORY:
PluginLogger.info("OBLIGATORY");
if (uncertain.isEmpty()) {
- PluginLogger.info(a.getName());
- list.add(a);
+ map.put(a.getName(), a);
a.setContent(arg);
PluginLogger.info("argument : \n{0}", a.toString());
next = true;
@@ -264,22 +265,18 @@ public static List parseArguments(List prototype, ArrayList<
for (Argument l : uncertain) {
//if size doesnt match or
try {
- PluginLogger.info("test pour l'erreur");
- PluginLogger.info(a.getContent());
a.setContent(a.content); //todo erreur ?
- PluginLogger.info("argument : \n{0}", a.toString());
} catch (Exception e) {
//shift to the right
}
}
- PluginLogger.info(a.getName());
- list.add(a);
+ map.put(a.getName(), a);
uncertain = new ArrayList<>();
}
break;
case OPTIONAL:
- PluginLogger.info("OPTIONAL");
PluginLogger.info(a.getName());
+ a.setContent(arg);
uncertain.add(a);
PluginLogger.info("argument : \n{0}", a.toString());
break;
@@ -287,7 +284,7 @@ public static List parseArguments(List prototype, ArrayList<
PluginLogger.info("OPTIONAL_FOR_PLAYER_ONLY");
if (!isPlayer) {
PluginLogger.info(a.getName());
- list.add(a);
+ map.put(a.getName(), a);
a.setContent(arg);
PluginLogger.info("argument : \n{0}", a.toString());
next = true;
@@ -308,7 +305,7 @@ public static List parseArguments(List prototype, ArrayList<
}
}
}
- return list;
+ return map;
}
@Override
diff --git a/src/main/java/fr/moribus/imageonmap/ImageOnMap.java b/src/main/java/fr/moribus/imageonmap/ImageOnMap.java
index fcf3041..5ba86f1 100644
--- a/src/main/java/fr/moribus/imageonmap/ImageOnMap.java
+++ b/src/main/java/fr/moribus/imageonmap/ImageOnMap.java
@@ -43,6 +43,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.MigrateCommand;
import fr.moribus.imageonmap.commands.maptool.NewCommand;
import fr.moribus.imageonmap.commands.maptool.RemotePlacingCommand;
import fr.moribus.imageonmap.commands.maptool.RenameCommand;
@@ -78,14 +79,11 @@
// rework des GUI (map part utile ???);
// Pouvoir déployer carte à distance;
// carte interractive (5.1?);
-// bug: hover text ne marche plus;
// glow effect a refaire (vraiment utile ???);
// Miniature des maps en 1x1 (migration?);
// ecrire directement sur les cartes pour ne pas tout perdre(migration);
-// réduire dépendance QL;
-// retirer les prints de QL et IoM => verbose ou debug pour avoir une trace de ce qui est fait ?;
// bug: suppression image chat (inconnue ?) laisse item frame invisible;
-// passer invisibiliter et glow dans le GUI si permission sinon solution RP avec le nombre qu'il faut de glowsac
+// passer invisibiliter et glow dans le GUI si permission
// avec un clic droit sur les frames et fenetre en verre pour la protection contre le grief des mobs et potion
// invisibilité pour rendre frame invisible (peut etre que l'item utilisé pour le craft); proposer craft RP des cartes
// soit avec un item map vide+ un item de peintre ? soit avec un atelier?
@@ -160,7 +158,6 @@ public void onEnable() {
return;
}
-
saveDefaultConfig();
commandWorker = loadComponent(CommandWorkers.class);
loadComponents(I18n.class, Gui.class, Commands.class, PluginConfiguration.class, ImageIOExecutor.class,
@@ -184,7 +181,7 @@ public void onEnable() {
GiveCommand.class,
GetRemainingCommand.class,
ExploreCommand.class,
- //MigrateCommand.class,//Removed for now doesn't work nor is useful, maybe useful later on
+ MigrateCommand.class,
UpdateCommand.class,
RemotePlacingCommand.class
);
diff --git a/src/main/java/fr/moribus/imageonmap/Status.java b/src/main/java/fr/moribus/imageonmap/Status.java
index 5fcf49c..7e6a2c8 100644
--- a/src/main/java/fr/moribus/imageonmap/Status.java
+++ b/src/main/java/fr/moribus/imageonmap/Status.java
@@ -37,5 +37,5 @@
package fr.moribus.imageonmap;
public enum Status {
- OBLIGATORY, OPTIONAL, OPTIONAL_FOR_PLAYER_ONLY
+ MANDATORY, OPTIONAL, OPTIONAL_FOR_PLAYER_ONLY
}
diff --git a/src/main/java/fr/moribus/imageonmap/commands/IoMCommand.java b/src/main/java/fr/moribus/imageonmap/commands/IoMCommand.java
index 8b8368d..5f48aa0 100644
--- a/src/main/java/fr/moribus/imageonmap/commands/IoMCommand.java
+++ b/src/main/java/fr/moribus/imageonmap/commands/IoMCommand.java
@@ -54,6 +54,7 @@
public abstract class IoMCommand extends Command {
protected UUID getPlayerUUID(String playerName) {
return Bukkit.getOfflinePlayer(playerName).getUniqueId();
+ //TODO replace with homemade solution using https://api.mojang.com/users/profiles/minecraft/
}
private boolean checkTooArguments(boolean bool, String msg) throws CommandException {
@@ -72,6 +73,7 @@ protected boolean checkTooFewArguments(boolean bool) throws CommandException {
}
protected boolean checkArguments(boolean bool1, boolean bool2) throws CommandException {
+ //TODO WTF is happening here
return !(checkTooManyArguments(bool1) || checkTooFewArguments(bool2));
}
diff --git a/src/main/java/fr/moribus/imageonmap/commands/maptool/ExploreCommand.java b/src/main/java/fr/moribus/imageonmap/commands/maptool/ExploreCommand.java
index 55085e1..4551a76 100644
--- a/src/main/java/fr/moribus/imageonmap/commands/maptool/ExploreCommand.java
+++ b/src/main/java/fr/moribus/imageonmap/commands/maptool/ExploreCommand.java
@@ -74,6 +74,8 @@ protected void run() throws CommandException {
}
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(playerName);
+ //TODO replace with homemade solution using https://api.mojang.com/users/profiles/minecraft/playername
+ // to get the UUId
if (sender.isOnline()) {
Gui.open(sender, new PosterListGui(offlinePlayer, playerName));
}
diff --git a/src/main/java/fr/moribus/imageonmap/commands/maptool/GiveCommand.java b/src/main/java/fr/moribus/imageonmap/commands/maptool/GiveCommand.java
index 408efc8..046f9c4 100644
--- a/src/main/java/fr/moribus/imageonmap/commands/maptool/GiveCommand.java
+++ b/src/main/java/fr/moribus/imageonmap/commands/maptool/GiveCommand.java
@@ -49,6 +49,7 @@
import fr.zcraft.quartzlib.tools.PluginLogger;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
@@ -58,9 +59,9 @@
@CommandInfo(name = "give", usageParameters = " [playerFrom]: