From 0f105cc4855d82a61586b601d7cb7d56ad69e310 Mon Sep 17 00:00:00 2001 From: mathias Date: Mon, 4 Oct 2021 16:35:10 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20a=20bug=20in=20the=20Res?= =?UTF-8?q?ponderContext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/contexts/ResponderContext.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java b/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java index ac6f070..427149f 100644 --- a/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java +++ b/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java @@ -80,9 +80,14 @@ public class ResponderContext extends SimpleHttpHandler { if (executeUnlockAction(event)) return; - if (message.startsWith(responder.getPrefix()) - && runCommand(appPackageName, messengerPackageName, sender, message.substring(responder.getPrefix().length()), isGroup, - groupParticipant, ruleId, controller)) return; + try { + if (message.startsWith(responder.getPrefix()) + && runCommand(appPackageName, messengerPackageName, sender, message.substring(responder.getPrefix().length()), isGroup, + groupParticipant, ruleId, controller)) return; + } catch (Exception e) { + e.printStackTrace(); + } + triggerEvent(event); @@ -226,7 +231,7 @@ public class ResponderContext extends SimpleHttpHandler { return null; } - for (int i = 0; i < command.getUsageElements().size(); i++) { + for (int i = 0; i < providedUsage.size(); i++) { arguments.put(command.getUsageElements().get(i).getName(), providedUsage.get(i)); } } @@ -317,8 +322,14 @@ public class ResponderContext extends SimpleHttpHandler { try { if (usageElement.getType() == UsageType.INTEGER) { createdUsage.set(i, Integer.parseInt(object.toString())); - } else if (usageElement.getType() == UsageType.BOOLEAN && object.equals("true") || object.equals("false")) { - throw new Exception("Could not parse the integer value"); + } else if (usageElement.getType() == UsageType.BOOLEAN) { + object = object.equals("yes") ? "true" : object; + object = object.equals("no") ? "false" : object; + + if (object.equals("true") || object.equals("false")) { + createdUsage.set(i, Boolean.parseBoolean(object.toString())); + } else + throw new Exception("Could not parse the boolean value"); } } catch (Exception e) { throw new UsageException(USAGE_TYPE_MISMATCH, String.format("The usage element %s must have the type %s", usageElement.getName(),