12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*
- * Copyright (c) 2009-2010 Chris Smith
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
- package com.md87.charliebravo.commands;
-
- import com.dmdirc.parser.interfaces.ClientInfo;
- import com.dmdirc.util.DateUtils;
- import com.md87.charliebravo.Command;
- import com.md87.charliebravo.InputHandler;
- import com.md87.charliebravo.Response;
-
- /**
- *
- * @author chris
- */
- public class WhoisCommand implements Command {
-
- @SuppressWarnings("unchecked")
- public void execute(InputHandler handler, Response response, String line) throws Exception {
- if (line.isEmpty()) {
- response.sendRawMessage("Who would you like to whois, " + response.getSource() + "?");
- } else {
- final ClientInfo ci = handler.getParser().getClient(line);
-
- if (ci == null) {
- if (handler.getConfig().hasOption(line, "internal.lastseen")) {
- final StringBuilder extra = new StringBuilder();
-
- if (handler.getConfig().hasOption(line, "admin.level")) {
- extra.append(", and has access level ");
- extra.append(handler.getConfig().getOption(line, "admin.level"));
- }
-
- response.sendMessage(line + " last authenticated with me "
- + DateUtils.formatDuration((int)
- (System.currentTimeMillis() -
- Long.valueOf(handler.getConfig().getOption(line, "internal.lastseen")))
- / 1000)
- + " ago" + extra);
- } else {
- response.sendMessage("I am not aware of anyone by that name", true);
- }
- } else {
- final String openid = (String) ci.getMap().get("OpenID");
- final boolean you = ci.getNickname().equals(response.getSource());
-
- if (openid == null) {
- response.sendMessage((you ? "You have" : ci.getNickname() + " has")
- + " not authenticated with me", true);
- } else {
- final StringBuilder extra = new StringBuilder();
-
- if (handler.getConfig().hasOption(openid, "admin.level")) {
- extra.append(", and ").append(you ? "have" : "has").append(" access level ");
- extra.append(handler.getConfig().getOption(openid, "admin.level"));
- }
-
- response.sendMessage((you ? "you are" : ci.getNickname() + " is")
- + " authenticated as " + openid + extra);
- }
- }
- }
-
- }
-
- }
|