Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions common/src/main/java/com/loohp/imageframe/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,8 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
sendMessage(sender, translatable(DUPLICATE_MAP_NAME).color(NamedTextColor.RED));
return true;
}
if (!ImageFrame.isURLAllowed(args[2])) {
String requestedUrl = stripMatchingQuotes(args[2]);
if (!ImageFrame.isURLAllowed(requestedUrl)) {
sendMessage(sender, translatable(URL_RESTRICTED).color(NamedTextColor.RED));
return true;
}
Expand All @@ -238,7 +239,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
ImageMapCreationTask<ImageMap> creationTask = null;
String url = "Pending...";
try {
url = args[2];
url = requestedUrl;
if (ImageFrame.imageUploadManager.isOperational() && url.equalsIgnoreCase("upload")) {
UUID user = isConsole ? ImageMap.CONSOLE_CREATOR : player.getUniqueId();
String playerName = isConsole ? ImageMap.CONSOLE_CREATOR_NAME : player.getName();
Expand Down Expand Up @@ -394,7 +395,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
Scheduler.runTaskAsynchronously(ImageFrame.plugin, () -> {
ImageMapCreationTask<ImageMap> creationTask = null;
try {
String url = args[2];
String url = stripMatchingQuotes(args[2]);
if (ImageFrame.imageUploadManager.isOperational() && url.equalsIgnoreCase("upload")) {
PendingUpload pendingUpload = ImageFrame.imageUploadManager.newPendingUpload(player.getUniqueId(), player.getName(), name, width, height);
String uploadUrl = pendingUpload.getUrl(ImageFrame.uploadServiceDisplayURL);
Expand Down Expand Up @@ -796,12 +797,12 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
if (imageMap == null) {
ditheringType = DitheringType.fromNameOrNull(args[1].toLowerCase());
if (ditheringType == null) {
url = args[1];
url = stripMatchingQuotes(args[1]);
}
} else if (args.length > 2) {
ditheringType = DitheringType.fromNameOrNull(args[2].toLowerCase());
if (ditheringType == null) {
url = args[2];
url = stripMatchingQuotes(args[2]);
}
}
}
Expand Down Expand Up @@ -2249,4 +2250,16 @@ public List<String> onTabComplete(CommandSender sender, Command cmd, String labe
}
}

private static String stripMatchingQuotes(String str) {
if (str.length() < 2) {
return str;
}
char first = str.charAt(0);
char last = str.charAt(str.length() - 1);
if ((first == '"' && last == '"') || (first == '\'' && last == '\'')) {
return str.substring(1, str.length() - 1);
}
return str;
}

}