Skip to content
Open
Changes from 1 commit
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
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,23 @@ private static List<File> getFiles(File root, String filter, ClipboardFormat for
return fileList;
}

public static String quoteCmd(String value) {
Comment thread
PierreSchwang marked this conversation as resolved.
Outdated
if (value.isEmpty()) {
return "\"\"";
}

boolean quote = value.indexOf(' ') >= 0 || value.indexOf('\t') >= 0;
if (!quote) {
return value;
}

String escaped = value
.replace("\\", "\\\\")
.replace("\"", "\\\"");

return "\"" + escaped + "\"";
}

@Command(
name = "loadall",
desc = "Load multiple clipboards (paste will randomly choose one)"
Expand Down Expand Up @@ -770,32 +787,33 @@ public void list(
List<Component> components = UtilityCommands.entryToComponent(dir, entries, isLoaded,
(name, path, type, loaded) -> {
TextComponentProducer msg = new TextComponentProducer();
String pathArg = quoteCmd(path);

msg.append(Caption.of("worldedit.schematic.dash.symbol"));

if (loaded) {
msg.append(Caption.of("worldedit.schematic.minus.symbol")
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, unload + " " + path))
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, unload + " " + pathArg))
.hoverEvent(HoverEvent.of(
HoverEvent.Action.SHOW_TEXT,
Caption.of("worldedit.schematic.unload")
)));
} else {
msg.append(Caption.of("worldedit.schematic.plus.symbol")
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadMulti + " " + path))
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadMulti + " " + pathArg))
.hoverEvent(HoverEvent.of(
HoverEvent.Action.SHOW_TEXT,
Caption.of("worldedit.schematic.clipboard")
)));
}
if (type != UtilityCommands.URIType.DIRECTORY) {
msg.append(Caption.of("worldedit.schematic.x.symbol")
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, delete + " " + path))
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, delete + " " + pathArg))
.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.delete")))
);
} else if (hasShow) {
msg.append(Caption.of("worldedit.schematic.0.symbol")
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, showCmd + " " + path))
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, showCmd + " " + pathArg))
.hoverEvent(HoverEvent.of(
HoverEvent.Action.SHOW_TEXT,
Caption.of("worldedit.schematic.visualize")
Expand All @@ -804,13 +822,13 @@ public void list(
}
TextComponent msgElem = TextComponent.of(name);
if (type != UtilityCommands.URIType.DIRECTORY) {
msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadSingle + " " + path));
msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadSingle + " " + pathArg));
msgElem = msgElem.hoverEvent(HoverEvent.of(
HoverEvent.Action.SHOW_TEXT,
Caption.of("worldedit.schematic.load")
));
} else {
msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, list + " " + path));
msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, list + " " + pathArg));
msgElem = msgElem.hoverEvent(HoverEvent.of(
HoverEvent.Action.SHOW_TEXT,
Caption.of("worldedit.schematic.list")
Expand Down
Loading