File-To-XML Parser.

Posts 1–12 of 12 · Page 1 of 1
File-To-XML Parser.
This program parses packets into their own XML file for use with RealmRelay and such.
It currently does not automatically sort Obfuscated packet names, which I may handle later.

It features a simple I/O option, and nothing else really...

It's one class, so here's the source, if you don't know how to run it, you shouldn't be using it.

 
Code
Code:
package toXml;

import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java****.BufferedReader;
import java****.File;
import java****.FileReader;
import java****.FileWriter;
import java********Exception;
import java****.InputStreamReader;
import java.net.URL;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

/**
 * Made by Cicada on MPGH. - http://www.mpgh.net/forum/member.php?u=2377376
 */
public class ToXML extends JFrame {
	
	public static ToXML instance;
	public static JTextArea console;
	public static FileDialog input;
	public static FileDialog output;
	public static File inputFile;
	public static File outputFile;
	
	public ToXML() {
		setTitle("ToXML - Packet Parser by Cicada - Idea by ZBORNOX"); // Sets the JFrame title.
		setSize(600, 400); // Sets the JFrame size.
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Exits the program when the user closes the window.
		setLocationRelativeTo(null); // Centers the window, as it is not relative to anything.
		setResizable(false); // Makes the window unresizable...
		setLayout(null); // Sets the Layout to null for exact component positioning.
		getContentPane().setLayout(null); // The same as above for removal of subtle positioning bugs that occur.
	}
	
	public static void main(String... args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // Removes the nasty looking Java LookAndFeel .
		instance = new ToXML(); // Declare an Instance of this newly initialised class.
		
		console = new JTextArea();
		console.setEditable(false);
		JScrollPane scrollPane = new JScrollPane(console, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scrollPane.setBounds(5, 5, 350, 362);
		instance.getContentPane().add(scrollPane);
		
		console.setText("A small Packet Parser program by Cicada.\nTo start, specify a File to read from,\nThen specify an output folder.\n");
		
		input = new FileDialog(new Frame());
		output = new FileDialog(new Frame());
		
		input.setTitle("Choose Input");
		output.setTitle("Choose Output");
		
		
		final JButton chooseInput = new JButton("Select In...");
		chooseInput.setBounds(360, 5, 110, 20);
		chooseInput.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent event) {
				input.setVisible(true);
				try {
					inputFile = input.getFiles()[0];
					console.append("\nSelected Input File: " + input.getFiles()[0].getName());
				} catch (Exception ex) {
				}
			}
		});
		instance.getContentPane().add(chooseInput);
		
		final JButton chooseOutput = new JButton("Select Out...");
		chooseOutput.setBounds(478, 5, 110, 20);
		chooseOutput.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent event) {
				output.setVisible(true);
				try {
					outputFile = output.getFiles()[0];
					console.append("\nSelected Output File: " + output.getFiles()[0].getName() + "\nWARNING: This will overwrite existing \nfiles.");
				} catch (Exception ex) {
				}
			}
		});
		instance.getContentPane().add(chooseOutput);
		
		JButton start = new JButton("Start");
		sta******tBounds(360, 50, 230, 20);
		start.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent event) {
				if (inputFile != null && outputFile != null) {
					chooseInput.setEnabled(false);
					chooseOutput.setEnabled(false);
					console.append("\nReading from Input...");
					
					try {
						BufferedReader reader = new BufferedReader(new FileReader(inputFile));
						String currentLine;
						
						if (outputFile.exists()) {
							if (outputFile.delete()) {
								console.append("\nDeleted Target Output file for Saving new.");
							} else {
								console.append("\nUnable to delete Output File.");
							}
						}
						
						outputFile.createNewFile();
						
						FileWriter writer = new FileWriter(outputFile);
						writer.write("<?xml version=\"1.0\"?>\n<!-- Generated using the Automatic File-To-XML parser by Cicada. -->\n<Packets>\n");
						
						while ((currentLine = reader.readLine()) != null) {
							currentLine = currentLine.trim();
							
							if (currentLine.contains("value Integer")) {
								String value = currentLine.split("value Integer")[1].split(" end")[0];
								
								Pattern pattern = Pattern.compile("\\(([^)]+)\\)");
								Matcher matcher = pattern.matcher(value);
								if (matcher.find()) {
									value = matcher.group(1);
									
									String packetName = "(" + currentLine.split("slotid")[0].split("trait const")[1].split(",")[2];
									matcher = pattern.matcher(packetName);
									
									if (matcher.find()) {
										packetName = matcher.group(1);
										
										pattern = Pattern.compile("\\\"([^)]+)\\\"");
										matcher = pattern.matcher(packetName);
										
										if (matcher.find()) {
											packetName = matcher.group(1);
											
											System.out.println("Packet: " + packetName + ": " + value);
											console.append("\nPacket: " + packetName + ": " + value);
											
											System.out.println("Should append to file;");
											writer.append("	<Packet id=\"" + packetName + "\" type=\"" + value + "\"/>\n");
										}
										
									}
									
								}
							}
							
						}
						writer.append("</Packets>");
						writer.close();
						console.append("\nWrote to file successfully.\nOutput directory:\n" + outputFile.getPath());
						System.out.println("\nWrote to file successfully.\nOutput directory:\n" + outputFile.getPath());
					} catch (IOException ex) {
						console.append("Encountered IOException.");
						ex.printStackTrace();
					}
				} else {
					console.append("\nERROR: Please select " + (inputFile == null ? (outputFile == null ? "an Input and Output" : "Input") : "an Output") + " file.");
				}
			}
		});
		instance.getContentPane().add(start);
		
		JTextArea servers = new JTextArea();
		servers.setEditable(false);
		servers.setText("Servers: \n");
		JScrollPane serverScrollPane = new JScrollPane(servers, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		serverScrollPane.setBounds(360, 75, 230, 292);
		instance.getContentPane().add(serverScrollPane);
		
		final String text = readServersURL();
		final String[] split = text.split("<Server>");
		for (final String str : split) {
			if (str.indexOf("</DNS>") != -1) {
				servers.append(str.split("</DNS>")[0].replace("</Name><DNS>", ": ").replace("<Name>", "") + "\n");
			}
		}
		
		instance.setVisible(true); // Sets the window visible, JFrames default this to false.
	}
	
	public static String readServersURL() {
		
		try {
			URL read = new URL("http://www.realmofthemadgod.com/char/list?guid=" + UUID.randomUUID().toString());
			final BufferedReader in = new BufferedReader(new InputStreamReader(read.openStream()));
			String inputLine;
			while ((inputLine = in.readLine()) != null) {
				return inputLine;
			}
			in.close();
		} catch (final Exception e) {
			e.printStackTrace();
		}
		return "Error retrieving XML.";
	}
	
}


Example:
 
Input
trait const QName(PackageNamespace("", "#0"), "FAILURE") slotid 1 type QName(PackageNamespace("", "#0"), "int") value Integer(0) end
trait const QName(PackageNamespace("", "#0"), "CREATE_SUCCESS") slotid 2 type QName(PackageNamespace("", "#0"), "int") value Integer(15) end
trait const QName(PackageNamespace("", "#0"), "CREATE") slotid 3 type QName(PackageNamespace("", "#0"), "int") value Integer(33) end
trait const QName(PackageNamespace("", "#0"), "PLAYERSHOOT") slotid 4 type QName(PackageNamespace("", "#0"), "int") value Integer(13) end
trait const QName(PackageNamespace("", "#0"), "MOVE") slotid 5 type QName(PackageNamespace("", "#0"), "int") value Integer(17) end
trait const QName(PackageNamespace("", "#0"), "PLAYERTEXT") slotid 6 type QName(PackageNamespace("", "#0"), "int") value Integer(12) end
trait const QName(PackageNamespace("", "#0"), "TEXT") slotid 7 type QName(PackageNamespace("", "#0"), "int") value Integer(49) end
trait const QName(PackageNamespace("", "#0"), "_-06z") slotid 8 type QName(PackageNamespace("", "#0"), "int") value Integer(6) end
trait const QName(PackageNamespace("", "#0"), "DAMAGE") slotid 9 type QName(PackageNamespace("", "#0"), "int") value Integer(9) end
trait const QName(PackageNamespace("", "#0"), "UPDATE") slotid 10 type QName(PackageNamespace("", "#0"), "int") value Integer(86) end
trait const QName(PackageNamespace("", "#0"), "_-0Gv") slotid 11 type QName(PackageNamespace("", "#0"), "int") value Integer(44) end
trait const QName(PackageNamespace("", "#0"), "NOTIFICATION") slotid 12 type QName(PackageNamespace("", "#0"), "int") value Integer(60) end
trait const QName(PackageNamespace("", "#0"), "_-wH") slotid 13 type QName(PackageNamespace("", "#0"), "int") value Integer(65) end
trait const QName(PackageNamespace("", "#0"), "INVSWAP") slotid 14 type QName(PackageNamespace("", "#0"), "int") value Integer(10) end
trait const QName(PackageNamespace("", "#0"), "USEITEM") slotid 15 type QName(PackageNamespace("", "#0"), "int") value Integer(8) end
trait const QName(PackageNamespace("", "#0"), "_-1qX") slotid 16 type QName(PackageNamespace("", "#0"), "int") value Integer(55) end
trait const QName(PackageNamespace("", "#0"), "HELLO") slotid 17 type QName(PackageNamespace("", "#0"), "int") value Integer(20) end
trait const QName(PackageNamespace("", "#0"), "GOTO") slotid 18 type QName(PackageNamespace("", "#0"), "int") value Integer(30) end
trait const QName(PackageNamespace("", "#0"), "INVDROP") slotid 19 type QName(PackageNamespace("", "#0"), "int") value Integer(1) end
trait const QName(PackageNamespace("", "#0"), "INVRESULT") slotid 20 type QName(PackageNamespace("", "#0"), "int") value Integer(91) end
trait const QName(PackageNamespace("", "#0"), "RECONNECT") slotid 21 type QName(PackageNamespace("", "#0"), "int") value Integer(28) end
trait const QName(PackageNamespace("", "#0"), "PING") slotid 22 type QName(PackageNamespace("", "#0"), "int") value Integer(50) end
trait const QName(PackageNamespace("", "#0"), "PONG") slotid 23 type QName(PackageNamespace("", "#0"), "int") value Integer(75) end
trait const QName(PackageNamespace("", "#0"), "MAPINFO") slotid 24 type QName(PackageNamespace("", "#0"), "int") value Integer(61) end
trait const QName(PackageNamespace("", "#0"), "LOAD") slotid 25 type QName(PackageNamespace("", "#0"), "int") value Integer(68) end
trait const QName(PackageNamespace("", "#0"), "PIC") slotid 26 type QName(PackageNamespace("", "#0"), "int") value Integer(4) end
trait const QName(PackageNamespace("", "#0"), "SETCONDITION") slotid 27 type QName(PackageNamespace("", "#0"), "int") value Integer(51) end
trait const QName(PackageNamespace("", "#0"), "TELEPORT") slotid 28 type QName(PackageNamespace("", "#0"), "int") value Integer(59) end
trait const QName(PackageNamespace("", "#0"), "USEPORTAL") slotid 29 type QName(PackageNamespace("", "#0"), "int") value Integer(3) end
trait const QName(PackageNamespace("", "#0"), "DEATH") slotid 30 type QName(PackageNamespace("", "#0"), "int") value Integer(69) end
trait const QName(PackageNamespace("", "#0"), "BUY") slotid 31 type QName(PackageNamespace("", "#0"), "int") value Integer(79) end
trait const QName(PackageNamespace("", "#0"), "BUYRESULT") slotid 32 type QName(PackageNamespace("", "#0"), "int") value Integer(80) end
trait const QName(PackageNamespace("", "#0"), "AOE") slotid 33 type QName(PackageNamespace("", "#0"), "int") value Integer(14) end
trait const QName(PackageNamespace("", "#0"), "GROUNDDAMAGE") slotid 34 type QName(PackageNamespace("", "#0"), "int") value Integer(62) end
trait const QName(PackageNamespace("", "#0"), "PLAYERHIT") slotid 35 type QName(PackageNamespace("", "#0"), "int") value Integer(90) end
trait const QName(PackageNamespace("", "#0"), "ENEMYHIT") slotid 36 type QName(PackageNamespace("", "#0"), "int") value Integer(52) end
trait const QName(PackageNamespace("", "#0"), "AOEACK") slotid 37 type QName(PackageNamespace("", "#0"), "int") value Integer(38) end
trait const QName(PackageNamespace("", "#0"), "SHOOTACK") slotid 38 type QName(PackageNamespace("", "#0"), "int") value Integer(27) end
trait const QName(PackageNamespace("", "#0"), "OTHERHIT") slotid 39 type QName(PackageNamespace("", "#0"), "int") value Integer(77) end
trait const QName(PackageNamespace("", "#0"), "SQUAREHIT") slotid 40 type QName(PackageNamespace("", "#0"), "int") value Integer(67) end
trait const QName(PackageNamespace("", "#0"), "GOTOACK") slotid 41 type QName(PackageNamespace("", "#0"), "int") value Integer(64) end
trait const QName(PackageNamespace("", "#0"), "EDITACCOUNTLIST") slotid 42 type QName(PackageNamespace("", "#0"), "int") value Integer(87) end
trait const QName(PackageNamespace("", "#0"), "ACCOUNTLIST") slotid 43 type QName(PackageNamespace("", "#0"), "int") value Integer(85) end
trait const QName(PackageNamespace("", "#0"), "QUESTOBJID") slotid 44 type QName(PackageNamespace("", "#0"), "int") value Integer(31) end
trait const QName(PackageNamespace("", "#0"), "CHOOSENAME") slotid 45 type QName(PackageNamespace("", "#0"), "int") value Integer(22) end
trait const QName(PackageNamespace("", "#0"), "NAMERESULT") slotid 46 type QName(PackageNamespace("", "#0"), "int") value Integer(25) end
trait const QName(PackageNamespace("", "#0"), "CREATEGUILD") slotid 47 type QName(PackageNamespace("", "#0"), "int") value Integer(48) end
trait const QName(PackageNamespace("", "#0"), "_-19u") slotid 48 type QName(PackageNamespace("", "#0"), "int") value Integer(92) end
trait const QName(PackageNamespace("", "#0"), "GUILDREMOVE") slotid 49 type QName(PackageNamespace("", "#0"), "int") value Integer(78) end
trait const QName(PackageNamespace("", "#0"), "GUILDINVITE") slotid 50 type QName(PackageNamespace("", "#0"), "int") value Integer(36) end
trait const QName(PackageNamespace("", "#0"), "ALLYSHOOT") slotid 51 type QName(PackageNamespace("", "#0"), "int") value Integer(47) end
trait const QName(PackageNamespace("", "#0"), "_-a5") slotid 52 type QName(PackageNamespace("", "#0"), "int") value Integer(11) end
trait const QName(PackageNamespace("", "#0"), "REQUESTTRADE") slotid 53 type QName(PackageNamespace("", "#0"), "int") value Integer(41) end
trait const QName(PackageNamespace("", "#0"), "TRADEREQUESTED") slotid 54 type QName(PackageNamespace("", "#0"), "int") value Integer(53) end
trait const QName(PackageNamespace("", "#0"), "TRADESTART") slotid 55 type QName(PackageNamespace("", "#0"), "int") value Integer(34) end
trait const QName(PackageNamespace("", "#0"), "CHANGETRADE") slotid 56 type QName(PackageNamespace("", "#0"), "int") value Integer(63) end
trait const QName(PackageNamespace("", "#0"), "TRADECHANGED") slotid 57 type QName(PackageNamespace("", "#0"), "int") value Integer(26) end
trait const QName(PackageNamespace("", "#0"), "ACCEPTTRADE") slotid 58 type QName(PackageNamespace("", "#0"), "int") value Integer(76) end
trait const QName(PackageNamespace("", "#0"), "CANCELTRADE") slotid 59 type QName(PackageNamespace("", "#0"), "int") value Integer(88) end
trait const QName(PackageNamespace("", "#0"), "TRADEDONE") slotid 60 type QName(PackageNamespace("", "#0"), "int") value Integer(35) end
trait const QName(PackageNamespace("", "#0"), "TRADEACCEPTED") slotid 61 type QName(PackageNamespace("", "#0"), "int") value Integer(83) end
trait const QName(PackageNamespace("", "#0"), "CLIENTSTAT") slotid 62 type QName(PackageNamespace("", "#0"), "int") value Integer(16) end
trait const QName(PackageNamespace("", "#0"), "CHECKCREDITS") slotid 63 type QName(PackageNamespace("", "#0"), "int") value Integer(93) end
trait const QName(PackageNamespace("", "#0"), "ESCAPE") slotid 64 type QName(PackageNamespace("", "#0"), "int") value Integer(23) end
trait const QName(PackageNamespace("", "#0"), "_-07X") slotid 65 type QName(PackageNamespace("", "#0"), "int") value Integer(37) end
trait const QName(PackageNamespace("", "#0"), "INVITEDTOGUILD") slotid 66 type QName(PackageNamespace("", "#0"), "int") value Integer(84) end
trait const QName(PackageNamespace("", "#0"), "JOINGUILD") slotid 67 type QName(PackageNamespace("", "#0"), "int") value Integer(81) end
trait const QName(PackageNamespace("", "#0"), "CHANGEGUILDRANK") slotid 68 type QName(PackageNamespace("", "#0"), "int") value Integer(39) end
trait const QName(PackageNamespace("", "#0"), "PLAYSOUND") slotid 69 type QName(PackageNamespace("", "#0"), "int") value Integer(74) end
trait const QName(PackageNamespace("", "#0"), "GLOBAL_NOTIFICATION") slotid 70 type QName(PackageNamespace("", "#0"), "int") value Integer(56) end
trait const QName(PackageNamespace("", "#0"), "RESKIN") slotid 71 type QName(PackageNamespace("", "#0"), "int") value Integer(18) end
trait const QName(PackageNamespace("", "#0"), "_-1is") slotid 72 type QName(PackageNamespace("", "#0"), "int") value Integer(19) end
trait const QName(PackageNamespace("", "#0"), "_-1f-") slotid 73 type QName(PackageNamespace("", "#0"), "int") value Integer(21) end
trait const QName(PackageNamespace("", "#0"), "_-1PU") slotid 74 type QName(PackageNamespace("", "#0"), "int") value Integer(40) end
trait const QName(PackageNamespace("", "#0"), "_-0P5") slotid 75 type QName(PackageNamespace("", "#0"), "int") value Integer(66) end
trait const QName(PackageNamespace("", "#0"), "_-0g2") slotid 76 type QName(PackageNamespace("", "#0"), "int") value Integer(42) end
trait const QName(PackageNamespace("", "#0"), "_-1Kk") slotid 77 type QName(PackageNamespace("", "#0"), "int") value Integer(82) end
trait const QName(PackageNamespace("", "#0"), "_-1cS") slotid 78 type QName(PackageNamespace("", "#0"), "int") value Integer(5) end
trait const QName(PackageNamespace("", "#0"), "_-eI") slotid 79 type QName(PackageNamespace("", "#0"), "int") value Integer(46) end
trait const QName(PackageNamespace("", "#0"), "ENTER_ARENA") slotid 80 type QName(PackageNamespace("", "#0"), "int") value Integer(58) end
trait const QName(PackageNamespace("", "#0"), "_-14y") slotid 81 type QName(PackageNamespace("", "#0"), "int") value Integer(57) end
trait const QName(PackageNamespace("", "#0"), "_-e3") slotid 82 type QName(PackageNamespace("", "#0"), "int") value Integer(24) end
trait const QName(PackageNamespace("", "#0"), "_-AX") slotid 83 type QName(PackageNamespace("", "#0"), "int") value Integer(45) end
trait const QName(PackageNamespace("", "#0"), "_-nJ") slotid 84 type QName(PackageNamespace("", "#0"), "int") value Integer(89) end
trait const QName(PackageNamespace("", "#0"), "_-Qo") slotid 85 type QName(PackageNamespace("", "#0"), "int") value Integer(7) end
trait slot QName(PackageNamespace("", "#0"), "_-yL") slotid 86 type QName(PackageNamespace("_-az"), "if ") end


 
Output
<?xml version="1.0"?>
<!-- Generated using the Automatic File-To-XML parser by Cicada. -->
<Packets> <Packet id="FAILURE" type="0"/>
<Packet id="CREATE_SUCCESS" type="15"/>
<Packet id="CREATE" type="33"/>
<Packet id="PLAYERSHOOT" type="13"/>
<Packet id="MOVE" type="17"/>
<Packet id="PLAYERTEXT" type="12"/>
<Packet id="TEXT" type="49"/>
<Packet id="_-06z" type="6"/>
<Packet id="DAMAGE" type="9"/>
<Packet id="UPDATE" type="86"/>
<Packet id="_-0Gv" type="44"/>
<Packet id="NOTIFICATION" type="60"/>
<Packet id="_-wH" type="65"/>
<Packet id="INVSWAP" type="10"/>
<Packet id="USEITEM" type="8"/>
<Packet id="_-1qX" type="55"/>
<Packet id="HELLO" type="20"/>
<Packet id="GOTO" type="30"/>
<Packet id="INVDROP" type="1"/>
<Packet id="INVRESULT" type="91"/>
<Packet id="RECONNECT" type="28"/>
<Packet id="PING" type="50"/>
<Packet id="PONG" type="75"/>
<Packet id="MAPINFO" type="61"/>
<Packet id="LOAD" type="68"/>
<Packet id="PIC" type="4"/>
<Packet id="SETCONDITION" type="51"/>
<Packet id="TELEPORT" type="59"/>
<Packet id="USEPORTAL" type="3"/>
<Packet id="DEATH" type="69"/>
<Packet id="BUY" type="79"/>
<Packet id="BUYRESULT" type="80"/>
<Packet id="AOE" type="14"/>
<Packet id="GROUNDDAMAGE" type="62"/>
<Packet id="PLAYERHIT" type="90"/>
<Packet id="ENEMYHIT" type="52"/>
<Packet id="AOEACK" type="38"/>
<Packet id="SHOOTACK" type="27"/>
<Packet id="OTHERHIT" type="77"/>
<Packet id="SQUAREHIT" type="67"/>
<Packet id="GOTOACK" type="64"/>
<Packet id="EDITACCOUNTLIST" type="87"/>
<Packet id="ACCOUNTLIST" type="85"/>
<Packet id="QUESTOBJID" type="31"/>
<Packet id="CHOOSENAME" type="22"/>
<Packet id="NAMERESULT" type="25"/>
<Packet id="CREATEGUILD" type="48"/>
<Packet id="_-19u" type="92"/>
<Packet id="GUILDREMOVE" type="78"/>
<Packet id="GUILDINVITE" type="36"/>
<Packet id="ALLYSHOOT" type="47"/>
<Packet id="_-a5" type="11"/>
<Packet id="REQUESTTRADE" type="41"/>
<Packet id="TRADEREQUESTED" type="53"/>
<Packet id="TRADESTART" type="34"/>
<Packet id="CHANGETRADE" type="63"/>
<Packet id="TRADECHANGED" type="26"/>
<Packet id="ACCEPTTRADE" type="76"/>
<Packet id="CANCELTRADE" type="88"/>
<Packet id="TRADEDONE" type="35"/>
<Packet id="TRADEACCEPTED" type="83"/>
<Packet id="CLIENTSTAT" type="16"/>
<Packet id="CHECKCREDITS" type="93"/>
<Packet id="ESCAPE" type="23"/>
<Packet id="_-07X" type="37"/>
<Packet id="INVITEDTOGUILD" type="84"/>
<Packet id="JOINGUILD" type="81"/>
<Packet id="CHANGEGUILDRANK" type="39"/>
<Packet id="PLAYSOUND" type="74"/>
<Packet id="GLOBAL_NOTIFICATION" type="56"/>
<Packet id="RESKIN" type="18"/>
<Packet id="_-1is" type="19"/>
<Packet id="_-1f-" type="21"/>
<Packet id="_-1PU" type="40"/>
<Packet id="_-0P5" type="66"/>
<Packet id="_-0g2" type="42"/>
<Packet id="_-1Kk" type="82"/>
<Packet id="_-1cS" type="5"/>
<Packet id="_-eI" type="46"/>
<Packet id="ENTER_ARENA" type="58"/>
<Packet id="_-14y" type="57"/>
<Packet id="_-e3" type="24"/>
<Packet id="_-AX" type="45"/>
<Packet id="_-nJ" type="89"/>
<Packet id="_-Qo" type="7"/>
</Packets>


UPDATE: Added a lttle servers box that contains a list of all the current servers, it is ripped from the char/list URL.

And here's a screenshot of the UI, heh:

What are the packet names with _-names?
Obfuscated classes/names, I can't really fix them, I may end up enumerating them.
Did you forget the attachment?
Quote Originally Posted by CrazyJani View Post
Did you forget the attachment?
It's one class, the code is provided, I dont think there's really any point in compiling it?

I might though, if it is from popular demand.
Shit UI / 10

What is a cicada?
Quote Originally Posted by Cicada View Post
It's one class, the code is provided, I dont think there's really any point in compiling it?
Oops, didn't even think before posting...


Quote Originally Posted by Cicada View Post
import java****.BufferedReader;
import java****.File;
import java****.FileReader;
import java****.FileWriter;
import java********Exception;
import java****.InputStreamReader;
I guess I should start guessing what's behind those asterisks...
Quote Originally Posted by CrazyJani View Post

I guess I should start guessing what's behind those asterisks...


Damn URL-Checker
Paquets always respect the same ORDER in the ASASM file so its pretty easy to determine the good ones
I suggest using a configuration file where you can input packets name IN ORDER.

If for whatever reason they change the order in the asasm you will just have to change the config file and NOT RECOMPILE ALL

Packets=FAILURE;CREATESUCCESS;....etc
Automatic decompiling version incoming.
3301?

/10chars
Quote Originally Posted by SAubry View Post
3301?

/10chars
Correct Theory
Incorrect Digits
Posts 1–12 of 12 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?