3m - Minetest Mod Manager

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sat Mar 09, 2013 18:02

Yeah, I must admit, that the project was dead since months, but you must understand me, as I have quite demanding IT studies on my head and I do not have much time. I was also waiting until I finish C++ in object oriented way subject. My plans were to rewrite it in more OOP way, so the code would be cleaner and easier to understand etc. I think I can come back to working on 3m in a while, especially now, when I created the NetSocket++ library, which will make work easier for me and anyone that wants to work on it. So - was it dead? Yeah. Will it? I don' t think so. I am planning to get to work on it as soon as I have time.
---
Posted by Phitherek_
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

by rubenwardy » Sat Mar 09, 2013 18:12

Yeah, when it is remade it would be nice in a class format.

Good look with your studies.
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sat Mar 09, 2013 18:55

"New" 3m:
1. Use my NetSocket++ library:
https://github.com/Phitherek/NetSocket--
http://www.phitherek.mooo.com/doxy/libnetsocketpp
This will spare a lot of socket code and shrink the code.
2. Classes:
ModListData
LocalModListData
RemoteModListData
RepoInfoData
RemoteModInfo
ModList
ActionList
And every one of these in separate .cpp and .h file.
Content of the classes like in structs.
+ methods:
clear()
parse() (for some)
get() (for some)
3. Untouched functions:
strip_endl();
4. Exceptions:
Handlers for NetSocket++ exceptions.
+
ParseException
ExtractException
DownloadException
FileException
... and everything that somehow will be needed in the process.
5. APIs rather than external programs:
There are so many C++ libraries that I think I should find ones for 7z (p7zip) and wget (or something similar) - it is always better than executing programs by "system".
6. Rewrite
3m must be rewritten in separate branch with the use of existing code.
7. Finish it finally
3m is not complete. Missing actions must be programmed.
---
Posted by Phitherek_
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

by rubenwardy » Sun Mar 10, 2013 16:48

I would quite like this to be added to the Minetest game as a new downloader part of the inbuilt mod manager.

To do this, you would need to make sure you separate the bits that do the downloading and stuff, and the bits that ask for user input.

Also, Minetest uses cURL and they may not want to add NetSocket++
Last edited by rubenwardy on Sun Mar 10, 2013 16:49, edited 1 time in total.
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Mon Mar 11, 2013 15:06

All right then.
1. The division to classes should do the thing here, because the main functionality will be in the classes and I will only write a simple CLI client to maintain this - no one says you can' t use the same classes with GTK+ or Qt or OpenGL or SDL or whatever you can code the GUI in.
2. cURL... Well, but it is also a C-style library, like Berkeley Socket API, and I wrote NetSocket++ just because I wanted to do it in more OOP and C++ way. There is cURL++, but I have found no documentation to this. I will write this with my NetSocket++ library now, maybe I will change it in other versions.
There is also one more issue. Multi-platform. I do not really know the libraries and tools for Windows or Mac that could do the things I do there with wget/p7zip. I also do not know how to program sockets in Windows (and NetSocket++ is not portable because of that). But really, first things first. I want to get it to work my way and you can eventually improve it, substitute libraries and tools (or suggest me to do it) and in the future we can get a universal, multi-platform and as little dependent on other tools as possible tool, that could be attached to main Minetest.
How about that?
Last edited by Phitherek_ on Mon Mar 11, 2013 15:07, edited 1 time in total.
---
Posted by Phitherek_
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

by rubenwardy » Mon Mar 11, 2013 16:50

Phitherek_ wrote:All right then.
1. The division to classes should do the thing here, because the main functionality will be in the classes and I will only write a simple CLI client to maintain this - no one says you can' t use the same classes with GTK+ or Qt or OpenGL or SDL or whatever you can code the GUI in.
2. cURL... Well, but it is also a C-style library, like Berkeley Socket API, and I wrote NetSocket++ just because I wanted to do it in more OOP and C++ way. There is cURL++, but I have found no documentation to this. I will write this with my NetSocket++ library now, maybe I will change it in other versions.
There is also one more issue. Multi-platform. I do not really know the libraries and tools for Windows or Mac that could do the things I do there with wget/p7zip. I also do not know how to program sockets in Windows (and NetSocket++ is not portable because of that). But really, first things first. I want to get it to work my way and you can eventually improve it, substitute libraries and tools (or suggest me to do it) and in the future we can get a universal, multi-platform and as little dependent on other tools as possible tool, that could be attached to main Minetest.
How about that?


Sounds good.
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sat Mar 16, 2013 22:17

Ok, so I must clearly state that now the studies and private life take very much of my time so very little is left for additional projects like 3m. I will probably sometimes get time to push it forward but if you want faster development, I need your help. I need C++ programmers with good knowledge of the OOP methodology. Here are main goals:
1. Rewrite what has been done before - but to comply with OOP, so we need to think of actual objects and classes to get it done. Some of them are above, but I am not sure if this is a complete list - it will come out during development. The older version is stored in the "old" branch in GitHub repo.
2. Write missing part of it - also complying with OOP. The final functionality is somewhere in this thread and/or in IDEAS file in the repo.
3. First the functionality, then the client - we must write all the classes and tests first, then we can code the actual CLI client basing on those classes. Then we can get to other stuff, like GUI client or something.
4. What is needed during development:
- write the documentation. Since I started to code in the OOP style, I am using Doxygen (http://www.stack.nl/~dimitri/doxygen/) to write the documentation, so I want it to be written in the Doxygen' s format.
- check for memory leaks. I am using Valgrind (http://valgrind.org/), its Memcheck plugin to be precise, to do that. I recommend compiling for debug (-g option) when testing with this tool.
- no or as few as possible warnings. Compile with -Wall option for that.
5. What will we use:
- my NetSocket++ library (in first versions probably) - it is simple, OOP-compliant library for network programming. And also, if you have any problems with it during the development, I will try to update it when needed.
- p7zip for archives (API preferrably, there is a dynamic library shipped with the p7zip package)
- wget/git for downloading actual mods (I never succeeded in downloading content other than text through pure sockets - and also, preferrably APIs if there are any).
6. We will use GitHub "pull request" development model.
7. Any questions/ideas/anything - please answer in this topic or mail me (mail on my forum profile).

Rubenwardy, I would be grateful if you could spread the word. Any help really invited!
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Mon Mar 18, 2013 22:51

Ok, so I finally got down to work and started to rewrite 3m. Just finished the first class: ConfigFile, which is created from file path, parses itself in constructor and the object comes as parsed and ready to use config storage. There is also an option to change and write the config back. Here are the results of my test:
Code: Select all
phitherek@phitherek-eee-pc tests $ ./ConfigFileTest
3m Tests: ConfigFile v. 0.1 (C) 2013 by Phitherek_
Give me the settings path: /home/phitherek/.3m/config
Config parsed successfully! Here are the results:
localpath: /home/phitherek
modlist: /home/phitherek/modlist.3mlm
repoinfo: /home/phitherek/repoinfo.3mri
Enter new localpath:
/home/phitherek/Pobrane/minetest/mods/3m
modlist:
/home/phitherek/Pobrane/minetest/mods/3m/modlist.3mlm
repoinfo:
/home/phitherek/Pobrane/minetest/mods/3m/repoinfo.3mri
Generating the config file...
All OK! Thank you for testing!
phitherek@phitherek-eee-pc tests $ ./ConfigFileTest
3m Tests: ConfigFile v. 0.1 (C) 2013 by Phitherek_
Give me the settings path: /home/phitherek/.3m/config
Config parsed successfully! Here are the results:
localpath: /home/phitherek/Pobrane/minetest/mods/3m
modlist: /home/phitherek/Pobrane/minetest/mods/3m/modlist.3mlm
repoinfo: /home/phitherek/Pobrane/minetest/mods/3m/repoinfo.3mri
Enter new localpath:
/home/phitherek/Pobrane/minetest/mods/3m/
modlist:
/home/phitherek/Pobrane/minetest/mods/3m/modlist.3mlm
repoinfo:
/home/phitherek/Pobrane/minetest/mods/3m/repoinfo.3mri                     
Generating the config file...
All OK! Thank you for testing!
phitherek@phitherek-eee-pc tests $ ./ConfigFileTest
3m Tests: ConfigFile v. 0.1 (C) 2013 by Phitherek_
Give me the settings path: /home/phitherek/.3m/config
Config parsed successfully! Here are the results:
localpath: /home/phitherek/Pobrane/minetest/mods/3m/
modlist: /home/phitherek/Pobrane/minetest/mods/3m/modlist.3mlm
repoinfo: /home/phitherek/Pobrane/minetest/mods/3m/repoinfo.3mri
Enter new localpath:
^C


This class can be used to read config in clients and configurators (and it' s meant to).

For possible contributors: Take look at the code of this class. This is how I want the code in 3m to look like.

EDIT: I' ve added some more functionality so you can now create new config file without having an existing and correct config file using the ConfigFile class. Here is the output of my test:
Code: Select all
phitherek@phitherek-eee-pc tests $ ./ConfigFileTest
3m Tests: ConfigFile v. 0.1 (C) 2013 by Phitherek_
Give me the settings path: /home/phitherek/config
File exception occured: /home/phitherek/config (reading): Could not open file!
Failed to open file, creating new...
Enter new localpath:
/home/phitherek
modlist:
/home/phitherek/modlist.3mlm
repoinfo:
/home/phitherek/modlist.3mri
Generating the config file...
All OK! Thank you for testing!
phitherek@phitherek-eee-pc tests $ ./ConfigFileTest
3m Tests: ConfigFile v. 0.1 (C) 2013 by Phitherek_
Give me the settings path: /home/phitherek/config
Config parsed successfully! Here are the results:
localpath: /home/phitherek
modlist: /home/phitherek/modlist.3mlm
repoinfo: /home/phitherek/modlist.3mri
Enter new localpath:
^C
phitherek@phitherek-eee-pc tests $ cd
phitherek@phitherek-eee-pc ~ $ vim config
// here I have messed up the config file ;)
phitherek@phitherek-eee-pc ~ $ cd github/3m/tests/
phitherek@phitherek-eee-pc tests $ ./ConfigFileTest
3m Tests: ConfigFile v. 0.1 (C) 2013 by Phitherek_
Give me the settings path: /home/phitherek/config
Parse exception occured: /home/phitherek/config: Found localpat although localpath, modlist or repoinfo was expected.
Failed to parse file, creating new...
Enter new localpath:
^C
Last edited by Phitherek_ on Tue Mar 19, 2013 09:16, edited 1 time in total.
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sat Mar 23, 2013 16:51

I am changing the structure of 3m more than I previously planned. I the "new" 3m every ACTION will be an OBJECT, that takes arguments, performs the actions and returns appropriate structures. Then I will add an option to compile it as the dynamic library (.so). This way, everyone will be able to use this functionality in various ways simply by linking e. g. -l3m during compilation. Of course I will also create the simplest command line client for it, but it will be based on this library.
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sun Mar 24, 2013 11:46

Ok, so now I am finished with basic objects and I am moving on to some more complex ones. I just finished the ModListList class, which manages the ~/.3m/remote_modlists file - and you can add, delete, search, iterate... and I am going to do that with every file format and parser etc, so the objects themselves will have a complete functionality with certain type of file. That way you can create settings managers in a very simple way - because objects provide you the interface.
Here is the output of my full ModListList functionality test:
Code: Select all
phitherek@phitherek-eee-pc tests $ valgrind ./ModListListTest
==7571== Memcheck, a memory error detector
==7571== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==7571== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==7571== Command: ./ModListListTest
==7571==
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: f
Enter name: local
name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: f
Enter name: sth
sth not found!
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: a
Enter name: test
Enter server: test.example.tld
Enter path: /some/path
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

name: test
server: test.example.tld
path: /some/path

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: f
Enter name: test
name: test
server: test.example.tld
path: /some/path
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: s
All done! Thank you for testing!
==7571==
==7571== HEAP SUMMARY:
==7571==     in use at exit: 0 bytes in 0 blocks
==7571==   total heap usage: 165 allocs, 165 frees, 22,337 bytes allocated
==7571==
==7571== All heap blocks were freed -- no leaks are possible
==7571==
==7571== For counts of detected and suppressed errors, rerun with: -v
==7571== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
phitherek@phitherek-eee-pc tests $ valgrind ./ModListListTest
==7641== Memcheck, a memory error detector
==7641== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==7641== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==7641== Command: ./ModListListTest
==7641==
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

name: test
server: test.example.tld
path: /some/path

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: d
Enter name: test
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: s
All done! Thank you for testing!
==7641==
==7641== HEAP SUMMARY:
==7641==     in use at exit: 0 bytes in 0 blocks
==7641==   total heap usage: 149 allocs, 149 frees, 21,960 bytes allocated
==7641==
==7641== All heap blocks were freed -- no leaks are possible
==7641==
==7641== For counts of detected and suppressed errors, rerun with: -v
==7641== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
phitherek@phitherek-eee-pc tests $ valgrind ./ModListListTest
==7673== Memcheck, a memory error detector
==7673== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==7673== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==7673== Command: ./ModListListTest
==7673==
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: a
Enter name: test
Enter server: test.example.tld
Enter path: /some/path
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

name: test
server: test.example.tld
path: /some/path

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: q
All done! Thank you for testing!
==7673==
==7673== HEAP SUMMARY:
==7673==     in use at exit: 0 bytes in 0 blocks
==7673==   total heap usage: 127 allocs, 127 frees, 12,598 bytes allocated
==7673==
==7673== All heap blocks were freed -- no leaks are possible
==7673==
==7673== For counts of detected and suppressed errors, rerun with: -v
==7673== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
phitherek@phitherek-eee-pc tests $ valgrind ./ModListListTest
==7715== Memcheck, a memory error detector
==7715== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==7715== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==7715== Command: ./ModListListTest
==7715==
Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: l
name: official
server: 3m.phitherek.cba.pl
path: /files/modlist.3mml

name: local
server: phitherek.dyndns.org
path: /3m/files/modlist.3mml

name: rubenwardy
server: multa.bugs3.com
path: /minetest/forum/api/3m/getmods.php

Choose action: (l)ist all modlists, (f)ind by name and list, (d)elete by name, (a)dd new modlist, (s)ave and quit, (q)uit without saving: q
All done! Thank you for testing!
==7715==
==7715== HEAP SUMMARY:
==7715==     in use at exit: 0 bytes in 0 blocks
==7715==   total heap usage: 105 allocs, 105 frees, 11,979 bytes allocated
==7715==
==7715== All heap blocks were freed -- no leaks are possible
==7715==
==7715== For counts of detected and suppressed errors, rerun with: -v
==7715== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Wed Apr 03, 2013 21:49

Ok, I have just finished testing RepositoryInfo class which means I am done with local file interfaces. Now it is time to move on to remote files.
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Fri Apr 05, 2013 22:31

Just to keep you updated: I am done with ModInfo class - now I have to write tests for it and debug, I have also begun to write ModList, which is the last remaining file representing object. In the meanwhile I finally got the whole idea of new 3m. So... the code is now OOP-compliant (sort of) and so very modular. Every single module is tested, so when I begin to write a higher-level module I have a reliable module on the lower level. Sort of, because sometimes I forget some minor but important methods like e. g. the one clearing the whole object and then I have to write it - but it is fast to write and rather not error-producing, so ok. And my final goal is to create a mod manager from these modules. I decided, though, that I will expand the functionality of the modules, especially the ones representing 3m-specific files and formats. Every file format module enables you not only to use existing files, but also to edit them and even create new ones in rather simple way. What am I trying to accomplish by that? I am trying to create a library that can be used in various clients (command-line and GUI) as well as in configurators (main config, remote modlist list, local modlist, local repoinfo (but these two less), modinfo and modlist, also command-line and GUI possible). That is why I am not only creating objects storing data, but I will also create actions as object, so that writing a client will be a lot simpler.
When I finish it, the simple client will be distributed in two versions. One - normal - will involve building a 3m library and installing it into system and then compilation with linking. Another - static - will include all the 3m library source files as well as NetSocket++' s source files, so it will not have any additional dependencies.
So, basically, that is my idea of the new 3m. I hope that you like it. I am working on it and I hope you will see 0.1 quite soon.
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sat Apr 06, 2013 21:08

Just finished ModInfo class. So I have only one more data class to go and I can get to the highest level classes - actions :).
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sun Apr 07, 2013 13:59

Yes, I must post that. I just finished last tests of the lower level data classes including ModList class and I must say that I have now complete access framework to 3m-related files, both local and remote! I just have one simple parameter parser to write and I will get to programming actual actions :).
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Sun Apr 07, 2013 22:50

Ok, so SyncAction class IS WORKING - it comes out that my idea of making objects from actions works as I expected - you can run sync from another program with just a few lines of code now :).

@rubenwardy: Something' s wrong AGAIN with the descriptions of mods on your forum, parser does not accept them.

The new thing here is that I added an option to give names of modlists to sync as parameters, so we can skip unneeded or unwanted modlists. But then it will sync only the modlists given as parameters. With no parameters it updates all modlists.

Output from tests:
Code: Select all
phitherek@phitherek-eee-pc tests $ ./SyncActionTest blah
Starting Sync
Config read successfully!
Remote modlist list read successfully!
BadParameterException occured: (sync) Invalid parameter: blah! Skipping...
Sync finished successfully!
phitherek@phitherek-eee-pc tests $ ./SyncActionTest blah official
Starting Sync
Config read successfully!
Remote modlist list read successfully!
BadParameterException occured: (sync) Invalid parameter: blah! Skipping...
Connection to 85.17.25.67 successful!
Got all modinfo descriptions from official, downloading and parsing modinfos...
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: testmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: dtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: fdtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: sdtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: 3m-gittestmod
Empty mod description or end of list, skipping...
Sync finished successfully!
phitherek@phitherek-eee-pc tests $ ./SyncActionTest
Starting Sync
Config read successfully!
Remote modlist list read successfully!
Connection to 85.17.25.67 successful!
Got all modinfo descriptions from official, downloading and parsing modinfos...
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: testmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: dtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: fdtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: sdtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: 3m-gittestmod
Empty mod description or end of list, skipping...
Connection to 31.170.166.101 successful!
Got all modinfo descriptions from rubenwardy, downloading and parsing modinfos...
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: traps
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: minetest-mod-mesecons
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: moreblocks
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: worldedit
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=modf: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=homedecor: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=animatedtorches: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=moreores: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=snow: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=ambience: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=nether: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=food: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=nature: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=farming_plus: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=throwing: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=carts: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=beds: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=item_drop: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=streets: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=farming_plus: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=mobs: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=vessels: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=techic: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=3d_player: Found < although { was expected.
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: player_textures
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: external_cmd
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=desert_uses: Found < although { was expected.
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: industrial
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: various
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: christmas
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=fake_blocks: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=computer: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=mint: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=waterplus: Found < although { was expected.
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: lulzpack
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=building_blocks: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=stairpick: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=riesenpilz: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=trashcan: Found < although { was expected.
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=sumpf: Found < although { was expected.
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: awards
Connection to 31.170.166.101 successful!
ParseException occured: multa.bugs3.com/minetest/forum/api/3m/getmodbyname.php?id=survival_modpack: Found < although { was expected.
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: secret
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty mod description or end of list, skipping...
Empty modlist description or end of list, skipping...
Sync finished successfully!
phitherek@phitherek-eee-pc tests $
---
Posted by Phitherek_
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

by rubenwardy » Mon Apr 08, 2013 11:19

Phitherek_ wrote:Ok, so SyncAction class IS WORKING - it comes out that my idea of making objects from actions works as I expected - you can run sync from another program with just a few lines of code now :).

@rubenwardy: Something' s wrong AGAIN with the descriptions of mods on your forum, parser does not accept them.

The new thing here is that I added an option to give names of modlists to sync as parameters, so we can skip unneeded or unwanted modlists. But then it will sync only the modlists given as parameters. With no parameters it updates all modlists.


The < must have come from an error message service (IE: the mysql server is down, server has too many connections)

It is not a problem of my project, just a server problem.

See? No < there

The best guess I can make is that your program accesses to many of my pages at once, and so overloads it (I use a free server)

Code: Select all
{moreores}
[description]
This mod adds copper, tin, silver and gold in Minetest. This mod also adds three new sets of tools/swords.
[release]
4
[deps]
default
[depsend]
[repotype]
archive
[repoaddr]
http://dl.dropbox.com/u/82342922/minetest/moreores.zip
{end}
Last edited by rubenwardy on Mon Apr 08, 2013 11:26, edited 1 time in total.
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Mon Apr 08, 2013 13:27

Yeah, that can be a server problem. I will add a 1 second sleep after each modinfo downloading and test it. However, it will slow the 3m a bit and I do not really want that. Maybe consider putting it on better hosting (you could try host1free.com' s free VPS hosting, it' s awesome).

EDIT: Nope, it' s not the case. I will now try to debug some deeper ;).

EDIT2: After debugging it seems that it IS a server case, I just have to have even longer sleep there :(.

EDIT3: Yes, after setting sleep to 2 seconds all modinfos downloaded and parsed successfully. But it takes soooo long and I have to make it default for now :(. Please, think of better hosting that can handle more connections at once...
Output:
Code: Select all
phitherek@phitherek-eee-pc tests $ ./SyncActionTest
Starting Sync
Config read successfully!
Remote modlist list read successfully!
Connection to 85.17.25.67 successful!
Got all modinfo descriptions from official, downloading and parsing modinfos...
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: testmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: dtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: fdtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: sdtmod
Connection to 85.17.25.67 successful!
Successfully downloaded and parsed: 3m-gittestmod
Empty mod description or end of list, skipping...
Connection to 31.170.166.101 successful!
Got all modinfo descriptions from rubenwardy, downloading and parsing modinfos...
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: traps
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: minetest-mod-mesecons
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: moreblocks
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: worldedit
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: modf
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: homedecor
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: animatedtorches
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: moreores
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: snow
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: ambience
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: nether
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: food
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: nature
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: farming_plus
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: throwing
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: carts
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: beds
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: item_drop
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: streets
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: farming_plus
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: mobs
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: vessels
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: techic
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: 3d_player
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: player_textures
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: external_cmd
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: desert_uses
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: industrial
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: various
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: christmas
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: fake_blocks
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: computer
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: mint
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: waterplus
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: lulzpack
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: building_blocks
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: stairpick
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: riesenpilz
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: trashcan
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: sumpf
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: awards
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: survival_modpack
Connection to 31.170.166.101 successful!
Successfully downloaded and parsed: secret
Empty mod description or end of list, skipping...
Empty modlist description or end of list, skipping...
Sync finished successfully!
phitherek@phitherek-eee-pc tests $
Last edited by Phitherek_ on Mon Apr 08, 2013 13:57, edited 1 time in total.
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Mon Apr 08, 2013 22:58

Finished and tested QueryAction class.
Output from tests:
Code: Select all
phitherek@phitherek-eee-pc tests $ ./QueryActionTest
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
official/testmod (release: 1) [installed: 1]
This is a test mod created for 3m.
official/dtmod (release: 1)
This is a test mod created for 3m for dependency testing.
Depends on: fdtmod sdtmod
official/fdtmod (release: 1) [installed: 1]
This is first dependency for a dependency test mod.
Depends on: sdtmod
official/sdtmod (release: 1) [installed: 1]
This is second dependency for dependency test mod.
Depends on: testmod
official/3m-gittestmod (release: 1)
A test mod for 3m that tests its Git compatibility.
rubenwardy/traps (release: 1)
This mod adds booby traps to Minetest.
Depends on: default moreblocks
rubenwardy/minetest-mod-mesecons (release: 1)
Adds electrics and mechanics (Similar to MC\\s Redstone)
Depends on: default
rubenwardy/moreblocks (release: 4)
This mod adds more blocks to Minetest.
Depends on: default
rubenwardy/worldedit (release: 2)
WorldEdit is an Ingame-World Editor
rubenwardy/modf (release: 3)
Adds animals to Minetest - It is also a framework for other mods
Depends on: fire
rubenwardy/homedecor (release: 1)
This mod adds many differents types of objects found in most homes.
Depends on: default unifieddyes
rubenwardy/animatedtorches (release: 1)
Upgrades the torches to have animations.
Depends on: default
rubenwardy/moreores (release: 4)
This mod adds copper, tin, silver and gold in Minetest. This mod also adds three new sets of tools/swords.
Depends on: default
rubenwardy/snow (release: 1)
Introducing snow and ice to Minetest
Depends on: default
rubenwardy/ambience (release: 3)
Adds ambient sounds that you would naturally hear in the setting you are in.
Depends on: default
rubenwardy/nether (release: 1)
This mod adds a MC Nether-like world to Minetest.
Depends on: default
rubenwardy/food (release: 3)
Adds many different types of food to the game. Drinks, Food, Desert
Depends on: default bucket
rubenwardy/nature (release: 1)
Growing flowers, junglegrass, bushes, cacti, papyrus. Cobble turns into moss.
Depends on: default
rubenwardy/farming_plus (release: 2)
Extends farming and adds more plants
Depends on: farming
rubenwardy/throwing (release: 1)
This mod adds bows and arrows to Minetest.
Depends on: default bucket fire farming
rubenwardy/carts (release: 4)
Adds minecarts to the game
Depends on: default
rubenwardy/beds (release: 1)
I have made a bed mod. The bed allows you to sleep at the night until the next morning.
Depends on: default wool
rubenwardy/item_drop (release: 1)
I have made a mod that adds Minecraft like item drop/pick up to Minetest.
rubenwardy/streets (release: 1)
Adds asphalt roads and highway signs
Depends on: default wool
rubenwardy/farming_plus (release: 2)
Extends farming and adds more plants
Depends on: farming
rubenwardy/mobs (release: 1)
A lightweight mod that adds a few mobs to MT
Depends on: default fire
rubenwardy/vessels (release: 1)
adds a few liquid vessels to the game
rubenwardy/techic (release: 1)
All Technic stuff - makes mining easier, and extends Mesecons
Depends on: moreores flowers pipeworks farming farming_plus mesecons
rubenwardy/3d_player (release: 1)
Adds 3D players using a node box as a lua mod
rubenwardy/player_textures (release: 1)
Allows each player to use their own textures as their avatar
rubenwardy/external_cmd (release: 2)
Allows use of chat and commands by the server admin without logging in.
rubenwardy/desert_uses (release: 1)
This mod makes materials found in the desert more useful.
Depends on: default
rubenwardy/industrial (release: 3)
Adds industrial themed blocks
Depends on: default
rubenwardy/various (release: 1)
Adds various blocks and panes to Minetest
Depends on: default
rubenwardy/christmas (release: 1)
Update of an old Christmas mod to provide Christmas related items
rubenwardy/fake_blocks (release: 2)
Adds blocks that you can walk through but look exactly like solid blocks
rubenwardy/computer (release: 1)
Decorate your house with both modern and old computers and game consoles!
rubenwardy/mint (release: 2)
Adds coins and automatic sell/buy machines to the game
Depends on: default moreores
rubenwardy/waterplus (release: 1)
Adds water that moves, drops and spreads like real water
Depends on: bucket
rubenwardy/lulzpack (release: 3)
Lulzpack adds machines, energy, guns and over 100 other things to minetest
Depends on: default
rubenwardy/building_blocks (release: 1)
add building materials to game.
Depends on: default
rubenwardy/stairpick (release: 1)
Add a new tool for creating stairs
Depends on: default
rubenwardy/riesenpilz (release: 1)
giant mushrooms for minetest
Depends on: default
rubenwardy/trashcan (release: 1)
With this mod you can delete objects.
Depends on: default
rubenwardy/sumpf (release: 1)
This mod adds swamps to minetest.
Depends on: jungletree habitat default
rubenwardy/awards (release: 1)
This mod adds achievements to Minetest.
rubenwardy/survival_modpack (release: 1)
More elements for survival mode
Depends on: default
rubenwardy/secret (release: 1)
Secret chests, secret doors, safe deposit box, one way mirror, another type of one way mirror
Depends on: default
phitherek@phitherek-eee-pc tests $ ./QueryActionTest testmod
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
official/testmod (release: 1) [installed: 1]
This is a test mod created for 3m.
phitherek@phitherek-eee-pc tests $ ./QueryActionTest testmod fdtmod survival_modpack
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
official/testmod (release: 1) [installed: 1]
This is a test mod created for 3m.
official/fdtmod (release: 1) [installed: 1]
This is first dependency for a dependency test mod.
Depends on: sdtmod
rubenwardy/survival_modpack (release: 1)
More elements for survival mode
Depends on: default
phitherek@phitherek-eee-pc tests $ ./LocalQueryActionTest
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
LocalRepository/testmod (release: 1) [installed]
LocalRepository/fdtmod (release: 1) [installed]
LocalRepository/sdtmod (release: 1) [installed]
phitherek@phitherek-eee-pc tests $ ./LocalQueryActionTest test
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
test not found!
phitherek@phitherek-eee-pc tests $ ./LocalQueryActionTest testmod
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
LocalRepository/testmod (release: 1) [installed]
phitherek@phitherek-eee-pc tests $ ./LocalQueryActionTest testmod sdtmod
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
LocalRepository/testmod (release: 1) [installed]
LocalRepository/sdtmod (release: 1) [installed]
phitherek@phitherek-eee-pc tests $

EDIT: I improved Query by adding search by specific modlist (it involved a small change in LocalModList class and of course in QueryAction class):
Code: Select all
phitherek@phitherek-eee-pc tests $ ./QueryActionTest rubenwardy/sumpf
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
rubenwardy/sumpf (release: 1)
This mod adds swamps to minetest.
Depends on: jungletree habitat default
phitherek@phitherek-eee-pc tests $ ./QueryActionTest official/sumpf
Starting Query
Config file loaded successfully!
Local modlist file loaded successfully!
Local repository info file loaded successfully!
sumpf not found in official!
phitherek@phitherek-eee-pc tests $
Last edited by Phitherek_ on Fri Apr 12, 2013 08:33, edited 1 time in total.
---
Posted by Phitherek_
 

User avatar
Phitherek_
Member
 
Posts: 112
Joined: Thu Aug 23, 2012 16:17
Location: Kraków

by Phitherek_ » Wed Jan 22, 2014 08:16

I have started an official project tracking here: http://redmine.phitherek.mooo.com/projects/3m if anyone is interested.
---
Posted by Phitherek_
 

User avatar
rubenwardy
Moderator
 
Posts: 5718
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

by rubenwardy » Wed Jan 22, 2014 08:23

Please note that minetest extensions has been replaced by mmdb.
 

Previous

Return to Minetest-related projects



Who is online

Users browsing this forum: No registered users and 1 guest