Time |
Nick |
Message |
02:00 |
|
SFENCE joined #luanti-dev |
02:09 |
|
SFENCE_arch joined #luanti-dev |
02:26 |
|
SFENCE joined #luanti-dev |
02:29 |
|
SFENCE joined #luanti-dev |
02:54 |
|
SFENCE joined #luanti-dev |
03:00 |
MTDiscord |
<exe_virus> hurm, yep removing the overgeneration in the negative Y direction has the expected effect of reducing the layer of stone at boundaries, but silly enough, only most of a mapchunk in my system. I.e. still generating like 5% wrong with the overgeneration in the Y+ direction.... Why do we need overgeneration again? |
03:07 |
MTDiscord |
<exe_virus> anyways, leaving this note for myself: looks like the culprit is overgeneration from the chunk below the also generating chunk from above. The chunk below is for some reason not applying biome to that overgenerated layer, and it is writing second, such that it's stone is overwriting the correct top node from the chunk above. So next spot to look is to understand how to get the chunk below to apply biome to overgenerated terrain too, if |
03:07 |
MTDiscord |
not already. |
03:08 |
|
SFENCE joined #luanti-dev |
03:08 |
MTDiscord |
<exe_virus> the reason this doesn't happen in normal use, is if the node is not content_ignore, we skip it during terrain generation (aka stone). But it was content_ignore at the time the chunk received it's voxelmanip. |
03:13 |
|
SFENCE joined #luanti-dev |
03:14 |
MTDiscord |
<exe_virus> Also this is for v7, but I wonder/bet others have the exact same issue |
03:29 |
|
SFENCE joined #luanti-dev |
03:36 |
|
v-rob joined #luanti-dev |
03:51 |
|
SFENCE joined #luanti-dev |
04:00 |
|
MTDiscord joined #luanti-dev |
04:05 |
MTDiscord |
<jordan4ibanez> treee |
04:36 |
|
SFENCE joined #luanti-dev |
04:49 |
|
v-rob joined #luanti-dev |
04:53 |
|
SFENCE joined #luanti-dev |
05:02 |
|
SFENCE joined #luanti-dev |
05:34 |
|
SFENCE joined #luanti-dev |
06:21 |
|
SFENCE joined #luanti-dev |
08:17 |
|
matteobin joined #luanti-dev |
08:25 |
matteobin |
Good morning, thank you for making such a great game! I would like to write a script to rename a player's user name on a running Luanti server. Where all the player data and metadata is stored? Is it enough to just change the authentication and player database data or do I need to check all database tables for that player name? https://docs.luanti.org/for-server-hosts/database-backends/ |
08:35 |
[MatrxMT] |
<Zughy> I actually wonder where do we save players' metadata |
08:42 |
matteobin |
[MatrxMT]: Exactly what do you mean with players' metadata? |
09:03 |
[MatrxMT] |
<Zughy> matteobin: What we call PlayerMetaRef in docs/lua_api.md |
09:31 |
matteobin |
Oh, sorry, I didn't get it was you Zughy! Hello my friend. MatrxMT is the Matrix bridge user, not an actual IRC user. Forgive my naivety. |
09:39 |
sfan5 |
the player metadata is in the relevant database |
09:39 |
sfan5 |
the more practical problem is that node metadata often saves the player name e.g. to handle ownership/protection |
09:41 |
sfan5 |
so to implement your idea you'd need the script to look through the entire map data and rewrite any mentions of the player name while being aware how exactly the concrete mods in use store the ownership info |
10:03 |
matteobin |
sfan5: So I need to browse the various table structures and replace the old name with the new name. Seems reasonable. It would be better if mods and node metadata used a numeric ID or a UUID to identify the player, but it shouldn't be too hard. |
10:05 |
sfan5 |
no. it is hard |
10:05 |
sfan5 |
the map database is not "various table structures" but a key-value store with binary blobs containing encoded map data |
10:06 |
matteobin |
Oh... that's unfortunate. |
10:06 |
matteobin |
Sorry, I didn't want to read arrogant. |
10:08 |
matteobin |
However that blob structure is documented. Right? |
10:14 |
|
stg-developer joined #luanti-dev |
10:15 |
|
stg-developer left #luanti-dev |
10:16 |
sfan5 |
sure |
10:17 |
sfan5 |
https://github.com/luanti-org/luanti/blob/master/doc/world_format.md |
10:17 |
sfan5 |
what isn't documented (as there is no standard) is how each mod decides to store player ownership |
10:25 |
|
imi joined #luanti-dev |
10:27 |
matteobin |
sfan5: mod player ownership is stored in the same binary blob? |
10:38 |
MTDiscord |
<mistere_123> could we make decoration placement deterministic then? |
10:39 |
MTDiscord |
<mistere_123> oh, this is in response to the conversation about why we need overgeneration |
10:49 |
MTDiscord |
<jordan4ibanez> Yes |
10:54 |
sfan5 |
matteobin: yes |
11:00 |
matteobin |
sfan5: Uhm... seems very hard then. :D |
12:58 |
MTDiscord |
<bastrabun> You could do it in two passes: Ask the database for every place where that namestring is mentioned, then investigate the data and see whether there are false positives and rule them out in your script. |
12:59 |
sfan5 |
that doesn't work either, because the blob data is compressed |
13:09 |
matteobin |
:( |
13:13 |
sfan5 |
player uuids has been put on the list of things to do for Luanti 6.0 especially because such renames are essentially infeasible right now |
13:14 |
matteobin |
Got it. Thank you. |
13:59 |
MTDiscord |
<bastrabun> Ofc you need to uncompress it - every single mapblock - then search through it. |
14:01 |
MTDiscord |
<bastrabun> One of our devs has a script which can at least find blocknames, we're using it to find where I messed up mapgen. |
14:08 |
rubenwardy |
You could modify the player, auth, and meta dbs quite easily. The map is harder - but you could have an alias / renaming system that updates stuff as it appears and is loaded |
14:08 |
rubenwardy |
this would mean the old name couldn't be registered by another user, which is probably desirable anyway |
14:31 |
matteobin |
rubenwardy: Thanks for the input. I'll probably wait for player UUIDs to be implemented. It seems more sensible. I don't know if making old names unavailable for registration is desirable. I'm thinking about inactive accounts. There should be a way to delete inactive accounts, to avoid wasting an inactive user name. |
14:32 |
rubenwardy |
it might be a few years |
14:35 |
matteobin |
To 6.0? I can wait. I need this feature, but it's more of a long-term need. I'm in no hurry. |
14:37 |
matteobin |
In the meantime I can donate to the project. :D |
15:05 |
|
swift110-mobile joined #luanti-dev |
15:11 |
|
wsor4035 joined #luanti-dev |
15:12 |
|
jonadab joined #luanti-dev |
15:21 |
|
citrons joined #luanti-dev |
16:18 |
MTDiscord |
<exe_virus> This is the kind of community member I appreciate!! For the record, I'm in a similar boat haha. |
16:22 |
matteobin |
exe_virus: Thank you. Being able to change user name without losing your data is a nice feature, quite useful, especially for public community servers. However Luanti is already a wonderful game as it is. No need to put extra pressure. :) |
16:27 |
|
Juri joined #luanti-dev |
17:24 |
|
alias joined #luanti-dev |
18:07 |
|
v-rob joined #luanti-dev |
18:37 |
MTDiscord |
<warr1024> The current workaround for this is to use mods to make a player's "display name" different from their username, e.g. in custon nametags, chat messages, etc. Hecks was doing something like this for his server where player chat would be attributed to your character name, not your username, and usernames were treated as "sensitive/internal" data and avoided leaking to other users. Something like that could get you closer to what you want. |
19:28 |
|
YuGiOhJCJ joined #luanti-dev |
19:42 |
MTDiscord |
<luatic> yep i think that's the way to go |
19:43 |
MTDiscord |
<luatic> you (and other modders) should ideally start writing your mods in such a way that they treat display names and player identifiers as two separate things. this doesn't need the engine to do anything. |
19:43 |
MTDiscord |
<luatic> but the engine should probably define a convention, e.g. an overrideable player:get_display_name(), so modders start adopting this |
20:15 |
|
SFENCE_arch joined #luanti-dev |
20:21 |
[MatrxMT] |
<Zughy> Sure, as a mantainer of ~20 mods I'll definitely do that (sarcasm) |
20:24 |
MTDiscord |
<nathan4220776> That's the spirit! ( ͡° ͜ʖ ͡°) |
20:41 |
MTDiscord |
<exe_virus> Or built-in could provide an easy api |
21:08 |
|
luk3yx joined #luanti-dev |
21:12 |
|
v-rob joined #luanti-dev |
21:16 |
|
Safea joined #luanti-dev |
21:17 |
MTDiscord |
<luatic> Zughy: I get that it's nasty, but it shouldn't be so bad actually. You just grep for player:get_player_name() and see where those names end up. If it's used as an ID, use player:get_poid() (fictive new API function which for now returns the player name so your code doesn't break). If it's used as a display name, use player:get_display_name(). |
21:18 |
MTDiscord |
<luatic> The reward you get is that suddenly players can have display names which don't need to abide by Luanti player name limitations and which can be changed. Also, could e.g. stuff clan info or something in there. |
21:18 |
MTDiscord |
<luatic> But I agree that it's relatively low priority both for modders and engine devs.. so nothing happens. |
21:27 |
MTDiscord |
<nathan4220776> Having customizable names would also allow players to do stuff under someone else's name. Whether or not that's a good thing depends on who you are... |
21:57 |
|
Safea joined #luanti-dev |
22:33 |
|
panwolfram joined #luanti-dev |
22:44 |
|
v-rob joined #luanti-dev |
23:05 |
|
Eragon joined #luanti-dev |