From be08484c9ccc0272d9775efb0856372273425ce4 Mon Sep 17 00:00:00 2001 From: mozipi Date: Wed, 13 Mar 2013 19:28:43 +0900 Subject: [PATCH 1/1] =?utf8?q?=E5=88=9D=E6=9C=9F=E3=82=B3=E3=83=9F?= =?utf8?q?=E3=83=83=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- amu/AutoModUpdater.java | 125 ++++++++++++++++++++++++++++++++++++++++++++++++ amu/ModInfo.java | 31 ++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 amu/AutoModUpdater.java create mode 100644 amu/ModInfo.java diff --git a/amu/AutoModUpdater.java b/amu/AutoModUpdater.java new file mode 100644 index 0000000..6963796 --- /dev/null +++ b/amu/AutoModUpdater.java @@ -0,0 +1,125 @@ +package amu; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; + +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.network.NetworkMod; + +import net.minecraft.src.BaseMod; + +@Mod(modid = "AMU", name = "AutoModUpdater", version="開発1") +public class AutoModUpdater { + + /** + * 登録されているMODのマップ + */ + private static HashMap modMap = new HashMap(); + + private static boolean doLogging = true; + + public static void addAMUInfo(String modName, String modVer, String url) { + modMap.put(modName, new ModInfo(modVer, url)); + logging("AMU Added Mod - " + modName); + } + + /** + * 特定のサイトに接続し、InputStreamから取得した文字列を戻り値として返します。
+ * エラーが発生した場合はnullを返します。 + * @param urlStr 接続するURL + * @param ReqMethod リクエストメソッド + * @param variable 指定するパラメータ(cgiへの変数) + * @return InputStreamから取得した文字列。エラーが発生した場合はnull + */ + public static String connect(String urlStr,String ReqMethod, String... variable) { + try { + setDoLogging(false); + logging("接続開始 " + "URL:" + urlStr); + //URL設定 + URL url = new URL(urlStr); + //URL.openConnectionからHttpURLConnection取得 + HttpURLConnection connecter = (HttpURLConnection) url.openConnection(); + + //リクエストメソッドをPOSTに設定 + connecter.setRequestMethod(ReqMethod); + + //Inputをtrueに + connecter.setDoInput(true); + //Outputをtrueに + connecter.setDoOutput(true); + + //接続 + connecter.connect(); + logging("接続完了"); + logging(""); + + //OutputStreamを取得しDataOutputStreamに + DataOutputStream wr = new DataOutputStream( + connecter.getOutputStream()); + //ログインデータ一時書き込み + for (int i = 0; i < variable.length; i++) { + wr.writeBytes(variable[i]); + logging("パラメーター:" + variable[i] + "を設定"); + } + //書き込み + wr.flush(); + //クローズ + wr.close(); + + logging("InputStreamにより取得開始"); + //取得 + BufferedReader reader = new BufferedReader(new InputStreamReader(connecter.getInputStream())); + String str = ""; + String in = null; + while ((in = reader.readLine()) != null) { + str = str.concat(String.valueOf(in)); + } + logging("取得結果:"); + logging(str); + + logging(""); + + logging("切断"); + logging(""); + //切断 + connecter.disconnect(); + + setDoLogging(true); + + return str; + } catch (Exception e) { + return null; + } + } + + /** + * Loggingします。
+ * ただし、doLoggingがfalseの時はログを取りません。
+ * このメソッドはログを取ったかどうかを返しません。 + * @param log 出力文字列 + */ + public static void logging(String log) { + if (doLogging) System.out.println("[AMU] " + log); + } + + /** + * Loggingするかどうか設定します。 + * @param doLogging Loggingするか + */ + public static void setDoLogging(boolean doLogging) { + AutoModUpdater.doLogging = doLogging; + } + + /** + * Loggingするかどうか取得します + * @return Loggingするかどうか + */ + public static boolean doLogging() { + return doLogging; + } + +} diff --git a/amu/ModInfo.java b/amu/ModInfo.java new file mode 100644 index 0000000..383a07a --- /dev/null +++ b/amu/ModInfo.java @@ -0,0 +1,31 @@ +package amu; + +public class ModInfo { + + private String modVer; + private String latestVer; + private String url; + + public ModInfo(String modVer, String url) { + super(); + this.modVer = modVer; + this.url = url; + } + + public String getModVer() { + return modVer; + } + + public String getLatestVer() { + return latestVer; + } + + public String getUrl() { + return url; + } + + public void setLatestVer(String latestVer) { + this.latestVer = latestVer; + } + +} -- 2.11.0