- Autor: Localhost
- Datum: 06.03.2012
Vorschau
Datenbank
Folgenden Code als SQL-Befehl ausführen:
|
MySQL-Abfrage(n)
|
1
|
ALTER TABLE `channels` ADD `category` INT( 2 ) NOT NULL DEFAULT '0'
|
Channel.java
Suche:
|
Java-Quelltext
|
1
|
public class Channel {
|
Darunter:
|
Java-Quelltext
|
1
|
private int category;
|
Suche:
|
Java-Quelltext
|
1
|
name = rs.getString("name");
|
Darunter:
|
Java-Quelltext
|
1
|
category = rs.getInt("category");
|
Suche:
|
Java-Quelltext
|
1
2
3
|
public String getName() {
return name;
}
|
Darunter:
|
Java-Quelltext
|
1
2
3
|
public int getCategory() {
return category;
}
|
ReceiveOpcode.java
Füge der Klasse folgenden Eintrag (enum) hinzu:
|
Java-Quelltext
|
1
|
CATEGORIES("k")
|
SessionHandler.java
Erweitere die If-Condition mit folgendem Code:
|
Java-Quelltext
|
1
2
3
|
if (opcode.equals(ReceiveOpcode.CATEGORIES.getValue())) {
CategoryHandler.handle(tokens, client);
}
|
CategoryHandler.java
Erstelle eine neue Klasse (
CategoryHandler) im Package
handler mit folgendem Code:
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package handler;
import java.util.Collection;
import knuddels.Channel;
import knuddels.Client;
import knuddels.Server;
import tools.PacketCreator;
public class CategoryHandler {
public static void handle(String[] tokens, Client client) {
Collection<Channel> channelList = Server.get().getChannels();
client.send(PacketCreator.hello(((Channel) channelList.toArray()[0]).getName()));
client.send(PacketCreator.channelList(channelList, Integer.parseInt(tokens[1])));
}
}
|
PacketCreator.java
Suche:
|
Java-Quelltext
|
1
|
public static String channelList(Collection<Channel> channels) {
|
Ersetzen mit:
|
Java-Quelltext
|
1
|
public static String channelList(Collection<Channel> channels, int category) {
|
Suche:
|
Java-Quelltext
|
1
|
PacketBuilder buffer = new PacketBuilder(SendOpcode.CHANNEL_LIST.getValue());
|
Darunter:
|
Java-Quelltext
|
1
2
|
for (Channel channel : channels) {
if(channel.getCategory() == category || category == 0) {
|
Suche:
|
Java-Quelltext
|
1
|
return buffer.toString();
|
Darüber:
|
Java-Quelltext
|
1
2
|
}
}
|
Client.java
Suche:
|
Java-Quelltext
|
1
|
send(PacketCreator.channelList(channelList));
|
Ersetzen mit:
|
Java-Quelltext
|
1
|
send(PacketCreator.channelList(channelList, ((Channel) channelList.toArray()[0]).getCategory()));
|
Chatlogin
Öffne deinen Chatlogin (z.B. im Editor) und füge dem AppletCode folgenden Code hinzu:
|
HTML
|
1
2
|
<param name=appletID value="0" />
<param name=categories value="Flirt|1|Over 20|2|Under 18|3|Lokalrunde|4|Games|5|Card Games|6|Themetalk|7|Top MyChannels|8|Classic|9|Alle Channels|0" />
|
Hinweise
Es gibt neun verschiedene Kategorien (+ alle Channels):
- 1 - Flirt
- 2 - Over 20
- 3 - Under 18
- 4 - Lokalrunde
- 5 - Games
- 6 - Card Games
- 7 - Themetalk
- 8 - Top MyChannels
- 9 - Classic
- 0 - Alle Channels
Standardmäßig werden beim Chatlogin alle Channels angezeigt. Um dies zu ändern, müsst ihr die AppletID im Chatlogin ändern.
Um einen Channel in eine andere Kategorie zu packen, muss die ID der Kategorie entsprechend in der Datenbank geändert werden.
# Localhost