!752 answer { S rest = amIAddressed(s); if (getUserName() == null /* web */ || rest != null) miniChat("attn/" + (rest == null ? s : rest)); else miniChat(""); // indicate we have nothing to say } static L prefs = litlist("hi", "hey", "hello", "yo", "uhm", "oh", "dear", "dearest"); static L names = litlist("eleu", "eleutheria", "computer", "bot"); // returns rest of input (without the greeting) static S amIAddressed(S s) { new Matches m; for (S p : prefs) if (matchStart(p, s, m)) s = m.rest(); for (S name : names) if (matchStart(name, s, m)) ret dropPunctuationFromStart(m.rest()); ret null; } static S dropPunctuationFromStart(S s) { s = s.trim(); while (!empty(s) && ",:!-.".indexOf(s.charAt(0)) >= 0) s = s.substring(1); ret s.trim(); }