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;
|
2023-11-06 21:51:08 -05:00
|
|
|
import noppes.npcs.api.ISkinOverlay;
|
|
|
|
|
import noppes.npcs.api.handler.data.IAnimation;
|
2023-03-21 19:34:30 -04:00
|
|
|
import noppes.npcs.controllers.AnimationController;
|
|
|
|
|
import noppes.npcs.controllers.PlayerDataController;
|
|
|
|
|
import noppes.npcs.controllers.data.PlayerData;
|
2023-11-06 21:51:08 -05:00
|
|
|
import noppes.npcs.controllers.data.SkinOverlay;
|
2023-03-21 19:34:30 -04:00
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
public class AnimationCommand extends CommandKamkeelBase {
|
|
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
@Override
|
|
|
|
|
public String getCommandName() {
|
|
|
|
|
return "animation";
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
@Override
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IAnimation animation = AnimationController.getInstance().get(animationId);
|
|
|
|
|
if(animation == null){
|
|
|
|
|
sendError(sender, "No Animation ID found: " + animationId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
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;
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
}
|
|
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
@SubCommand(
|
|
|
|
|
desc = "clear an animation from a player",
|
|
|
|
|
usage = "<player>"
|
|
|
|
|
)
|
|
|
|
|
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;
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
}
|
|
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
@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;
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
@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);
|
2023-03-21 19:34:30 -04:00
|
|
|
if (data.isEmpty()) {
|
2023-11-06 21:51:08 -05:00
|
|
|
sendError(sender, "Unknown player: " + playername);
|
|
|
|
|
return;
|
2023-03-21 19:34:30 -04:00
|
|
|
}
|
2023-05-09 14:08:45 -04:00
|
|
|
|
2023-11-06 21:51:08 -05:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-21 19:34:30 -04:00
|
|
|
|
2023-05-09 14:08:45 -04:00
|
|
|
@SubCommand(
|
2023-11-06 21:51:08 -05:00
|
|
|
desc = "reload animations"
|
2023-05-09 14:08:45 -04:00
|
|
|
)
|
2023-11-06 21:51:08 -05:00
|
|
|
public void reload(ICommandSender sender, String args[]) {
|
2023-06-23 14:37:31 -04:00
|
|
|
AnimationController.Instance.load();
|
2023-06-23 14:15:43 -04:00
|
|
|
sendResult(sender, "Animations Reloaded");
|
2023-03-21 19:34:30 -04:00
|
|
|
}
|
2023-11-06 21:51:08 -05:00
|
|
|
|
2023-03-21 19:34:30 -04:00
|
|
|
}
|