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; public class EffectCommand extends CommandKamkeelBase { @Override public String getDescription() { return "Custom Effect operations"; } @Override public String getCommandName() { return "effect"; } @SubCommand(desc = "Lists all Effects") public void infoAll(ICommandSender sender, String[] args) throws CommandException { 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, "--------------------"); } // Give effect by name. // Usage: