Time Nick Message 02:30 Zeno` label removed 07:26 nrzkt hi all 07:49 OldCoder nrzkt, hi back 09:56 Zeno` merging #5115 shortly 09:56 ShadowBot https://github.com/minetest/minetest/issues/5115 -- Plantlike: Fix visual_scale being applied squared by paramat 09:56 Zeno` it might cause minor problems, but as sofar said we're early in the release cycle 09:59 * Krock waits for it to upload his newest binary 10:00 Zeno` Krock, I'll give it 10 minutes wait 10:07 Zeno` Krock, ok 10:08 Krock may the linking begin! 13:26 red-001 !seen davisonio 13:26 ShadowBot red-001: I saw davisonio in #minetest-dev 19 weeks, 6 days, 22 hours, 32 minutes, and 13 seconds ago saying "Perhaps it can be solved by setting a maximum limit of 14 in the light source definition" 14:56 sapier I'm gonna rebase and merge #5085 in a view minutes so last chance for objections 14:56 ShadowBot https://github.com/minetest/minetest/issues/5085 -- Make entity on_punch same signature and behaviour as player on_punch by sapier 15:01 sapier https://github.com/minetest/minetest/pull/5045 nerzhul, sfan5 numberZero are there open issues? blocking this pull request? 15:01 sfan5 it's only missing approvals 15:02 nrzkt except the code style issue no problem for me 15:02 sapier which code style issue is left? 15:02 nrzkt sapier, we need you on 5100 15:03 nrzkt it should be fixed and merged in CSM branche asap 15:03 sapier Ahh I see :-) I'm gonna fix 15:05 sapier nrzkt what exactly on 5100? 15:06 nrzkt your points about security 15:08 sapier yes? did someone check or fix them? I don't see a answer there or a change? (maybe I'm blind I sometimes get confused by githubs style of updating) 15:08 OldCoder sapier, Hi. 15:08 sapier hello oldcoder 15:09 sapier nrzkt shall I really change L1670 in tile cpp? while I agree that's not coding style it's done this way everywhere in this file 15:09 nrzkt i don't know exactly what block this PR 15:09 nrzkt sapier, our coding rules indicate if you modify a line with wrong style, please fix the style 15:10 sapier me too 5100 is a improvement for sure and as long as csm ain't in master I see no reason for not merging improvements to that branch 15:10 sapier that's what the branch is for 15:10 nrzkt but do you see issue on security on this PR or is this sufficient ? 15:11 red-001 well as far as I can see mods only have access to other mods 15:11 sapier ok I'm gonna follow the coding style even I believe this is one of the cases where "follow to the text of the rules" is contrary to the intention of the rules ;-) 15:11 red-001 readonly access 15:11 red-001 but I haven't tested it 15:11 nrzkt red-001, can you rebase your two CSM PR we need to merge them asap 15:12 red-001 nrzkt, I reabsed 5100 15:12 red-001 ok I will rebase the other one then 15:13 red-001 I will rebase the other one as soon as smart git finnishs updating 15:15 sapier by the way what's result of the file access discussion for what I see there's two opinions "allow (limited) file access" and "no file access at all" 15:16 red-001 I think it's allow special api for file access 15:17 sapier so "no direct file access" ? 15:17 nrzkt sapier, i think have a virtual FS could be nice 15:17 red-001 that way we can stop mods from wasting disk space 15:17 nrzkt mod:// in a mod only virtual fs and shared:// for sharing between mods 15:17 sapier that's what I meant with "no direct file access" 15:17 red-001 e.g. generating 1gb files 15:17 nrzkt and yes, maybe limit size 15:17 sapier btw that would be helpfull on server too 15:17 red-001 ^ 15:18 sapier I recently discovered there's still no minetest way to store world specific data is it? 15:18 red-001 are local mods suppose to say or just serve as a test? 15:18 sapier the only way is store some file to world folder ... of course that's simple too 15:18 red-001 stay not say 15:18 Krock well, mods can write their config stuff to the world 15:19 sapier well Krock there's not only config data to be stored to world 15:19 red-001 I think there should be a version of the player storage for worlds 15:19 Krock yes I know. all other data is serialized in some way 15:20 sapier e.g. mobf stores advanced spawning data to avoid recalculating it over and over again, quest_engine stores player quest information ... i think there are plenty of other examples where worldspecific gamedata need to be saved 15:20 red-001 then after a release or two direct access could be blocked 15:21 nrzkt since recent merce you have a way to store player extra attributes, it solve the behaviour for players (ex: player achievement progress, or quest progress) 15:21 sapier I believe I had some sort of minetest.world_settings_set() pull request years ago ... not sure if I can find it ... well I guess it'd not be a lot of work to reimplement it anyway 15:21 OldCoder Shara, I'd like to proceed with a text console PR. PM me when here. 15:22 Shara I'm here, but was hoping on working on it myself. 15:22 Shara Feel free to PM. 15:22 Shara OldCoder: ^ 15:22 sapier hmm player attributes ... true would solve the player relevant part ... I'll check and use it. But wouldn't help for orher parts like spawning data 15:23 red-001 nrzkt, I think we need to add player name to on_chat_message_recive callback 15:23 sapier is there any limitation to the amount of data stored as attribute? 15:24 red-001 the point at which the player file stops loading normaly> 15:24 red-001 *? 15:24 sapier I read that as "logicaly no, technicaly of course" 15:24 nrzkt red-001, of course but its impossible with current chat protocol, it send a raw shit :) 15:25 kaeza wasn't there some pull request adding SQLite access to Lua? 15:25 nrzkt i need to finish #5117 to permit this 15:25 ShadowBot https://github.com/minetest/minetest/issues/5117 -- Chat protocol rewrite by nerzhul 15:25 nrzkt kaeza, atm no 15:25 kaeza spawning data could use that 15:25 kaeza nrzkt, :/ 15:25 sapier I remember that too kaeza there was something similar quite some time ago 15:26 red-001 nrzkt, isn't there some could that separates out the playername? 15:26 red-001 nrzkt, isn't there some code* that separates out the playername? 15:26 nrzkt red-001, absolutely not, and i'm against adding shitty parser to solve the current chat protocol problems 15:27 sapier me too fix it correct or don't fix it at all 15:27 red-001 just saying that minetest is alreadying using one so it could be reused for messages that use the old protocol 15:27 sapier if it was using something like that we should get rid of it instead of increasing that hacks usage ;-) 15:28 red-001 well it even has a comment saying that 15:30 sapier does "dismiss review" on github mean "yes I fixed it" or "no I don't accept that comment"? 15:30 red-001 I have no idea 15:31 red-001 try it? 15:31 sapier that's somehow strange do they believe comments are always valid or why don't they provide a simple accept/deny mechanism 15:31 sapier well I don't want to offend my reviewers by unintentionally using wrong button ;-) 15:31 Zeno` Shara, I'd like to proceed with a text console PR. PM me when here. 15:32 Zeno` OldCoder, please let Shara have an attempt first? 15:32 kaeza it's probably for "this comment is no longer valid" a.k.a. "commenter is full of sh¡t" :P 15:33 Zeno` he did all the hard(ish) work by asking if it might be accepted after all 15:34 Zeno` s/he/Shara 15:36 sapier I'm gonna merge #4983 soon 15:36 red-001 nrzkt, there is a typo in the name of 22516eee29126179194e693b89ab8ba20597af3e 15:36 ShadowBot https://github.com/minetest/minetest/issues/4983 -- from_table: Fix crash for missing inventory or field by SmallJoker 15:37 red-001 on_damage_taken is misspelled 15:38 sapier merging now 16:02 Fixer sapier: that entity fix, people in boats/carts can be finally attacked? 16:03 red-001 so can 5100 be merged? 16:04 red-001 nrzkt, sapier ^ 16:06 sapier red-001 to clientscripting branch? of course, but it doesn't mean security is complete 16:06 sapier fixer I don't know what issue prevented ppl to be attacked in boats, carts 16:07 sapier but I don't believe this fixes the issue on it's own, at best it makes it possible to be fixed 16:07 Fixer sapier: there was some deep reason, it was discussed somewhere, still not fixed to this day, you can go in cart and you are immune 16:08 sapier I don't know but If you're able to get a list of attached entities from the cart damage handler you could just pass the damage to the attached player 16:09 sapier but that would have to be done by cart/boat mod 16:23 Amaz Is it a bug or a feature that entities with nametags show up on the minimap like players do? 16:24 nrzkt merged #5100 16:24 ShadowBot https://github.com/minetest/minetest/issues/5100 -- [CSM] Improve security by red-001 16:24 sapier Amaz it's a feature 16:24 OldCoder Zeno`, I'd already made the patch, months ago. But Shara and I have chatted about the matter. 16:25 Amaz sapier: Okay :) 16:25 Zeno` ok 16:26 nrzkt red-001, are you interested about the VFS issue for CSM ? 16:26 nrzkt oh #5113 needs rebase 16:26 ShadowBot https://github.com/minetest/minetest/issues/5113 -- [CSM] Add function to get the name of the player and functions to colour chat. by red-001 16:28 crazyR Who maintains the servers list? 16:28 nrzkt crazyR, serverlist server itself or servers in the list ? 16:28 nrzkt the list is published by servers themselves 16:31 crazyR nrzkt: serverlist server 16:31 nrzkt sfan5, if i remember 16:39 crazyR thanks 16:41 red-001 VFS? 16:41 red-001 oh virtual filesystem? 16:42 nrzkt red-001, hmm i'm working on it atm in fact :) 16:42 nrzkt red-001, if you want to help maybe adding core.get_node function permit to do nice things client side :) 16:45 red-001 so how are you planning to make vfs work? 16:45 nrzkt removal of all io method if it's not done in your PR and first add core.write_file and core.read_file, after enhance it to sandbox per mod 16:46 red-001 oh I see, I was thinking of something more high level 16:47 nrzkt explain me what is your idea ? 16:47 nrzkt and also limit file size per mod 16:47 nrzkt per file first and per mod after 16:48 red-001 I was thinking of a database-like system to which mods can save data 16:48 red-001 so core.store("mymod:player_data", table_with_data) 16:49 nrzkt hmm... using a sqlite db instead of pure files ? 16:49 red-001 and core.load("mymod:player_data") 16:49 sapier what about something similar to settings minetest.get_settings("somevirtualfilename") 16:49 nrzkt the problem with sqlite db is the db size, you cannot really limit it 16:49 sapier and then mysettings:set_(name,value) and mysettings:get(name) 16:49 red-001 well my idea was that it could be first implemented with files, and then maybe a more advance system 16:50 crazyR https://github.com/ethic-rush/database <-- thats my lua implementaion of it 16:50 red-001 so take a hash of the name and use that as the file name 16:50 crazyR its not the best but it works 16:51 nrzkt red-001, in a file mode, is this better to have one file per mod with a K/V store using json ? 16:52 sapier crazyR: problem is this relies on io beeing available which we want to remove 16:52 red-001 well I would say one file, make it easier to check file size 16:52 nrzkt red-001, without doubt :) 16:52 red-001 also we want to make sure that servers can't bypass the file size limit by creating lots of mods 16:53 sapier imho the api should not provide any information about how the data is stored 16:53 nrzkt red-001, we should have global limitation & local mod limitation 16:53 sapier this way we can improve it whenever we want 16:53 red-001 ^ 16:54 sapier just provide a clean api to store key value (as first step) 16:54 crazyR sapier: i understand. i was referancing that mod as an idea to maybe how the methods could work... structure wise? 16:54 nrzkt sapier, okay, as a json format ? 16:54 nrzkt 1 file per mod ? 16:54 red-001 I say so 16:54 crazyR so is there a reason why leveldb cant be used as the storage mechansm? 16:54 red-001 well one file per user account would be better in someways 16:55 sapier nrzkt: no don't say anything about the format data is stored 16:55 nrzkt crazyR, leveldb is not a good storage for relational data 16:55 red-001 how unique is the playername salt? 16:55 crazyR i know. but its gotta be better than file 16:55 nrzkt sapier, i didn't said i will call it write_json, but i want to know how i store the data really for the first version :p 16:56 red-001 ehh I meant how unique is the salt used for hashing the password 16:56 sapier for simplicity just store it in lua text form same as settings file? 16:56 red-001 maybe that could be used as the filename 16:56 red-001 or a hash of the playername and salt 16:57 sapier we should not create hundreds of files containing 10 bytes ;-) 16:57 nrzkt sapier, i will use CPP as an intermediate, i can like player extended attributes do a json with lua string data in values :) 16:58 nrzkt red-001, like in World Of Warcraft we should have two storages areas: 1 global & 1 per server 16:58 sapier I don't understand why you convert lua string data to json just to convert it back to lua but you'll have your reasons 16:58 nrzkt this permit to store global configurations & local server things 16:58 nrzkt sapier, it's a K/V interface 16:58 sapier what about just creating a second sqlite/leveldb (whatever db backend is selected) and store the date in world folder 16:58 sapier jason ain't a key value interface 16:59 sapier it's a plain description how to store information 16:59 nrzkt not exactly but can be used for taht :) 16:59 crazyR sapier: thats what i was thinking storage wise 16:59 sapier it could be key subkey1 value1 subkey2 value2 too 17:00 sapier most modders will store lua tables within the values anyway 17:00 nrzkt yeah, my idea is if i do core.save_key('default:var1', lua__variable) it stores it in a json or a DB 17:00 nrzkt sapier, not a problem, look at player exnteded attributes 17:00 sapier noone wil manage hundreds of keys when it's more easy to just load the table 17:00 red-001 ^ 17:01 nrzkt sapier, you mean instead of permitting multiple keys a mod store raw variable directly ? 17:01 sapier well as I said I don't care how the data is stored (unless it's bloated by factor 1000 or something like that ;-) 17:01 nrzkt and it's its problem to manage keys ? 17:01 sapier no I'd not make a limitation on number of keys 17:01 red-001 well we should allow a mod to use multiple keys 17:02 nrzkt K/V and V = raw lua table 17:02 nrzkt or variable or whatever :p 17:02 sapier e.g. if a mod just needs two parameters it's stupid to force it to write a table ... on the other hand if a mod needs 100 variables anyway it's (most likely) not gonna use 100 keys 17:02 nrzkt if we offer K/V modder can use multiple a key or a unique key with its dirt :) 17:02 nrzkt like modder prefers 17:02 sapier yes 17:03 nrzkt okay then K/V call 17:03 nrzkt after the storage, a DB size is difficult to limit 17:03 sapier and same api can be used on client and server side 17:03 nrzkt sapier, yeah, i write it for CSM but it should be ported to server too 17:04 nrzkt i will create ModApiModStorage class in cpp 17:04 red-001 whats the problem with doing part of the sandboxing in builtin? 17:05 sapier I'd recommend writing it for master as the api most likely will be identical 17:05 red-001 there is no way to undo seting a variable to nil as far as I know 17:05 nrzkt sapier, okay, in fact l_modstorage will be called from both sides, i will cp it and send the PR when ready 17:06 nrzkt sapier, setting to limit data size per mod and globally ? 17:06 red-001 wouldn't ModApiStorage be a better name? 17:06 nrzkt red-001, ofc 17:06 sapier red-001: if there's any leak within our sandbox you can escape it way more easy if the code is part of the sandbox then if it's not even loaded 17:07 sapier hmm I'd start with global at the beginning unless it's no big difference in work to implement it for both 17:07 red-001 but doesn't mod security do just that? 17:07 red-001 remove access to functions 17:07 red-001 not remove them 17:08 sapier yes but security was initially done for server where security had to be added to existing environment 17:09 sapier there it had to preserve some (unwanted) functionallity which has been present before. On client side we have the opportunity to do it as correct as possible right from the begining 17:10 sapier it's a pitty chrome has gotten that fast compared to firefox 17:12 red-001 why is setlocale a problem? 17:12 juhdanad nrkzt: is there anything I should change in #4421? 17:12 ShadowBot https://github.com/minetest/minetest/issues/4421 -- Expose getPointedThing() as Raycast by juhdanad 17:13 sapier because locale is used for string/number conversions causing sideefects hard to judge 17:14 sapier and as long as there's no use for it it just spares us from doing that judgement disallowing it 17:14 red-001 well builtin uses it 17:14 red-001 not sure what for 17:14 sapier for what? 17:14 red-001 os.setlocale("C", "numeric") 17:14 sapier ohh I see ... yeah I guess it's even been me who added it 17:15 sapier formspecs string to number conversions 17:16 red-001 so is it ok to just set it to nil in lua it that case? 17:16 sapier juhdanad: isn't there a better name instead of "raycast" ? I know this is tecnicaly correct but I guess noone using it will ever care about if it's done by ray by woodstick or by anything else ;-) 17:16 juhdanad Do you have any ideas? 17:16 sapier red-001: I think so 17:17 sapier maybe something like get_pointed_at(...) 17:17 juhdanad And what would be the name of the returned iterator? 17:18 sapier or get_target() ... well target might be a little bit to generic 17:18 nrzkt how can we get modname after load ? at mod load lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_CURRENT_MOD_NAME); return it, but after it's nil 17:19 sapier nrzkt: that's difficult 17:19 sapier especially if mods use functions of other mods (library mods) it's almost impossible 17:19 nrzkt sapier, then how can i sandbox a mod from another mod in our storage ? :) 17:19 sapier maybe ShadowNinja knows a way to do it 17:19 red-001 nrzkt, is mod sandboxing needed? 17:20 red-001 I think we should just use the same system as formspecs for this 17:21 nrzkt maybe not, but in client it's important to have different storages, to prevent rogue mod modifying other mods 17:21 red-001 if mod wants to access data from another mod it should be able to 17:21 nrzkt access data why not, but storage no 17:21 nrzkt each mod should have its own storage 17:21 sapier juhdanad: hmm difficult to find a name for it 17:21 juhdanad It is mathematically a ray. 17:21 juhdanad And I like mathematics! 17:22 sapier As I said it is correct but it's not "speaking" for non-math ppl ;-) 17:23 sapier btw noone else did mention this by now maybe it's something only I am uncomfortable with in this case don't bother about it 17:25 sapier nrzkt: on client side distinguishing between server sent mods and manually installed mods is way more important 17:25 sapier imho server side sent mods shall not be able to store any persistent data on client 17:26 juhdanad Do you mean that users will be able to play on servers with their own set of additional client mods? 17:26 sapier juhdanad: yes, but those mods will only be able to change ui things 17:27 juhdanad I just thouhkt it would be easy to publish a 'killaura' mod. 17:27 nrzkt sapier, i agree, but server side sent mods is not my priority for first CSM 17:27 sapier and there's some way to go till this is merged juhdanad 17:27 nrzkt having a working local mod API and strong API , after we will look at server sent mods 17:28 juhdanad Off-topic: how do I measure the memory consumption of mapblock meshes? 17:28 sapier nrzkt: well security is most important for server sent ones. For others it's same as for current mods the one installing it has a certain responsibility for them. 17:30 sapier but as we don't want two mod engines on client side we have to get the one we want done correct 17:33 sapier juhdanad: isn't the raycast something like a shootingpath? 17:33 juhdanad Yes, it is. (but unaffected of wind, Coriolis force etc.) 17:34 sapier well if you use a railgun those effects are ignorable ;-) 17:34 sapier maybe call it shoot_at() and shootingpath 17:35 sapier any other opinions about that? 17:35 juhdanad I think modders would think that this method actually places a projectile in the environment. 17:35 sapier I don't wanna be the only one doing suggestions 17:35 sapier get_shootingpath_to() 17:35 sapier ? 17:36 sapier but to be honest my name suggestions usually aren't best ;-) 17:37 juhdanad Well, it is better. (but to be honest I don't really want to push more commits to that branch) 17:37 sapier Yes but there are already some nice features noone uses because of name beeing missleading I just want to save your feature from same fate 17:38 nrzkt sapier, red-001 it's a little draft #5131 17:38 ShadowBot https://github.com/minetest/minetest/issues/5131 -- Add ModStorage Lua API by nerzhul 17:38 nrzkt atm no storage as i don't know how to retrieve mod name (the mentioned call return nil) 17:38 juhdanad The problem is that line_of_sitht is already reserved. 17:38 juhdanad *sight 17:39 sapier I'd mention the data being world specific too nrzkt 17:40 sapier juhdanad: yes but you could add a param to it for example defining the mechanism to be used 17:40 sapier similar to pathfinding there you can/could specify the pathfinding mechanism 17:42 juhdanad that would make line_of_sight really tricky. With one parameter it returns a bool and a vector; with another it returns an iterator. 17:43 sapier true not best idea 17:44 juhdanad sapier: "there are already some nice features" what are these? 17:44 sapier let me have a look at lua api i never can remember their names 17:45 sapier texture modifier is an example noone used it (if someone would have the bugs would've been reported) 17:46 nrzkt sapier, yes it's an evidence :) 17:46 nrzkt world private 17:47 sapier damage and digging mechanisms for sure are used by a very very small group of ppl too ... it's exremely hard to understand 17:47 sapier imho it's overdesigned to many things put together instead of creating a more speaking while little bit more redundant api 17:48 sapier not sure but i believe voxelmanip isn't used that often too (but I could be wrong about that) 17:49 sapier juhdanad: what about path_of_sight? 17:52 sapier or viewpath? 17:55 red-001 yeah VM is pretty hard to understand 17:56 sapier btw not relate does someone know how to tell chrome to do a dns lookup prior sending content of address box to search engine? 17:57 red-001 I'm not sure if it does a dns lookup 17:58 sapier of course noone does care about privacy today but imho it's plain stupid to replace a proven mechanism like dns by something unpredictable like a search engine 17:58 red-001 I think it just checks it the address could be a site 17:58 juhdanad sapier: path_of_sight is good enough. But are you really sure that 'raycast' is misleading? 17:59 sapier juhdanad: it's not misleading it's just non speaking to a lot of ppl 17:59 sapier for others it's gonna tell precisely what is done but I believe first ones are majority ;-) 18:00 juhdanad What about "nodes_on_line"? 18:01 sapier yes would be better than raycast to 18:01 sapier too 18:01 juhdanad It tells that it returns an iterator. 18:01 sapier yes that name would tell me what it does too 18:02 juhdanad Unfortunately it does not tell that entities may also be returned. 18:02 juhdanad Maybe objects_on_line() 18:03 sapier thought about that too but term objects is already used for luaentity and player baseclass 18:05 sapier the function does only provide nodes/objects within the bounding box of pos1/pos2? 18:05 juhdanad Yes, why? 18:05 sapier so it basically provides everything the line does cross 18:06 juhdanad Only if you ask. 18:06 sapier yes but it could (if you call the iterator to the end) 18:06 juhdanad If you stop the iteration after the first pointed thing, the remaining area is not computed. 18:06 sapier line_crosses() 18:06 sapier or get_line_crosses() 18:06 juhdanad This would return a bool to me. 18:07 juhdanad What about Then the only remaining option is things_on_line() 18:07 sapier get_crossed_by_line 18:07 juhdanad Sorry... things_on_line. 18:07 sapier "things"? :-) 18:07 juhdanad After all, you get pointed_things 18:08 sapier hmm true we already use the (non speaking) term "thing" 18:08 juhdanad And everybody knows the word "thing", not like "raycast". 18:08 sapier ok why not thing is generic and already used 18:09 juhdanad Minetest's sets: thing=(node+object=(entity+player)) 18:14 juhdanad sapier: I asked it on the PR's thread. 18:15 red-001 !seen paramat 18:15 ShadowBot red-001: I saw paramat in #minetest-dev 20 hours, 22 minutes, and 15 seconds ago saying "indeed index calculation doesn't check bounds or out-of-volume" 19:02 red-001 nrzkt, could you make ModStorage userdata like the player object? 19:03 red-001 then you could use rubenwardy's suggestion 19:03 red-001 minetest.get_mod_storage() will just return the userdata/object 19:06 juhdanad Could you help me? I would like to make a mesh buffer that has a reference to its material. This would require copying and modifying CMeshBuffer.h from Irrlicht. How do I do that legally? 19:16 nrzkt red-001, it's not as simple as player object, if i need to do that i need to instanciate a new object, but it's an interesting thing 19:16 red-001 I though the player object did that? 19:17 red-001 ever player object refers to a diffrent player? 19:17 red-001 every* 19:19 red-001 how do I only rebase one commit? 19:19 juhdanad cherry pick it. 19:19 sapier juhdanad: do not modify irrlicht code ;-) 19:19 juhdanad Why not? 19:20 sapier because you'll never get it merged 19:20 sapier minetest does not include irrlicht thus any changes to their code are useless ;) 19:20 juhdanad Every mapblock uses the same grass material, yet each mapblock has its own instance... 19:21 juhdanad No wonder that mapblock meshes consume a lot of memory... 19:21 sapier you can change this as long as you modify minetest files only but it's no use to change irrlicht itself 19:22 juhdanad Yes, I wanted to do that. But thi will be mostly Irrlicht code, I just make the material member apointer. 19:23 sapier what exactly do you mean with "irrlicht code" most ppl don't compile irrlicht themselfs but just use the distribution version thus those changes would not be there for them 19:23 juhdanad That I copy-paste unchanged methods into Minetest's code. 19:24 red-001 wow why did I do that before.... 19:24 juhdanad It is inevitable, since the only way to remove a member from a class is to re-define it. 19:24 sapier uarg ... I know this is already done sometimes but that's worst thing you can do 19:24 red-001 that was so much easier 19:24 sapier it's gonna break whenever irrlicht changes it's internal structures 19:25 sapier of course it'd be even more easy to include irrlicht but it's still worst solution 19:25 red-001 rebased #5113 19:25 ShadowBot https://github.com/minetest/minetest/issues/5113 -- [CSM] Add function to get the name of the player and functions to colour chat. by red-001 19:25 juhdanad Well, I'll try anyways... 19:27 sapier I strongly encourage you to find a way not to copy code ;-) 19:32 nore sapier: well we did that already for colored chat I remember 19:32 nore and yes, it was ugly 19:32 nore so, if you have another solution, please find one 19:32 nore but if there is no other way, be aware it has already been done 19:33 nore copying an irrlicht class and hacking its own code 19:33 sapier I know it's been done multiple time but doing bad things multiple times doesn't make them better 19:33 nore (and due to Irrlicht compiled without rtti, it was even more awful) 19:33 nore sapier: yes, of course 19:34 sapier the more we copy the more we risk incompatibility to new code and it depends what type of code you copy gui code for example is way more separated then rendering code (usually) 19:37 rubenwardy juhdanad, iirc Irrlicht is MIT 19:37 rubenwardy so should be fine 19:37 sapier it's zlib but that's fine too 19:40 juhdanad I don't want to break anything! I just create a new class that derives from IMeshBuffer. 19:41 sapier just be carefull ;-) 19:43 juhdanad How can I measure the memory usage of the meshes? 19:44 Fixer vram usage? 19:44 juhdanad No, RAM usage. 20:09 red-001 nrzkt #5113 20:09 ShadowBot https://github.com/minetest/minetest/issues/5113 -- [CSM] Add function to get the name of the player and functions to colour chat. by red-001 20:10 red-001 you can remove the rebase need tag 20:19 red-001 so should I make a PR to remove the io library so the security is finished? 20:20 sapier well finished is a big word but it'd ne another step towards it 20:21 rubenwardy there's also dofile etc 20:21 red-001 well thats not possible 20:21 rubenwardy VFS 20:21 red-001 well I guess 20:21 rubenwardy worth leaving that for later though 20:21 rubenwardy removing io is much easier 20:24 red-001 I think it should wait for server to client code transfer 20:26 nrzkt i also think server to client should not appear too fast 20:26 nrzkt in fact not with 5088 20:26 nrzkt first have a working CSM purely client side, with a mod store 20:26 sapier true we should add that feature after client side scripting has prooven to be save 20:27 nrzkt improve API client side, adding features from client, interaction with local Hud 20:28 sapier still if we don't add it within reasonable time ppl will abuse mechanisms present e.g. abuse chat for sending code 20:28 red-001 true 20:29 nrzkt sapier, hmmm yeah it could be a wrong thing, but chat should not permit to execute code directly 20:29 red-001 nrzkt, someone could make a mod to do that 20:29 sapier well imho that's nothing to be discussed about but an absilute requirement 20:30 sapier yet you can always encode code in something pure text and decode it by a special mod 20:30 nrzkt yeah, but without cleint mod you will have a very ugly user experience, and it's against the server owner 20:30 nrzkt then very risky for server owner to do it, as he can break his user's experience 20:30 sapier you just have to write a simple client mod receiving and decoding chat 20:31 sapier user won't even notice 20:31 sapier client side mod sits in between chat handler and can hide the code communicatio 20:31 sapier n 20:32 nrzkt yeah, but without the mod, message will not be ate and shown to user's chat 20:33 nrzkt then bad user experience, and this restraint the server owner's to do shit a little bit :p 20:33 nrzkt but i agree we should think about it 20:33 sapier yes so mod will fitst send a message "hey i'm installed at user x's client" and only those clients get the code messages 20:34 sapier if done correct noone will see this unless looking at network traffic 20:34 red-001 sapier, mods can't send chat 20:34 sapier can they show formspecs? 20:34 nrzkt CSM doesn't permit chat message sending, especially to prevent bots and flooding 20:34 rubenwardy to be useful, CSM need to be able to send info to server. And vise-versa 20:35 nrzkt rubenwardy, yeah, but not chat, chat is for human, not bots 20:35 sapier @rubenwardy not in first step 20:35 nrzkt i prefer mod channels to discuss between mod users 20:35 nrzkt and server acts as a bridge between mod users 20:36 sapier I don't even think communication as of in game communication would really provide what csm is supposed to do 20:36 sapier it'd suffer of same issues current minetest suffers LAG ;-) 20:36 sapier csm should be able to do things without talking to server 20:36 nrzkt sapier, with mod channel communication, you don't need server modding, just retransmit messages to subscribers, it's a pure C++ and lightweight usage 20:37 nrzkt example of usage, minimap player detection shared between players 20:37 sapier a very very very dangerous feature 20:37 sapier direct connection between scriptable client engines 20:37 nrzkt it's used un world of warcraft massively 20:38 red-001 sapier, why is client <-> server communication bad? 20:38 nrzkt you should only limit the message size and maybe words too 20:38 red-001 or do you mean client <-> client? 20:38 sapier red-001 it's not bad but I don't see the benefit for client <-> server (in game) communication it's still limited by lag 20:38 sapier bad is client <--> client 20:39 nrzkt not bad, it permit to share some informations between clients, but should be very very limited 20:39 sapier nrzkt: you can't 20:39 nrzkt imagine a calendar formspec, shared between mod owners 20:39 sapier do this in server 20:39 nrzkt it's not mandatory server side 20:40 sapier never allow a client to send any data to another client 20:40 sapier not even tunnled through server 20:40 nrzkt sofar, maybe you have more informations to give to us about that 20:40 sapier problem is if there's any bug in the sandbox any malicious client can attack the other client 20:40 nrzkt sapier, the client <-> client channeling feature is not mandatory for CSM release, we don't need it at first 20:40 sapier if you do not allow this you just have to fix the server to prevent it 20:41 sapier I know but client <--> client communication was suggested and imho we should strongly discourage anyone who wants to do this 20:42 sapier it's dangerous you open up a direct attack vector to our sandbox for a unknown number of clients 20:43 nrzkt i need to re-study blizzard API for this, there are soem things to learn on implementation, and, i repeat, at CSM start it's absolutely not required 20:43 nrzkt we only want to manipulate client from client 20:43 nrzkt itself 20:43 sapier yes that's first step 20:44 sapier first step no server <-> client communication and for sure no client <-> client communication (talking about lua engines only) 20:48 sofar it's optional imho 20:49 sofar I don't see the dangers per se 20:49 sapier define "it"? ;-) 20:49 sofar client-client messaging 20:49 sapier well sofar think about some buggy mod which could be exploitet to execute arbitrary code 20:50 sapier if you have client client communication every connected client could do this 20:50 sofar can always happen irregardless 20:50 sofar if a server can send data to a client you can get that 20:50 rubenwardy I don't see the use of c<-> 20:50 rubenwardy c 20:50 sapier yes but it's a difference user can decide to connect to a server 20:50 sofar for instance, in WOW specifically 20:50 sapier but user cannot decide whom other is connected to the server 20:50 sofar it allows loot sharing information between clients directly 20:51 sapier and server does not have any chance to protect it's clients 20:51 sapier wow is different 20:51 sofar doesn't matter 20:51 sofar client A has a mod which logs all received loot 20:51 sapier those guys do have a valid testing AND even more important they do have update mechanisms in place 20:51 nrzkt sapier, it's not different, wow also permit to write to disk and also uses lua 20:51 sofar client B requests the data from client A 20:51 sofar client A sends the loot to client B 20:52 sofar (it all goes through the server anyway, even in wow) 20:52 sapier as I said they are different the "solved" or at least reduced the impact by controling the code on client side 20:52 red-001 does WoW have issues with rec? 20:52 sofar pipe dream, anyone can edit their client to add more client mods 20:53 sapier well I don't know what wow does "through server" isn't same as "through server" 20:53 sapier there's a major difference if server just relays data or controls content of data 20:53 nrzkt sapier, you can cheat on wow by modifying memory to unlock blizzard lua and it works 20:54 sapier yes you can and if you do and get cought your account will be closed and your money is lost (not sure how big chances are) 20:54 sapier well what's worst to happen on minetest server? 20:54 nrzkt sapier, i did it at a moment 4 years ago, no problem 20:54 nrzkt it depend on what you are doing 20:54 rubenwardy you would get "banned" and return the next day with a different username and ip 20:55 sapier exactly yet there's nothing minetest server owners could do nor would there be any risk for criminals to be cought 20:55 sapier both things are usually present for wow 20:55 nrzkt sapier, and cheating Lua API is ofter used by many top guilds ... 20:55 sofar client-to-client bitcoin transerv 20:55 sofar client-to-client bitcoin transfer* 20:55 nrzkt sofar, client to client bitcoin mining :p 20:56 sapier see there's a major difference if you're blizzard with a lot of lawyers testers and things like that or if you're a small minetest server owner 20:56 red-001 sapier, WoW is a way bigger target 20:56 sapier of course wow is a more valuable target but a way more risky one too 20:57 sapier on the other hand minetest has exactly zero risk while providing a little benefit 20:57 nrzkt say that to chinese cheaters and gold farmers :p 20:57 sapier especially as it's open source too so bugs are readable 20:57 nrzkt it's why we should have a strong API when it will come 20:58 sapier I'll never understand why ppl got used that much to running unverified unknown code but obviously big companies managed to make ppl accept it 20:59 sapier you can call me pessimistic but I believe we'll never have a sandbox hard enough to be capable of surviving direkt attack 21:03 red-001 dunno I think it's different with lua 21:47 red-001 #5133 21:47 ShadowBot https://github.com/minetest/minetest/issues/5133 -- [CSM] Block access to the `io` library by red-001 22:06 red-001 could someone review it? 22:16 red-001 !tell nrzkt could you review #5133 22:16 ShadowBot red-001: O.K. 22:38 ShadowNinja New threading fix: #5134 (sfan5?) What do you think about the alternative solution? It would be a bit more complicated but it may be faster when not building with C++11. 22:38 ShadowBot https://github.com/minetest/minetest/issues/5134 -- Fix synchronization issue at thread start by ShadowNinja 22:46 ShadowNinja Oh, there's also another tiny thing I noticed: The AIX conditional block seemed te be broken (people play Minetest on AIX? I guess not since nobody noticed.). 22:47 red-001 AIX? 22:49 ShadowNinja ~g AIX 22:49 ShadowBot ShadowNinja: IBM AIX, UNIX for IBM Power Systems - IBM AIX Power Systems operating system- Offers the highest level of performance, security and reliability of any UNIX operating system. , IBM AIX - Wikipedia - AIX (Advanced Interactive eXecutive, pronounced / ˌ eɪ aɪ ˈ ɛ k s /) is a series of proprietary Unix (5 more messages) 22:49 sapier ? 22:50 sapier maybe we should create a c64 port ;-) 22:50 sfan5 ShadowNinja: i'm guessing the threading impl. was initially copied from somewhere with aix support 22:53 ShadowNinja Probably not. kwolekr added that code, but he based his rewrite on my rewrite. That's a minor issue though. Fine if I go ahead and merge that little commit now (Maybe we'll remove all the esoteric OS support code later). 23:29 paramat #5109 simple PR well tested 23:29 ShadowBot https://github.com/minetest/minetest/issues/5109 -- OpenAL sound: Use a simpler distance model by paramat