OSDN Git Service

初期コミット master
authormozipi <mozipi_2@yahoo.co.jp>
Wed, 13 Mar 2013 10:28:43 +0000 (19:28 +0900)
committermozipi <mozipi_2@yahoo.co.jp>
Wed, 13 Mar 2013 10:28:43 +0000 (19:28 +0900)
amu/AutoModUpdater.java [new file with mode: 0644]
amu/ModInfo.java [new file with mode: 0644]

diff --git a/amu/AutoModUpdater.java b/amu/AutoModUpdater.java
new file mode 100644 (file)
index 0000000..6963796
--- /dev/null
@@ -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<String, ModInfo> modMap = new HashMap<String, ModInfo>();
+
+       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から取得した文字列を戻り値として返します。<br>
+        * エラーが発生した場合は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します。<br>
+        * ただし、doLoggingがfalseの時はログを取りません。<br>
+        * このメソッドはログを取ったかどうかを返しません。
+        * @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 (file)
index 0000000..383a07a
--- /dev/null
@@ -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;
+       }
+
+}