org.manalith.ircbot.plugin.ping.PingPlugin.java Source code

Java tutorial

Introduction

Here is the source code for org.manalith.ircbot.plugin.ping.PingPlugin.java

Source

/*
org.manalith.ircbot.plugin.ping/PingPlugin.java
ManalithBot - An open source IRC bot based on the PircBot Framework.
Copyright (C) 2012  Ki-Beom Kim
    
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
    
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
    
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.manalith.ircbot.plugin.ping;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;

import org.manalith.ircbot.annotation.Option;
import org.manalith.ircbot.common.stereotype.BotCommand;
import org.manalith.ircbot.plugin.SimplePlugin;
import org.springframework.stereotype.Component;

@Component
public class PingPlugin extends SimplePlugin {

    @Override
    public String getName() {
        return "";
    }

    @Override
    public String getHelp() {
        return "? ICMP ECHO ?   .";
    }

    @BotCommand("")
    public String ping(@Option(name = "?", help = "?  ?? ? IP ") String uri) {
        InetAddress addr;

        try {
            addr = InetAddress.getByName(uri);
        } catch (UnknownHostException e) {
            return "[Ping]   .";
        }

        try {
            return String.format("[Ping] %s(%s) is %s: ", addr.getHostName(), addr.getHostAddress(),
                    addr.isReachable(3000) ? "reachable" : "not reachable");
        } catch (IOException e) {
            return String.format("[Ping] ?  ?.(%s)", e.getMessage());
        }
    }
}