mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-13 21:54:08 +00:00
Complete Animation Command
This commit is contained in:
1 parent
48b3fadf7d
commit
22e5046923
1 file changed
+118
-76
@@ -2,100 +2,142 @@ package kamkeel.command;
|
||||
|
||||
import net.minecraft.command.CommandException;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import noppes.npcs.api.ISkinOverlay;
|
||||
import noppes.npcs.api.handler.data.IAnimation;
|
||||
import noppes.npcs.controllers.AnimationController;
|
||||
import noppes.npcs.controllers.PlayerDataController;
|
||||
import noppes.npcs.controllers.QuestController;
|
||||
import noppes.npcs.controllers.data.Animation;
|
||||
import noppes.npcs.controllers.data.PlayerData;
|
||||
import noppes.npcs.controllers.data.SkinOverlay;
|
||||
|
||||
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() {
|
||||
return "<player> <subcommand>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean runSubCommands(){
|
||||
return false;
|
||||
public String getCommandName() {
|
||||
return "animation";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processCommand(ICommandSender sender, String[] args) throws CommandException {
|
||||
String playername = args[0];
|
||||
|
||||
data = PlayerDataController.Instance.getPlayersData(sender, playername);
|
||||
if (data.isEmpty()) {
|
||||
throw new CommandException("Unknown player: " + playername);
|
||||
public String getDescription() {
|
||||
return "Animation operations";
|
||||
}
|
||||
|
||||
@SubCommand(
|
||||
desc = "set an animation to a player",
|
||||
usage = "<player> <num>"
|
||||
)
|
||||
public void set(ICommandSender sender, String args[]) throws CommandException{
|
||||
String playername=args[0];
|
||||
int animationId;
|
||||
try {
|
||||
animationId = Integer.parseInt(args[1]);
|
||||
} catch (NumberFormatException ex) {
|
||||
sendError(sender, "Animation num must be an integer: " + args[1]);
|
||||
return;
|
||||
}
|
||||
List<PlayerData> data = PlayerDataController.Instance.getPlayersData(sender, playername);
|
||||
if (data.isEmpty()) {
|
||||
sendError(sender, "Unknown player: " + playername);
|
||||
return;
|
||||
}
|
||||
|
||||
processSubCommand(sender, args[1], Arrays.copyOfRange(args, 2, args.length));
|
||||
data.get(0).animationData.updateClient();
|
||||
data.get(0).save();
|
||||
}
|
||||
|
||||
// @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()));
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @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];
|
||||
// selectedAnimation = AnimationController.getInstance().getAnimationFromName(animationName);
|
||||
// if (selectedAnimation == null) {
|
||||
// throw new CommandException("Unknown animation: " + animationName);
|
||||
// }
|
||||
//
|
||||
// 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()));
|
||||
//
|
||||
// }
|
||||
IAnimation animation = AnimationController.getInstance().get(animationId);
|
||||
if(animation == null){
|
||||
sendError(sender, "No Animation ID found: " + animationId);
|
||||
return;
|
||||
}
|
||||
|
||||
for(PlayerData playerdata : data){
|
||||
playerdata.animationData.setEnabled(false);
|
||||
playerdata.animationData.setAnimation(animation);
|
||||
playerdata.animationData.updateClient();
|
||||
playerdata.save();
|
||||
sendResult(sender, String.format("Animation set to Player '\u00A7b%s\u00A77' on ID \u00A7d%d", playerdata.playername, animationId));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@SubCommand(
|
||||
desc="reload animations from disk",
|
||||
permission = 4
|
||||
desc = "clear an animation from a player",
|
||||
usage = "<player>"
|
||||
)
|
||||
public void reload(ICommandSender sender, String args[]){
|
||||
new AnimationController();
|
||||
public void clear(ICommandSender sender, String args[]) throws CommandException{
|
||||
String playername=args[0];
|
||||
List<PlayerData> data = PlayerDataController.Instance.getPlayersData(sender, playername);
|
||||
if (data.isEmpty()) {
|
||||
sendError(sender, "Unknown player: " + playername);
|
||||
return;
|
||||
}
|
||||
|
||||
for(PlayerData playerdata : data){
|
||||
playerdata.animationData.setEnabled(false);
|
||||
playerdata.animationData.setAnimation(null);
|
||||
playerdata.animationData.updateClient();
|
||||
playerdata.save();
|
||||
sendResult(sender, String.format("Animation cleared from Player '\u00A7b%s\u00A77'", playerdata.playername));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@SubCommand(
|
||||
desc = "enable an animation on a player",
|
||||
usage = "<player>"
|
||||
)
|
||||
public void enable(ICommandSender sender, String args[]) throws CommandException{
|
||||
String playername=args[0];
|
||||
List<PlayerData> data = PlayerDataController.Instance.getPlayersData(sender, playername);
|
||||
if (data.isEmpty()) {
|
||||
sendError(sender, "Unknown player: " + playername);
|
||||
return;
|
||||
}
|
||||
|
||||
for(PlayerData playerdata : data){
|
||||
if(playerdata.animationData.getAnimation() == null){
|
||||
sendError(sender, String.format("Player '\u00A7b%s\u00A74' does not have an animation set", playerdata.playername));
|
||||
return;
|
||||
}
|
||||
|
||||
playerdata.animationData.setEnabled(true);
|
||||
playerdata.animationData.updateClient();
|
||||
playerdata.save();
|
||||
sendResult(sender, String.format("Animation Enabled for Player '\u00A7b%s\u00A77'", playerdata.playername));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@SubCommand(
|
||||
desc = "disable an animation on a player",
|
||||
usage = "<player>"
|
||||
)
|
||||
public void disable(ICommandSender sender, String args[]) throws CommandException{
|
||||
String playername=args[0];
|
||||
List<PlayerData> data = PlayerDataController.Instance.getPlayersData(sender, playername);
|
||||
if (data.isEmpty()) {
|
||||
sendError(sender, "Unknown player: " + playername);
|
||||
return;
|
||||
}
|
||||
|
||||
for(PlayerData playerdata : data){
|
||||
if(playerdata.animationData.getAnimation() == null){
|
||||
sendError(sender, String.format("Player '\u00A7b%s\u00A74' does not have an animation set", playerdata.playername));
|
||||
return;
|
||||
}
|
||||
|
||||
playerdata.animationData.setEnabled(false);
|
||||
playerdata.animationData.updateClient();
|
||||
playerdata.save();
|
||||
sendResult(sender, String.format("Animation Disabled for Player '\u00A7b%s\u00A77'", playerdata.playername));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@SubCommand(
|
||||
desc = "reload animations"
|
||||
)
|
||||
public void reload(ICommandSender sender, String args[]) {
|
||||
AnimationController.Instance.load();
|
||||
sendResult(sender, "Animations Reloaded");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user