Files
CustomNPC-Plus/src/main/java/kamkeel/command/AnimationCommand.java
T

90 lines
3.1 KiB
Java
Raw Normal View History

2023-05-12 20:32:44 -04:00
package kamkeel.command;
2023-03-21 19:34:30 -04:00
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import noppes.npcs.controllers.AnimationController;
import noppes.npcs.controllers.PlayerDataController;
import noppes.npcs.controllers.data.Animation;
import noppes.npcs.controllers.data.PlayerData;
import java.util.Arrays;
import java.util.List;
public class AnimationCommand extends CommandKamkeelBase {
public Animation selectedAnimation;
public List<PlayerData> data;
@Override
public String getCommandName() {
return "animation";
}
@Override
public String getDescription() {
return "Animation operations";
}
@Override
public String getUsage() {
2023-05-09 14:08:45 -04:00
return "<player> <subcommand>";
2023-03-21 19:34:30 -04:00
}
@Override
public boolean runSubCommands(){
return false;
}
@Override
public void processCommand(ICommandSender sender, String[] args) throws CommandException {
String playername = args[0];
2023-06-05 19:35:27 -04:00
data = PlayerDataController.Instance.getPlayersData(sender, playername);
2023-03-21 19:34:30 -04:00
if (data.isEmpty()) {
throw new CommandException("Unknown player: " + playername);
}
2023-05-09 14:08:45 -04:00
processSubCommand(sender, args[1], Arrays.copyOfRange(args, 2, args.length));
data.get(0).animationData.updateClient();
data.get(0).save();
2023-05-09 14:08:45 -04:00
}
@SubCommand(desc = "enable animation")
public void on(ICommandSender sender, String[] args) throws CommandException {
data.get(0).animationData.setEnabled(true);
sendMessage(sender, String.format("Animations enabled for Player %s", data.get(0).player.getCommandSenderName()));
}
2023-03-21 19:34:30 -04:00
2023-05-09 14:08:45 -04:00
@SubCommand(
desc = "Set animation",
usage = "<animation>"
)
public void set(ICommandSender sender, String[] args) throws CommandException {
if(args.length != 1){
throw new CommandException("Please include the animation name:" + "<player> set <animation name>");
}
String animationName = args[0];
2023-03-21 19:34:30 -04:00
selectedAnimation = AnimationController.getInstance().getAnimationFromName(animationName);
if (selectedAnimation == null) {
throw new CommandException("Unknown animation: " + animationName);
}
2023-05-09 14:08:45 -04:00
data.get(0).animationData.setAnimation(selectedAnimation);
sendMessage(sender, String.format("Animation %s set for Player %s", selectedAnimation.getName(), data.get(0).player.getCommandSenderName()));
}
@SubCommand(desc = "disable animation")
public void off(ICommandSender sender, String[] args) throws CommandException {
data.get(0).animationData.setEnabled(false);
sendMessage(sender, String.format("Animations disabled for Player %s", data.get(0).player.getCommandSenderName()));
}
@SubCommand(desc = "play animation")
public void clear(ICommandSender sender, String[] args) throws CommandException {
data.get(0).animationData.setEnabled(false);
data.get(0).animationData.setAnimation(null);
sendMessage(sender, String.format("Animations cleared for Player %s", data.get(0).player.getCommandSenderName()));
2023-03-21 19:34:30 -04:00
}
}