Time Nick Message 10:57 MTDiscord Command sent from Discord by nein: 10:57 MTDiscord !tell hare_hare_yukai if it's better for readability and you don't want to support later monkey-patching of the function, do it. Never do it for optimization purposes unless you have profiled it and found it to be a problem - in the vast majority of cases it isn't one. 10:57 MinetestBot MTDiscord: yeah, sure, whatever 12:40 erle it's been a long time, but i finally got around to fixing seed-dupe: https://content.minetest.net/packages/erlehmann/mcl_quick_harvest_replant/ 14:13 MinetestBot hare_hare_yukai: Sep-10 10:57 UTC if it's better for readability and you don't want to support later monkey-patching of the function, do it. Never do it for optimization purposes unless you have profiled it and found it to be a problem - in the vast majority of cases it isn't one. 15:44 erle rubenwardy i think i have a better thumbnail now! :) https://content.minetest.net/thumbnails/2/ad476571eb.png 16:28 [MTMatrix] I find bug (?), mapgen_limit = 1000, but 926 in world 👀 16:34 erle localhost, that's not a bug 16:34 erle localhost the visible map is *always* surrounded by a shell of mapblocks that are *usually* invisible on the client 16:35 erle localhost main the purpose of this is so that mods that handle unloaded areas handle the map border with no additional effort. it is simply an area that the client never loads. 16:37 erle localhost if you question this setup, imagine what would happen without it when, say, a tree is spawned right at the edge of a map without a protective shell 16:37 erle or what *could* happen 16:37 erle it happens again and again that people, even coredevs, do not understand this setup. but it seems to have been carefully engineered to prevent all kinds of bullshit crashes and other shenanigans at the map border. 16:39 erle the only jarring visible artifact of it is that non-source water at the map border never runs out. but ”fixing” that would gain you almost nothing and likely result in something much worse when the visible border is ocean. 16:39 erle if you think there should be no protective shell around the map, i have a bunch of crashes to sell to you :P 16:59 celeron55 i don't think using a lower mapgen_limit requires any extra "shell". it's probably just that the mapgen chunk would have crossed the 1000 boundary and the engine decided for that reason to not generate it 17:00 celeron55 but erle is correct in why the map is not generated all the way to 32768 if you try to configure it so 17:00 erle well that's another hardcoded limit based on something else though 17:00 celeron55 (in short, that's because it would cause all kinds of bugs that people don't want to make their code aware of 17:00 celeron55 ) 17:01 erle i think the explanation with the boundary is correct. i was just pointing out that for mental accounting purposes, you need to keep the invisible shell in mind. 17:01 erle because even if mapgen does not run there, stuff can end up there (e.g. via placing schematics on the boundary) 17:02 erle also it is pretty trivial to interact with that part even on a non-hacked client and players have fun with it 17:02 celeron55 there is also that, but neither of these things is the full story. it all applies 17:03 erle indeed 17:03 erle i once went to a border to use a boat to get myself out of bounds 17:03 erle and found a boat, out of bounds, haha 17:03 erle 2 idiots 1 idea 17:04 celeron55 there probably doesn't exist a single 3d game where something silly wouldn't happen when you play with world boundaries 17:04 erle also the clamity server used to have a slightly-out-of-bounds rail line i built, that unfortunately was never in any map download (but worked, the rails were just invisible on the client) 17:04 [MTMatrix] I can get formula for `x * 16 mapblock = ? mapgen_limit`? 17:04 [MTMatrix] I can get formula for `x * 16 block = ? mapgen_limit`? 17:04 [MTMatrix] I can get formula for `x * 16 node = ? mapgen_limit`? 17:05 erle you don't have to write that 3 times 17:05 erle this is a bit difficult, but basically, like celeron55 says, the first mapblock that goes over the boundary will not be generated 17:06 [MTMatrix] 0,5 mapblock impossible, right? 17:06 erle i think you can set the limit to 1006 and will have a clear boundary 17:06 erle on one side of the map 17:06 celeron55 the mapgen generates mapgen chunks. they are sized by the "chunksize" setting which defaults to 5 (don't change it unless you want problems). the chunks is sized as chunksize * chunksize * chunksize mapblocks, plus if i recall correctly there's an additional mapblock-wide shell around it that is handled specially 17:07 celeron55 and the entire thing is offset so that 0,0,0 is somewhere around the middle of the 0,0,0 mapgen chunk 17:07 erle 5 × 16 = 80 obv, so 926 + 80 = 1006 17:07 celeron55 or was it 17:07 erle i doubt that is entirely true 17:07 celeron55 maybe it's not anymore 17:07 erle not sure 17:07 erle i mean it is offset 17:07 [MTMatrix] Thanks!!! 17:07 erle there probably should be a separate mapgen limit for each +/- and each axis 17:07 erle so 6 overall 17:07 erle to have “clean boundaries” on beautiful coordinates 17:07 erle but that's an aesthetic problem from my POV 17:08 erle as if someone cares if the map ends at 1000 or 1006 17:08 celeron55 anyway yes, the mapgen will progess in steps of 80 nodes 17:08 celeron55 (chunksize*16) 17:09 celeron55 if you set maogen_limit to 1006, you might get it to generate that, or maybe it has to be 1006+16=1022. but that's only to the plus direction, you'll get a different boundary to the negative direction 17:09 celeron55 this could use some polish but it's not been a priority 17:09 erle to elaborate on the “don't change it unless you want problems“: lots of stuff works with that 80 limit. for example, the mineshafts generated in mineclone2 at some point would start in the middle of an 80×80×80 cube and grow outwards or so, obv having smaller chunk size would crash it. 17:10 [MTMatrix] wait, but enginge countes this not from 0,0,0 pos? 17:10 erle celeron55 given the last THREE times or so i had to annoy people a lot regarding the map boundary, i'd prefer if no one would ever touch it unless they have a clear understanding on how i can detonate TNT out of bounds lol 17:10 erle celeron55 every time someone who does not know exactly why it works touches it, they seem to want to fuck it up or so 17:10 erle see the water thing 17:11 celeron55 yes the mapgen does not align any chunk edge to the origin. there's an offset 17:11 erle there's a nuance 17:11 erle hehe 17:11 celeron55 because i made it to have an offset 17:12 celeron55 because... well let's just say it just is how it happens to be 17:12 erle i think it's okay that way, except for the implicit assumptions devs (both mod and engine devs) have about mapgen limits. but obviously the humans are wrong here, the computer is correct! :P 17:13 celeron55 the offset for the central mapgen chunk is -chunksize/2, so for chunksize=5 it's 2 mapblocks negative 17:14 celeron55 -2*16 + 5*16*12 = 928 17:14 celeron55 still not 926. maybe it wasn't measured accurately 17:17 [MTMatrix] on border (rounded pos) 18:15 hare_hare_yukai nein: how do i profile? 18:15 hare_hare_yukai its mineclone2 18:17 MTDiscord https://content.minetest.net/packages/jwmhjwmh/jitprofiler/, there are detailed instructions there 18:59 hare_hare_yukai danks 19:08 MTDiscord you're willcome 19:34 [MTMatrix] How make param for tool on_use as hold LMB instead clicking? 19:34 hare_hare_yukai guys if i wanna be able to show the nametag of a player for specific players only with other players not being able to see the nametag, would this be doable in a mod or require changes in minetest code itself? 19:35 erle hare_hare_yukai i have an idea but you will prob not like it 19:35 hare_hare_yukai say it 19:36 erle hare_hare_yukai 1. render the nametag to a texture using unicode_text (or a lesser library that supports fewer corners of unicode) 2. send players different textures. 3. rinse and repeat. 19:36 erle step 2 is the fun part 19:37 erle if i am not mistaken (pls correct me if i am wrong), you can make the same texture name refer to different textures if you poison the clients just right 19:37 MTDiscord hare_hare_yukai: attach an entity to the player, and then do whatever you want 19:38 erle well, what else except the ”one name multiple textures” trick is possible here 19:38 erle can entities be selectively invisible? 19:38 hare_hare_yukai if i attach an entity to the player that entity is rendered the same for all players no? 19:38 erle this is why i suggest to send different dynamic media 19:38 MTDiscord you can cheat with dynamic media 19:38 erle send a blank texture to one player and one with the rendered text to another 19:38 MTDiscord erle: no need for unicode here, player names don't allow unicode 19:38 hare_hare_yukai yeah how do i do that? 19:38 erle luatic yeah but i am not aware of other libraries that can render text to a texture 19:39 erle and obviously i am shilling my own shit here 19:39 MTDiscord the standard texmod approach works 19:39 erle it won't work with texture modifiers if you want the letters to be invisible for one player but not another though? 19:39 MTDiscord you don't need to send different nametag textures, you just need to send different mask textures 19:39 erle explain pls 19:40 MTDiscord append something like ^[mask:.png to each player texmod, send different .png's to different players, possibly additionally add something like an id if you plan on changing visibility 19:40 MTDiscord to each player nametag texmod* 19:41 hare_hare_yukai btw localhost u can check out this implementation of a minecraft shield 19:41 hare_hare_yukai https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_shields 19:42 erle luatic i don't see how the mask thing would work really. what are you masking? 19:42 hare_hare_yukai luatic how do i send different pngs exactly? 19:42 hare_hare_yukai can i do this in a mod or would this require changes to the minetest server itself 19:43 MTDiscord erle: the player nametag texmod which consists out of a bunch of [combine'd letter textures 19:43 erle luatic do you have an implemented example? 19:44 erle for some reason i think my idea is easier (render to texture and send that texture) than a mask thing, but i fear i might not understand it. 19:44 MTDiscord hare_hare_yukai: look into dynamic media, you can send different PNGs to different clients in theory; problem here is that you'll get unfixable race conditions 19:44 MTDiscord erle: the thing is, the mask thing basically only requires you to send a single pixel + a texmod (granted the texmod may be somewhat thicc, but it's definitely bearable) 19:45 [MTMatrix] full_punch_interval works on "on_place"? 19:45 MTDiscord erle: i don't have an implemented example; as said, it's still sending different textures, but only sending different masks to eliminate the need for rendering text to texture in a mod 19:47 erle luatic i think i kinda get it, but every ”solution” i can envision to this problem is a horrible hack 19:48 MTDiscord erle: yes. 19:48 MTDiscord wait 19:48 erle luatic to amuse you, ancientmariner censored the word ”dragonfire” from my posts on mesehub and now my avaatar is this picture https://git.minetest.land/avatars/a451c27d9088cf8d823e18b46b6e3ae4ac70c2af2203f07c0e8cfae86dbbf563?size=80 19:48 MTDiscord i think i might have a neat hack 19:49 MTDiscord this is actually a really good hack idea 19:49 MTDiscord hack in the nondragonfire sense 19:50 [MTMatrix] i removed it, and i clearly stated why. we know what it's called, and i don't see why we should promote something that kills the experience for many players 19:50 MTDiscord send every player a texmod that is transparent for them, and plain white for everyone else so to exclude a player from viewing a texture, just use ^[mask:playername.png to exclude any player in a group from viewing a texmod, do ^[mask:a.png^[mask:b.png etc. 19:50 ROllerozxa erle: nice 19:51 [MTMatrix] i was enjoying having you on the issue tracker, and hope it's in good faith, did it only last a day? 19:52 hare_hare_yukai okay let me add to my requirements for the thing i was talking about just now: i need to hide and rehide the nametag on demand 19:52 [MTMatrix] many players don't like protection mods, but they're essential because of a cheat client that means you cannot play with a standard vanilla client. it kills anarchy for anyone playing vanilla. it's rubbish 19:52 hare_hare_yukai possible? 19:53 erle protection mods are NOT because of cheat clients 19:54 erle protection mods exist because some humans are vile creatures that lie, cheat & steal 19:54 erle btw, i have played anarchy with a vanilla client 19:54 ROllerozxa utility clients are cool and valid, just use them responsibly 19:54 erle it's a challenge, because you are basically up against gods 19:54 erle but it can work 19:54 [MTMatrix] basically with cheat clients people can search for chests and furnace and find any base 19:54 erle i was told i should ”stop killing server admins” haha 19:54 [MTMatrix] you cannot hide bases anymore 19:55 [MTMatrix] so you need to protect them 19:55 [MTMatrix] it's why they're compulsory 19:55 MTDiscord hare_hare_yukai: that's possible with both our approaches; with erle's approach it requires giving textures IDs and sending new textures, with my second approach it just requires changing object properties 19:55 [MTMatrix] i see cora copied your avatar now. you forgiven her for taking your game name? 19:55 MTDiscord oh also another option (i'm trying really hard to make erle's blood boil here) is to use the [png texture modifier 19:55 erle technicalyl, rfynf invented that name and no, i never forgive. but i am morally aligned with her ig? 19:55 erle :P 19:56 erle ancientmariner could it ever occur to you that people find bases because your game – mineclone2 – blasts the coordinates to everyone having a network socket? 19:56 erle (a little time with wireshark may confirm that) 19:56 [MTMatrix] my game? the codebase is as much yours, cora's, flecks, and wuzzy's 19:56 [MTMatrix] you didn't fix that one yet? 19:57 erle i think it's a bit recent 19:57 [MTMatrix] you don't need to use wireshark though because cheat client you can just select the block and find it 19:57 erle just look at the network traffic 19:57 erle no, i think you misunderstand me 19:57 [MTMatrix] why go through network analysis when a gui makes it easy for all? 19:57 erle some network packets advertise coordinates of player activity to everyone 19:58 [MTMatrix] is there a mt issue for this? 19:58 erle if you are sending them, it's not exactly the fault of a cheat client that ppl find bases 19:58 erle that's not an mt thing 19:58 erle the game is doing it 19:58 erle luatic how would you send different textures to players using [png? 19:59 [MTMatrix] the thing is, only a few people with your level of knowledge will know how 19:59 [MTMatrix] a cheat client will bring it to everyone 19:59 erle ancientmariner the fault, naturally, lies with the game or mod yelling HERE IS A BASE 19:59 [MTMatrix] script kiddies and all 19:59 erle people ALREADY know it 19:59 MTDiscord erle: my brain farted, that would require involving a server which can send different object property messages to different players 19:59 erle they have known for years 19:59 erle luatic my blood stays unboiled then :D 19:59 [MTMatrix] the great thing about exploits, is usually the people that can do the tricky stuff aren't interested griefing. it's the ones without the capabilities to do that, that do 19:59 [MTMatrix] a cheat client cant use transparent textures, causes black texture 👀 20:00 erle there is a reason why the past exploits got fixed: the reason is cheat client authors fixed them 20:00 erle as soon as the script kiddies get to it, the hole has to be stuffed 20:00 [MTMatrix] the cheat client authors haven't yet 20:00 [MTMatrix] and they were maintainers for months or years before i got involved 20:01 [MTMatrix] so the assertion doesn't hold up 20:01 [MTMatrix] it's just wishful thinking 20:01 [MTMatrix] I was think minetest more secure than MiNeCrAft 20:01 erle anyway, the engine is not at fault here (not much though) 20:01 erle through simple network analysis you can find it without a cheat client 20:01 MTDiscord localhost: no idea why you were thinking that 20:01 MTDiscord you'd have to first define "secure" 20:02 erle in fact, if you *would* use a cheat client, it would help you to avoid these things 20:02 MTDiscord Minecraft probably is much more complex, but it also uses Java, thus eliminating entire classes of vulnerabilities 20:02 [MTMatrix] not many people have the capability for network analysis. i've been a dev for over a decade and i don't know how 20:02 erle the ”find an oven” thing is totally uninteresting 20:02 erle LOL 20:03 [MTMatrix] why use a cheat client? i don't tend to download software with questionable intent on my system 20:03 [MTMatrix] i don't have time to audit that code 20:03 erle your analysis is missing “i am the most experienced dev in the world” for the syllogism to hold 20:03 MTDiscord Auditing the diffs should be doable 20:03 hare_hare_yukai network analysis: open wireshark and capture all traffic with 2 clicks 20:03 MTDiscord esp. if you cherry-pick a few cheats so that you can patch the underlying issues that enable them 20:03 [MTMatrix] i didn't say i was. i'm pretty competent and don't know. it would take people with pretty solid technical skills 20:04 [MTMatrix] you're clearly more technical than me, and i have no bones saying that 20:04 MTDiscord network capture with wireshark is easy, but for Minetest you'll need to get the dissector to work (I also heard erle has some useful script?) 20:04 erle the dissector worked last time 20:04 erle and i already linked the script 20:05 [MTMatrix] i saw ehrl's script. it aggregates packet totals, right? 20:05 erle yes, it is not for finding bases obv 20:05 MTDiscord it was for finding network perf issues IIRC? 20:05 [MTMatrix] i opened up wireshark, and had a look. couldn't make head or tail of it ;) 20:05 erle in any case, i think it is poor form to blame the evil hackers if your software announces stuff to the world and they just listen 20:05 [MTMatrix] network isn't my strong point 20:05 MTDiscord btw, if you don't want to fiddle with inspecting networking, you could also just insert some debug statements in networking code (C++) and recompile, but that would probably be more work 20:05 erle yes that also works 20:06 erle and in any case, minetest games should not trust the client 20:06 [MTMatrix] only you and a handful of others know it announces and have the capability to find that out 20:06 erle there is this stonecutter PR where cora (of all people) warned that it had an arbitrary item exploit 20:06 [MTMatrix] i don't agree with promoting a cheat client 20:06 [MTMatrix] i didn't realise you were this sensitive 20:07 [MTMatrix] i told you openly why. didn't think you'd tantrum 20:07 erle i can asure you that every single person in this chatroom, including you can create a 10 line patch to make a rudimentary cheat client 20:08 erle which they probably use as a DEBUG client 20:08 erle and not to cheat in online multiplayer games 20:08 [MTMatrix] erle, i have been quite open that i am burnt out and have been taking my foot of the gas with mcl2, do you think i have time to iron proof it against a cheat client? 20:08 erle no, i don't think so. maintainer burnout is a constant at mcl2 btw 20:08 erle (and the forks) 20:08 [MTMatrix] i find it is generally good practice to tell people how they spend their time 20:08 [MTMatrix] i find it is generally not good practice to tell people how they spend their time 20:09 MTDiscord lol 20:09 erle i am confused 20:09 MTDiscord erle: ancientmariner forgot a not so he edited his message 20:09 [MTMatrix] the easiest option was to remove the advertising. it was probably all i had the energy to do 20:09 MTDiscord tldr: put up or shut up 20:09 erle oh so then i see 2 messages 20:09 [MTMatrix] yes, i'm dyslexic. i missed not. i constantly edit 20:09 [MTMatrix] feel free to mock 20:09 [MTMatrix] i'm very flawed 20:10 MTDiscord who isnt? 20:10 erle it's not a problem with you, it's a problem with the bridge sending the message again 20:10 MTDiscord wsor: your mother 20:10 erle i did not understand that at first 20:10 MTDiscord (first wholesome joe mama joke in the history of mankind?) 20:10 erle so when you edit, i see two very similar messages 20:10 MTDiscord perks of using a old af protocool 🤷 20:10 erle hehe 20:11 erle multiplayer notepad with append-only 20:11 erle ancientmariner it would be probably a good idea to stop worrying about cheat clients so much. they are not your enemy. in fact, the most obnoxious asshole griefers can't even use them right. 20:11 erle most griefers are simple creatures, script-kiddies if you want 20:11 [MTMatrix] i don't worry. i just don't see why our issue tracker should promote them 20:12 erle they are defeated by the fact that the cheat clients send a special chat message at start that a player is using one 20:12 [MTMatrix] why are you so invested in advertising them? 20:12 erle and servers can detect that and kick the person 20:12 erle i think the asshole noobs never remove it 20:12 [MTMatrix] lol, kicking and banning in mt is very flawed 20:12 erle that would require actual skill 20:12 [MTMatrix] ban circumvention is pretty high 20:13 erle in any case, your anger is misdirected 20:13 erle you should be angry at the people who try to get exploits into your project 20:13 [MTMatrix] i'm not angry... 20:13 erle well, your dissatisfaction 20:13 erle whatever it is 20:13 [MTMatrix] i'm pretty chill. just spend way too much entertaining you when you take satisfaction from trolling 20:13 erle SOME people are submitting patches that introduce holes. e.g. in bedrock, lol. 20:13 [MTMatrix] i'm autistic, sometimes i get triggered and respond when i shouldn't 20:13 erle and it is not me 20:13 MTDiscord ancientmariner must have a secret switch that turns off his emotions given how calm he is lol 20:14 erle i'm pretty chili 20:14 [MTMatrix] trolling works quite effectively on me, feel free to carry on 20:14 erle btw, i hate the base finding exploits too 20:15 erle dupes are fun 20:15 erle but base finding exploits means some clowns fill your playground with lava 20:15 [MTMatrix] one of the reason i actually left the discord for mt, i found it gave me waaay too much negative energy 20:15 erle is “try to ignore the cheat clients and focus on the network packets” negative? 20:15 [MTMatrix] i think i'll zone out of this one too. i've not gained much from it 20:15 erle really, no cheat client can do anything if mcl2 is not blasting coordinates like it's on 110% volume 20:15 [MTMatrix] what part of "i don't have time and energy" do you not comprehend? 20:16 erle the part where you don't have an underling you can assign that too 20:16 MTDiscord :facebook: 20:16 erle i am pretty sure there is someone who can help you there? 20:16 erle i know how not having energy for a project feels 20:17 erle so i know that delegating can work 20:17 [MTMatrix] they haven't stepped forward yet. i'm not in the habit of telling people to volunteer their time in x and y manner 20:17 [MTMatrix] you project ended with you. ultimately there are very few you can really count on 20:17 [MTMatrix] your project ended with you. ultimately there are very few you can really count on 20:18 erle well that's because we were 2½ ppl or so 20:18 erle that's technically already too little to do full code reviews 20:18 erle you need 3 or 4 20:18 erle otherwise there is a stall every time someone is sick 20:18 [MTMatrix] yeah, we don't really have that luxury 20:18 [MTMatrix] got 2 people other than me that review code, and nowhere near enough 20:19 [MTMatrix] it's easy to talk about doing x, y and z. it's much harder to do it 20:20 erle well, i am definitely not volunteering for code reviews rn. i am only interested in signs and maps for the time being. 20:21 erle are @AFCMS and @chmodsayshello still on the project? weren't they proposed as co-maintainers or so? 20:22 erle i mean they both seemed competent and willing 20:22 [MTMatrix] afcms disappeared for months and returned recently. chmodsayshello reviews and is helpful 20:22 erle but i have been away for a long time 20:22 erle and kabou? 20:22 [MTMatrix] lol, kabou is a net negative 20:23 erle i don't necessarily disagree lol 20:23 [MTMatrix] for every solid contribution, tends to start or continue 10 fights 20:23 erle but kabou seemed eager and sometimes helpful 20:23 erle oh yeah 20:23 erle lol 20:23 [MTMatrix] if kabou was involved, he'd probably be the only one. argue everyone out of the room 20:23 [MTMatrix] shame. technically a smart person 20:23 erle i think maybe you can ask chmodsayshello if they want to check out the network thing then? 20:23 [MTMatrix] but ability to work together is key in larger projects 20:24 [MTMatrix] could you? i'd be a middle man and have zero knowledge or context 20:24 erle i remember saying something vague-ly ukraine-related when the war started and kabou spammed me with “azov are nazis” hehe 20:24 erle point me to an issue and i write a comment 20:24 [MTMatrix] yeah, but in the fact: minecraft can contain more vulns such as execute client code on remote server 👀 20:24 erle i am unashamed enough to ask strangers for favors 20:25 MTDiscord localhost: Gefährliches Halbwissen 20:25 erle localhost, in fact, minetest can too. 20:25 [MTMatrix] news about vulns... not nice 20:25 [MTMatrix] i don't think it was azov that flattened mariuopol (sp?) 20:26 MTDiscord azov were the ones that defended mariupol i think? 20:26 [MTMatrix] eh... like buffer overflow? 20:27 [MTMatrix] yup. dicks fighting against bigger dicks. atrocities should never be justifiable 20:27 [MTMatrix] yup. dicks fighting against bigger dicks. atrocities should never be justified 20:28 erle sorry, i have to inform myself about possible gender crimes 20:28 erle so i can fem myself a bit 20:28 erle i'm out for now 20:37 hare_hare_yukai happy 9/11 guys 23:57 hare_hare_yukai if i do player:punch in a register_on_punchplayer would it cause an infinite loop?