Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -328,59 +328,71 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String label, @No
private boolean edit(@NotNull final CommandSender player, @NotNull final Hologram hologram, @NotNull final String[] args) {
final var action = args[2].toLowerCase();

// actions without a data
switch (action) {
case "position", "movehere" -> {
return new MoveHereCMD().run(player, hologram, args);
}
case "center" -> {
return new CenterCMD().run(player, hologram, args);
}
case "unlinkwithnpc" -> {
return new UnlinkWithNpcCMD().run(player, hologram, args);
try {
// actions without a data
switch (action) {
case "position", "movehere" -> {
return new MoveHereCMD().run(player, hologram, args);
}
case "center" -> {
return new CenterCMD().run(player, hologram, args);
}
case "unlinkwithnpc" -> {
return new UnlinkWithNpcCMD().run(player, hologram, args);
}
case "item" -> {
return new ItemCMD().run(player, hologram, args);
}
}
case "item" -> {
return new ItemCMD().run(player, hologram, args);

if (args.length == 3) {
MessageHelper.error(player, "Wrong usage: /hologram help");
return false;
}
}

if (args.length == 3) {
MessageHelper.error(player, "Wrong usage: /hologram help");
return switch (action) {
// display data
case "moveto" -> new MoveToCMD().run(player, hologram, args);
case "rotate" -> new RotateCMD().run(player, hologram, args);
case "rotatepitch" -> new RotatePitchCMD().run(player, hologram, args);
case "billboard" -> new BillboardCMD().run(player, hologram, args);
case "scale" -> new ScaleCMD().run(player, hologram, args);
case "translate" -> new TranslateCommand().run(player, hologram, args);
case "updatetextinterval" -> new UpdateTextIntervalCMD().run(player, hologram, args);
case "visibilitydistance" -> new VisibilityDistanceCMD().run(player, hologram, args);
case "visibility" -> new VisibilityCMD().run(player, hologram, args);
case "linkwithnpc" -> new LinkWithNpcCMD().run(player, hologram, args);
case "shadowradius" -> new ShadowRadiusCMD().run(player, hologram, args);
case "shadowstrength" -> new ShadowStrengthCMD().run(player, hologram, args);
case "brightness" -> new BrightnessCMD().run(player, hologram, args);

// text data
case "background" -> new BackgroundCMD().run(player, hologram, args);
case "addline" -> new AddLineCMD().run(player, hologram, args);
case "setline" -> new SetLineCMD().run(player, hologram, args);
case "removeline" -> new RemoveLineCMD().run(player, hologram, args);
case "insertbefore" -> new InsertBeforeCMD().run(player, hologram, args);
case "insertafter" -> new InsertAfterCMD().run(player, hologram, args);
case "textshadow" -> new TextShadowCMD().run(player, hologram, args);
case "textalignment" -> new TextAlignmentCMD().run(player, hologram, args);
case "seethrough" -> new SeeThroughCMD().run(player, hologram, args);

// block data
case "block" -> new BlockCMD().run(player, hologram, args);

default -> false;
};
} catch (ArrayIndexOutOfBoundsException | StringIndexOutOfBoundsException e) {
MessageHelper.error(player, "Invalid command arguments. Use /hologram help for correct syntax");
return false;
} catch (NumberFormatException e) {
MessageHelper.error(player, "Invalid number format in command arguments");
return false;
} catch (Exception e) {
MessageHelper.error(player, "An error occurred while executing the command. Please check your syntax with /hologram help");
plugin.getLogger().warning("Error executing hologram command: " + e.getMessage());
return false;
}

return switch (action) {
// display data
case "moveto" -> new MoveToCMD().run(player, hologram, args);
case "rotate" -> new RotateCMD().run(player, hologram, args);
case "rotatepitch" -> new RotatePitchCMD().run(player, hologram, args);
case "billboard" -> new BillboardCMD().run(player, hologram, args);
case "scale" -> new ScaleCMD().run(player, hologram, args);
case "translate" -> new TranslateCommand().run(player, hologram, args);
case "updatetextinterval" -> new UpdateTextIntervalCMD().run(player, hologram, args);
case "visibilitydistance" -> new VisibilityDistanceCMD().run(player, hologram, args);
case "visibility" -> new VisibilityCMD().run(player, hologram, args);
case "linkwithnpc" -> new LinkWithNpcCMD().run(player, hologram, args);
case "shadowradius" -> new ShadowRadiusCMD().run(player, hologram, args);
case "shadowstrength" -> new ShadowStrengthCMD().run(player, hologram, args);
case "brightness" -> new BrightnessCMD().run(player, hologram, args);

// text data
case "background" -> new BackgroundCMD().run(player, hologram, args);
case "addline" -> new AddLineCMD().run(player, hologram, args);
case "setline" -> new SetLineCMD().run(player, hologram, args);
case "removeline" -> new RemoveLineCMD().run(player, hologram, args);
case "insertbefore" -> new InsertBeforeCMD().run(player, hologram, args);
case "insertafter" -> new InsertAfterCMD().run(player, hologram, args);
case "textshadow" -> new TextShadowCMD().run(player, hologram, args);
case "textalignment" -> new TextAlignmentCMD().run(player, hologram, args);
case "seethrough" -> new SeeThroughCMD().run(player, hologram, args);

// block data
case "block" -> new BlockCMD().run(player, hologram, args);

default -> false;
};
}

}