From 3365b4df6427c52e02ac0807e6c80b89057c415c Mon Sep 17 00:00:00 2001 From: CorruptComputer Date: Wed, 1 Jul 2015 00:52:15 -0500 Subject: [PATCH] Selecting Multiple files with map merger --- tools/mapmerge/Source/.classpath | 2 +- tools/mapmerge/Source/bin/MapMergerMain.class | Bin 2783 -> 3000 bytes .../bin/MapPatcher Source/Location.class | Bin 0 -> 963 bytes .../Source/bin/MapPatcher Source/Map.class | Bin 0 -> 5478 bytes .../bin/MapPatcher Source/MapPatcher.class | Bin 0 -> 899 bytes .../bin/MapPatcher Source/SavingThread.class | Bin 0 -> 750 bytes tools/mapmerge/Source/bin/MapPatcher.jar | Bin 0 -> 10136 bytes tools/mapmerge/Source/src/MapMergerMain.java | 90 +++++++++++------- .../Location.java | 0 .../Map.java | 0 .../MapPatcher.java | 0 .../SavingThread.java | 0 tools/mapmerge/Source/src/MapPatcher.jar | Bin 0 -> 10136 bytes 13 files changed, 57 insertions(+), 35 deletions(-) create mode 100644 tools/mapmerge/Source/bin/MapPatcher Source/Location.class create mode 100644 tools/mapmerge/Source/bin/MapPatcher Source/Map.class create mode 100644 tools/mapmerge/Source/bin/MapPatcher Source/MapPatcher.class create mode 100644 tools/mapmerge/Source/bin/MapPatcher Source/SavingThread.class create mode 100644 tools/mapmerge/Source/bin/MapPatcher.jar rename tools/mapmerge/Source/src/{MapPatcher => MapPatcher Source}/Location.java (100%) rename tools/mapmerge/Source/src/{MapPatcher => MapPatcher Source}/Map.java (100%) rename tools/mapmerge/Source/src/{MapPatcher => MapPatcher Source}/MapPatcher.java (100%) rename tools/mapmerge/Source/src/{MapPatcher => MapPatcher Source}/SavingThread.java (100%) create mode 100644 tools/mapmerge/Source/src/MapPatcher.jar diff --git a/tools/mapmerge/Source/.classpath b/tools/mapmerge/Source/.classpath index a0cb530fa9d..8a11d5b17e5 100644 --- a/tools/mapmerge/Source/.classpath +++ b/tools/mapmerge/Source/.classpath @@ -2,6 +2,6 @@ - + diff --git a/tools/mapmerge/Source/bin/MapMergerMain.class b/tools/mapmerge/Source/bin/MapMergerMain.class index c563253301ff53027fedaed4cca3088ea643cadb..6396bbc7a7267a66d0a87dfb5957e603a3c15b73 100644 GIT binary patch delta 1420 zcmaKsPjC};6vw~6X8&bPDJE`9kha^Y#m2T&`X@?i2TV>h>X?&a1%6Rbd=I#6QeV_M| z-QSdKnf(3ASKk0=!Kc^ctIVnF)66l|jHx$nvD@sRgaZus?T$^UQO%fEN5c_4p^n7V z=~z;o(hSqCjOr61eY=bYFzCWTY+(@N6Jf)Q7&2rWa^VRyF>r={%oH)iP-e|>W!8@l zZvB%kJcXyJeo~7h_5M-I%lmvXg4iKJW4K2RCsZS5s+vj#;SrTYx7g{UE{s68JX~8> z5Fr=F>;aM)8!%~Z$eudx!n24l$YWZfj|O)eCWE8aH)JOb7h>2)V{IhLNO;bg<10&K zG$UanQLR$jZ8h>r>m)-_K$X#hV=ipNbUx$j8P_JY#)xKw8vBoo>qpHt8|!%+>jj1e zYZG5%UFIZ@gp&-#opd$(P|1WIP_57T%HkkivTI*v*hF()=Qhd`USVKWBxB|H)?E_j zX#c+0>cyw@30)nHC5@3Px}-J{N-%g1-$7B>yp0x))9*JJ>($~3>!jf2og>j`r!_BB zm&yq}LZsoCv6Uuula8rJ zf?c|fYWMva_^zWggGR^KXwIUw=O)^M?)F7&@2#uPV&|dyFVWT4kip&s7P33`XE2aP zO}^>z08gQt2nM};7Kaxx?0zPLBN>cRQNAKPpZg{6ME#t?UBtSStr531a=$B_pHDN{ z;TO_2MP5h|vY4=ik|fli2pLReaJ-;6D=Wns9#Wo z3vjK9p+ymhYz+)mt4i(^f!Omhc+ow(wpcoM!(Mq2r|#qni2n_`PZwGOl1R4=IK57X z`%G%U>*Tx=S>7v>74kNVv$K3o;m@z!PU9|{d3Bxgc6iuJyhI{ z&2UrHgC>du;6*z&q67D0nEWx6BaR9rQHc|zFhkX+QH$4*^5F||ZlNCEq7mQWLHvNN z_=EgE>D^gE3zN{wis5Gp9%38tF!R&*U>kO@KI~*;c$67PYBa?16)5i>YCr_MKs# zRj-3KI*$wBG0RGDk+M8qrG4KgPaxDsuwZ)xcc9?WDuoV_VB2wtdPPF6#%1y(0x!qV z6{2zC10r$}N&(faWGS(N|) delta 1200 zcmZXU?{8C87{@z)TWONfYa6b&46Ep@hnHzH`4#iPew{>=HUE6`6 zR%KvtF9ff@5JXY2yfPV@u5pofzTqW_iSdR06DCUtaXz<0i7_`h_c=eF&-eSBd(JJ^ z{t@uq{OiXXKo|K%-!MBr_XJOg@o~ z#mA$wK04WN@f^=9jJZfW8y%W(I<&f4AH(c68C8^pZMXBH#Y-G==Dodb1B_YhTeymhaNgI9X*=qb(bG;mmhUbYTI*eH)=7#!wNH#T+{c_#*{^jb`egAqf9(u@`|E* zFlkT3;?cByEIJ#tCz9F3c%#XTqGFE>yM<-bQP-1?q(#c5dK1y(8Ml;Kx0JM^C3Me~ zb5`3h)N7IzwjE2`iDbr(*ivh3+!on(7j(?xIIk&uQ<3zbu=*1jg(uW{(49PK@jCm& zrmG?|CT}{r*5KUG8Y+f)$1U`fVpFK!Ij?OpPb*ZTl8tn~9{- z&hL6{x#5=gWNcRaI1!`TtI#K$t9tWBPa-R2s(!_~bTlqI8A~RlxJ+~=<*Ya6yypzQ zao#h2%avWj%Q{d4*J<`|DbRYIngSgI4|#r~vq<+d%k+-=`xOH2R#}91#fv3XW zptr!@%k+7Av^;H+yUg%tKr1q`!~y>c1r7$i0j7dC$mnilCgJjl4xY zr)XdSo2wFkCus$m`I!f~$!2cR!Y^#$Paa@}4pqT+6=H{Kmt)*TrwY@hcGIo)(4+S9 zh*04KmiwuBpL5cyQhhnj^8t!FNpbj)GMZEyAMr6BxlZ+b!qZa6PWdBz$^|qr@ED(! zq7}IwYtaH5xF{4|EbQV^DGG_n&m}U%PCb`J&g2V`v_xx-`=xNN2$`+;R%HWpgRcxa i4Zb$$H5gFPavRI=HQu2?Ro$lk4rOwrWiJq$-~J7{u@T(> diff --git a/tools/mapmerge/Source/bin/MapPatcher Source/Location.class b/tools/mapmerge/Source/bin/MapPatcher Source/Location.class new file mode 100644 index 0000000000000000000000000000000000000000..a6ad8cca0266008cad42b760766dcba9351670bc GIT binary patch literal 963 zcmb7CO>fgc5Ph45#4#x;p)Ir&x=AIJT*##-QuR`S6e)a2EtTN5aaQrRj@PU=RpE~z zfdqGcRMlChX@X)v9A-v4e*5;#8~?ic_5;8^_R1(QY`+%CJ7I%R8h)%NCXk)J4un-Y zE~Ch>b|x-FClc|f^LB711IxfJDS8y2DZVh24pgk{A;U_meacWg(nDFsDno64_oXq~ zc&IU$_py09NhtYH29Yp?NkniiMv^z1e5hs0V{Q4^ z3Feky@-iV!i?F46n!b-J?pIMkonfQZpQ}2yM#ZD9Q(fz;SiYHz2hyAf62ee-K18R& zD0jYT7Hz0fhMoS>Gq<*N$&psC*K@2Zsk9!p85;kbnr_KY6A=;nZyKkrciSHsyilZ} zb2qb^HsD!39f4uJ)m|Qq!JqE*m2wlU&NlnpSpW{=pK{BJi*fihPe-U42@id-OTZs4}WKPmdnr}-32tS0m;CzLjV8( literal 0 HcmV?d00001 diff --git a/tools/mapmerge/Source/bin/MapPatcher Source/Map.class b/tools/mapmerge/Source/bin/MapPatcher Source/Map.class new file mode 100644 index 0000000000000000000000000000000000000000..814958657bcffa823290faedaa234070c2ee7b7b GIT binary patch literal 5478 zcmdT|OK;Oa5S|Tblct51LTPz#3zURcpp<735<(y%g@-6qDjcefvrP@oI$Cc+%8ft3 zkrV%d0}@DZTP99NmUN<*yGRN&dfS9pZxpJw;up73v(Gr5g2>S8qb)r zR=A||Zc|#kh@K3j35>j9Emm}xs1=`9-f&A181(G-yeZxa_nja>UJ*#wZPCWlQgFH& znD^SSHr~+2cd|A*bINx3l3HzWkHCSlzd#dx#YfCr!FA^d49wd#!BkUn0=J@wJAuoO zYFc|sdmyDNvv8DTmR}0VJ=baRDz)5t!*+ab+K_I=;dSpe%?-R*;k3#v zhe-rAnDv&`IGviJRhN5IxQf>GHc^Ez-frM_gkh2Rr*Z=hX5a)ncZFI^XpRb}>wzej zGTLI&W*EZ`!e^2NlMsIOKW6{$QuUNf7;~IAF(zwFSmaV}dd%*=m5RG!?bgKRqz$kU{_L7FV47c5Ce2 zjBAJMkb?<0J_KWM0)4BR~eSz8&b; zT*nS}>`=$Wc~mE literal 0 HcmV?d00001 diff --git a/tools/mapmerge/Source/bin/MapPatcher Source/MapPatcher.class b/tools/mapmerge/Source/bin/MapPatcher Source/MapPatcher.class new file mode 100644 index 0000000000000000000000000000000000000000..286c9a4a9c3cdacbe2ca9731814907d7283169fd GIT binary patch literal 899 zcmb7CO>Yx15Pg$|Y_fzVw6uJc;^vfsL@u0K1P27C@F68s0#44xByM-@mDh>dKg3@^ z0txQ?D8%eGVuKoida-8gd2i-D&(B|9zXN!T`vEG1omVn_D}6LoP7LhKMXFcc1gH|) z$8s)vu{4w3o6)g~JfW89SQ!rJ11C?k(f%o6t-F6js6Mx272qnNRRUi)XI&lF2%p~> zr!pJQ)mTI}Np&o}wnn7Rj$)N$2O?|?r%H@f6idfNsfg*HA65u(*ZfHq;P z+b@+2ywhfKm@94dwNbBU$w;}OWr}4zcAU7(}!$aBDEoG zcR#LbSH~^F@ZaVY-d$QM|M1`}^D413pRza~n>y|i_Ws+9u>Loa5T5VQOWqGQs8swY zcMyBvE#c)O)Nuthj;b67oDmwuQm%0Xgx?Up-)Mfp`VY=3xXx#-cwvt@Zk|_R6E`?( tU<=y|h6l`FGTdCj@T_2{6u8@Huf*NCh@fgc5PcKUBy~g61o{P~-R6{D$fYNWdT2$ZNC6=wM1tGaUL_0muC-Z5&_7nG zmEg{gLLECujg%k`^TsoJ^X6my`_J7^0HoN&O+=XD>sxp2%*)tp^Qh;={)|MEc=P(gNYRf zSbQix*Atf+#?Hy8h9ko9f7d1i^C!R3dHd#~-s}955MV+6Thv+m>i7PhIVBF&9l&j0^gL^bTx1QZ%`&Yr)W2`U-Z2OG$;yb_#yex7Dc(tIA^X3YN OD->EQ6$ICmaQpynak7R0 literal 0 HcmV?d00001 diff --git a/tools/mapmerge/Source/bin/MapPatcher.jar b/tools/mapmerge/Source/bin/MapPatcher.jar new file mode 100644 index 0000000000000000000000000000000000000000..5cbaad488c146d8a7453f114260dbccfe61e7861 GIT binary patch literal 10136 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 I_ foundFiles = finder.foundPaths; + System.out.print("Path to maps folder: "); + Path pathToMaps = Paths.get(input.nextLine()); + FileFinder dmmFinder = new FileFinder("*.dmm"); + Files.walkFileTree(pathToMaps, dmmFinder); + ArrayList foundFiles = dmmFinder.foundPaths; if (foundFiles.size() > 0) { + + + System.out.println("How many files do you want to merge?"); + int selection1; + inputCheck:while(true){ + while(!input.hasNextInt()){ + String temp = input.next(); + System.out.println(temp + " is not a valid int."); + } + selection1 = input.nextInt(); + if(selection1 < 0){ + System.out.println("Use a number greater than 0!"); + continue inputCheck; + }else{ + break inputCheck; + } + } + + for(int numOfFiles = selection1; numOfFiles != 0; numOfFiles--){ + for(int num = 0;num < foundFiles.size();num++){ System.out.println(num + ": " + foundFiles.get(num)); } + + System.out.print("File to use: "); + int selection2; + inputCheck:while(true){ + while(!input.hasNextInt()){ + String temp = input.next(); + System.out.println(temp + " is not a valid int."); + } + selection2 = input.nextInt(); + if(selection2 < 0 || selection2 >= foundFiles.size()){ + if(selection2 < 0){ + System.out.println("Use a number greater than 0!"); + }else{ + System.out.println("Use a number less than " + foundFiles.size() +"!"); + } + continue inputCheck; + }else{ + break inputCheck; + } + } + + String newMap = foundFiles.get(selection2) + ""; + String oldMap = foundFiles.get(selection2) + ".backup"; + String[] passInto = new String[4]; + passInto[0] = "-clean"; + passInto[1] = oldMap; + passInto[2] = newMap; + passInto[3] = newMap; + MapPatcher.main(passInto); + } + }else{ System.out.println("No files were found!"); } - System.out.print("File to use: "); - int selection; - inputCheck:while(true){ - while(!input.hasNextInt()){ - String temp = input.next(); - System.out.println(temp + " is not a valid int."); - } - selection = input.nextInt(); - if(selection < 0 || selection >= foundFiles.size()){ - if(selection < 0){ - System.out.println("Use a number greater than 0!"); - }else{ - System.out.println("Use a number less than " + foundFiles.size() +"!"); - } - continue inputCheck; - }else{ - break inputCheck; - } - } - - String newMap = foundFiles.get(selection) + ""; - String oldMap = foundFiles.get(selection) + ".backup"; - String[] passInto = new String[4]; - passInto[0] = "-clean"; - passInto[1] = oldMap; - passInto[2] = newMap; - passInto[3] = newMap; - MapPatcher.main(passInto); } } \ No newline at end of file diff --git a/tools/mapmerge/Source/src/MapPatcher/Location.java b/tools/mapmerge/Source/src/MapPatcher Source/Location.java similarity index 100% rename from tools/mapmerge/Source/src/MapPatcher/Location.java rename to tools/mapmerge/Source/src/MapPatcher Source/Location.java diff --git a/tools/mapmerge/Source/src/MapPatcher/Map.java b/tools/mapmerge/Source/src/MapPatcher Source/Map.java similarity index 100% rename from tools/mapmerge/Source/src/MapPatcher/Map.java rename to tools/mapmerge/Source/src/MapPatcher Source/Map.java diff --git a/tools/mapmerge/Source/src/MapPatcher/MapPatcher.java b/tools/mapmerge/Source/src/MapPatcher Source/MapPatcher.java similarity index 100% rename from tools/mapmerge/Source/src/MapPatcher/MapPatcher.java rename to tools/mapmerge/Source/src/MapPatcher Source/MapPatcher.java diff --git a/tools/mapmerge/Source/src/MapPatcher/SavingThread.java b/tools/mapmerge/Source/src/MapPatcher Source/SavingThread.java similarity index 100% rename from tools/mapmerge/Source/src/MapPatcher/SavingThread.java rename to tools/mapmerge/Source/src/MapPatcher Source/SavingThread.java diff --git a/tools/mapmerge/Source/src/MapPatcher.jar b/tools/mapmerge/Source/src/MapPatcher.jar new file mode 100644 index 0000000000000000000000000000000000000000..5cbaad488c146d8a7453f114260dbccfe61e7861 GIT binary patch literal 10136 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 I_