Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Chat em java

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Chat em java

    Este tutorial vai lhe ensinar como criar seu próprio bot IRC em java.
    Por favor note que este não é um guia passo-a-passo para completar desafio de programação # 8, mas vou tentar dar-lhe algumas dicas básicas.

    Primeiro de tudo, a tabela normal de conteúdo:

    I. .... O que eu preciso para começar?
    II .... Introdução
    III ... A classe bot
    IV .... Tha classe principal
    V. .... Atualizando a classe bot
    VI .... O pedido versão
    VII ... Outras Operações
    VIII .. Dicas


    I - O que eu preciso para começar?
    Há algumas coisas que você precisará para este tutorial:

    1) Um conhecimento básico de Java - Eu não vou te ensinar a linguagem de programação em si!
    Então, você deve pelo menos saber o significado de classes, objetos, atributos e métodos - e como usá-los.

    2) É claro que você terá as ferramentas usuais do Java em desenvolvimento, que na verdade são os JDK e um editor simples.
    Embora mesmo vi ou bloco de notas vai funcionar como um editor, eu recomendo fortemente algo que, pelo menos, suporta destaque de sintaxe.
    Neste tutorial iremos usar a IDE Eclipse que você pode começar AQUI

    3) O quadro PircBot -> obtê-lo AQUI
    Eu também recomendo a leitura de seu documentação JavaDoc.

    4) Alguns conhecimentos sobre o IRC e seus comandos.
    A leitura do "IRC Command Reference'on HTS deve fazer o trabalho

    5) Brain.exe, localizado na pasta a cabeça do sistema.


    II - Introdução
    1) Comece Eclipse (Orly? Thx Capitão Óbvio!) E criar um novo projeto seguindo o assistente.

    2) Na janela "Libraries" escolher "Add External JARs" e selecione o arquivo. Jar contendo o quadro PircBot.
    Feito? Ok, klick terminar e você está pronto para ir!


    III - A classe Bot
    Então, aqui é onde a programação propriamente dita.
    Primeiro criamos uma nova classe para o nosso bot. Neste exampel vamos simplesmente nomeá-lo "BotClass '.
    Desde PircBot nos fornece uma superclasse para esse fim, a gente pode querer usá-lo.
    Mas, para isso, primeiro precisamos importar o pacote adequado.
    Agora podemos usar a super classe usando a palavra-chave 'extends' em nossa definição de classe, seguido do nome da classe super.
    Nosso código deve ficar assim agora:
    Código:
    import org.jibble.pircbot.*;
    
    public class BotClass extends PircBot{
    
    }
    Código:
    import org.jibble.pircbot.*;
    
    public class BotClass extends PircBot{
    
    //Constructor
    public BotClass(String name){
    setName(name);
    }
    
    }
    Bem, isso é a versão (e mais simples), primeiro do nosso bot. Agora, precisamos usá-lo!


    IV - A classe principal
    O objetivo de nossa classe principal é bastante simples:
    1) Criar uma instância de nossa classe bot
    2) Deixe-o se conectar ao servidor de IRC

    Isso é o que eu chamo a inicialização estática. Após estas duas etapas o nosso bot está online e capaz de receber comandos.
    Mas pode haver algumas ações adicionais que você quer que o bot para executar na inicialização, por isso vamos adicionar mais 2 ações:

    3) Faça login @ NickServ - como sabemos que o desafio exige o bot usar um nick que está ligada à sua conta HTS
    4) Junte-se um canal
    5) Ligue a saída do console do nosso bot (muito útil!)

    Hey, hoje é nosso dia de sorte! Por quê? PircBot porque nos fornece funções internas para todos os atos!

    estes são:
    Código:
    connect(String servername) //connect to a server
    sendMessage(String channel_or_nick, String Message) //send message to channel or nickname
    joinChannel(String channelName) //join a channel
    setVerbose(boolean on_off) //tunrs output on/off
    Esteja ciente de que o método de conectar-pode lançar três tipos de excepções, por isso temos que pegá-los.
    Mas como esse é apenas um tutorial básico que pode pegar todas as três de uma só vez.
    Assim, com todas estas chamadas de método temos uma pequena classe agradável principal, que é algo como isto:
    Código:
    public class MainClass {
    
    public static void main(String[] args){
    BotClass bot=new BotClass("nickname123");
    
    try{
    bot.setVerbose(true);
    bot.connect("irc.hackthissite.org");
    bot.sendMessage("nickserv","IDENTIFY <your password>" );
    bot.joinChannel("#bottest");
    }
    catch (Exception e){e.printStackTrace();}
    }
    }
    Agora podemos executar o nosso bot, pela primeira vez!
    O que vai acontecer?

    O Bot irá se conectar ao IRC HTS servidor, nickserv mensagem para login com sua conta registrada e, finalmente, vai entrar no canal # bottest.
    Congratz, você acabou de criar o rei de idle-bots!
    Mas é claro que isso é meio manco, nosso bot deve, pelo menos, responder a alguns comandos. Então vamos dar uma olhada na classe bot de novo!


    V - Atualizando a classe bot
    Para tornar o nosso bot um pouco mais interessante que precisamos para fazê-lo responder a determinadas mensagens.
    Para fazer isso temos que substituir alguns dos métodos que são fornecidos com.

    Os métodos que estamos procurando são:
    Código:
    onMessage(String channel, String sender, String login, String hostname, String message)
    onNotice(String sourceNick, String sourceLogin, String sourceHostname, String target, String notice)
    onPrivateMessage(String sender, String login, String hostname, String message)
    uma vez que estes são os principais tipos de mensagens que o bot irá receber. Você já sabia que? Bem, eu acho, então você é um dos poucos que realmente paga a atenção para a documentação PircBot

    Então, vamos substituir um destes métodos juntos - você pode consultar o seu Brain.exe fazer isso com os outros métodos, uma vez que não são tão diferentes.
    Então, o que queremos que o bot fazer? Exatamente, responder aos comandos recebidos. Vamos chamar que "a manipulação de mensagens".
    Na verdade, leva a mensagem recebida e compara-lo com os comandos que ele suporta. Se o comando é suportado, ele irá responder.
    Então, vamos substituir o método onMessage para fazer a resposta bot para o comando 'Olá!':
    Código:
    public void onMessage(String channel, String sender, String login, String hostname, String message){
    
    if(message.equalsIgnoreCase("!hello")) //compares the received Message with the String &#039;!hello&#039;
    {
    sendMessage(channel, "Hello "+sender); //Replies with &#039;Hello <username>&#039;
    return;
    }
    }
    Muito simples, não é?
    Agora toda vez que você receber o seu bot com 'Olá!' Ele irá responder. Awesome!

    DICA: A conversa inteira com moo no desafio Prog8 é feita através de aviso prévio.
    Então você pode querer substituir um dos outros métodos mencionados. Novamente: Use a sua Brain.exe



    VI - O pedido de versão
    Como você provavelmente sabe, há uma coisa chamada versão de solicitação. Para responder a esse pedido, simplesmente substituir o método chamado ONVERSÃO.
    Mas o que significa uma resposta versão se parece?
    Bem, parece algo como isto:
    Código:
    VERSION name:version:OS
    e é envolto em unicode.
    Vamos dizer que queremos responder com 'VERSION myBot: 1.0: YOURMOM'
    Então nossa string leria "\ 001VERSION myBot: 1.0: YOURMOM \ 001".

    assim o nosso método ONVERSÃO deve ficar assim:
    Código:
    public void onVersion(String sourceNick, String sourceLogin, String sourceHostname, String target){
    sendNotice(sourceNick,"\001VERSION myBot:1.0:YOURMOM\001");
    }
    VII - Outras Operações
    Nosso bot não se limita a enviar mensagens de texto baseados em mensagens.
    Na verdade, existem toneladas de ações que poderia executar, como chutar, proibindo, convidando etc
    Eu mais uma vez recomendo que você dê uma olhada na documentação para uma rápida visão geral dos métodos implementados e como usá-los.


    VIII - Dicas
    Com este tutorial você deve ser capaz de facilmente bater Prog8, mas se você ainda tiver problemas, aqui estão algumas dicas:

    1) Tenha em mente que toda a conversa com moo é feita através de notificação!
    2) Tenha em mente que a versão-resposta deve ser acondicionada em unicode!
    3) Tendo problemas para criar o hash? Familiarize-se com o pacote java.security
    4) Não subestime o poder esmagador do seu Brain.exe pessoal

    FONTE: HACKTHISSITE
X
Working...
X