mirror of
https://github.com/zDevelopers/ImageOnMap.git
synced 2025-02-10 00:21:57 +01:00
Commands now support prefix
This commit is contained in:
parent
7eb646f1a1
commit
0058dba680
2
pom.xml
2
pom.xml
@ -93,7 +93,7 @@
|
||||
<dependency>
|
||||
<groupId>fr.zcraft</groupId>
|
||||
<artifactId>quartzlib</artifactId>
|
||||
<version>0.0.1</version>
|
||||
<version>0.0.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bstats</groupId>
|
||||
|
@ -82,32 +82,40 @@ public abstract class IoMCommand extends Command {
|
||||
//State of the automaton, can read word like:
|
||||
//name_here; "name here"
|
||||
int state = 0;
|
||||
StringBuilder s = new StringBuilder();
|
||||
for (String arg : args) {
|
||||
switch (state) {
|
||||
case 0:
|
||||
if (arg.startsWith("\"")) {
|
||||
state = 1;
|
||||
arg = arg.substring(1);
|
||||
StringBuilder s;
|
||||
|
||||
s = s.append(arg);
|
||||
} else {
|
||||
arguments.add(arg.toString());
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (arg.endsWith("\"")) {
|
||||
arg = arg.substring(0, arg.length() - 1);
|
||||
s = s.append(" " + arg);
|
||||
arguments.add(s.toString());
|
||||
s = new StringBuilder();
|
||||
state = 0;
|
||||
} else {
|
||||
s = s.append(" " + arg);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected value: " + state);
|
||||
for (String arg : args) {
|
||||
s = new StringBuilder();
|
||||
for (char c : arg.toCharArray()) {
|
||||
switch (state) {
|
||||
case 0:
|
||||
if (c == '\"') {
|
||||
state = 1;
|
||||
} else {
|
||||
//If we read a : that means that we are on a new argument example:"hello"
|
||||
if (c == ':') {
|
||||
arguments.add(s.toString());
|
||||
s = new StringBuilder();
|
||||
} else {
|
||||
s = s.append(c);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (c == '\"') {
|
||||
arguments.add(s.toString());
|
||||
s = new StringBuilder();
|
||||
state = 0;
|
||||
} else {
|
||||
s = s.append(c);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected value: " + state);
|
||||
}
|
||||
}
|
||||
if (s.length() > 0) {
|
||||
arguments.add(s.toString());
|
||||
}
|
||||
}
|
||||
return arguments;
|
||||
|
@ -104,7 +104,7 @@ public class DeleteCommand extends IoMCommand {
|
||||
}
|
||||
|
||||
//TODO passer en static
|
||||
ImageOnMap.getPlugin().getCommandWorker().OfflineNameFetch(playerName, uuid -> {
|
||||
ImageOnMap.getPlugin().getCommandWorker().offlineNameFetch(playerName, uuid -> {
|
||||
if (uuid == null) {
|
||||
info(sender, I.t("The player {0} does not exist.", playerName));
|
||||
return;
|
||||
|
@ -75,13 +75,13 @@ public class ExploreCommand extends IoMCommand {
|
||||
}
|
||||
|
||||
//TODO passer en static
|
||||
ImageOnMap.getPlugin().getCommandWorker().OfflineNameFetch(playerName, uuid -> {
|
||||
ImageOnMap.getPlugin().getCommandWorker().offlineNameFetch(playerName, uuid -> {
|
||||
if (uuid == null) {
|
||||
info(sender, I.t("The player {0} does not exist.", playerName));
|
||||
return;
|
||||
}
|
||||
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(uuid);
|
||||
Gui.open(sender, new MapListGui(offlinePlayer));
|
||||
Gui.open(sender, new MapListGui(offlinePlayer,playerName));
|
||||
|
||||
});
|
||||
|
||||
|
@ -100,7 +100,7 @@ public class GetCommand extends IoMCommand {
|
||||
}
|
||||
|
||||
//TODO passer en static
|
||||
ImageOnMap.getPlugin().getCommandWorker().OfflineNameFetch(playerName, uuid -> {
|
||||
ImageOnMap.getPlugin().getCommandWorker().offlineNameFetch(playerName, uuid -> {
|
||||
if (uuid == null) {
|
||||
info(sender, I.t("The player {0} does not exist.", playerName));
|
||||
return;
|
||||
|
@ -44,6 +44,7 @@ import fr.moribus.imageonmap.map.MapManager;
|
||||
import fr.zcraft.quartzlib.components.commands.CommandException;
|
||||
import fr.zcraft.quartzlib.components.commands.CommandInfo;
|
||||
import fr.zcraft.quartzlib.components.i18n.I;
|
||||
import fr.zcraft.quartzlib.tools.PluginLogger;
|
||||
import fr.zcraft.quartzlib.tools.mojang.UUIDFetcher;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@ -53,7 +54,7 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
@CommandInfo(name = "give", usageParameters = "[playerFrom] <playername> <mapname>")
|
||||
@CommandInfo(name = "give", usageParameters = "<playername> [playerFrom]:<mapname>")
|
||||
public class GiveCommand extends IoMCommand {
|
||||
|
||||
@Override
|
||||
@ -64,26 +65,41 @@ public class GiveCommand extends IoMCommand {
|
||||
}
|
||||
|
||||
ArrayList<String> arguments = getArgs();
|
||||
|
||||
for (String arg : arguments) {
|
||||
PluginLogger.info(arg);
|
||||
}
|
||||
|
||||
if (arguments.size() > 3) {
|
||||
warning(I.t("Too many parameters! Usage: /maptool give [playerFrom] <playername> <mapname>"));
|
||||
warning(I.t("Too many parameters! Usage: /maptool give <playername> [playerFrom]:<mapname>"));
|
||||
return;
|
||||
}
|
||||
if (arguments.size() < 1) {
|
||||
warning(I.t("Too few parameters! Usage: /maptool give [playerFrom] <playername> <mapname>"));
|
||||
warning(I.t("Too few parameters! Usage: /maptool give <playername> [playerFrom]:<mapname>"));
|
||||
return;
|
||||
}
|
||||
final String mapName;
|
||||
final String from;
|
||||
final String playerName;
|
||||
final Player sender = playerSender();
|
||||
final Player playerSender;
|
||||
Player playerSender1;
|
||||
try {
|
||||
playerSender1 = playerSender();
|
||||
} catch (CommandException ignored) {
|
||||
if (arguments.size() == 2) {
|
||||
throwInvalidArgument(I.t("Usage: /maptool give <playername> <playerFrom>:<mapname>"));
|
||||
}
|
||||
playerSender1 = null;
|
||||
}
|
||||
playerSender = playerSender1;
|
||||
if (arguments.size() == 2) {
|
||||
from = sender.getName();
|
||||
from = playerSender.getName();
|
||||
playerName = arguments.get(0);
|
||||
mapName = arguments.get(1);
|
||||
} else {
|
||||
if (arguments.size() == 3) {
|
||||
from = arguments.get(0);
|
||||
playerName = arguments.get(1);
|
||||
from = arguments.get(1);
|
||||
playerName = arguments.get(0);
|
||||
mapName = arguments.get(2);
|
||||
} else {
|
||||
from = "";
|
||||
@ -93,21 +109,27 @@ public class GiveCommand extends IoMCommand {
|
||||
}
|
||||
|
||||
//TODO passer en static
|
||||
ImageOnMap.getPlugin().getCommandWorker().OfflineNameFetch(from, uuid -> {
|
||||
ImageOnMap.getPlugin().getCommandWorker().offlineNameFetch(from, uuid -> {
|
||||
if (uuid == null) {
|
||||
info(sender, I.t("The player {0} does not exist.", from));
|
||||
if (playerSender != null) {
|
||||
info(playerSender, I.t("The player {0} does not exist.", from));
|
||||
}
|
||||
return;
|
||||
}
|
||||
final ImageMap map = MapManager.getMap(uuid, mapName);
|
||||
|
||||
if (map == null) {
|
||||
info(sender, I.t("This map does not exist."));
|
||||
if (playerSender != null) {
|
||||
info(playerSender, I.t("This map does not exist."));
|
||||
}
|
||||
return;
|
||||
}
|
||||
try {
|
||||
UUID uuid2 = UUIDFetcher.fetch(playerName);
|
||||
if (uuid2 == null) {
|
||||
info(sender, I.t("The player {0} does not exist.", playerName));
|
||||
if (playerSender != null) {
|
||||
info(playerSender, I.t("The player {0} does not exist.", playerName));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (map.give(Bukkit.getPlayer(uuid2))) {
|
||||
@ -116,7 +138,9 @@ public class GiveCommand extends IoMCommand {
|
||||
}
|
||||
|
||||
} catch (IOException | InterruptedException e) {
|
||||
info(sender, I.t("The player {0} does not exist.", playerName));
|
||||
if (playerSender != null) {
|
||||
info(playerSender, I.t("The player {0} does not exist.", playerName));
|
||||
}
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
@ -79,7 +79,7 @@ public class ListCommand extends IoMCommand {
|
||||
final Player sender = playerSender();
|
||||
|
||||
//TODO passer en static
|
||||
ImageOnMap.getPlugin().getCommandWorker().OfflineNameFetch(playerName, uuid -> {
|
||||
ImageOnMap.getPlugin().getCommandWorker().offlineNameFetch(playerName, uuid -> {
|
||||
List<ImageMap> mapList = MapManager.getMapList(uuid);
|
||||
if (uuid == null) {
|
||||
info(sender, I.t("Player {} not found.", playerName));
|
||||
|
@ -146,7 +146,7 @@ public class UpdateCommand extends IoMCommand {
|
||||
|
||||
|
||||
//TODO passer en static
|
||||
ImageOnMap.getPlugin().getCommandWorker().OfflineNameFetch(playerName, uuid -> {
|
||||
ImageOnMap.getPlugin().getCommandWorker().offlineNameFetch(playerName, uuid -> {
|
||||
if (uuid == null) {
|
||||
info(sender, I.t("The player {0} does not exist.", playerName));
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user