Du bist nicht angemeldet.

Localhost

Ehemaliger Supporter

  • »Localhost« ist der Autor dieses Themas

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

1

Dienstag, 6. März 2012, 14:20

Channelkategorien

  • 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
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Localhost« (6. März 2012, 14:28)


Es haben sich bereits 6 registrierte Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Diebspiel, Pwned, Steelix2011, wishdream, CraZE, Salvos