Advertisement
iPeer

Now with BACKUP ALL THE THINGS!

Aug 31st, 2011
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 8.68 KB | None | 0 0
  1. on *:load:{
  2.   if (!$getsetting(mcdir) || !$getsetting(backupdir)) {
  3.     noop $input(Please select where Minecraft is installed on your computer.,og,Initial Setup)
  4.     :tryagain
  5.     var %mcdir $sdir(*,Please select your Minecraft install directory)
  6.     if (!$exists($+(%mcdir,\bin\minecraft.jar))) { noop $input(The directory you selected does not contain a valid minecraft installation.,wougbd,Error!) | goto tryagain }
  7.     setsetting mcdir %mcdir
  8.     var %backupdir $input(Now enter the path of where you want to create backups (or leave blank to use default).,eog,Initial Setup)
  9.     if (%backupdir) { setsetting backupdir $+(%backupdir,$iif($right(%backupdir,1) != \,\)) }
  10.     dialog -md ipmcbt ipmcbt
  11.   }
  12. }
  13. menu channel {
  14.   iPeer's Minecraft Backup Thinger:dialog -md ipmcbt ipmcbt
  15. }
  16. dialog iPMCBT {
  17.   title "iPeer's Minecraft Backup Thinger"
  18.   size -1 -1 238 146
  19.   option dbu
  20.   text "Minecraft Install Directory", 1, 4 2 65 8
  21.   edit "", 2, 4 11 216 10, disable
  22.   button "...", 3, 222 10 13 12
  23.   check "Let me type it!", 4, 4 21 47 10
  24.   text "Minecraft Backup Directory", 5, 4 31 65 8
  25.   button "...", 6, 222 39 13 12
  26.   edit "", 7, 4 40 216 10, disable
  27.   check "Again, let me type it!", 8, 4 50 61 10
  28.   list 9, 4 69 230 53, size
  29.   text "Directories available for backup:", 10, 5 60 83 8
  30.   text "Double clicking on an item will start the backup process.", 11, 4 123 230 8, center
  31.   button "Done!", 12, 80 133 154 12, ok
  32.   button "Reload Directories", 13, 4 133 74 12
  33.   button "Backup ALL the things!", 15, 173 57 60 12
  34. }
  35.  
  36.  
  37. on *:dialog:iPMCBT:init:0:{
  38.   did -ra $dname 2 $getsetting(mcdir)
  39.   did -ra $dname 7 $getsetting(backupdir)
  40.   noop $finddir($+($minecraftdir,saves\),*,0,1,did -a iPMCBT 9 $1-)
  41.   noop $finddir($minecraftdir,*bin*,0,1,did -a iPMCBT 9 $1-)
  42. }
  43. on *:dialog:iPMCBT:sclick:*:{
  44.   if ($did == 15) {
  45.     if ($input(Backing up everything will probably make your mIRC hang until it's complete and could possibly take a very long time. Do you still want to do it?,yqgdu,Here be Dragons!)) {
  46.       did -r $dname 9
  47.       ipmcbtloaddirs
  48.       set %bindir $did(9,$did(9).lines).text
  49.       set %totalbackupid $calc($did(9).lines - 1)
  50.       set %backupallthethings 1
  51.       set %backupid 1
  52.       set %firstworld $did(9,1)
  53.       did -ra $dname 9 Well, here goes nothing!
  54.       ;mcbackup -w %firstworld
  55.       mcbackup -b %bindir
  56.     }
  57.   }
  58.   elseif ($did == 3) {
  59.     :tryagain
  60.     var %mcdir = $sdir($iif($getsetting(mcdir),$v1,*),Please select your Minecraft install directory.)
  61.     if (!$exists($+(%mcdir,\bin\minecraft.jar))) { noop $input(The directory you selected does not contain a valid minecraft installation.,wougbd,Error!) | goto tryagain }
  62.     setsetting mcdir %mcdir
  63.     did -ra $dname 2 %mcdir
  64.   }
  65.   elseif ($did == 6) {
  66.     var %backupdir $input(Please enter the path of where you want to create backups (or leave blank to use default).,eog,Initial Setup)
  67.     echo -tg %backupdir
  68.     if (%backupdir) { did -ra $dname 7 $+(%backupdir,$iif($right(%backupdir,1) != \,\)) | setsetting backupdir $+(%backupdir,$iif($right(%backupdir,1) != \,\)) }
  69.   }
  70.  
  71.   elseif ($did == 12) {
  72.     if ($did(2)) setsetting mcdir $iif($right($did(2),1) != \,$+($did(2),\),$did(2))
  73.     if ($did(7)) setsetting backupdir $iif($right($did(7),1) != \,$+($did(7),\),$did(7))
  74.   }
  75.   elseif ($did == 13) {
  76.     did -r $dname 9
  77.     ipmcbtloaddirs
  78.   }
  79.   elseif ($did == 8) { did $iif($did(8).state == 1,-e,-b) $dname 7 }
  80.   elseif ($did == 4) { did $iif($did(4).state == 1,-e,-b) $dname 2 }
  81. }
  82. alias -l ipmcbtloaddirs {
  83.   noop $finddir($+($minecraftdir,saves\),*,0,1,did -a iPMCBT 9 $1-)
  84.   noop $finddir($minecraftdir,*bin*,0,1,did -a iPMCBT 9 $1-)
  85. }
  86. on *:dialog:iPMCBT:dclick:9:{
  87.   if ($right($did(9).seltext,4) == \bin) {
  88.     if ($exists($+($minecraftdir,bin\minecraft.jar))) {
  89.       mcbackup -b $did(9).seltext  
  90.       did -r $dname 9
  91.     }
  92.     else {
  93.       ipmcbtdirerr
  94.     }
  95.   }
  96.   elseif (*\saves\* iswm $did(9).seltext) {
  97.     echo -tg LOLWUT
  98.     if ($isdir($did(9).seltext)) {
  99.       mcbackup -w $did(9).seltext
  100.       did -r $dname 9
  101.     }
  102.     else {
  103.       ipmcbtdirerr
  104.     }
  105.   }
  106. }
  107. alias -l ipmcbtdirerr {
  108.   noop $input(It appears that the directory in the settings file has changed since you opened this dialog. You didn't change that by any chance did you?,ogbiud,I see what you did there)
  109.   halt
  110. }
  111. alias -l mcbe {
  112.   if ($window(@mcbackuplist)) {
  113.     echo $iif($1 == -e,4) @mcbackuplist $iif($1 == -e,$2-,$1-)
  114.   }
  115.   elseif ($dialog(iPMCBT)) {
  116.     did -a iPMCBT 9 $iif($1 == -e,ERROR: $2-,$1-)
  117.     did -c iPMCBT 9 $did(iPMCBT,9).lines
  118.     did -u iPMCBT 9 $did(iPMCBT,9).lines
  119.   }
  120.   else { noop $input(An error has occured while trying to output data to the dialog.,owdu,Error) }
  121. }
  122.  
  123. alias -l getsetting { return $readini(mcbackup.ini,Settings,$md5($1)) }
  124. alias -l setsetting { writeini mcbackup.ini Settings $md5($1) $2- }
  125. alias minecraftdir { return $getsetting(mcdir) }
  126. alias mcbackup {
  127.   if (!$1) {
  128.     window -dl50e @mcbackuplist
  129.     noop $finddir($+($minecraftdir,saves\),*,0,1,@mcbackuplist)
  130.     noop $finddir($minecraftdir,*bin*,0,1,@mcbackuplist)
  131.     halt
  132.   }
  133.   mcbackupdo $1 $2-
  134. }
  135. alias -l mcbackupdo {
  136.   if ($1 == -w) {
  137.     if ($window(@mcbackuplist)) { clear @mcbackuplist }
  138.     %world = $qt($2-)
  139.     %backupdir = $qt($iif($getsetting(backupdir),$+($v1,$iif($right($v1,1) != \,\)),$mircdirMinecraft Backups\))
  140.     %worlddir = $gettok($2-,-1,$asc(\))
  141.     mcbe Checking folders...
  142.     if (!$exists(%backupdir)) {
  143.       mkdir %backupdir
  144.       if ($window(@mcbackuplist)) { echo @mcbackuplist Creating %backupdir }
  145.     }
  146.     if (!$exists($+($noqt(%backupdir),Worlds\))) {
  147.       mkdir $qt($+($noqt(%backupdir),Worlds\))
  148.       mcbe Creating $qt($+($noqt(%backupdir),Worlds\))  
  149.     }
  150.     %backupdir = $+($noqt(%backupdir),Worlds\)
  151.     if (!$exists($qt($+(%backupdir,%worlddir)))) {
  152.       mcbe Creating $qt($+(%backupdir,%worlddir,\))
  153.       mkdir $qt($+(%backupdir,%worlddir,\))
  154.     }
  155.     if ($exists($+(%backupdir,%worlddir,\,$asctime($ctime,dd-mm-yy_hh.nn.ss),\))) {  
  156.       var %bkupid 1
  157.       while ($exists($qt($+(%backupdir,%worlddir,$asctime($ctime,dd-mm-yy_hh.nn.ss),-,%bkupid))) {
  158.         inc %bkupid
  159.       }
  160.     }
  161.     %copyfolder = $iif(%bkupid > 1,$+(%backupdir,%worlddir,\,$asctime($ctime,dd-mm-yy_hh.nn.ss),-,%bkupid),$+(%backupdir,%worlddir,\,$asctime($ctime,dd-mm-yy_hh.nn.ss)))
  162.     mkdir $qt(%copyfolder)
  163.     var %totalfiles $findfile(%world,*,0,)
  164.  
  165.     mcbe %totalfiles total files | mcbe Creating $qt(%copyfolder)
  166.     noop $finddir(%world,*,0,createfolder $+(%copyfolder,$remove($1-,$noqt(%world))))
  167.     mcbe Copying world files | mcbe $str(-,30)
  168.     noop $findfile(%world,*,0,copyworldfiles %totalfiles $1-)
  169.     mcbe Done copying
  170.     unset %f
  171.     if (%backupallthethings) {
  172.       inc %backupid
  173.       if (%backupid > %totalbackupid) { mcbe Full backup complete. | unset %backupallthethings %*backupid %firstworld %bindir | halt }
  174.       else mcbe Run %backupid of %totalbackupid
  175.       noop $finddir($+($minecraftdir,saves\),*,%backupid,1,mcbackup -w $1-)
  176.     }
  177.     halt
  178.     :error
  179.     mcbe -e -> $error
  180.     reseterror
  181.     halt
  182.   }
  183.   elseif ($1 == -b) {
  184.     %n = $iif($?="Enter a name for this backup (leave blank to use current system time)",$v1,$asctime($ctime,dd-mm-yy_hh.nn.ss))
  185.     if ($2 == r) {
  186.       %d = $3-
  187.     }
  188.     else {
  189.       %d = $2-
  190.     }
  191.     mcbe Creating folders
  192.     var %c $iif($getsetting(backupdir),$+($v1,$iif($right($v1,1) != \,\)),$mircdirMinecraft Backups\), %c2 $+($noqt(%c),bin\,%n)
  193.     var %x 2
  194.     set %o $gettok(%c2,1,$asc(\))
  195.     while ($gettok(%c2,%x,$asc(\))) {
  196.       %o = %o $+ \ $+ $v1 $+
  197.       mcbe Checking for folder: %o
  198.       if (!$exists(%o)) { createfolder %o }
  199.       inc %x
  200.     }
  201.     ;noop $finddir(%d,*,0,1,createfolder $+($replace(%d,$minecraftdir,%o)))
  202.     var %t $findfile(%d,*,0,1,)
  203.     mcbe %t files
  204.     noop $findfile(%d,*,0,1,copybinfiles %t $1-)
  205.     mcbe Done copying
  206.     unset %c %c2 %f %d %n %x %o
  207.     if (%backupallthethings) {
  208.       mcbackup -w %firstworld
  209.     }
  210.     halt
  211.     :error
  212.     mcbe -e -> ERROR: $error
  213.     reseterror
  214.     halt
  215.   }
  216. }
  217. alias -l createfolder {
  218.   mkdir $qt($+($1-,\))
  219.   mcbe Creating folder $1- $+ ...
  220. }
  221. alias -l copyworldfiles {
  222.   inc %f
  223.   mcbe Copying world file $+($chr(40),%f,/,$1,$chr(41),:) $2-
  224.   .copy $qt($2-) $qt($+(%copyfolder,\,$remove($2-,$noqt(%world))))
  225. }
  226. menu @mcbackuplist {
  227.   dclick: {
  228.     if ($line(@mcbackuplist,0) > 0) { clear @mcbackuplist }
  229.     var %f $line(@mcbackuplist,$$1-,1)
  230.     echo @mcbackuplist Preparing to copy from %f $+ ...
  231.     mcbackup $iif(*saves* iswm %f,-w,-b) %f
  232.   }
  233. }
  234. alias -l copybinfiles {
  235.   inc %f
  236.   mcbe Copying $2- -> $qt($+(%o,\,$gettok($2-,-1,$asc(\)),))
  237.   .copy $qt($2-) $qt($+(%o,\,$gettok($2-,-1,$asc(\)),))
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement