|
|
Quellcode |
1 |
b\0Lobby\n1\0p\0B\0-\0Mafia\n1\0p\0B\0-\0Billard\n1\0p\0B\0- |
|
|
Quellcode |
1 2 3 4 |
b \0Lobby\n1\0p\0B\0- \0Mafia\n1\0p\0B\0- \0Billard\n1\0p\0B\0- |
|
|
Java-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// wieviele Channels existieren im Paket? int channel_count = (tokens.length - 1) / 4; // Gehe alle Tokens durch for(int j = 1; j < tokens.length; j++) { // anhand von Modulo wird hier jede "Channel-Sektion" auseinandergehalten if(j % 4 == 0) { String[] channel_name = tokens[j - 3].split("\n"); String channel_style = tokens[j - 2]; String channel_B = tokens[j - 1]; System.out.println(channel_name[0] + " (Online: " + channel_name[1] + ")"); } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Blizzard« (19. Februar 2013, 12:46)
|
|
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
// Globale Variablen private static String ChannelName = ""; private static int ChannelCount = 2; /** Erstellt eine ChannelList @param input Die Daten vom Server (b-Token) @return ChannelList */ public static Channel[] ParseChannelList(String input) { // Splitte die Daten "-\0" String[] channelListParameters = input.split("-\0", 0); // Initalisiere eine neue Liste (Channel) java.util.ArrayList<Channel> channelList = new java.util.ArrayList<Channel>(); // Gehe jeden Eintrag durch for (String parameter : channelListParameters) // Füge den Channel (ParseChannel gibt einen Channel zurück) in unsere List hinzu { channelList.add(ParseChannel(parameter)); } // Gebe die Liste als Array zurück return channelList.toArray(new Channel[0]); } /** Erstellt einen Channel aus den dazugehörigen Parametern @param parameters Die Channelparameter @return Channel */ static Channel ParseChannel(String parameters) { // Falls die aktuelle Daten mit b\0 anfangen (am Anfang: b\00-8-15...) if (parameters.startsWith("b\0")) // entfernen { parameters = parameters.replace("b\0", ""); } // Wir splitten jetzt das \0 String[] channelParameters = parameters.split("\0", -1); /* In der ersten Stelle im Array befindet sich der Channelname und die Anzahl der Chatter, getrennt durch "\n" * Dann splitten wir das "\n" und die erste Stelle davon ist der Channelname */ String channelname = channelParameters[0].split("\n", -1)[0]; // Wenn der ChannelName " entspricht if (channelname.equals(""")) { // Dann kriegt er den ursprünglichen Channelnamen und die Nummer channelname = String.format("%1$s %2$s", ChannelName, ChannelCount); // erhöhe die Nummer um 1 ChannelCount++; } // Wenn der ChannelName aber " enthält else if (channelname.contains(""")) /* Dann sieht es so aus: "5 * Das " ersetzen wir, erhalten somit die Nummer und der ChannelName ist der ursprüngliche Name und die Nummer */ { channelname = String.format("%1$s %2$s", ChannelName, channelname.replace(""", "")); } // Wenn es ein neuer Channel ist, der mit dem alten nichts zu tun hat else if (!ChannelName.equals(channelname)) { // Setze die Nummer auf den Standartwert ChannelCount = 2; ChannelName = channelname; } // Ansonsten else { // Globale Variable erhält den aktuellen Channelnamen ChannelName = channelname; } // Anzahl der Chatter bestimmen (s.o.) int count = Integer.parseInt(channelParameters[0].split("[\\n]", -1)[1]); // Wenn ein Channel voll ist, wird in der vierten Stelle des Arrays das entsprechende Bild geliefert und wir prüfen, ob sich ein Teil davon dort befindet boolean isFull = channelParameters[3].contains("full"); // Wenn im Channel mehr als 1 Chatter ist, ist er nicht leer, ansonsten schon boolean isEmpty = !(count > 1); // Format, wie der Channel angezeigt wird (i = italic, p = plain) char channelAppearanceFormatter =channelParameters[1].charAt(0); // neue Liste initialisieren java.util.ArrayList<String> images = new java.util.ArrayList<String>(); // Pfad zur List hinzufügen, wenn es "pics" enthält if (channelParameters[3].contains("pics")) { images.add(channelParameters[3]); } // Gebe Channel zurück return new Channel(channelname, count, isFull, isEmpty, channelAppearanceFormatter, images); } public final class Channel { private String _channelname; private int _chatter; private boolean _isFull; private boolean _isEmpty; private char _formatter; private ArrayList<String> _images; public String getChannelName() { return _channelname; } public int getChatter() { return _chatter; } public boolean getisFull() { return _isFull; } public boolean getisEmpty() { return _isEmpty; } public char getchannelAppearanceFormatter() { return _formatter; } public java.util.ArrayList<String> getImages() { return _images; } public Channel() { } public Channel(String name, int chatter, boolean full, boolean empty, char formatter, java.util.ArrayList<String> channelImages) { _channelname = name; _chatter = chatter; _isFull = full; _isEmpty = empty; _formatter = formatter; _images = channelImages; } public Channel clone() { Channel varCopy = new Channel(); varCopy._channelname = this._channelname; varCopy._chatter = this._chatter; varCopy._isFull = this._isFull; varCopy._isEmpty = this._isEmpty; varCopy._formatter = this._formatter; varCopy._images = this._images; return varCopy; } } |