43 public void add(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
55 public static boolean fire(String ruleId, InteractionDialogAPI dialog, Map<String, MemoryAPI> memoryMap, String params) {
56 return new FireAll().
execute(ruleId, dialog, Misc.tokenize(params), memoryMap);
62 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params,
final Map<String, MemoryAPI> memoryMap) {
65 this.memoryMap = memoryMap;
66 String trigger = params.get(0).string;
67 if (params.get(0).isVariable()) {
68 VarAndMemory var = params.get(0).getVarNameAndMemory(memoryMap);
69 trigger = var.memory.getString(var.name);
73 List<RuleAPI> matches = rules.getAllMatching(ruleId, trigger, dialog, memoryMap);
74 if (matches.isEmpty())
return false;
76 List<OptionAdder> options =
new ArrayList<OptionAdder>();
77 for (RuleAPI rule : matches) {
79 for (Option option : rule.getOptions()) {
81 options.add(
new OptionAdder(option));
86 for (ExpressionAPI e : rule.getScriptCopy()) {
87 if (e.doesCommandAddOptions()) {
88 options.add(
new OptionAdder(e));
93 if (!options.isEmpty()) {
94 Collections.sort(options,
new Comparator<OptionAdder>() {
95 public int compare(OptionAdder o1, OptionAdder o2) {
96 float diff = o1.getOrder(memoryMap) - o2.getOrder(memoryMap);
97 if (diff < 0)
return -1;
98 if (diff > 0)
return 1;
103 dialog.getOptionPanel().clearOptions();
104 for (OptionAdder option : options) {
106 option.add(ruleId, dialog, params, memoryMap);
113 for (RuleAPI rule : matches) {