Minetest logo

IRC log for #minetest-dev, 2015-04-15

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:58 Megaf joined #minetest-dev
01:59 est31 joined #minetest-dev
02:00 est31 About seeding our PRNG
02:01 est31 this is how csrp-gmp does it https://github.com/est31/csrp-gmp/blob/master/srp.c#L424
02:02 est31 without any PRNG at all
02:02 est31 I guess having our own will be faster than relying on OS based PRNGs
02:02 est31 we can re-seed it with OS based PRNGs then
02:02 est31 problem is: for unix, this comes without any cost
02:03 est31 but windows needs to link against some system library
02:03 est31 #include <Wincrypt.h>
02:04 est31 author claims this is Advapi32.lib https://github.com/cocagne/csrp/blob/master/srp.h#L38
02:04 hmmmm fyi you could use rand_s() and get the same result.
02:05 est31 interesting
02:05 hmmmm also that code will fail on oses like solaris 8 that don't have /dev/random
02:06 est31 that would have been my next point
02:07 hmmmm generally though it's wrong to assume 'if it's not windows, it's posix'
02:07 hmmmm defaulting to /dev/random would break compatibility with openvms
02:08 est31 yes, I've noted that in the readme
02:08 est31 rand_s() isn't standard C is it?
02:08 hmmmm neither is CryptGenRandom()
02:08 est31 I've only found windows docs about it
02:10 est31 rand_s() has the issue that it "only" returns a single value
02:10 est31 so we would have to call it in a loop
02:18 paramat joined #minetest-dev
02:19 Fritigern joined #minetest-dev
02:20 paramat http://i.imgur.com/sYTDLyA.png just now got the fractal mapgen working
02:20 paramat left #minetest-dev
02:21 hmmmm wow :)  that looks awesome
02:29 est31 hmmmm, how can I seed that PcgRandom? call seed with one param, or with two?
02:29 hmmmm split the seed between initial state and sequence
02:29 hmmmm so that's 16 bytes
02:37 est31 btw:
02:38 est31 do class-variables that are public need an m_ prefix in the name too?
02:38 est31 (style question)
02:39 OldCoder joined #minetest-dev
02:40 hmmmm no!
02:41 hmmmm that would be horrible
02:41 hmmmm v3s16 foo;  foo.m_X
03:20 crazyR joined #minetest-dev
03:22 est31 hmmmm, what do you propose to use for solaris?
03:23 hmmmm some arbitrary process memory
03:23 est31 same for openvms?
03:23 hmmmm xored with pid
03:23 hmmmm hrmm
03:24 hmmmm this doesn't need to be too crazy, it's just a seed
03:26 est31 if it can be predicted, people may be abled to log in as arbitrary users
03:26 hmmmm time(NULL) ^ printf ^ this_function ^ *(unsigned long *)((char *)&function_argument - 16) ??
03:27 est31 sounds good
03:27 est31 its not our fault when sb uses openvms
03:27 est31 :p
03:27 hmmmm maybe it's safer to use a variable allocated inside that function
03:28 est31 ?
03:28 hmmmm well i just googled, OpenVMS has a secure random device
03:28 hmmmm DEV$V_RND
03:28 hmmmm who cares though :p
03:29 hmmmm the point is that it's extremely difficult to source sufficient randomness in a truly platform independent way
03:29 est31 yes
03:29 hmmmm I think time(NULL) should be okay if if fopen("/dev/urandom", "rb") == NULL
03:29 est31 whats b again?
03:29 hmmmm binary
03:30 est31 thats because of \0? or EOF?
03:30 * est31 reads doc himself
03:31 hmmmm ??
03:31 hmmmm what no this is just the standard file mode string
03:41 Hunterz joined #minetest-dev
03:58 * cheapie gets yet another serialization error
03:58 cheapie *This* is why UDP is a bad idea.
03:59 est31 we are doing tcp ourselves
03:59 est31 or at least the features of tcp we need
03:59 cheapie est31: I sure hope MT gets TCP soon (or at least some kind of error detection).
03:59 est31 nrzkt is the person for that task.
04:00 cheapie Or, at the *very least*, restore the old behavior of more or less ignoring errors instead of basically crashing.
04:00 cheapie It even says "The server is probably running a different version of Minetest."
04:00 cheapie "Probably"!?
04:00 cheapie There's no way for it to figure that out?
04:00 * cheapie grumbles
04:03 est31 I thought there were error detection methods
04:05 cheapie est31: Well, yes, but exiting to the menu and giving a rather vague error message is not the proper action when one is detected.
04:06 est31 right
04:06 est31 so the problem is that one bit flipped somewhere, and its now garbage?
04:07 cheapie Yes.
04:07 est31 That should have been detected on a lower layer
04:07 est31 is crc really that expensive?
04:07 cheapie Depending on data going across even a local network 100% error-free is a Bad Ideaâ„¢, across the Internet is just plain stupid.
04:07 cheapie est31: According to the devs I talked to last time, yes.
04:08 cheapie The computer behind me, 120 MHz CPU and all, has no problem whatsoever handling TCP, so I'd think a modern computer should be fine too...
04:10 cheapie From the Wikipedia article on UDP: "...and thus exposes any unreliability of the underlying network protocol to the user's program..."
04:10 cheapie I think it's sort of implied that the "user's program" should be able to handle this.
04:11 est31 agreed
04:11 cheapie Yes, it says "The lack of retransmission delays makes it suitable for [...] online games", but for $DEITY's sake, use *some* kind of checksum and resend it if it's bad.
04:12 est31 As you, I hope that nrz resolves this.
04:13 est31 like*
04:18 hmmmm cheapie, UDP has a checksum.
04:18 cheapie hmmmm: It must not be working right.
04:18 hmmmm it sounds like there's a different problem
04:19 cheapie "If no checksum is generated by the transmitter, the field uses the value all-zeros."
04:19 cheapie Is MT using it?
04:19 hmmmm you shouldn't be blaming the underlying network protocol on a problem you are personally experiencing
04:19 cheapie hmmmm: OK, what should I blame then?
04:19 hmmmm nothing
04:19 hmmmm you don't know what the cause of it is and neither do i
04:19 hmmmm more research and less blaming helps
04:20 cheapie Well, since this only ever seems to happen over a network...
04:21 cheapie Still, "UDP checksum computation is optional for IPv4." I'd like to know if MT is using it.
04:21 hmmmm it probably isn't, seeing as how IP itself has a checksum
04:21 hmmmm UDP checksumming would be wasteful
04:22 hmmmm but this isn't a minetest question, it's a platform question.  are you running windows?  does *windows* enable udp checksum computation?
04:23 cheapie I'm on Linux.
04:23 cheapie Dunno if it does.
04:23 hmmmm probably not
04:23 cheapie I only see a *header* checksum in IPv4.
04:23 cheapie "An IP packet has no data checksum or any other footer after the data section."
04:24 Hijiri joined #minetest-dev
04:24 hmmmm could be one of the options
04:25 * cheapie decides to install Wireshark and take a look at some of the data
04:25 hmmmm this is way too low-level.  the problem you're experiencing has a 99.5% chance of being a configuration error of some sort.
04:26 hmmmm `man udp`
04:26 hmmmm some more useful questions to answer might be:
04:27 hmmmm - how often are you getting the serialization errors?
04:27 hmmmm - what servers are you connecting to with them?
04:27 hmmmm - what mods do these servers run?
04:27 hmmmm - what ARE the serialization errors for, specifically?
04:27 hmmmm - what versions are the servers
04:27 hmmmm - what version of minetest are YOU running
04:28 hmmmm i mean you're free to do whatever you'd like, i'm just saying it's extremely likely to be a waste of time.
04:28 cheapie How often: depends on network load, usually every 30 seconds to 5 minutes
04:28 cheapie Servers: Any non-local server
04:28 cheapie Mods: Varies, the more mods the more errors
04:29 cheapie What they're for: Lots of different things
04:29 hmmmm "lots of things"
04:29 cheapie Client/Server version: It's been happening as far back as I remember
04:29 hmmmm see, that's not useful
04:29 hmmmm a pastebin with some errors would be useful
04:30 cheapie Hold on, let me see what the next one ends up being.
04:30 hmmmm i've played on remote servers plenty of times and i've never seen a single serialization error
04:30 hmmmm if this is as widespread of an issue as you're claiming, we'd see waaay too many complaints
04:31 cheapie deSerializeLongString: size not read
04:32 est31 I thought cheapie has experienced #2541
04:32 ShadowBot https://github.com/minetest/minetest/issues/2541 -- Singleplayer World Crashes - Malformed Packet Read, Server Running Different Version of Minetest.
04:32 cheapie est31: I've gotten that one too.
04:32 cheapie Back when MT used to show the contents of the bad packet, I did see things like the "0=hdf_65.png:���q�d3/�\�DL�������q�d4/�\�DL���0���q�d5/�\�k
04:32 cheapie \�������q�d6/�\�k\��� ���q�d7/�\�k\���0���q�d8/�P�DL���d9/�
04:32 cheapie �������+@���q�d:/�    ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½y`���q�d;/�    ï¿½ï¿½ï¿½ï¿½ï¿½+@���q�d</�
04:32 cheapie ��U����0.png:340," in the bug report.
04:33 hmmmm does this happen if you switch to 0.4.12
04:33 cheapie Latest git as of about a week ago, yes. What's currently in there won't even compile for me.
04:34 est31 which compiler do you use?
04:34 cheapie GCC 4.9.2
04:35 hmmmm pastebins of error messages are very helpful
04:35 hmmmm making vague complaints in the dev channel is not
04:35 est31 ^
04:35 cheapie See bug #2541. I get those same messages.
04:35 ShadowBot https://github.com/minetest/minetest/issues/2541 -- Singleplayer World Crashes - Malformed Packet Read, Server Running Different Version of Minetest.
04:36 hmmmm I was mostly referring to the compilation error
04:36 hmmmm so yeah, if you could switch to 0.4.12-stable and see if the error persists that'd help..
04:36 hmmmm that would be the most telling in fact
04:37 cheapie I'm currently on the stable-0.4 branch, since master won't compile.
04:37 est31 can you post the compilation error on a pastebin?
04:38 cheapie OK, just a second.
04:38 hmmmm oh
04:38 hmmmm okay then
04:38 hmmmm so we just proved it's not another nerzhul error
04:38 hmmmm that rules out a lot
04:38 est31 its only the client
04:38 hmmmm oh true
04:39 hmmmm the servers could be running nerzhul versions
04:39 hmmmm hrrmm, grr.. surely there must be some 0.4.12-stable servers out there...
04:39 cheapie This has been happening since the 0.4.9 days, it's just only recently that it kicks me out instead of just a warning in the chat.
04:40 hmmmm with the same frequency?
04:40 hmmmm and have you been using the same OS?
04:41 cheapie I've been using several different versions of various Debian-based distros, and yes, more or less the same frequency (still network load dependent).
04:41 cheapie The compilation error (unrelated to the network problems): http://pastebin.ubuntu.com/10825161/
04:41 est31 does make clean help?
04:41 cheapie That was after a make clean.
04:42 hmmmm jsoncpp is bundled only right?
04:42 cheapie I have no clue. Is it a submodule or something?
04:42 hmmmm or is it using the system version
04:42 est31 "using bundled JSONCPP"
04:42 hmmmm oh derrr
04:42 est31 right in the log
04:42 hmmmm i can't read
04:44 hmmmm this could be related to shadowninja's build system cleanup
04:45 est31 cheapie, can you try this commit: https://github.com/minetest/minetest/commit/284fefb0c32e8222fadd78eeec6e7e718fe25668
04:45 hmmmm cheapie, does minetest compile at 284fefb0c32e8222fadd78eeec6e7e718fe25668 ?
04:45 est31 :p first
04:45 hmmmm by like a half second
04:45 est31 4
04:45 hmmmm you lag
04:45 cheapie Trying now...
04:46 hmmmm with regard to the network errors
04:46 cheapie It does.
04:46 hmmmm alright
04:46 hmmmm try at 93fcab952b28f4db39d9326b83f14cbd86c0cf17
04:47 cheapie Trying now...
04:47 hmmmm so anyway about the network errors: have you been using the same computer to play minetest since you noticed this happening?
04:47 hmmmm does it happen on a /different/ computer?
04:47 cheapie I've experienced these errors on at least four different computers.
04:48 hmmmm again, happening at the same frequency as you experience right now?
04:48 cheapie More or less, yes.
04:48 hmmmm hrmm
04:48 cheapie 93fcab952b28f4db39d9326b83f14cbd86c0cf17 does not compile.
04:48 hmmmm okay well thank you for that =]
04:49 hmmmm anyway the reason why I doubt it has anything to do with corrupted data
04:49 cheapie I see "* Add option to search for and use system JSONCPP." in the description; that's probably related.
04:49 * cheapie tries installing libjsoncpp-dev
04:49 hmmmm i just checked and udp checksumming is pretty much universally enabled by all OSes
04:50 cheapie hmmmm: Yeah, I'm getting packets with checksums from the server, I just checked.
04:50 hmmmm if a UDP packet fails checksum it'll just drop the packets
04:50 hmmmm normally
04:50 hmmmm and if the packet is dropped, it just gets retransmitted
04:50 hmmmm so if you can verify with 100% certainty that they're failing checksums and they're getting passed onto the application, then you have an OS configuration problem i'd say...
04:51 cheapie 93fcab952b28f4db39d9326b83f14cbd86c0cf17 does not compile, even with libjsoncpp-dev installed (and it still says it's using the bundled version).
04:51 * cheapie looks to see if any failed checksums right before it crashed
04:51 hmmmm cheapie:  FWIW TCP does the same thing.  TCP also has a checksum and if the checksum fails, the packet is dropped without an ack and it gets retransmitted
04:52 hmmmm the only difference here is that TCP automatically does the retransmission part; minetest has its own retransmission protocol
04:52 hmmmm the reason why minetest *doesn't* use TCP is because of the high latency caused by the in-order delivery guarantee
04:52 cheapie The last hundred or so packets before the crash all seem to have the correct checksum.
04:53 hmmmm the internet has been optimized to hell and back, for sure, but it's fundamentally inefficient due to its layer of abstraction designed to make it work just like a UNIX stream
04:53 * cheapie watches the living room DVR continue to send out ARP packets looking for the gateway every five seconds
04:54 hmmmm so minetest udp is basically tcp, without the in-order guarantee.  which is basically what bittorrent and many others do as well
04:54 cheapie Huh, you'd think it would work then.
04:54 hmmmm I'll be the first to admit the implementation is not optimal.. there are those who have gotten it correct, like enet which is used for many games and works excellent
04:54 hmmmm but it does not corrupt data like that
04:55 cheapie ...which then raises the question as to why MT felt the need to reinvent the wheel.
04:55 hmmmm so UDP is fine.  if minetest is receiving udp packets that had their contents corrupted that's an OS problem
04:55 est31 cheapie, can you try to build with -DENABLE_SYSTEM_JSONCPP=1 ?
04:55 hmmmm cheapie:  the answer is because routers don't support anything other than TCP and UDP.
04:56 cheapie How do online games use "enet", then?
04:56 est31 enet is udp too I presume
04:56 hmmmm because they use UDP, with their own features bolted on
04:56 cheapie est31: "Could NOT find JSONCPP (missing:  JSON_INCLUDE_DIR)", even though it is installed.
04:56 hmmmm enet is a good reliable udp implementation
04:57 hmmmm anyway back to the compilation error
04:57 est31 cheapie, can you paste the output of "dpkg-query -L jsoncpp-dev" to a pastebin?
04:58 hmmmm oh yeah that's probably the issue
04:58 est31 or libjsoncpp-dev
04:58 hmmmm it's getting the jsoncpp header from the system directory before the local directory
04:58 hmmmm you can't mix and match headers from a different version from the object files
04:58 cheapie http://pastebin.ubuntu.com/10825193/
04:58 hmmmm at least that's my theory
04:59 cheapie The -dev and "normal" jsoncpp packages were installed at the same time, so they *should* be the same version.
04:59 est31 but the bundled jsoncpp can have another version than your systems
04:59 est31 thats what hmmmm means I think
05:00 cheapie It's version 0.6.0~rc2-3.1.
05:00 hmmmm cheapie, what happens if you remove cmake/Modules/FindJson.cmake line 25?
05:00 hmmmm (clean, reconfigure and rebuild after this change obviously)
05:01 cheapie hmmmm: Latest or 93fcab952b28f4db39d9326b83f14cbd86c0cf17?
05:01 hmmmm latest I guess
05:01 hmmmm it doesn't really make a difference
05:02 est31 weird for me its also writing: -- Could NOT find JSONCPP (missing:  JSON_INCLUDE_DIR)
05:02 est31 somehow that detection doesnt work at all
05:02 * cheapie comments that line and tries again
05:03 hmmmm =/ we'll fix the system detection later, let's just get the bundled crap working
05:03 hmmmm bundled versions are supposed to safeguard against this kind of problem from happening
05:03 est31 agreed
05:03 cheapie hmmmm: It compiles now.
05:03 hmmmm hrmmmm
05:04 est31 this makes it work: http://pastie.org/10093163
05:07 est31 this too, and is even better: find_path(JSON_INCLUDE_DIR json/featurdes.h PATH_SUFFIXES jsoncpp)
05:07 est31 umm not des.h
05:07 hmmmm i don't know
05:08 hmmmm my guess is that add_subdirectory(json) overrides JSON_INCLUDE_DIR possibly
05:08 est31 add_subdirectory should only trigger the cmake process for the ${PROJECT_SOURCE_DIR}/json directory
05:09 hmmmm cheapie:  what happens if you move add_subdirectory(json) after message(STATUS "using bundled jsoncpp library") but before set(JSON_INCLUDE_DIR ... )
05:09 hmmmm est31, how come it gets compiled just fine without add_subdirectory?
05:10 cheapie Trying now...
05:10 hmmmm also I wonder if changing it to include_directories fixes it
05:11 est31 good question hmmmm.
05:11 hmmmm erm, include_directories is for something completely different =]
05:11 hmmmm whoops
05:12 est31 cheapie, can you add a "#error "this is bundled jsoncpp"" to src/json/jsoncpp.cpp, and try with the cmake line commented out like you have now?
05:12 cheapie hmmmm: Moving the line failed.
05:12 cheapie est31: OK, trying now.
05:13 est31 it will fail
05:13 est31 I'm more interested in the error message
05:13 est31 (if it won't fail, then somehow we use system's jsoncpp)
05:15 cheapie est31: With the add_subdirectory line commented out and the #error added, the build succeeds.
05:15 est31 highly weird
05:16 est31 can you paste a log?
05:16 cheapie http://pastebin.ubuntu.com/10825232/
05:20 est31 very interesting, in the first log: http://pastebin.ubuntu.com/10825161/
05:20 est31 "Linking CXX static library libjsoncpp.a"
05:20 est31 /usr/bin/ar: CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o: plugin needed to handle lto object
05:20 est31 /usr/bin/ranlib: jsoncpp.cpp.o: plugin needed to handle lto object
05:20 * cheapie wonders if his old set of cflags and stuff are still in there
05:21 cib0 joined #minetest-dev
05:21 cheapie Yep, -flto is still in my cflags, cxxflags, and ldflags.
05:22 * cheapie tries without it
05:23 cheapie That appears to have succeeded, even with a "stock" copy of all of the files.
05:24 est31 nice
05:24 cheapie So I guess that was the problem, then....
05:24 est31 yes
05:24 est31 but still thanks
05:24 est31 --> somehow the detection doesnt work for debian based distros
05:30 est31 now it works
05:30 est31 highly weird
05:31 est31 whatever
05:33 est31 about password changing in the new protocol
05:34 est31 it isn't so simple anymore, just sending the old password doesn't work
05:34 est31 shouldn't be done I mean
05:34 est31 so either we drop the requirement to pass the old password to the server
05:34 est31 or we introduce additional complexity
05:36 hmmmm send the new verifier along with the old password's proof
05:37 est31 how do you mean that? I'm talking about the password change which is done while the game is running.
05:37 est31 not at login
05:37 hmmmm you could initialize another pseudo-login
05:38 hmmmm but then there's the issue of asking a player to re-enter their password in game
05:38 hmmmm I don't think that's too much of a deal though
05:39 est31 It is accessed via mainmenu
05:39 est31 so yes ppl can confuse it
05:39 hmmmm btw are we using the keys generated during SRP logon as the session crypto keys?
05:39 est31 but you can distinguish
05:39 est31 we dont have any crypto
05:39 hmmmm I know but i mean do you plan on it
05:40 est31 I'd suggest using them yes
05:40 est31 idk whether I'll do that change though
05:40 hmmmm yeah not yet
05:41 hmmmm anyway even though changing the password would change the asymmetric keys, it shouldn't change the symmetric key
05:41 hmmmm so there's no need to switch over in theory
05:41 est31 yes, thats to be figured out then
05:43 est31 we only require password re-entry because one could give the session to another person to play, and one doesnt want to enable them to change the password, right?
05:44 Hunterz joined #minetest-dev
05:48 est31 perhaps the pseudo login sounds good
05:49 est31 It is possible
05:49 est31 but there is no real requirement to do it now
05:49 est31 because its later protocol
05:49 est31 not affecting init packets.
06:11 paramat joined #minetest-dev
06:12 paramat will push #2626 when checks are done
06:12 ShadowBot https://github.com/minetest/minetest/issues/2626 -- Mgv5/mgv6: Add missing data types to recently added constants by paramat
06:12 hmmmm wait why
06:13 hmmmm does it give some kind of warning otherwise?
06:14 hmmmm if you're looking for a type-safe constant, you could either use the very idiomatic-C++ "static const type FOO_BAR = 5.f;" or the C-idiomatic "#define FOO_BAR ((type)5.f)"
06:24 paramat i don't get warnings, it seems good practice though, otherwise how is the data type defined for a constant '#define'd in a header..
06:25 hmmmm you shouldn't use casts unless you need to
06:25 hmmmm if you want a type-safe macro, however, you should include the cast in the macro definition
06:26 paramat the constants are used in arithmetic so it seemed to me they should have a data type matching other terms in the arithmetic?
06:27 hmmmm types within an expression of varying types get upcasted if necessary
06:28 paramat okay. i saw c55's code '(float)AVERAGE_MUD_AMOUNT' and learnt from that. okay so i won't push this
06:29 hmmmm it may or may not be necessary depending on the context
06:29 hmmmm it probably isn't
06:31 paramat the constants i want seen as floats are #defined with decimal points, so i guess that ensures they remain floats
06:37 Krock joined #minetest-dev
06:38 MinetestForFun joined #minetest-dev
06:38 paramat okay cool, less work for me, closing PR
06:40 hmmmm well actually number literals with decimal points not prefixed with f are doubles, not floats
06:40 hmmmm 5.0 is a double, 5.0f or 5.f are floats
06:40 hmmmm 5 is an int, 5u is an unsigned int
06:40 Krock (u32)5 is hacked unsigned int
06:41 hmmmm or a u32... if the system integer is larger than 32 bits, that would cause silent value truncation
06:42 paramat i see
06:45 Krock hmmmm, would you agree with pull 2618?
06:47 hmmmm #2618
06:47 ShadowBot https://github.com/minetest/minetest/issues/2618 -- 20s timeout when connecting to server by SmallJoker
06:47 hmmmm yea
06:48 Krock paramat, would you agree for that one too?
06:49 * paramat looks
06:52 paramat well erm .. is there a need for this? the arguments against it have simplicity on their side =)
06:53 Krock my best argument is the "fix" in Game::limitFps.
06:54 paramat ah, the bit i don't understand
06:54 Krock Well, if it's new initialized, it would cause a huge busy_time
06:56 Krock without that fix, it would require useless codes for the timeout part
06:57 paramat if the timeout itself does some good in that way then the PR seems okay to me, i don't feel qualified to judge, i'll trust what hmmmmm says =)
06:58 paramat left #minetest-dev
06:59 Krock uhm. okay.
06:59 hmmmm i already looked at it
06:59 hmmmm it's fine
07:00 hmmmm it's a useful feature, it does what it's supposed to, it's simple, elegant, what more could you want?
07:01 Krock You said something about the threading a while back but I doupt it's a theme for that specified commit
07:02 err404 joined #minetest-dev
07:12 est31 so, the protocol will look like this: http://pastebin.com/tjVriPP4
07:13 est31 (SudoMode name comes from github sudomode)
07:13 kilbith joined #minetest-dev
07:21 chchjesus joined #minetest-dev
07:22 MinetestForFun joined #minetest-dev
08:04 Yepoleb joined #minetest-dev
08:06 est31 joined #minetest-dev
08:09 cib0 joined #minetest-dev
08:24 selat joined #minetest-dev
08:25 cib0 joined #minetest-dev
08:41 jin_xi joined #minetest-dev
08:48 MinetestForFun joined #minetest-dev
09:10 OldCoder Hello. Can player names be changed on the fly in Lua?
09:25 MinetestForFun joined #minetest-dev
09:42 MinetestForFun joined #minetest-dev
09:53 crazyR OldCoder. you could modify the auth_handler to do it. i used a similar method for being able to delete accounts on the fly
09:54 crazyR il the only issue is the user in question would have to be kicked if he/she was online when you changed there name
09:55 crazyR il work on something quicklu for you now. and send you a link
10:06 kilbith joined #minetest-dev
10:06 OldCoder crazyR, Thank you
10:06 OldCoder If they are kicked when they go AFK it defeats the purpose but this feature is still potentially useful
10:16 OldCoder crazyR, no rush; but if you work up something you'd like tested, email me and it goes into my worlds
10:17 OldCoder It's 3:17am here so I may not be awake much longer
10:17 OldCoder oldcoder@yahoo.com and oldcoder@mail.com
10:23 crazyR no worries OldCoder it will be on a git repo anyway, so il send you a link when its ready.
10:24 crazyR how does minetest.update_player_name(oldname,newname) sounds for the function? and chatcommand : /changeplayername <oldname> <newname>
10:29 Krock why not player:set_player_name() ?
10:30 crazyR becaause its part of the auth handler. not built in. meaning from the auth hander i dont think i can add a function to the player object.
10:30 crazyR not as a mod anyway
10:31 OldCoder Reviewing
10:31 Krock crazyR, let him sleep :P
10:31 OldCoder No, it's fine
10:31 OldCoder Sounds good; the kick is automatic?
10:31 crazyR yes
10:31 OldCoder Very well
10:31 OldCoder I'll be pleased to test
10:32 OldCoder Same offer is made to others who need testing
11:27 leat joined #minetest-dev
11:30 MinetestForFun joined #minetest-dev
11:39 proller joined #minetest-dev
11:44 MinetestForFun joined #minetest-dev
12:06 MinetestForFun joined #minetest-dev
12:17 cib0 joined #minetest-dev
12:24 MinetestForFun joined #minetest-dev
12:40 Player_2 joined #minetest-dev
13:35 MinetestForFun joined #minetest-dev
13:53 MinetestForFun joined #minetest-dev
13:57 MinetestForFun joined #minetest-dev
14:24 hmmmm joined #minetest-dev
14:24 luizrpgluiz joined #minetest-dev
14:28 ElectronLibre joined #minetest-dev
14:40 luizrpgluiz I can promote my Portuguese in server minetest of servers in a forum?
14:43 luizrpgluiz because I was with this question and I may have thought that if I put in Portuguese can have my post removed
14:43 Hunterz joined #minetest-dev
14:43 kilbith luizrpgluiz -> #minetest
14:43 kilbith for Nth time...
14:44 luizrpgluiz left #minetest-dev
14:48 cheapie joined #minetest-dev
15:14 blaze joined #minetest-dev
15:25 Calinou joined #minetest-dev
15:43 celeron55 https://github.com/minetest/forum.minetest.net_template1/issues/5
15:43 celeron55 a minor discussion started about forum spam in here
15:46 Calinou I guess using less popular forum systems make you less spammable
15:47 Calinou but we're not going to switch again :p
15:57 kilbith joined #minetest-dev
16:04 kilbith not necessarily a captcha though, maybe answering to a simple question
16:06 kilbith so that we can sort the idiots instead of the myopics
16:14 Krock questions like "one plus two" might be helpful
16:14 jin_xi joined #minetest-dev
16:16 Krock ShadowNinja, would you agree with #2618?
16:16 ShadowBot https://github.com/minetest/minetest/issues/2618 -- 20s timeout when connecting to server by SmallJoker
16:25 celeron55 it's possible to set up a question with phpbb's configuration options, but that's probably even easier for spammers
16:26 celeron55 a custom captcha or a custom javascript checkbox could work much better
16:27 celeron55 then they couldn't use their pre-made phpbb spambots
16:27 kilbith or a Minetest-themed question(s) that the algorythms could deal
16:27 Hunterz joined #minetest-dev
16:27 celeron55 that's hard because most forum users are idiots
16:27 kilbith *couln't, sorry
16:27 kilbith *couldn't
16:28 celeron55 and so far we have wanted the idiots too
16:28 sfan5 what about the people that have javascript disabled?
16:28 celeron55 they can whitelist it for the single time they register on the forum
16:28 celeron55 not a big deal
16:29 celeron55 well i mean, on punbb we previously had questions
16:30 celeron55 but then xyz installed an automatic thing that didn't ask anything from the users but still avoided spambots
16:30 celeron55 and then came phpbb and we have too much spam again
16:31 celeron55 that's the history
16:31 Krock More spam -> more moderators -> less spam -> less moderators -> more spam
16:31 Krock ^ definitely _not_ hlpful
16:33 cib0 joined #minetest-dev
16:34 kilbith or that : https://lut.im/n7P4ja6z/Tp3n4aM1
16:34 kilbith you must enter 3 letters preceding your email in the confirmation field
16:36 Robert_Zenz joined #minetest-dev
16:50 MinetestForFun joined #minetest-dev
16:58 SopaXorzTaker joined #minetest-dev
16:58 MinetestForFun_ joined #minetest-dev
17:05 Hijiri joined #minetest-dev
17:07 AnotherBrick joined #minetest-dev
17:11 werwerwer joined #minetest-dev
17:22 Krock2 joined #minetest-dev
17:27 Hunterz1 joined #minetest-dev
17:35 proller joined #minetest-dev
17:57 Hijiri joined #minetest-dev
18:08 blaze joined #minetest-dev
18:10 err404 joined #minetest-dev
18:36 leat joined #minetest-dev
18:39 err404 joined #minetest-dev
19:12 proller joined #minetest-dev
19:15 Robert_Zenz joined #minetest-dev
19:19 ShadowNinja #2628
19:19 ShadowBot https://github.com/minetest/minetest/issues/2628 -- Clean up logging by ShadowNinja
20:13 Krock ShadowNinja, Would you agree with pull #2618 ?
20:13 ShadowBot https://github.com/minetest/minetest/issues/2618 -- 20s timeout when connecting to server by SmallJoker
20:16 ShadowNinja Krock: I'd prefer if you used an IntervalLimiter (see util/numeric.h).
20:16 ShadowNinja And I think the extra conditional you added can just be " || time" on the existing line.
20:17 ShadowNinja I'd also word it "Connection timed out.", and wrap it in a gettext call.
20:18 ShadowNinja Krock: Well, actually an IntervalLimiter isn't really appropriate, leave that as is.
20:22 Krock okay
20:25 Krock ShadowNinja, what exactly do you mean with "can just be " || time" on the existing line."
20:26 Krock Did you mean the line when "u32 last_time" is defined? I didn't know that's an allowed operation
20:26 ShadowNinja Krock: u32 last_time = fps_timings->last_time || time;  Will only work if C++'s or operator returns the first truthy value though, which I'm not sure of.
20:27 Krock Are there significant performance differences between those two ways?
20:29 Krock however, looking tomorrow at it.
20:31 ElectronLibre left #minetest-dev
20:39 Hijiri joined #minetest-dev
20:49 proller joined #minetest-dev
20:53 chchjesus joined #minetest-dev
21:03 chchjesus joined #minetest-dev
21:45 shadowzone joined #minetest-dev
21:57 chchjesus joined #minetest-dev
22:34 wilkgr joined #minetest-dev
22:35 wilkgr joined #minetest-dev
22:35 wilkgr Hello!
22:35 wilkgr I had an idea for a new command and would like help implementing
22:35 wilkgr it
22:36 wilkgr The command is for multiplayer and change the players name to their name but with "(AFK)" behind it
22:36 wilkgr So mine would be wilkgr (AFK)
22:36 wilkgr Maybe use /afk to toggle on and off
22:37 wilkgr What do you think and how would this be implemented
22:39 hmmmm that sounds like it'd be a good mod
22:39 wilkgr Thanks
22:39 wilkgr OldCoder sent me to this channel
22:41 hmmmm the issue is that there's no obvious way to write a mod which does this
22:41 wilkgr On servers with PvP, it might disable damage as well as movement and that kind of thing
22:41 hmmmm at least, until hud drawing is handled by lua
22:41 wilkgr Maybe integrate it into Minetest
22:41 OldCoder Hi
22:41 wilkgr Or LuaController
22:41 wilkgr Oh hello OldCoder
22:41 OldCoder wilkgr, they are pretty busy here
22:42 wilkgr I'm patient
22:42 OldCoder The idea was for you to ask a few questions, listen, and learn
22:42 OldCoder More general discussion happens in #minetest
22:42 wilkgr I did ask a couple of questions
22:42 OldCoder Sounds good, enjoy
22:42 hmmmm it would be a good idea for you to make an issue as a feature request on the github issue tracker
22:42 hmmmm the problem with IRC is that it's very temporal; discussion about neat ideas like this would easily get lost
22:43 OldCoder wilkgr, we actually have the feature as of last night
22:43 OldCoder But the catch is that it kicks the player it is applied to
22:43 OldCoder Which defeats the purpose
22:44 wilkgr I'll try it
22:44 wilkgr But ok
22:44 OldCoder Somebody has suggested a different approach, which is to modify the health indicator
22:44 OldCoder If you wish the code, ask me later; I think it was emailed to me
22:44 hmmmm instead of changing the player name, what you're actually doing is appending a status tag to places where the player name is displayed
22:44 wilkgr -!- invalid command: afk
22:44 OldCoder wilkgr, it is not added to anything yet :-)
22:44 wilkgr I think I'd like the code
22:45 OldCoder Let me look for it...
22:45 wilkgr If you want to eamil it, I can send you my email
22:45 hmmmm there's a proper way to do this and a hacky way to do this
22:45 hmmmm what OldCoder is talking about is a hackjob
22:45 hmmmm the proper way doesn't exist and needs engine support
22:45 wilkgr I don't mind
22:45 OldCoder wilkgr, crazyR was working on that but has not sent it yet
22:46 OldCoder Patience is recommended; you can learn to work on both the server code and at the Lua level
22:46 wilkgr Sure
22:46 OldCoder You've done some phone hacking
22:46 OldCoder Do you know any scripting language similar to Lua? Or C or C++?
22:46 wilkgr Python, PHP?
22:47 OldCoder Good start for Lua
22:47 wilkgr Arduino is based on C or C++, not sure which
22:47 OldCoder Recommended you write simple mods, which you can test at home
22:47 wilkgr I do a bit of arduino
22:47 OldCoder This discussion should probably shift to #minetest
22:47 wilkgr Sure
22:47 crazyR Hey oldcoder. i have nearly completed it minus a couple of bugs. but then had to sort something out, im just about to go get some sleep il finish it off first thing tomorrow :)
22:48 OldCoder No rush!
22:48 OldCoder Take weeks
22:48 OldCoder Life is full of parallel threads
22:48 wilkgr So is a processors life
22:48 hmmmm this is not core development and belongs in #minetest
22:48 OldCoder Notified him above
22:48 hmmmm all of you
22:49 OldCoder hmmmm, thank you for speaking with him initially
22:50 OldCoder hmmmm, as a closing note, discussions of how certain types of mods would be done is core development. Questions related to APIs can be explored.
22:52 wilkgr Thanks a lot, though!
22:53 wilkgr left #minetest-dev
23:15 est31 joined #minetest-dev
23:18 Gethiox joined #minetest-dev
23:34 VargaD joined #minetest-dev
23:34 celeron55_ joined #minetest-dev
23:39 cheapie_ joined #minetest-dev
23:39 hmmmm joined #minetest-dev
23:39 Fritigern joined #minetest-dev
23:47 est31 hmmmm, do you know how to free a stack variable?
23:48 est31 https://github.com/est31/minetest/commit/e298bb88f528904dc542cc62be92d52188333daf#commitcomment-10745522
23:48 est31 he is right, there is an according malloc in srp_create_salted_verification_key
23:49 est31 (and the salt probably needs to be freed too)
23:50 est31 if you have an idea, write it here or on github
23:50 * est31 is off
23:50 est31 (again)
23:58 chchjesus joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext