mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2025-02-19 22:12:11 +01:00
Parse world flags in command execution itself.
This commit is contained in:
parent
538cdb1a69
commit
3e1d3e776b
@ -16,7 +16,6 @@ import com.onarandombox.MultiverseCore.api.MVDestination;
|
|||||||
import com.onarandombox.MultiverseCore.api.MVWorldManager;
|
import com.onarandombox.MultiverseCore.api.MVWorldManager;
|
||||||
import com.onarandombox.MultiverseCore.api.MultiverseWorld;
|
import com.onarandombox.MultiverseCore.api.MultiverseWorld;
|
||||||
import com.onarandombox.MultiverseCore.commands.EnvironmentCommand;
|
import com.onarandombox.MultiverseCore.commands.EnvironmentCommand;
|
||||||
import com.onarandombox.MultiverseCore.commands.GeneratorCommand;
|
|
||||||
import com.onarandombox.MultiverseCore.destination.InvalidDestination;
|
import com.onarandombox.MultiverseCore.destination.InvalidDestination;
|
||||||
import com.onarandombox.MultiverseCore.utils.webpaste.PasteServiceType;
|
import com.onarandombox.MultiverseCore.utils.webpaste.PasteServiceType;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -24,17 +23,12 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.GameRule;
|
import org.bukkit.GameRule;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.WorldType;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -55,7 +49,6 @@ public class MVCommandContexts extends PaperCommandContexts {
|
|||||||
registerContext(CommandPlayer.class, this::deriveCommandPlayer);
|
registerContext(CommandPlayer.class, this::deriveCommandPlayer);
|
||||||
registerIssuerAwareContext(Player.class, this::derivePlayer);
|
registerIssuerAwareContext(Player.class, this::derivePlayer);
|
||||||
registerContext(World.Environment.class, this::deriveEnvironment);
|
registerContext(World.Environment.class, this::deriveEnvironment);
|
||||||
registerIssuerAwareContext(WorldFlags.class, this::deriveWorldFlags);
|
|
||||||
registerIssuerAwareContext(GameRuleProperty.class, this::deriveGameRuleProperty);
|
registerIssuerAwareContext(GameRuleProperty.class, this::deriveGameRuleProperty);
|
||||||
registerIssuerAwareContext(MVDestination.class, this::deriveMVDestination);
|
registerIssuerAwareContext(MVDestination.class, this::deriveMVDestination);
|
||||||
registerIssuerAwareContext(Location.class, this::deriveLocation);
|
registerIssuerAwareContext(Location.class, this::deriveLocation);
|
||||||
@ -275,121 +268,6 @@ public class MVCommandContexts extends PaperCommandContexts {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private WorldFlags deriveWorldFlags(@NotNull BukkitCommandExecutionContext context) {
|
|
||||||
Map<String, String> flags = parseFlags(context.getArgs());
|
|
||||||
return new WorldFlags(
|
|
||||||
flags.keySet(),
|
|
||||||
flags.get("-s"),
|
|
||||||
validateGenerator(flags.get("-g"), context.getSender()),
|
|
||||||
getWorldType(flags.get("-t"), context.getSender()),
|
|
||||||
!flags.containsKey("-n"),
|
|
||||||
doGenerateStructures(flags.get("-a"))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private String validateGenerator(@Nullable String value,
|
|
||||||
@NotNull CommandSender sender) {
|
|
||||||
|
|
||||||
if (value == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<String> genArray = new ArrayList<>(Arrays.asList(value.split(":")));
|
|
||||||
if (genArray.size() < 2) {
|
|
||||||
// If there was only one arg specified, pad with another empty one.
|
|
||||||
genArray.add("");
|
|
||||||
}
|
|
||||||
if (this.worldManager.getChunkGenerator(genArray.get(0), genArray.get(1), "test") == null) {
|
|
||||||
sender.sendMessage(ChatColor.RED + "Invalid generator '" + value + "'.");
|
|
||||||
GeneratorCommand.showAvailableGenerator(sender);
|
|
||||||
throw new InvalidCommandArgument(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private WorldType getWorldType(@Nullable String type,
|
|
||||||
@NotNull CommandSender sender) {
|
|
||||||
if (type == null || type.length() == 0) {
|
|
||||||
return WorldType.NORMAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type.equalsIgnoreCase("normal")) {
|
|
||||||
type = "NORMAL";
|
|
||||||
}
|
|
||||||
else if (type.equalsIgnoreCase("flat")) {
|
|
||||||
type = "FLAT";
|
|
||||||
}
|
|
||||||
else if (type.equalsIgnoreCase("largebiomes")) {
|
|
||||||
type = "LARGE_BIOMES";
|
|
||||||
}
|
|
||||||
else if (type.equalsIgnoreCase("amplified")) {
|
|
||||||
type = "AMPLIFIED";
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
return WorldType.valueOf(type);
|
|
||||||
}
|
|
||||||
catch (IllegalArgumentException e) {
|
|
||||||
sender.sendMessage(ChatColor.RED + "'" + type + "' is not a valid World Type.");
|
|
||||||
EnvironmentCommand.showWorldTypes(sender);
|
|
||||||
throw new InvalidCommandArgument(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean doGenerateStructures(@Nullable String value) {
|
|
||||||
return value == null || value.equalsIgnoreCase("true");
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private Map<String, String> parseFlags(@NotNull List<String> args) {
|
|
||||||
Map<String, String> flags = new HashMap<>();
|
|
||||||
if (!validateFlagArgs(args)) {
|
|
||||||
return flags;
|
|
||||||
}
|
|
||||||
|
|
||||||
mapOutTheArgs(args, flags);
|
|
||||||
return flags;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean validateFlagArgs(@Nullable List<String> args) {
|
|
||||||
if (args == null || args.size() == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!isFlagKey(args.get(0))) {
|
|
||||||
throw new InvalidCommandArgument("No flag defined for value '" + args.get(0) + "'");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void mapOutTheArgs(@NotNull List<String> args,
|
|
||||||
@NotNull Map<String, String> flags) {
|
|
||||||
|
|
||||||
String preFlagKey = args.remove(0);
|
|
||||||
StringBuilder flagValue = new StringBuilder();
|
|
||||||
|
|
||||||
for (String arg : args) {
|
|
||||||
if (!isFlagKey(arg)) {
|
|
||||||
flagValue.append(arg);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (preFlagKey != null) {
|
|
||||||
flags.put(preFlagKey, flagValue.toString());
|
|
||||||
flagValue = new StringBuilder();
|
|
||||||
}
|
|
||||||
preFlagKey = arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
flags.put(preFlagKey, flagValue.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isFlagKey(@NotNull String value) {
|
|
||||||
return value.charAt(0) == '-';
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private GameRuleProperty<?> deriveGameRuleProperty(@NotNull BukkitCommandExecutionContext context) {
|
private GameRuleProperty<?> deriveGameRuleProperty(@NotNull BukkitCommandExecutionContext context) {
|
||||||
int argLength = context.getArgs().size();
|
int argLength = context.getArgs().size();
|
||||||
|
@ -7,34 +7,157 @@
|
|||||||
|
|
||||||
package com.onarandombox.MultiverseCore.commandTools;
|
package com.onarandombox.MultiverseCore.commandTools;
|
||||||
|
|
||||||
|
import co.aikar.commands.InvalidCommandArgument;
|
||||||
|
import com.dumptruckman.minecraft.util.Logging;
|
||||||
|
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||||
|
import com.onarandombox.MultiverseCore.commands.EnvironmentCommand;
|
||||||
|
import com.onarandombox.MultiverseCore.commands.GeneratorCommand;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.WorldType;
|
import org.bukkit.WorldType;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class WorldFlags {
|
public class WorldFlags {
|
||||||
private final Set<String> flagsUsed;
|
|
||||||
private final String seed;
|
private final String seed;
|
||||||
private final String generator;
|
private final String generator;
|
||||||
private final WorldType worldType;
|
private final WorldType worldType;
|
||||||
private final boolean spawnAdjust;
|
private final boolean spawnAdjust;
|
||||||
private final boolean generateStructures;
|
private final boolean generateStructures;
|
||||||
|
private final Map<String, String> parsedFlags;
|
||||||
|
|
||||||
public WorldFlags(Set<String> flagsUsed,
|
private static final Set<String> FLAG_KEYS = Collections.unmodifiableSet(new HashSet<String>() {{
|
||||||
String seed, String generator,
|
add("-s");
|
||||||
WorldType worldType,
|
add("-g");
|
||||||
boolean spawnAdjust,
|
add("-t");
|
||||||
boolean generateStructures) {
|
add("-n");
|
||||||
|
add("-a");
|
||||||
|
}});
|
||||||
|
|
||||||
this.flagsUsed = flagsUsed;
|
public WorldFlags(@NotNull CommandSender sender,
|
||||||
this.seed = seed;
|
@NotNull MultiverseCore plugin,
|
||||||
this.generator = generator;
|
@Nullable String[] args) {
|
||||||
this.worldType = worldType;
|
|
||||||
this.spawnAdjust = spawnAdjust;
|
Map<String, String> flags = parseFlags(args);
|
||||||
this.generateStructures = generateStructures;
|
Logging.finer("World flags: " + flags.toString());
|
||||||
|
|
||||||
|
this.parsedFlags = flags;
|
||||||
|
this.seed = flags.get("-s");
|
||||||
|
this.generator = validateGenerator(flags.get("-g"), sender, plugin);
|
||||||
|
this.worldType = getWorldType(flags.get("-t"), sender);
|
||||||
|
this.spawnAdjust = !flags.containsKey("-n");
|
||||||
|
this.generateStructures = doGenerateStructures(flags.get("-a"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private static String validateGenerator(@Nullable String value,
|
||||||
|
@NotNull CommandSender sender,
|
||||||
|
@NotNull MultiverseCore plugin) {
|
||||||
|
|
||||||
|
if (value == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> genArray = new ArrayList<>(Arrays.asList(value.split(":")));
|
||||||
|
if (genArray.size() < 2) {
|
||||||
|
// If there was only one arg specified, pad with another empty one.
|
||||||
|
genArray.add("");
|
||||||
|
}
|
||||||
|
if (plugin.getMVWorldManager().getChunkGenerator(genArray.get(0), genArray.get(1), "test") == null) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Invalid generator '" + value + "'.");
|
||||||
|
GeneratorCommand.showAvailableGenerator(sender);
|
||||||
|
throw new InvalidCommandArgument(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static WorldType getWorldType(@Nullable String type,
|
||||||
|
@NotNull CommandSender sender) {
|
||||||
|
if (type == null || type.length() == 0) {
|
||||||
|
return WorldType.NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type.equalsIgnoreCase("normal")) {
|
||||||
|
type = "NORMAL";
|
||||||
|
}
|
||||||
|
else if (type.equalsIgnoreCase("flat")) {
|
||||||
|
type = "FLAT";
|
||||||
|
}
|
||||||
|
else if (type.equalsIgnoreCase("largebiomes")) {
|
||||||
|
type = "LARGE_BIOMES";
|
||||||
|
}
|
||||||
|
else if (type.equalsIgnoreCase("amplified")) {
|
||||||
|
type = "AMPLIFIED";
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return WorldType.valueOf(type);
|
||||||
|
}
|
||||||
|
catch (IllegalArgumentException e) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "'" + type + "' is not a valid World Type.");
|
||||||
|
EnvironmentCommand.showWorldTypes(sender);
|
||||||
|
throw new InvalidCommandArgument(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean doGenerateStructures(@Nullable String value) {
|
||||||
|
return value == null || value.equalsIgnoreCase("true");
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static Map<String, String> parseFlags(@Nullable String[] args) {
|
||||||
|
Map<String, String> flags = new HashMap<>();
|
||||||
|
if (args == null || args.length == 0) {
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
mapOutTheArgs(args, flags);
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void mapOutTheArgs(@NotNull String[] args,
|
||||||
|
@NotNull Map<String, String> flags) {
|
||||||
|
|
||||||
|
String currentFlagKey = null;
|
||||||
|
|
||||||
|
for (String arg : args) {
|
||||||
|
if (isValidFlagKey(arg)) {
|
||||||
|
if (currentFlagKey != null) {
|
||||||
|
flags.put(currentFlagKey, null);
|
||||||
|
}
|
||||||
|
currentFlagKey = arg;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentFlagKey == null) {
|
||||||
|
throw new InvalidCommandArgument("'" + arg + "' is not a valid flag key.");
|
||||||
|
}
|
||||||
|
flags.put(currentFlagKey, arg);
|
||||||
|
currentFlagKey = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentFlagKey != null) {
|
||||||
|
flags.put(currentFlagKey, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isValidFlagKey(@Nullable String value) {
|
||||||
|
return value != null && FLAG_KEYS.contains(value.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasFlag(String flag) {
|
public boolean hasFlag(String flag) {
|
||||||
return flagsUsed.contains(flag);
|
return parsedFlags.containsKey(flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSeed() {
|
public String getSeed() {
|
||||||
|
@ -13,6 +13,7 @@ import co.aikar.commands.annotation.CommandPermission;
|
|||||||
import co.aikar.commands.annotation.Conditions;
|
import co.aikar.commands.annotation.Conditions;
|
||||||
import co.aikar.commands.annotation.Description;
|
import co.aikar.commands.annotation.Description;
|
||||||
import co.aikar.commands.annotation.Flags;
|
import co.aikar.commands.annotation.Flags;
|
||||||
|
import co.aikar.commands.annotation.Optional;
|
||||||
import co.aikar.commands.annotation.Subcommand;
|
import co.aikar.commands.annotation.Subcommand;
|
||||||
import co.aikar.commands.annotation.Syntax;
|
import co.aikar.commands.annotation.Syntax;
|
||||||
import com.onarandombox.MultiverseCore.MultiverseCore;
|
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||||
@ -22,6 +23,7 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@CommandAlias("mv")
|
@CommandAlias("mv")
|
||||||
public class CreateCommand extends MultiverseCommand {
|
public class CreateCommand extends MultiverseCommand {
|
||||||
@ -33,19 +35,20 @@ public class CreateCommand extends MultiverseCommand {
|
|||||||
@Subcommand("create")
|
@Subcommand("create")
|
||||||
@CommandPermission("multiverse.core.create")
|
@CommandPermission("multiverse.core.create")
|
||||||
@Syntax("<name> <env> -s [seed] -g [generator[:id]] -t [worldtype] [-n] -a [true|false]")
|
@Syntax("<name> <env> -s [seed] -g [generator[:id]] -t [worldtype] [-n] -a [true|false]")
|
||||||
@CommandCompletion(" @environments")
|
@CommandCompletion("@empty @environments") //TODO: Add flags tab-complete
|
||||||
@Description("Creates a new world and loads it.")
|
@Description("Creates a new world and loads it.")
|
||||||
public void onCreateCommand(@NotNull CommandSender sender,
|
public void onCreateCommand(@NotNull CommandSender sender,
|
||||||
@NotNull @Flags("trim") @Conditions("creatableWorldName") String worldName,
|
@NotNull @Flags("trim") @Conditions("creatableWorldName") String worldName,
|
||||||
@NotNull World.Environment environment,
|
@NotNull World.Environment environment,
|
||||||
@NotNull WorldFlags flags) {
|
@Nullable @Optional String[] flagsArray) {
|
||||||
|
|
||||||
|
WorldFlags flags = new WorldFlags(sender, this.plugin, flagsArray);
|
||||||
|
|
||||||
Command.broadcastCommandMessage(sender, "Starting creation of world '" + worldName + "'...");
|
Command.broadcastCommandMessage(sender, "Starting creation of world '" + worldName + "'...");
|
||||||
|
|
||||||
// TODO: Should Allow WorldFlags object to be passed directly
|
|
||||||
Command.broadcastCommandMessage(sender, (this.plugin.getMVWorldManager().addWorld(
|
Command.broadcastCommandMessage(sender, (this.plugin.getMVWorldManager().addWorld(
|
||||||
worldName,
|
worldName,
|
||||||
environment,
|
environment,
|
||||||
|
// TODO: Should Allow WorldFlags object to be passed directly
|
||||||
flags.getSeed(),
|
flags.getSeed(),
|
||||||
flags.getWorldType(),
|
flags.getWorldType(),
|
||||||
flags.isGenerateStructures(),
|
flags.isGenerateStructures(),
|
||||||
|
@ -13,6 +13,7 @@ import co.aikar.commands.annotation.CommandPermission;
|
|||||||
import co.aikar.commands.annotation.Conditions;
|
import co.aikar.commands.annotation.Conditions;
|
||||||
import co.aikar.commands.annotation.Description;
|
import co.aikar.commands.annotation.Description;
|
||||||
import co.aikar.commands.annotation.Flags;
|
import co.aikar.commands.annotation.Flags;
|
||||||
|
import co.aikar.commands.annotation.Optional;
|
||||||
import co.aikar.commands.annotation.Subcommand;
|
import co.aikar.commands.annotation.Subcommand;
|
||||||
import co.aikar.commands.annotation.Syntax;
|
import co.aikar.commands.annotation.Syntax;
|
||||||
import com.onarandombox.MultiverseCore.MultiverseCore;
|
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||||
@ -22,6 +23,7 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@CommandAlias("mv")
|
@CommandAlias("mv")
|
||||||
public class ImportCommand extends MultiverseCommand {
|
public class ImportCommand extends MultiverseCommand {
|
||||||
@ -38,10 +40,11 @@ public class ImportCommand extends MultiverseCommand {
|
|||||||
public void onImportCommand(@NotNull CommandSender sender,
|
public void onImportCommand(@NotNull CommandSender sender,
|
||||||
@NotNull @Flags("trim") @Conditions("importableWorldName") String worldName,
|
@NotNull @Flags("trim") @Conditions("importableWorldName") String worldName,
|
||||||
@NotNull World.Environment environment,
|
@NotNull World.Environment environment,
|
||||||
@NotNull WorldFlags flags) {
|
@Nullable @Optional String[] flagsArray) {
|
||||||
|
|
||||||
|
WorldFlags flags = new WorldFlags(sender, this.plugin, flagsArray);
|
||||||
|
|
||||||
Command.broadcastCommandMessage(sender, "Starting import of world '" + worldName + "'...");
|
Command.broadcastCommandMessage(sender, "Starting import of world '" + worldName + "'...");
|
||||||
|
|
||||||
String resultMessage = (this.plugin.getMVWorldManager().addWorld(worldName,
|
String resultMessage = (this.plugin.getMVWorldManager().addWorld(worldName,
|
||||||
environment,
|
environment,
|
||||||
null,
|
null,
|
||||||
|
@ -12,6 +12,7 @@ import co.aikar.commands.annotation.CommandCompletion;
|
|||||||
import co.aikar.commands.annotation.CommandPermission;
|
import co.aikar.commands.annotation.CommandPermission;
|
||||||
import co.aikar.commands.annotation.Description;
|
import co.aikar.commands.annotation.Description;
|
||||||
import co.aikar.commands.annotation.Flags;
|
import co.aikar.commands.annotation.Flags;
|
||||||
|
import co.aikar.commands.annotation.Optional;
|
||||||
import co.aikar.commands.annotation.Subcommand;
|
import co.aikar.commands.annotation.Subcommand;
|
||||||
import co.aikar.commands.annotation.Syntax;
|
import co.aikar.commands.annotation.Syntax;
|
||||||
import com.onarandombox.MultiverseCore.MultiverseCore;
|
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||||
@ -20,6 +21,7 @@ import com.onarandombox.MultiverseCore.commandTools.WorldFlags;
|
|||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@CommandAlias("mv")
|
@CommandAlias("mv")
|
||||||
public class RegenCommand extends MultiverseCommand {
|
public class RegenCommand extends MultiverseCommand {
|
||||||
@ -36,7 +38,9 @@ public class RegenCommand extends MultiverseCommand {
|
|||||||
public void onRegenCommand(@NotNull CommandSender sender,
|
public void onRegenCommand(@NotNull CommandSender sender,
|
||||||
//TODO: Allow regen of unloaded worlds.
|
//TODO: Allow regen of unloaded worlds.
|
||||||
@NotNull @Flags("other") MultiverseWorld world,
|
@NotNull @Flags("other") MultiverseWorld world,
|
||||||
@NotNull WorldFlags flags) {
|
@Nullable @Optional String[] flagsArray) {
|
||||||
|
|
||||||
|
WorldFlags flags = new WorldFlags(sender, this.plugin, flagsArray);
|
||||||
|
|
||||||
this.plugin.getMVCommandManager().getQueueManager().addToQueue(
|
this.plugin.getMVCommandManager().getQueueManager().addToQueue(
|
||||||
sender,
|
sender,
|
||||||
|
Loading…
Reference in New Issue
Block a user