Vorschau
Erst werden die Funktionen gesendet, die automatisch getätigt werden, wenn man z.B. in der Nickliste einen Links- oder Rechtsklick macht:
|
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
|
public static String updateBillardFunctions(String channel) {
PacketBuilder buffer = new PacketBuilder(SendOpcode.UPDATE_BILLARD_FUNCTIONS.getValue());
buffer.writeByte(0x00);
buffer.writeString(channel);
buffer.writeByte(0x00);
buffer.writeString("l");
buffer.writeByte(0x00);
buffer.writeString("/billard j:"); // join
buffer.writeByte(0x00);
buffer.writeString("L");
buffer.writeByte(0x00);
buffer.writeString("/billard j:"); // join
buffer.writeByte(0x00);
buffer.writeString("r");
buffer.writeByte(0x00);
buffer.writeString("/billard i:"); // info
buffer.writeByte(0x00);
buffer.writeString("R");
buffer.writeByte(0x00);
buffer.writeString("/billard i:"); // info
buffer.writeByte(0x00);
buffer.writeString("m");
buffer.writeByte(0x00);
buffer.writeString("/billard j:"); // join
return buffer.toString();
}
|
Usage:
|
Java-Quelltext
|
1
|
client.send(PacketCreator.updateBillardFunctions(channel.getName()));
|
Nun wird die eigentliche Liste gesendet:
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public static String billardList(String channel, String text) {
PacketBuilder buffer = new PacketBuilder(SendOpcode.BILLARD_LIST.getValue());
buffer.writeByte(0x00);
buffer.writeString("u");
buffer.writeByte(0x00);
buffer.writeString(channel);
buffer.writeByte(0x00);
buffer.writeString(text); // Der Text, der in dem Button steht
buffer.writeByte(0x00);
buffer.writeString("p");
buffer.writeByte(0x00);
buffer.writeString("-");
buffer.writeByte(0x00);
buffer.writeString("-");
return buffer.toString();
}
|
Usage:
|
Java-Quelltext
|
1
|
client.send(PacketCreator.billardList(channel.getName(), "+Spiel eröffnen"));
|
Wenn man den Channel verlässt, muss die Billard List auch wieder ausgeblendet werden:
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
|
public static String closeBillardList(String channel) {
PacketBuilder buffer = new PacketBuilder(SendOpcode.CLOSE_BILLARD_LIST.getValue());
buffer.writeByte(0x00);
buffer.writeString(channel);
return buffer.toString();
}
|
Usage:
|
Java-Quelltext
|
1
|
client.send(PacketCreator.closeBillardList(channel.getName()));
|
Dann können wir noch Einträge in die Liste tätigen:
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public static String billardListAddNick(Channel channel, Client nick) {
PacketBuilder buffer = new PacketBuilder(SendOpcode.BILLARD_LIST.getValue());
buffer.writeByte(0x00);
buffer.writeString("l");
buffer.writeByte(0x00);
buffer.writeString(channel.getName());
buffer.writeByte(0x00);
buffer.writeString(nick.getName());
buffer.writeByte(0x00);
buffer.writeString("p");
buffer.writeByte(0x00);
buffer.writeString(channel.getStyle().getRankColor(nick));
buffer.writeByte(0x00);
buffer.writeString("-");
return buffer.toString();
}
|
Usage:
|
Java-Quelltext
|
1
|
client.send(PacketCreator.billardListAddNick(channel, client));
|
...und diese auch wieder löschen:
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public static String billardListRemoveNick(String channel, String nick) {
PacketBuilder buffer = new PacketBuilder(SendOpcode.BILLARD_LIST.getValue());
buffer.writeByte(0x00);
buffer.writeString("w");
buffer.writeByte(0x00);
buffer.writeString(nick);
buffer.writeByte(0x00);
buffer.writeString(channel);
return buffer.toString();
}
|
Usage:
|
Java-Quelltext
|
1
|
client.send(PacketCreator.billardListRemoveNick(channel.getName(), client.getName()));
|
Zum Schluss fehlen noch die Einträge in der
SendOpcode Klasse im
Package knuddels:
|
Java-Quelltext
|
1
2
3
|
CLOSE_BILLARD_LIST("9"),
BILLARD_LIST("0"),
UPDATE_BILLARD_FUNCTIONS("8")
|
# Localhost