From 5a5b82e6304fb04eaffb4927fb898c9fe316236e Mon Sep 17 00:00:00 2001 From: Teyir Date: Mon, 28 Nov 2022 14:56:29 +0100 Subject: [PATCH] [IMPROVE] Add -s argument for /exp command --- .../gamingmesh/jobs/commands/list/exp.java | 145 ++++++++++-------- 1 file changed, 79 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/gamingmesh/jobs/commands/list/exp.java b/src/main/java/com/gamingmesh/jobs/commands/list/exp.java index 457f8928..8b16d703 100644 --- a/src/main/java/com/gamingmesh/jobs/commands/list/exp.java +++ b/src/main/java/com/gamingmesh/jobs/commands/list/exp.java @@ -12,83 +12,96 @@ import com.gamingmesh.jobs.container.JobsPlayer; public class exp implements Cmd { private enum Action { - Set, Add, Take + Set, Add, Take } @Override public boolean perform(Jobs plugin, CommandSender sender, String[] args) { - if (args.length < 4) { - Jobs.getCommandManager().sendUsage(sender, "exp"); - return true; - } + if (args.length < 4) { + Jobs.getCommandManager().sendUsage(sender, "exp"); + return true; + } - JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(args[0]); - if (jPlayer == null) { - sender.sendMessage(Jobs.getLanguage().getMessage("general.error.noinfoByPlayer", "%playername%", args[0])); - return true; - } + JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(args[0]); + if (jPlayer == null) { + sender.sendMessage(Jobs.getLanguage().getMessage("general.error.noinfoByPlayer", "%playername%", args[0])); + return true; + } - Job job = Jobs.getJob(args[1]); - if (job == null) { - sender.sendMessage(Jobs.getLanguage().getMessage("general.error.job")); - return true; - } + Job job = Jobs.getJob(args[1]); + if (job == null) { + sender.sendMessage(Jobs.getLanguage().getMessage("general.error.job")); + return true; + } - Action action = Action.Add; + Action action = Action.Add; - switch (args[2].toLowerCase()) { - case "add": - action = Action.Add; - break; - case "set": - action = Action.Set; - break; - case "take": - action = Action.Take; - break; - default: - break; - } + switch (args[2].toLowerCase()) { + case "add": + action = Action.Add; + break; + case "set": + action = Action.Set; + break; + case "take": + action = Action.Take; + break; + default: + break; + } - double amount = 0.0; - try { - amount = Double.parseDouble(args[3]); - } catch (NumberFormatException e) { - sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.error")); - return true; - } + double amount = 0.0; + try { + amount = Double.parseDouble(args[3]); + } catch (NumberFormatException e) { + sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.error")); + return true; + } - try { - // check if player already has the job - if (jPlayer.isInJob(job)) { - JobProgression prog = jPlayer.getJobProgression(job); + try { + // check if player already has the job + if (jPlayer.isInJob(job)) { + JobProgression prog = jPlayer.getJobProgression(job); - switch (action) { - case Add: - int oldLevel = prog.getLevel(); - if (prog.addExperience(amount)) - Jobs.getPlayerManager().performLevelUp(jPlayer, prog.getJob(), oldLevel); - break; - case Set: - prog.setExperience(amount); - break; - case Take: - prog.takeExperience(amount); - break; - default: - break; - } + switch (action) { + case Add: + int oldLevel = prog.getLevel(); + if (prog.addExperience(amount)) + Jobs.getPlayerManager().performLevelUp(jPlayer, prog.getJob(), oldLevel); + break; + case Set: + prog.setExperience(amount); + break; + case Take: + prog.takeExperience(amount); + break; + default: + break; + } - Player player = jPlayer.getPlayer(); - if (player != null) - player.sendMessage(Jobs.getLanguage().getMessage("command.exp.output.target", "%jobname%", job.getDisplayName(), "%level%", prog.getLevelFormatted(), "%exp%", prog - .getExperience())); - sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.success")); - } else - sender.sendMessage(Jobs.getLanguage().getMessage("command.exp.error.nojob")); - } catch (Exception e) { - sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.error")); - } - return true; + Player player = jPlayer.getPlayer(); + boolean isSilent = false; + if (player != null) { + for (String one : args) { + if (one.equalsIgnoreCase("-s")) { + isSilent = true; + break; + } + } + if (!isSilent) { + player.sendMessage(Jobs.getLanguage().getMessage("command.exp.output.target", "%jobname%", job.getDisplayName(), "%level%", prog.getLevelFormatted(), "%exp%", prog + .getExperience())); + } + sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.success")); + } else { + sender.sendMessage(Jobs.getLanguage().getMessage("general.give.output.notonline")); + } + } else { + sender.sendMessage(Jobs.getLanguage().getMessage("command.exp.error.nojob")); + } + } catch (Exception e) { + sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.error")); + } + return true; } }