mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-09-07 00:08:20 +00:00
04c31262f7
This reduces the boilerplate code needed to parse arguments in each command, and reduces the need to maintain command documentation with @Command. Example: @Command(aliases = "/set", desc = "Set all the blocks inside the selection to a block") @CommandPermissions("worldedit.region.set") @Logging(REGION) void setBlocks(LocalPlayer player, EditSession editSession, @Selection Region region, Pattern replaceWith) { // Perform command }
50 lines
1.2 KiB
Java
50 lines
1.2 KiB
Java
package com.sk89q.minecraft.util.commands;
|
|
|
|
public class SuggestionContext {
|
|
|
|
private static final SuggestionContext FOR_LAST = new SuggestionContext(null, true);
|
|
private static final SuggestionContext FOR_HANGING = new SuggestionContext(null, false);
|
|
|
|
private final Character flag;
|
|
private final boolean forLast;
|
|
|
|
private SuggestionContext(Character flag, boolean forLast) {
|
|
this.flag = flag;
|
|
this.forLast = forLast;
|
|
}
|
|
|
|
public boolean forHangingValue() {
|
|
return flag == null && !forLast;
|
|
}
|
|
|
|
public boolean forLastValue() {
|
|
return flag == null && forLast;
|
|
}
|
|
|
|
public boolean forFlag() {
|
|
return flag != null;
|
|
}
|
|
|
|
public Character getFlag() {
|
|
return flag;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return forFlag() ? ("-" + getFlag()) : (forHangingValue() ? "hanging" : "last");
|
|
}
|
|
|
|
public static SuggestionContext flag(Character flag) {
|
|
return new SuggestionContext(flag, false);
|
|
}
|
|
|
|
public static SuggestionContext lastValue() {
|
|
return FOR_LAST;
|
|
}
|
|
|
|
public static SuggestionContext hangingValue() {
|
|
return FOR_HANGING;
|
|
}
|
|
|
|
}
|