Avatar billede morteeart Nybegynder
02. december 2004 - 21:46 Der er 3 kommentarer og
1 løsning

requeste input fra brugeren

Hej

Jeg har kodet denne her IRC-bot
Men nu vil jeg gerne lave så jeg kan bede om network og channel som den skal joine.
Hvordan laver commando-line request ?, eller paramtere for den sags skyld ?

[souce]

/**
IRC-bot v.1
@author: Claus Jørgensen
@date 30.10.04

Kommandoliste:

!uptime , viser bottens egen uptime

*/

import java.io.*;
import java.net.*;

public class ircbot {
public static void main(String[] args) throws IOException {

// Variabler

String IRCserver = "irc.quakenet.org"; // IRC-serveren
int IRCport = 6667; // Porten til IRC-serveren
String RealName = "Teh 1337 Java-Bot, by TheDeathArt"; // Beskrivelse af botten
String IRCnick = "Java-Bot"; // Bottens nick
String IRCchannel = "#programmering"; // Den channel botten skal joine

// Laver sockets og buffers

Socket ircSocket = null;
PrintWriter out = null;
BufferedReader in = null;

// Laver en starttid til !uptime funktionen

long starttime = System.currentTimeMillis();

// Åbner en socket til irc netværket

try {
ircSocket = new Socket(IRCserver , IRCport);
out = new PrintWriter(ircSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(ircSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Kunne ikke finde: " + IRCserver);
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: " + IRCserver);
System.exit(1);
}

String line;

while((line = in.readLine()) != null) { // Så længe at der ikke kommer null, så vil vi udskrive teksten.

System.out.println(line); // Udskriver Teksten !

// Registerer botten med netværket

if(line.indexOf("No ident respons") > 0)
{
out.println("USER " + IRCnick + " none none : " + RealName );
out.println();
out.println("NICK " + IRCnick);
out.println();
}

// Joiner en channel når MOTD er færdig

if(line.indexOf("End of /MOTD command.") > 0)
{
out.println("JOIN " + IRCchannel);
out.println();
out.println("PRIVMSG " + IRCchannel + " : Hi, im a Java-IRC bot created by TheDeathArt.");
}

/* Ping-Pong servicen, sørger for at holde botten kørende */

if(line.startsWith("PING"))
{
out.println("PONG " + line.substring(5));
System.out.println("Ping? Pong!");
}

/* checker for !uptime */

if(line.indexOf("!uptime") > 0)
{
long uptime = (System.currentTimeMillis() - starttime) / 1000;
out.println("PRIVMSG " + IRCchannel + " : Min Uptime er " + uptime + " sek. ");
}

if(line.indexOf("!topic") > 0)
{
out.println("TOPIC " + IRCchannel + " : Owned by Teh 1337 Java-Bot ");
}


}

// Lukker sockets igen.

out.close();
in.close();
ircSocket.close();
}
}

[/souce]
Avatar billede arne_v Ekspert
02. december 2004 - 21:48 #1
Parametrene ligger som argumenter til main:

public static void main(String[] args) throws IOException {

og kan bare bruges !
Avatar billede arne_v Ekspert
02. december 2004 - 21:50 #2
Med hensyn til console input så er følgende tit set:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Indtast heltal: ");
int iv = Integer.parseInt(br.readLine());
System.out.print("Indtast streng: ");
String sv = br.readLine();
Avatar billede morteeart Nybegynder
03. december 2004 - 10:27 #3
jah :)

Mange tak (husk at ligge svar)
Avatar billede arne_v Ekspert
03. december 2004 - 11:20 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester