108 lines
3.9 KiB
Java
108 lines
3.9 KiB
Java
package tc.oc.pgm.commands;
|
|
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
import tc.oc.pgm.PGM;
|
|
import tc.oc.pgm.map.PGMMap;
|
|
import tc.oc.pgm.rotation.*;
|
|
|
|
import com.sk89q.minecraft.util.commands.*;
|
|
|
|
public class RotationEditCommands {
|
|
public static class RotationEditParent {
|
|
@Command(
|
|
aliases = {"rotationedit", "rotedit", "roted", "editrotation", "editrot", "erot"},
|
|
desc = "Commands for editing the rotation and reloading it",
|
|
min = 1,
|
|
max = -1
|
|
)
|
|
@NestedCommand({RotationEditCommands.class})
|
|
public static void editrot() {
|
|
}
|
|
}
|
|
|
|
@Command(
|
|
aliases = {"reload"},
|
|
desc = "Reload the map rotation from it's provider",
|
|
min = 0,
|
|
max = 0
|
|
)
|
|
@CommandPermissions("pgm.rotation.reload")
|
|
public static void reload(CommandContext args, CommandSender sender) throws CommandException {
|
|
boolean success = PGM.getMatchManager().loadRotations();
|
|
if(success) {
|
|
sender.sendMessage(ChatColor.GREEN + "Reloaded the rotation successfully");
|
|
} else {
|
|
sender.sendMessage(ChatColor.RED + "There was an error reloading the rotation - check the server logs");
|
|
}
|
|
}
|
|
|
|
@Command(
|
|
aliases = {"append", "a"},
|
|
desc = "Append a map to the end of the rotation",
|
|
usage = "[map name]",
|
|
min = 1,
|
|
max = -1
|
|
)
|
|
@CommandPermissions("pgm.rotation.append")
|
|
public static void append(CommandContext args, CommandSender sender) throws CommandException {
|
|
PGMMap map = CommandUtils.getMap(args.getJoinedStrings(0), sender);
|
|
|
|
apply(new AppendTransformation(map));
|
|
sender.sendMessage(ChatColor.DARK_PURPLE + "Appended " + ChatColor.GOLD + map.getInfo().name + ChatColor.DARK_PURPLE + " to the rotation.");
|
|
}
|
|
|
|
@Command(
|
|
aliases = {"insert", "i"},
|
|
desc = "Insert a map into the rotation at a certain place",
|
|
usage = "[index] [map name]",
|
|
min = 2,
|
|
max = -1
|
|
)
|
|
@CommandPermissions("pgm.rotation.insert")
|
|
public static void insert(CommandContext args, CommandSender sender) throws CommandException {
|
|
int index = args.getInteger(0);
|
|
PGMMap map = CommandUtils.getMap(args.getJoinedStrings(1), sender);
|
|
|
|
apply(new InsertTransformation(map, index - 1));
|
|
sender.sendMessage(ChatColor.GOLD + map.getInfo().name + ChatColor.DARK_PURPLE + " inserted at index " + index);
|
|
}
|
|
|
|
@Command(
|
|
aliases = {"remove", "r"},
|
|
desc = "Removes all instances of a given map from the rotation",
|
|
usage = "[map name]",
|
|
min = 1,
|
|
max = -1
|
|
)
|
|
@CommandPermissions("pgm.rotation.remove")
|
|
public static void remove(CommandContext args, CommandSender sender) throws CommandException {
|
|
PGMMap map = CommandUtils.getMap(args.getJoinedStrings(0), sender);
|
|
|
|
apply(new RemoveAllTransformation(map));
|
|
sender.sendMessage(ChatColor.DARK_PURPLE + "Removed all instances of " + ChatColor.GOLD + map.getInfo().name + ChatColor.DARK_PURPLE + " from the rotation");
|
|
}
|
|
|
|
@Command(
|
|
aliases = {"removeat", "ra"},
|
|
desc = "Removes the map at a specific index from the rotation",
|
|
usage = "[index]",
|
|
min = 1,
|
|
max = 1
|
|
)
|
|
@CommandPermissions("pgm.rotation.removeat")
|
|
public static void removeat(CommandContext args, CommandSender sender) throws CommandException {
|
|
int index = args.getInteger(0);
|
|
|
|
apply(new RemoveIndexTransformation(index - 1));
|
|
sender.sendMessage(ChatColor.DARK_PURPLE + "Removed map at index " + index + " from the rotation");
|
|
}
|
|
|
|
private static void apply(RotationTransformation transform) throws CommandException {
|
|
RotationManager manager = PGM.getMatchManager().getRotationManager();
|
|
RotationState rotation = transform.apply(manager.getRotation());
|
|
manager.setRotation(rotation);
|
|
}
|
|
}
|