Time Nick Message 00:54 MTDiscord https://forum.minetest.net/viewtopic.php?f=14&t=27980&p=409042#p409042 oh look who it is 02:28 erle here is my minetest-servers tool https://forum.minetest.net/viewtopic.php?f=14&t=27984&p=409054 06:01 paradust \window 4 06:02 paradust oops, mistype 09:58 hn hhhhi... 09:58 hn hope here wont get a ban from age you think is incorrect.... 09:59 hn (but was correct, i just know discord situations... not my first tbh...) 10:00 sfan5 ? 10:00 hn nothing nvm 10:01 hn just moved out of discord 10:03 ROllerozxa I don't think liberachat has a minimum age requirement like discord does 10:03 hn yea... 10:04 hn just yesterday peeps thought im undreraged sp wanted to leave to avoid drama 10:04 hn even if im aged 10:04 hn (enough) 10:05 hn (and if you think i'll come back - you have 0 chanes for it) 10:08 hn anyways - something was happening at night? 10:15 hn any hackathons or smth in mt? 10:17 erle hn there was a game jam last christmas 10:18 erle i mean it was timed so the games got released then 10:18 hn k 10:18 hn fine 10:19 hn just was asdkin 10:21 erle hn, you can find the games on contentdb. one of the best is “alter”. 10:21 hn ikr? just wanted to fill empty channel 10:21 hn lol 10:25 erle hn i have a friend in rome. do you know his name? 10:25 hn no? 10:26 erle sussus 10:26 hn lol 10:27 hn (yes this actually was funni) 10:27 erle his name is sussus amogus 10:27 hn xD 10:27 definitelya h 10:27 hn ? 10:28 erle h ist one fourth haha 10:28 hn idk 10:29 definitelya hn: h 10:29 hn o ok 10:29 hn nicks you meant? 10:29 ROllerozxa I don't get the joke and I'm too afraid to ask what "sussus amogus" has to do with rome 10:30 hn it was ne guys in politics 10:30 hn R0llerozxa ↑↑↑ 10:32 erle ROllerozxa there is an old monty python sketch i believe you should watch to understand it: https://yewtu.be/watch?v=yzgS61zgPEg 10:32 definitelya hn: Are you saying Sussus Amogus was an infuential politician of Ancient Rome? The more you know! 10:33 hn ye 10:33 hn lol 10:34 erle definitelya watch the youtube video 10:34 hn this one : https://en.wikipedia.org/wiki/Valentinian_II 10:34 hn googled. first result 10:35 definitelya Yes I've seen it, thank. 10:35 hn ;0 10:35 hn ;) 10:35 definitelya Those guys were hilarious. 10:35 hn ye lol 10:36 hacknorris fine cuz forgor 10:36 erle my friend sussus, he has a wife you know 10:36 erle they call her 10:36 erle impostoria 10:36 hacknorris lmao 10:37 ROllerozxa ah I get it now lmao 10:37 hacknorris ye xd 13:46 hacknorris anyways - someone already made parkour other than "inside the box" and isnt me? just asking... 14:01 hacknorris dead chat 14:19 erle hacknorris yes 14:19 erle go to minigame server 14:19 erle there is a parkour section 14:38 hacknorris ? 14:38 hacknorris ah minigame. probly smol. there are no big ones? 14:57 hacknorris dead chat 14:59 jason101 i'm fascinated how i rename the wor 15:01 hacknorris ? 15:19 hn so is there any bigger parkuor server in minetest except of "inside the box" ? 16:06 Wuzzy I am slightly confused by the register_decoration noise handling 16:07 Wuzzy so the docs say that decorations are placed per "square division" but what does that mean exactly? 16:07 Wuzzy and at which point are decorations placed, anyway? whenever the Perlin noise value >= 0? 16:07 hacknorris x^2/y ? or smth... maths 16:07 hacknorris idk 16:08 hacknorris ah, decorations? 16:08 hacknorris that their on one square at surface and making X on it probly... 16:08 hacknorris or smth 16:36 MTDiscord excuse me but which it the AuthMechanism used with modern servers? 16:38 MTDiscord SRP? 16:38 erle SRP, why? 16:38 erle AFCM are you making a non-minetest client? 16:39 MTDiscord I mean 16:39 MTDiscord switch (chosen_auth_mechanism) { case AUTH_MECHANISM_FIRST_SRP: { // send srp verifier to server std::string verifier; std::string salt; generate_srp_verifier_and_salt(getPlayerName(), m_password, &verifier, &salt); NetworkPacket resp_pkt(TOSERVER_FIRST_SRP, 0); resp_pkt << salt << verifier << (u8)((m_password.empty()) ? 1 : 0); 16:39 MTDiscord Send(&resp_pkt); break; } case AUTH_MECHANISM_SRP: case AUTH_MECHANISM_LEGACY_PASSWORD: { u8 based_on = 1; if (chosen_auth_mechanism == AUTH_MECHANISM_LEGACY_PASSWORD) { m_password = translate_password(getPlayerName(), m_password); based_on = 0; } std::string playername_u = lowercase(getPlayerName()); m_auth_data = 16:39 MTDiscord srp_user_new(SRP_SHA256, SRP_NG_2048, getPlayerName().c_str(), playername_u.c_str(), (const unsigned char *) m_password.c_str(), m_password.length(), NULL, NULL); char *bytes_A = 0; size_t len_A = 0; SRP_Result res = srp_user_start_authentication( (struct SRPUser *) m_auth_data, NULL, NULL, 0, (unsigned char **) &bytes_A, &len_A); 16:39 MTDiscord FATAL_ERROR_IF(res != SRP_OK, "Creating local SRP user failed."); NetworkPacket resp_pkt(TOSERVER_SRP_BYTES_A, 0); resp_pkt << std::string(bytes_A, len_A) << based_on; Send(&resp_pkt); break; } case AUTH_MECHANISM_NONE: break; // not handled in this method } 16:39 erle stop doing this 16:40 MTDiscord ? 16:40 erle pasting lines of code 16:40 erle use a pastebin like https://mister-muffin.de/paste 16:40 MTDiscord Code blocks does not look good on IRC side... 16:40 MTDiscord ok 16:41 erle if the user does not exist, you get AUTH_MECHANISM_FIRST_SRP, otherwise AUTH_MECHANISM_SRP, correct? 16:42 MTDiscord but why is AUTH_MECHANISM_SRP just after AUTH_MECHANISM_LEGACY_PASSWORD 16:43 MTDiscord Are AUTH_MECHANISM_SRP and AUTH_MECHANISM_LEGACY_PASSWORD handled the same? 16:43 MTDiscord (I don't know much about cpp) 16:43 erle AFCM try examining the packets on the wire using the wireshark dissector 16:43 erle you will see how the SRP works 16:44 erle again, what are you trying to do? 16:44 MTDiscord I've not looked at that bu I would guess if client used legacy password auth then server accepts that 16:44 MTDiscord web authentification service 16:45 MTDiscord Just auth directly against DB, if you want SRP for web pages then browser javascript implementation for SRP is needed... 16:45 erle AFCM explain? 16:45 erle i don't get it, you want a web service to log in? 16:46 erle or to register? 16:46 MTDiscord Otherwise you'll be doing "crippled SRP" like what I suppose "legacy password auth" is doing in engine code 16:46 MTDiscord (password sent to server and server does "SRP", not real SRP anymore but same thing basically) 16:48 MTDiscord you have a website allowing users to create an account then they can connect to minetest servers with their credentials and the minetest server will verify them using the web API 16:48 MTDiscord I mean functions same but loses security features, client password is exposed 16:49 MTDiscord You want your own auth backend service which directly authenticates user without minetest engine... 16:49 MTDiscord I guess there's at least few ready made pieces around git... somewhere... 16:51 lsab hello. I'm using i3 inventory, as I'm adm with creative privs I can't see recipes, is there some way to see that? 16:53 MTDiscord I would use both bcrypt (for the website/API) and SRP (for the API endpoint allowing minetest to compare it with the encrypted password given by clients) 16:55 MTDiscord Why you would use both if you're planning to use SRP anyway? 16:56 erle split-brain account db? 16:56 MTDiscord (any hash based auth takes away benefits of SRP) 16:58 MTDiscord Well there's Buckaroo's https://hub.docker.com/r/minetestauth/minetest-auth-proxy / https://github.com/minetest-auth-proxy which does password auth using engine (through mod) 17:01 MTDiscord But if building custom solution from scratch I would recommend going through direct db connection instead of using mod as a proxy, mod makes things a lot easier / faster to get working though. 17:01 MTDiscord (easier because you can completely skip actual authentication implementation) 17:10 erle AFCM did you see this? might be of interest https://forum.minetest.net/viewtopic.php?f=14&p=409075#p409075 17:14 MTDiscord I basically want to encode a string the same way its encoded then its passed to the minetest auth API https://github.com/minetest/minetest/blob/2d8eac4e0a609acf7a26e59141e6c684fdb546d0/doc/lua_api.txt#L8937 17:26 chaverinho . 18:26 MTDiscord You can't. Well, you can but it is auth implementation detail that depends on other things. Basically here's "default" encoding: https://github.com/minetest/minetest/blob/2d8eac4e0a609acf7a26e59141e6c684fdb546d0/src/util/auth.cpp#L29-L47 18:33 sfan5 you can take a plain text password, generate the SRP data and use this to reset an users password inside MT 18:33 MTDiscord What password actually is depends on how it was created / updated, that's SRP detail. It is either SRP derived key (should be this in most cases) or actual password hash (for legacy) 18:34 sfan5 also the code you linked is the legacy password 18:37 sfan5 you have a website allowing users to create an account then they can connect to minetest servers with their credentials and the minetest server will verify them using the web API 18:37 sfan5 ^ if you want to do this I suggest writing directly to the database 19:04 MTDiscord what does "write to the database" exactly mean? 19:08 sfan5 open auth.sqlite and write to the `auth` table, changing the `password` column 19:08 MTDiscord Basically what said earlier: if building custom solution from scratch I would recommend going through direct db connection instead of using mod as a proxy That is, you connect to minetest user/auth db and do whatever is needed like authenticate user or create users 19:10 MTDiscord but isn't sqlite only allowing a single client at a time? 19:12 sfan5 only one client can write at a time 19:12 MTDiscord btw will engine lock it, no? 19:13 sfan5 sqlite will lock the file during writes 19:16 MTDiscord well, some things take exclusive lock for software lifetime and prevents anyone else doing anything but that's legacy thing. Just I would not be surprised if there's some legacy involved :p 19:26 erle sqlite is one writer many readers 19:26 MTDiscord Ofc sqlite locking is not really that fool proof (because that's not possible with way how sqlite works) so better to have backups anyway 19:28 erle last time a looked into sqlite code i was irritated to no end though 19:28 MTDiscord (it could be better to go with postgres anyway for multiple concurrent db clients) 19:29 erle [insert a rant about sqlite 1 based array indexing and UB here] 19:30 erle does sqlite still try to use relational operators to compare pointers? :D 20:27 fluxionary is there any weird logic for connected textures? trying to register some walls via `walls:register` in minetest_game, and get them to connect to the "regular" version of the node. e.g. a wall version of "default:brick". even after adding "default:brick" to the wall's connects_to list, and adding the "wall" group to "default:brick"'s definition, they still do not connect. 20:30 fluxionary there's examples of something similar working in darkage, but darkage seems to have its own "register_wall" logic that doesn't rely on minetest_game 20:33 fluxionary hm. seems to work if i use `override_item` instead of just mangling the connects_to list directly. *shrug*. 20:39 Krock yes, you must push the definitions to Minetest again 20:39 Krock i.e. minetest-register_item or override_item 20:40 Krock minetest.registered_nodes modifications are Lua-side only