import java.util.regex.*;
import java.util.prefs.Preferences;
import java.beans.*;
-import com.tedpearson.util.update.*;
-
-/*
- TODO:
- allow adding new islands
- allow adding new oceans
-*/
/**
-* MarketUploader is a class that handles the uploading of market data from
-* Yohoho! Puzzle Pirates. Currently, it must be launched in the save Java
-* Virtual Machine as YPP. This is handled by a sister "helper" class,
-* {@link MarketUploaderRunner}.
-* <p>
-* MarketUploader initializes after the main YPP window has initialized. It
-* provides a simple window with a "Capture Market Data" button displayed.
-* Upon clicking this button, a progress dialog is displayed, and the data
-* is processed and submitted to the Pirate Commodities Trader with Bleach (PCTB)
-* web server. If any errors occur, an error dialog is shown, and processing
-* returns, the button becoming re-enabled.
-*
-* @see MarketUploaderRunner
+* MarketUploader is a class that handles the uploading of market
+* data from Yohoho! Puzzle Pirates via the Java Accessibility
+* API.
+*
+* MarketUploader initializes after the main YPP window has
+* initialized. It provides a simple window with a "Capture
+* Market Data" button displayed. Upon clicking this button, a
+* progress dialog is displayed, and the data is processed and
+* submitted to the YARRG and PCTB servers. If any errors occur,
+* an error dialog is shown, and processing returns, the button
+* becoming re-enabled.
*/
public class MarketUploader implements TopLevelWindowListener, GUIInitializedListener {
private JFrame frame = null;
// Yarrg protocol parameters
private final static String YARRG_CLIENTNAME = "jpctb greenend";
- private final static String YARRG_CLIENTVERSION = "0.1";
- private final static String YARRG_CLIENTFIXES = "";
+ private final static String YARRG_CLIENTVERSION =
+ com.tedpearson.ypp.market.Version.version;
+ private final static String YARRG_CLIENTFIXES = "bug-094";
private final static String YARRG_LIVE_URL = "http://upload.yarrg.chiark.net/commod-update-receiver";
private final static String YARRG_TEST_URL = "http://upload.yarrg.chiark.net/test/commod-update-receiver";
private String YARRG_URL;
}
/**
- * Entry point. Remove modified files and replace with backups.
- * Register the jar file we are running from to be deleted upon quit.
- * Finally, conditionally set up the GUI.
+ * Entry point. Read our preferences.
*/
public MarketUploader() {
// check if we've been turned off in the control panel
Preferences prefs = Preferences.userNodeForPackage(getClass());
- boolean launch = prefs.getBoolean("launchAtStartup", true);
- if(!launch) {
- return;
- }
if (prefs.getBoolean("useLiveServers", false)) {
YARRG_URL = YARRG_LIVE_URL;
}
/**
- * Set up the GUI, with its window and one-button interface. Only initialize
- * if we're running alongside a Window named "Puzzle Pirates" though.
+ * Set up the GUI, with its window and one-button
+ * interface. Only initialize if we're running alongside
+ * a Window named "Puzzle Pirates" though.
*/
private void createGUI() {
if (frame != null && window != null) {
GZIPOutputStream out = new GZIPOutputStream(outStream);
//FileOutputStream out = new FileOutputStream(new File("output.text"));
DataOutputStream dos = new DataOutputStream(out);
- dos.writeBytes("005\n");
+ dos.writeBytes("005y\n");
dos.writeBytes(stallMap.size()+"\n");
dos.writeBytes(getAbbrevStallList(stallMap));
writeBuySellOffers(buys,sells,offerCount,out);
//System.out.println(xml);
Reader reader = new CharArrayReader(xml.toCharArray());
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(reader));
- NodeList maps = d.getElementsByTagName("c");
+ NodeList maps = d.getElementsByTagName("CommodMap");
for(int i=0;i<maps.getLength();i++) {
NodeList content = maps.item(i).getChildNodes();
Integer num = Integer.parseInt(content.item(1).getTextContent());
buySellCount[1]++;
}
} catch(IllegalArgumentException e) {
- // System.err.println("Error: Unsupported Commodity \"" + offer.get(0) + "\"");
+ System.err.println("Error: Unsupported Commodity \"" + offer.get(0) + "\"");
}
}
+ if (buySellCount[0]==0 && buySellCount[1]==0) {
+ error("No (valid) offers for PCTB?!");
+ throw new IllegalArgumentException();
+ }
return buySellCount;
}