Du bist nicht angemeldet.

1

Sonntag, 24. Juli 2011, 02:59

[Snippet] Butler

Dem Butler das Sprechen beibringen.

ChatHandler.java

In der ChatHandler.java sucht ihr den Abschnitt

Code:

Java-Quelltext

1
2
message = KCodeParser.parse(message, !client.isModerator(), 5, 10, 20);
message = Server.get().parseSmileys(message);


darunter schreibt ihr
Code:

Java-Quelltext

1
2
3
4
5
6
7
8
9
if(message.toLowerCase().startsWith(Server.get().getButler().getName().toLowerCase())) {
    String publicMessage = PacketCreator.publicMessage(client.getName(), channel.getName(), message);
    for (Client c : channel.getClients()) {
        c.send(publicMessage);
    }
            
    Butler.Butler(client, channel, message.toLowerCase());
    return;
}

dann erstellt ihr eine neue Klasse mit dem Namen Butler

dort kommt folgender Code hinein

Code:

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package handler;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import knuddels.Channel;
import knuddels.Client;
import knuddels.Server;
import tools.PacketCreator;

/**
*
* @author SeBi
*/
public class Butler {

    private static String[] ans = {"Was, Was, Was ?", "Was ?", "Bin ich hier der einzige den Sie nerven können?"};

    public static void Butler(Client client, Channel channel, String message) {
        if(message.startsWith(Server.get().getButler().getName().toLowerCase() + " ")) {
            String com = message.trim().replace(Server.get().getButler().getName().toLowerCase() + " ", "").toLowerCase();
            
            if(com.equals("time")) {
                SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");
                String uz = time.format(new Date());
                ButlerMessage(channel, "Es ist genau " + uz);
            }
        } else {
            Random rnd = new Random();
            ButlerMessage(channel, ans[rnd.nextInt(ans.length)]);
        }
    }

    private static void ButlerMessage(Channel channel, String msg) {
        String publicMessage = PacketCreator.publicMessage(Server.get().getButler().getName(), channel.getName(), msg);
        for (Client c : channel.getClients()) {
            c.send(publicMessage);
        }
    }
}


Das war´s auch schon :-)
Ist natürlich erweiterbar

Der Ersteller ist mir unbekannt aber das Butler.java ist anscheinend von SeBi