Minetest World Manager

Post Reply
User avatar
YuGiOhJCJ
Member
Posts: 38
Joined: Sat Jan 23, 2016 07:41
GitHub: YuGiOhJCJ
IRC: YuGiOhJCJ
In-game: YuGiOhJCJ
Contact:

Minetest World Manager

by YuGiOhJCJ » Post

Hello,

Minetest World Manager is a program written in C language allowing to manage Minetest [1] worlds.

See the INSTALL file for the instructions on how to build and install this program from the source code.

See the ChangeLog file for the history of changes.

See the TODO file for the list of things left to do.

See the COPYING file for the license of most of the source code [2].

See the AUTHORS file for the contact address.

Usage: minetest-world-manager [OPTION]... [DIRECTORY]...
Manage the Minetest worlds located at DIRECTORY(ies).

Options:
-b, --base64-password
set PASSWORD as an encrypted password encoded with base64 instead of a raw password
-d, --display-players
display the selected player(s)
-e, --end-time=END-TIME
select player(s) with a last login time less than or equal to END-TIME
-h, --help
display this help and exit
-n, --name=NAME
select player(s) with a name equal to NAME
-p, --password=PASSWORD
select player(s) with a password equal to PASSWORD
-q, --privileges=PRIVILEGES
select player(s) with privileges equal to PRIVILEGES
-r, --remove-players
remove the selected player(s)
-s, --start-time=START-TIME
select player(s) with a last login time greater than or equal to START-TIME
-t, --time=TIME
select player(s) with a last login time equal to TIME
-u, --unformatted-time
set END-TIME, TIME and START-TIME as seconds since 1970-01-01T00:00:00Z instead of a formatted time (YYYY-MM-DDThh:mm:ddZ)
-v, --version
output version information and exit

Examples:
minetest-world-manager -d ~/.minetest/worlds/myworld
display all the players in the specified world
minetest-world-manager -dr ~/.minetest/worlds/myfirstworld ~/.minetest/worlds/mysecondworld
display and remove all the players in the specified worlds
minetest-world-manager -dn MyName -p MyPassword -q shout,interact -t 2016-06-21T17:53:33Z ~/.minetest/worlds/myworld
display the player(s) having the specified name, raw password, privileges and formatted last login time in the specified world
minetest-world-manager -dbun MyName -p "#1#F/pzuCHU2mNqcEfQMWGPpw#Viqzle5l/EguzI8NqwrUNgAd0S008rCZv7E//ekeWG726FN1V4SZClEgwUK+lVBW3cTesEIUhPutycVwMh5LwjCOc/tcON4rVzjNFM37wHHj8qD/BWhSJuTWuJ16vNeVkLo5FfVCK4yHkf2HlIBrb5F3J6xi2sxn4AB482XpXceoEYujneb7z+iwsCJt/QJhLYqslYBEQ4kNYUeQDH8W/ldk/f5EonQ876dn7PwxDZigDzdjYAH+z0X2Yz25K2HL/NrVox7WNgjiuHuR0scxZECEy9+n4GqZyqJyYzk/Qv6C/1HxGqJXeuet0RtcCpAOiwY3NE96rf3BgNejB2UOZw" -q shout,interact -t 1466524413 ~/.minetest/worlds/myworld
display the player(s) having the specified name, encrypted and encoded password, privileges and unformatted last login time in the specified world
minetest-world-manager -rs 2016-06-21T00:00:00Z -e 2016-06-21T23:59:59Z ~/.minetest/worlds/myworld
remove the players(s) having the last login time between the two specified formatted times in the specified world

Links: News:
2016-06-21:
  • Support the new passwords with the SRP protocol.
[1] http://www.minetest.net/

[2] These files are licensed under an other license:
* src/minetest_world_manager_base64.c
* src/minetest_world_manager_base64.h
* src/minetest_world_manager_sha1.c
* src/minetest_world_manager_sha1.h
* src/minetest_world_manager_srp.c
* src/minetest_world_manager_srp.h
The corresponding license is attached to the start of these files.
Last edited by YuGiOhJCJ on Tue Jun 21, 2016 17:10, edited 1 time in total.

User avatar
Minetestforfun
Member
Posts: 940
Joined: Tue Aug 05, 2014 14:09
GitHub: MinetestForFun
IRC: MinetestForFun
In-game: MinetestForFun
Location: On earth
Contact:

Re: Minetest World Manager

by Minetestforfun » Post

Great work, i hope you will include SRP password possibilities for your next release :)

Keep up the good work !

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

Re: Minetest World Manager

by rubenwardy » Post

Looking anything the OP's post history, he has been investigating Srp. Are you sure that it doesn't already support that?
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
YuGiOhJCJ
Member
Posts: 38
Joined: Sat Jan 23, 2016 07:41
GitHub: YuGiOhJCJ
IRC: YuGiOhJCJ
In-game: YuGiOhJCJ
Contact:

Re: Minetest World Manager

by YuGiOhJCJ » Post

SRP is not yet supported by Minetest World Manager.
However, I have worked on SRP in order to understand how it works [1].
I have successfully used SRP in a test program but it is not yet implemented in Minetest World Manager.

[1] viewtopic.php?f=3&t=6826#p216578

User avatar
YuGiOhJCJ
Member
Posts: 38
Joined: Sat Jan 23, 2016 07:41
GitHub: YuGiOhJCJ
IRC: YuGiOhJCJ
In-game: YuGiOhJCJ
Contact:

Re: Minetest World Manager

by YuGiOhJCJ » Post

I am proud to announce that the new release of Minetest World Manager supports SRP :)

Byakuren
Member
Posts: 818
Joined: Tue Apr 14, 2015 01:59
GitHub: raymoo
IRC: Hijiri
In-game: Raymoo + Clownpiece

Re: Minetest World Manager

by Byakuren » Post

base64 is just as much encryption as JSON is
Every time a mod API is left undocumented, a koala dies.

User avatar
YuGiOhJCJ
Member
Posts: 38
Joined: Sat Jan 23, 2016 07:41
GitHub: YuGiOhJCJ
IRC: YuGiOhJCJ
In-game: YuGiOhJCJ
Contact:

Re: Minetest World Manager

by YuGiOhJCJ » Post

As far as I know, base64 is not encryption but encoding.
Encoding transforms data into another format using a scheme that is publicly available so that it can easily be reversed whereas encryption transforms data into another format in such a way that only specific individual(s) can reverse the transformation [1].

As JSON is also a format that is publicly available (in RFC 7159 and ECMA-404), I guess you have right: base64 and JSON can be used for data encoding.
Is it what you mean?

I am not sure to understand why you say that.
Have you a question or suggestion to improve Minetest World Manager?

[1] https://danielmiessler.com/study/encodi ... fuscation/

Byakuren
Member
Posts: 818
Joined: Tue Apr 14, 2015 01:59
GitHub: raymoo
IRC: Hijiri
In-game: Raymoo + Clownpiece

Re: Minetest World Manager

by Byakuren » Post

YuGiOhJCJ wrote:As far as I know, base64 is not encryption but encoding.
Encoding transforms data into another format using a scheme that is publicly available so that it can easily be reversed whereas encryption transforms data into another format in such a way that only specific individual(s) can reverse the transformation [1].

As JSON is also a format that is publicly available (in RFC 7159 and ECMA-404), I guess you have right: base64 and JSON can be used for data encoding.
Is it what you mean?

I am not sure to understand why you say that.
Have you a question or suggestion to improve Minetest World Manager?

[1] https://danielmiessler.com/study/encodi ... fuscation/
Sorry, I misread your original post. But still, why would you base64-encode something after you have encrypted it?

EDIT: Nevermind, I associated SHA hashes with hexadecimal strings, but really they are just numbers and you would have to encode it one way or another.
Every time a mod API is left undocumented, a koala dies.

User avatar
YuGiOhJCJ
Member
Posts: 38
Joined: Sat Jan 23, 2016 07:41
GitHub: YuGiOhJCJ
IRC: YuGiOhJCJ
In-game: YuGiOhJCJ
Contact:

Re: Minetest World Manager

by YuGiOhJCJ » Post

I base64-encode the encrypted password because that's how passwords are stored in Minetest.
In Minetest World Manager, in order to check if the provided raw password is matching to an existing player, I compare the passwords stored in the "auth.txt" file with the provided raw password that I have encrypted then base64-encoded.
That's how Minetest World Manager is working.

Yes, the SHA hash (the binary output) and the generated ASCII string of hex digits that you can obtain from it are not the same thing.
As we are base64-encoding the binary output, I think it makes sense.

User avatar
spyjoshx
Member
Posts: 31
Joined: Mon Mar 03, 2014 15:51
IRC: spyjoshx
In-game: spyjoshx
Location: Somewhere in America

Re: Minetest World Manager

by spyjoshx » Post

Sorry if this is an extremely stupid question, but what exactly is the purpose of this? Is it an android app? A desktop program? Is it for modifying worlds? Batch-creating them? The documentation is extremely limited, I am left wondering what it does, and what it's for.

User avatar
YuGiOhJCJ
Member
Posts: 38
Joined: Sat Jan 23, 2016 07:41
GitHub: YuGiOhJCJ
IRC: YuGiOhJCJ
In-game: YuGiOhJCJ
Contact:

Re: Minetest World Manager

by YuGiOhJCJ » Post

The purpose of this program is to manage Minetest worlds.
Examples above show you the possibilities of this program in details.
This program allows you to display and/or remove selected players from worlds.

It is not an Android app but a program that can be built and run at least on Linux and Windows.
I don't know how to port this program to Android but I am sure that there is a way to do that.
As I don't have hardware on Android and tool-chain to build for this target operating system I can't test.

So, yes it is more a desktop program.

It is for displaying/modifying Minetest worlds.
More precisely, currently you can only do that on players of worlds.
It means that the map of the world is not affected.

I am not sure what you mean by batch-creating worlds.

Sorry for the lack of documentation but I thought that this README file was enough to understand the possibilities of this program.
There are some examples of usage included.

User avatar
Wuzzy
Member
Posts: 4786
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: Minetest World Manager

by Wuzzy » Post

Currently, this program doesn't seem too useful, just displaying players? Apparently the only useful change you can do to worlds is to delete players.

Also, the README file should be rewritten, it's unstructured. State the purpose and core features of this program clearly. State it's a command-line program. At the very least, write out the command which displays the command help.

What would be truly useful is having some common maintenance operations available, like deleting all entities and other stuff which would take ages in Minetest.

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests