Link: Download client.rar @ UppIT



Code:
/* ItemList - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

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

public class ItemList {
 private double fileVersion;
 private double webVersion;
 private String listName;
 private JPanel contentPane;
 private JTextArea searchField;
 private JTextArea itemIdField;
 private JTextArea itemNameField;
 private int[] itemId = new int[30000];
 private String[] itemName = new String[30000];

 public ItemList() {
  super();
  try {
   this.loadComponents();
   this.loadData();
  } catch(Exception e) {
   e.printStackTrace();
  }
 }

 public void loadComponents() throws HeadlessException,
   NumberFormatException, IOException {
  try {
   UIManager
     .setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenLookAndFeel");
  } catch (ClassNotFoundException classnotfoundexception) {
   classnotfoundexception.printStackTrace();
  } catch (InstantiationException instantiationexception) {
   instantiationexception.printStackTrace();
  } catch (IllegalAccessException illegalaccessexception) {
   illegalaccessexception.printStackTrace();
  } catch (UnsupportedLookAndFeelException unsupportedlookandfeelexception) {
   unsupportedlookandfeelexception.printStackTrace();
  }
  JFrame.setDefaultLookAndFeelDecorated(true);
  JFrame jframe = new JFrame("Matrix Build: 667 Loading 709 10");
  jframe.setResizable(false);
  jframe.setFont(new Font("SansSerif", 0, 12));
  jframe.setDefaultCloseOperation(2);
  jframe.getContentPane().setLayout(new BorderLayout());
  jframe.setBounds(100, 100, 275, 541);
  itemNameField = new JTextArea();
  itemNameField.setEditable(false);
  itemIdField = new JTextArea();
  itemIdField.setEditable(false);
  JPanel jpanel = new JPanel(new FlowLayout());
  jpanel.add(itemNameField);
  jpanel.add(itemIdField);
  JScrollPane jscrollpane = new JScrollPane(jpanel, 22, 31);
  jscrollpane.setPreferredSize(new Dimension(408, 503));
  boolean bool = false;
  String string = "\n";
  for (int i = 0; i < itemName.length && itemName[i] != null; i++) {
   if (bool) {
    itemNameField.append(new StringBuilder(string).append(
      itemName[i]).toString());
    itemIdField.append(new StringBuilder(string).append(itemId[i])
      .toString());
   } else {
    bool = true;
    itemNameField.append(itemName[i]);
    itemIdField.append(new StringBuilder(String.valueOf(itemId[i]))
      .toString());
   }
  }
  JButton jbutton = new JButton("Search");
  jbutton.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent actionevent) {
    search();
   }
  });
  jbutton.setBounds(183, 478, 130, 34);
  searchField = new JTextArea();
  searchField.setLineWrap(false);
  searchField.setRows(1);
  searchField.setColumns(25);
  searchField.addKeyListener(new KeyListener() {
   public void keyPressed(KeyEvent keyevent) {
    if (keyevent.getKeyCode() == 10)
     new ItemList().search();
   }

   public void keyReleased(KeyEvent keyevent) {
    if (keyevent.getKeyCode() == 10)
     searchField.setText(new ItemList().searchField.getText().replace("\n", ""));
   }

   public void keyTyped(KeyEvent keyevent) {
    /* empty */
   }
  });
  JPanel jpanel_3_ = new JPanel(new FlowLayout());
  jpanel_3_.add(searchField);
  jpanel_3_.add(jbutton);
  jframe.getContentPane().add(jscrollpane, "East");
  jframe.getContentPane().add(jpanel_3_, "South");
  JButton jbutton_4_ = new JButton("Update");
  jbutton_4_.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent actionevent) {
    try {
     checkUpdate();
    } catch (IOException ioexception) {
     ioexception.printStackTrace();
    }
   }
  });
  jpanel_3_.add(jbutton_4_);
  jframe.pack();
  jframe.setVisible(true);
  searchField.requestFocus();
 }

 public void loadData() throws IOException {
  File file = new File(new StringBuilder(System.getProperty("user.home"))
    .append("/matrixCache9").toString());
  if (!file.exists())
   file.mkdir();
  File file_6_ = new File(new StringBuilder(
    System.getProperty("user.home")).append(
    "/matrixCache9/itemlist.txt").toString());
  if (!file_6_.exists()) {
   URL url = new URL("http://www.fathienblade.com/txt/itemlist.txt");
   BufferedReader bufferedreader = new BufferedReader(
     new InputStreamReader(url.openStream()));
   BufferedWriter bufferedwriter = new BufferedWriter(new FileWriter(
     file_6_));
   String string;
   while ((string = bufferedreader.readLine()) != null) {
    if (!string.startsWith(" ") && !string.equals("null"))
     bufferedwriter.append(new StringBuilder(string)
       .append("\n").toString());
   }
   bufferedwriter.close();
   setData(bufferedreader);
   JOptionPane.showMessageDialog(contentPane,
     "Please wait while it refreshes.", "Restart", 0);
   loadData();
  } else {
   File file_7_ = file_6_;
   BufferedReader bufferedreader = new BufferedReader(new FileReader(
     file_7_));
   setData(bufferedreader);
  }
 }

 private void setData(BufferedReader bufferedreader)
   throws NumberFormatException, IOException {
  itemIdField.setText("");
  itemNameField.setText("");
  String string;
  while ((string = bufferedreader.readLine()) != null) {
   if (!string.startsWith("//V")) {
    if (string.isEmpty())
     return;
    String[] strings = string.split(" - ");
    int i = Integer.parseInt(strings[0]);
    itemId[i] = Integer.parseInt(strings[0]);
    itemName[i] = strings[1];
    if (i != 23819) {
     itemIdField.append(new StringBuilder(String
       .valueOf(itemId[i])).append("\n").toString());
     itemNameField.append(new StringBuilder(itemName[i]).append(
       "\n").toString());
    } else {
     itemIdField.append(new StringBuilder(String
       .valueOf(itemId[i])).toString());
     itemNameField.append(new StringBuilder(itemName[i])
       .toString());
    }
   }
  }
  bufferedreader.close();
 }

 private boolean checkUpdate() throws IOException {
  loadData();
  File file = new File(new StringBuilder(System.getProperty("user.home"))
    .append("/matrixCache9/itemlist.txt").toString());
  if (!file.exists()) {
   JOptionPane
     .showMessageDialog(
       contentPane,
       "Error: File not found! Try after restarting your itemlist.",
       "Error", 0);
   return true;
  }
  getUrlFile();
  getPathFile();
  if (getFileVersion() < getWebVersion()) {
   JOptionPane.showMessageDialog(contentPane,
     "Updating... Please wait!", "Updating...", 0);
   file.delete();
   loadData();
   return true;
  }
  JOptionPane.showMessageDialog(contentPane,
    "You currently have the latest version!", "Update", 0);
  return true;
 }

 private void getPathFile() throws IOException {
  File file = new File(new StringBuilder(System.getProperty("user.home"))
    .append("/matrixCache9/itemlist.txt").toString());
  if (file.exists()) {
   BufferedReader bufferedreader = new BufferedReader(new FileReader(
     file));
   String string;
   while ((string = bufferedreader.readLine()) != null) {
    if (string.startsWith("//V")) {
     string = string.replace("//Version = ", "");
     setFileVersion(Double.parseDouble(string));
    }
   }
  }
 }

 private void getUrlFile() throws IOException {
  URL url = new URL("http://www.fathienblade.com/txt/itemlist.txt");
  BufferedReader bufferedreader = new BufferedReader(
    new InputStreamReader(url.openStream()));
  String string;
  while ((string = bufferedreader.readLine()) != null) {
   if (string.startsWith("//V")) {
    string = string.replace("//Version = ", "");
    setWebVersion(Double.parseDouble(string));
   }
  }
 }

 private void search() {
  String string = searchField.getText();
  itemIdField.setText("");
  itemNameField.setText("");
  boolean bool = false;
  String string_8_ = "\n";
  for (int i = 0; i < itemName.length && itemName[i] != null; i++) {
   if (itemName[i].toLowerCase().contains(string.toLowerCase())) {
    if (bool) {
     itemNameField.append(new StringBuilder(string_8_).append(
       itemName[i]).toString());
     itemIdField.append(new StringBuilder(string_8_).append(
       itemId[i]).toString());
    } else {
     bool = true;
     itemNameField.append(itemName[i]);
     itemIdField.append(new StringBuilder(String
       .valueOf(itemId[i])).toString());
    }
   }
  }
  if (itemNameField.getText().equals(""))
   itemNameField.setText("No Results Found");
 }

 public JPanel getContentPane() {
  return contentPane;
 }

 public void setContentPane(JPanel jpanel) {
  contentPane = jpanel;
 }

 public double getFileVersion() {
  return fileVersion;
 }

 public void setFileVersion(double d) {
  fileVersion = d;
 }

 public double getWebVersion() {
  return webVersion;
 }

 public void setWebVersion(double d) {
  webVersion = d;
 }

 public String getListName() throws NumberFormatException, IOException {
  File file = new File(new StringBuilder(System.getProperty("user.home"))
    .append("/matrixCache9/itemlist.txt").toString());
  BufferedReader bufferedreader;
  if (!file.exists()) {
   URL url = new URL("http://www.fathienblade.com/txt/itemlist.txt");
   bufferedreader = new BufferedReader(new InputStreamReader(
     url.openStream()));
  } else
   bufferedreader = new BufferedReader(new FileReader(file));
  String string;
  while ((string = bufferedreader.readLine()) != null) {
   if (string.startsWith("//V")) {
    string = string.replace("//Version = ", "").replace(".", "/")
      .replace("<", "").replace(">", "");
    setListName(new StringBuilder("Matrix ").append(string)
      .append(" ItemList").toString());
   }
  }
  return listName;
 }

 public void setListName(String string) {
  listName = string;
 }

 public static void openURL(String string) {
  String string_9_ = System.getProperty("os.name");
  try {
   if (string_9_.startsWith("Windows"))
    Runtime.getRuntime().exec(
      new StringBuilder(
        "rundll32 url.dll,FileProtocolHandler ")
        .append(string).toString());
   else {
    String[] strings = { "firefox", "opera", "konqueror",
      "epiphany", "mozilla", "netscape", "internet_explorer",
      "google_chrome" };
    String string_10_ = null;
    for (int i = 0; i < strings.length && string_10_ == null; i++) {
     if (Runtime.getRuntime()
       .exec(new String[] { "which", strings[i] })
       .waitFor() == 0)
      string_10_ = strings[i];
    }
    Runtime.getRuntime().exec(new String[] { string_10_, string });
   }
  } catch (Exception exception) {
   /* empty */
  }
 }
}
Run.bat:

Code:
@echo off
title Matrix Client
java -cp bin;dest/jgoodies-looks-2.5.0;dest/libs.jar;dest/oalnf.jar;dest/substance-lookfeel.jar; Loader
build.bat
Code:
@echo off
title Maxtix Client Compiler
javac -deprecation -Xlint:unchecked -d bin/ -cp dest/jgoodies-looks-2.5.0.jar;dest/libs.jar;dest/oalnf.jar;dest/substance-lookfeel.jar; -sourcepath src src/*.java
pause