diff --git a/build.gradle b/build.gradle index c34070dbc..6bd837141 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'idea' } -version = "1.9.4-beta2.7" +version = "1.9.4-beta2.9" group= "kamkeel.customnpc-plus" archivesBaseName = "CustomNPC-Plus" diff --git a/src/main/java/kamkeel/npcs/command/CommandKamkeel.java b/src/main/java/kamkeel/npcs/command/CommandKamkeel.java index 6c5bfd28d..85adfce4c 100644 --- a/src/main/java/kamkeel/npcs/command/CommandKamkeel.java +++ b/src/main/java/kamkeel/npcs/command/CommandKamkeel.java @@ -35,6 +35,7 @@ public class CommandKamkeel extends CommandBase{ registerCommand(new AnimationCommand()); registerCommand(new OverlayCommand()); registerCommand(new CommandCommand()); + registerCommand(new EffectCommand()); } public void registerCommand(CommandKamkeelBase command){ diff --git a/src/main/java/kamkeel/npcs/command/EffectCommand.java b/src/main/java/kamkeel/npcs/command/EffectCommand.java index 9286a30a9..b82f1a5c0 100644 --- a/src/main/java/kamkeel/npcs/command/EffectCommand.java +++ b/src/main/java/kamkeel/npcs/command/EffectCommand.java @@ -3,12 +3,15 @@ package kamkeel.npcs.command; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import noppes.npcs.controllers.PlayerDataController; +import noppes.npcs.controllers.CustomEffectController; import noppes.npcs.controllers.data.CustomEffect; import noppes.npcs.controllers.data.PlayerData; +import noppes.npcs.scripted.event.PlayerEvent.EffectEvent.ExpirationType; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Set; public class EffectCommand extends CommandKamkeelBase { @@ -22,118 +25,242 @@ public class EffectCommand extends CommandKamkeelBase { return "effect"; } - // info all - @SubCommand(desc = "Lists all effects") + @SubCommand(desc = "Lists all Effects") public void infoAll(ICommandSender sender, String[] args) throws CommandException { - // TODO: FIX EFFECT COMMAND -// Set> effects = DBCEffectController.getInstance().standardEffects.entrySet(); -// Set> customEffects = DBCEffectController.getInstance().customEffects.entrySet(); -// -// if (effects.isEmpty() && customEffects.isEmpty()) { -// sendError(sender, "No effects found."); -// return; -// } -// -// sendResult(sender, "--------------------"); -// -// for (Map.Entry entry : effects) { -// sendResult(sender, String.format("\u00a7b%2$s \u00a77(ID%3$s: %1$s)", entry.getKey(), entry.getValue().getName(), entry.getValue().isCustom() ? " - CUSTOM" : " ")); -// } -// for (Map.Entry entry : customEffects) { -// sendResult(sender, String.format("\u00a7b%2$s \u00a77(ID%3$s: %1$s)", entry.getKey(), entry.getValue().getName(), entry.getValue().isCustom() ? " - CUSTOM" : " ")); -// } -// -// sendResult(sender, "--------------------"); + CustomEffectController controller = CustomEffectController.getInstance(); + if (controller.indexMapper.isEmpty()) { + sendError(sender, "No effects found."); + return; + } + + sendResult(sender, "--------------------"); + + // Get all indices, sort them in ascending order. + List indices = new ArrayList<>(controller.indexMapper.keySet()); + Collections.sort(indices); + for (Integer idx : indices) { + Map effects = controller.indexMapper.get(idx); + if (effects == null || effects.isEmpty()) + continue; + // Sort the effect IDs in ascending order. + List effectIds = new ArrayList<>(effects.keySet()); + Collections.sort(effectIds); + for (Integer id : effectIds) { + CustomEffect effect = effects.get(id); + sendResult(sender, String.format("\u00a7b%s \u00a77(ID: %d, INDEX: %d)", + effect.getName(), + id, + idx)); + } + } + + sendResult(sender, "--------------------"); } - @SubCommand(desc = "Gives a effect to a player", usage = "