Hi,
in Knuddels gibt es manche Channels, wo Icon(s) vor dem Nick in der Nickliste angezeigt werden. Mit diesem Snippet könnt ihr dies auch im Emulator anzeigen.
|
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
|
public static String showPrefixIcons(String channelName, List<String> params) {
PacketBuilder buffer = new PacketBuilder(SendOpcode.MODULE.getValue());
buffer.writeByte(0);
buffer.writeByte(0);
buffer.writeByte(73);
/* die 73 ist sozusagen unser Opcode, denn bei FotoContest (updateVotebox) lautet's hier nicht 73, sondern 89 */
buffer.writeByte(channelName.length()); // Anzahl der Buchstaben vom Channelnamen
buffer.writeString(channelName); // Channelname
buffer.writeByte(11);
for (int i = 0; i < params.size(); i++) {
String[] temp = params.get(i).split("~");
String nick = temp[0];
buffer.writeByte(nick.length()); // Anzahl der Buchstaben vom Nick
buffer.writeString(nick); // Nick
for (int j = 1; j < temp.length; j++) {
String icon = temp[j];
buffer.writeByte(11);
buffer.writeByte(icon.length()); // Anzahl der Buchstaben vom Icon
buffer.writeString(icon); // Icon
}
if (i < params.size() - 1) {
buffer.writeByte(12);
buffer.writeByte(11);
}
}
buffer.writeByte(12);
buffer.writeByte(12);
buffer.writeByte(1);
return buffer.toString();
}
|
Dies kommt in den PacketCreator rein.
Usage:
|
Java-Quelltext
|
1
2
3
4
|
List<String> prefix = new ArrayList<String>();
prefix.add("Brainy~icon1.gif");
prefix.add("James~icon2.gif~icon3.gif");
client.send(PacketCreator.showPrefixIcons(channel.getName(), prefix));
|
Es können beliebig viele Icons angegeben werden, siehe Beispiel.
Noch Fragen? Dann stellen.
MfG