02:14 < bridge> gm 04:03 < bridge> norming 05:27 < ws-client> morin fred 06:50 < bridge> chillerdragon: are you chill 07:23 < bridge> gm 07:24 < bridge> good morning :) 07:25 < bridge> I have a question, how are skin requests done? 07:30 < bridge> you mean this? -> #📍info 07:31 < bridge> no 07:31 < bridge> it's related to the recent convo in #questions 07:31 < bridge> oh so technically 07:31 < bridge> 07:33 < bridge> pretty sure it is just a url prefix with `.png` at the end. not sure how technically detailed were you expecting 07:33 < bridge> if you have a server or cdn that serves files like this it'll work 07:34 < bridge> So just simple http get request? 07:34 < bridge> i would thought so 07:34 < bridge> haven't looked into it. but it probably just starts with a http get request. decoding and uploading to vram comes later and automatically i would imagine 07:35 < bridge> also requests are cached i guess. 07:35 < bridge> so the client builds the request using the url from `cl_skin_community_download_url` like this then? 07:35 < bridge> 07:35 < bridge> > {url}/{skin name}.png 07:35 < bridge> yes 07:35 < bridge> ah neat 07:36 < bridge> might even be `{url}{skin name}.png` 07:36 < bridge> or both 07:36 < bridge> depends how the client handles the slash 07:36 < bridge> i'm not 100% sure, but it is easy to find out and test i think 07:36 < bridge> if it doesnt, then the ending slash is needed 07:39 < bridge> if this is how it works then i dont see why there couldnt be some indicator for skins that were not found, like [this issue]() suggests 07:44 < bridge> it should be easy, but i think it is just designed like that. you probably don't want a fullscreen worth of purple blobs on your screen 07:44 < bridge> lots of players uses local skins and never intend to upload them anywhere, at least they should show up at normal tees. 08:19 < bridge> #8602 was introduced to do that. 08:19 < bridge> 08:19 < bridge> Also your console will Tell you If it couldnt find skin X, thus showing you its Name 08:19 < bridge> https://github.com/ddnet/ddnet/pull/8602 08:22 < bridge> oh that's neat 08:30 < bridge> Cool phone version, but u could alao make throwing a tee possible :/ 08:30 < bridge> Also* 08:31 < bridge> Why do i everytime type a instead of s 08:33 < bridge> love you 08:59 < bridge> Hi, I have skill issues in rust, send help. I make `CodeGen` struct by passing generic myself, see https://github.com/MilkeeyCat/meraki/blob/59a823d5c2a8f5b0314d7bbf9b4698ce47bdf01d/src/main.rs#L49-L51 but how can I make it work so that I can dynamically pass it xd(i want to make a cli option to choose architecture to generate code for) 09:08 < bridge> teach me rust 09:14 < bridge> that sounds like a skill issue lmao 09:15 < bridge> that version is not by me btw 09:15 < bridge> if you want to contribute do it in #8359 09:15 < bridge> https://github.com/ddnet/ddnet/issues/8359 10:48 < bridge> i don't know it myself xddd 10:48 < bridge> big sad 10:50 < bridge> ask ddpg creator 10:53 < bridge> here i teach you rust 10:53 < bridge> 10:53 < bridge> ```rust 10:53 < bridge> let chunks = self.demo_chunks.split_off(&key); 10:53 < bridge> // bit overcomplicated but split_off :/ 10:53 < bridge> let chunks = std::mem::replace(&mut self.demo_chunks, chunks); 10:53 < bridge> ``` 10:54 < bridge> hope that didn't help you 10:54 < bridge> here i teach you rust 10:54 < bridge> 10:54 < bridge> ```rust 10:54 < bridge> let chunks = self.demo_chunks.split_off(&key); 10:54 < bridge> // bit overcomplicated but split_off :/ 10:54 < bridge> let chunks = std::mem::replace(&mut self.demo_chunks, chunks); 10:54 < bridge> ``` 10:55 < bridge> @jupeyy_keks @heinrich5991 obviously you wanted to help me but just missed the message 10:56 < bridge> based 10:57 < bridge> i dont understand what your problem is, sry xd 10:57 < bridge> oke 10:57 < bridge> you have a struct and want to dynamically pass it? 10:57 < bridge> where exactly here is your issue 10:57 < bridge> what is dynamically passing xd 10:58 < bridge> see Amd64 there? 10:58 < bridge> yes 10:59 < bridge> so based on your input option you want a different generic? 10:59 < bridge> ye 11:00 < bridge> and now is the question if lets say you do: 11:00 < bridge> 11:00 < bridge> match arch { "amd64" => CodeGen::::new(scope) 11:00 < bridge> .compile(stmts, &args.output) 11:00 < bridge> .unwrap_or_else(|e| giveup(Box::new(e)));, 11:00 < bridge> 11:00 < bridge> "x86" => CodeGen::::new(scope) 11:00 < bridge> .compile(stmts, &args.output) 11:00 < bridge> .unwrap_or_else(|e| giveup(Box::new(e))); 11:00 < bridge> 11:00 < bridge> } 11:00 < bridge> 11:00 < bridge> that would be too complicated? 11:00 < bridge> or too much code? 11:00 < bridge> is CodeGen created more often than this? 11:01 < bridge> u can move your whole loop into a new function that takes a generic argument for example 11:01 < bridge> then you dont have double code here 11:07 < bridge> @ryozuki help 11:08 < bridge> ooooor, i could use `dyn` and do this ```rust 11:08 < bridge> let _: Box = match str { 11:08 < bridge> "amd64" => Box::new(Amd64::new()), 11:08 < bridge> "x86" => Box::new(X86::new()), 11:08 < bridge> }; 11:08 < bridge> ``` and pass a parameter :\ 11:09 < bridge> you dont really need boxing this :justatest: 11:09 < bridge> you can do that, but then you also _need_ a trait 11:09 < bridge> i dunno what exactly you need, but IMHO reducing traits isn't something bad 11:09 < bridge> traits are _kinda_ code duplication too 😄 11:10 < bridge> jupstars solution W 11:10 < bridge> i can't use with Box but if I add `&` the value will be dropped 11:10 < bridge> how exactly do you pass that to codegen btw? 11:11 < bridge> yeah the way you do it needs box indeed 11:12 < bridge> in you case you ofc need a trait for your architecture anyway 11:12 < bridge> i meant if youd use jupjopjaps solution 11:12 < bridge> i just wonder how you pass that Box now 11:13 < bridge> but anyway Box always gives up a bit of context for a compiler i guess 11:13 < bridge> since it doesn't know the original type 11:14 < bridge> it will not be a generic anymore and i would need to store it in struct as ```rust 11:14 < bridge> pub struct CodeGen { 11:14 < bridge> arch: Box, 11:14 < bridge> scope: Scope, 11:14 < bridge> } 11:14 < bridge> ``` 11:14 < bridge> idk how to make it the best ;p 11:15 < bridge> just use the snippet jupstar gave u xd 11:15 < bridge> easy and not overwhelming solution 11:15 < bridge> Yeah let's say it like that: 11:15 < bridge> It's a matter of taste for sure. Other ppl will say your solution is nicer bcs it doesn't create yet another generic argument. 11:15 < bridge> 11:15 < bridge> I'd say from the code i saw in your repo, doing it as generic as possible is nicer 11:16 < bridge> Box must be object safe, so you cannot extend it later easily 11:16 < bridge> e.g. if you want to add serialization support or whatever 12:10 < bridge> you can't dynamically pass type parameters. you can list all cases 12:27 < bridge> @milkeeycat btw, you can either make your `fn main() -> Result<(), Box>` or change your current main to a different function with the above signature, so you can handle the errors in one place 12:28 < bridge> ok, thanks 12:30 < bridge> (in the first case, rust will handle printing the error and exiting with a nonzero status) 12:37 < bridge> @milkeeycat LMAO: `"Achtung:"` such a mlikeey moment 12:40 < bridge> tja 12:41 < bridge> german in one word: 12:41 < bridge> Hallo, 12:41 < bridge> Hallo?, 12:41 < bridge> HALLOOOO!? 12:41 < bridge> Haaaaaaaaaaalloooooooooo? 12:41 < bridge> 12:41 < bridge> that is all you need to communicate 12:42 < bridge> i know only "jaja, sehr gut" in german 12:42 < bridge> i was learning it before but i forgor everything 12:42 < bridge> jaja is often considered negativly 12:42 < bridge> jaja nerv nischt 12:42 < bridge> :justatest: 12:43 < bridge> oh and I remember from Cendren's stream "du dummkopf" xd 12:45 < bridge> see, when u learn russian, you only learn the hardcore insults. 12:45 < bridge> when you learn german you learn kiddie insults xdd 12:56 < bridge> @jupeyy_keks Hello is there a way to add mapres, gameskin etc to the data/ddnet folder on mobile? 12:56 < bridge> I can see it using 3rd party programs but none of them lets me modify the content 12:57 < bridge> you can modify `interal_storage/Android/data/org.ddnet.client/files/user` like a normal data directory 12:57 < bridge> if your file manager doesn't let you to do that, then maybe your OS completly disallows it, dunno 12:57 < bridge> i am no android expert xd, ask google 12:58 < bridge> you helped me to record logs on da phone, u phone expert xd 12:58 < bridge> generally, never modify ddnet's data dir that is shipped by the client directly. 12:58 < bridge> 12:58 < bridge> Not even on pc 12:58 < bridge> that is read-only 12:59 < bridge> i meant the user dir, mb 12:59 < bridge> for me it is in this path 12:59 < bridge> i could modify files there 12:59 < bridge> 1 /storage/emulated/0/‪Android/data/org.ddnet.client/files/user/maps/Syre.map: open failed: EACCES (Permission denied) 12:59 < bridge> 12:59 < bridge> ZArchiver gives this error on android 14 13:00 < bridge> When i try to paste a map file 13:00 < bridge> does the "maps" directory already exist? 13:00 < bridge> Yes, there is even an auto folder insidd 13:00 < bridge> Yes, there is even an "auto" folder inside 13:01 < bridge> does your phone not offer a internal file manager? 13:01 < bridge> i dunno wtf ZArchiver is, but maybe u didnt give it enough permission 13:02 < bridge> or try with USB cable on pc 13:02 < bridge> The internal one doesnt even let me see the com.ddnet.org folder or any other stuff inside data 13:03 < bridge> that works but im 800km away from home 🥲 13:03 < bridge> do it in a public library xd 13:08 < bridge> You need to explicitly give file manager apps permission to access each other apps' storage 13:58 < bridge> Can someone explain me why discord is full about complaints that people get banned for vpn? What about the people that did not find the discord and just started another game instead? 14:02 < bridge> what? 14:07 < bridge> @jupeyy_keks i asked for advice and did the exact opposite https://github.com/MilkeeyCat/meraki/commit/a538a63db31730ddf5d3605696dc44d47ec7a9bc :lol: 14:10 < bridge> i mean... it's not like we have a explicit motivation to improve player retention. 14:11 < bridge> not that different than joining the game, get thrown somewhere random, can't move, quit and delete 14:12 < bridge> that's totally fine, if you like that version more then it maybe fits your coding style better 14:15 < bridge> <0xdeen> yeah, it‘s pretty sad. reliable vpn detection seems expensive 14:15 < bridge> if I had three version of CodeGen with different arch, rust would generate code for each version, ye? 14:16 < bridge> if I had three version of CodeGen with different archs, rust would generate code for each version, ye? 14:16 < bridge> if I had three versions of CodeGen with different archs, rust would generate code for each version, ye? 14:16 < bridge> It can, doesnt mean it will afaik 14:16 < bridge> It can, doesnt mean it will afair 14:17 < bridge> ```rust 14:17 < bridge> match arch { "amd64" => CodeGen::::new(scope) 14:17 < bridge> .compile(stmts, &args.output) 14:17 < bridge> .unwrap_or_else(|e| giveup(Box::new(e)));, 14:17 < bridge> 14:17 < bridge> "x86" => CodeGen::::new(scope) 14:18 < bridge> .compile(stmts, &args.output) 14:18 < bridge> .unwrap_or_else(|e| giveup(Box::new(e))); 14:18 < bridge> 14:18 < bridge> } 14:18 < bridge> ``` 14:18 < bridge> 14:18 < bridge> it doesn' 14:18 < bridge> ```rust 14:18 < bridge> match arch { "amd64" => CodeGen::::new(scope) 14:18 < bridge> .compile(stmts, &args.output) 14:18 < bridge> .unwrap_or_else(|e| giveup(Box::new(e)));, 14:18 < bridge> 14:18 < bridge> "x86" => CodeGen::::new(scope) 14:18 < bridge> .compile(stmts, &args.output) 14:18 < bridge> .unwrap_or_else(|e| giveup(Box::new(e))); 14:18 < bridge> 14:18 < bridge> } 14:18 < bridge> ``` 14:18 < bridge> 14:18 < bridge> in this case it will generate for X86 and Amd64 14:18 < bridge> ```rust 14:18 < bridge> match arch { "amd64" => CodeGen::::new(scope) 14:18 < bridge> .compile(stmts, &args.output) 14:18 < bridge> .unwrap_or_else(|e| giveup(Box::new(e)));, 14:18 < bridge> 14:18 < bridge> "x86" => CodeGen::::new(scope) 14:18 < bridge> .compile(stmts, &args.output) 14:18 < bridge> .unwrap_or_else(|e| giveup(Box::new(e))); 14:18 < bridge> 14:18 < bridge> } 14:18 < bridge> ``` 14:19 < bridge> 14:19 < bridge> in this case it will generate for X86 and Amd64? 14:19 < bridge> VPN detection without intel is a wild guess and ip range updates are announced every second, so ip intel is super hard tho 14:19 < bridge> it will probably not write your whole compiler again 14:19 < bridge> There are several techniques to "guess" if its likely that this IP is a vpn/proxy whatsoever, but its always a guess 14:19 < bridge> but this match will likely go in 14:19 < bridge> Yes because match 14:19 < bridge> :owo: i Type so slow on Phone gg 14:22 < bridge> 😠 14:25 < bridge> But it suddenly good really bad? Something must have happened. And are the amount of false positives really worth it? How many servers have it on? 14:26 < bridge> But it suddenly got really bad? Something must have happened. And are the amount of false positives really worth it? How many servers have it on? 14:36 < bridge> I love how the users in #8283 are always magically crippled in just the right ways that would make any proposal except the original PR usable 14:36 < bridge> https://github.com/ddnet/ddnet/pull/8283 14:52 < bridge> We enabled it on all servers again, that's the increase. 14:52 < bridge> 14:52 < bridge> No we don't really think it's worth it, we do have a couple ideas to make it less impactful/disable it again. 14:53 < bridge> 14:53 < bridge> Most if not all servers should have it on. 14:57 < bridge> time to merge the original pr! 14:59 < bridge> users can use html for sure, your point stands in a one dimensional conparison 14:59 < bridge> added a second dimension, text length, broadcast length 14:59 < bridge> where html is worse 15:01 < bridge> hex colors allow more colors than 10^3, there you go another dimension 15:01 < bridge> I'm for extending it to hex 15:01 < bridge> an xml subset allows composing multiple future effects like bold and italic and even text size 15:01 < bridge> there you go another dimension 15:02 < bridge> complexity and mainainability of a nieche feature 15:02 < bridge> nieche was rly a thinker 15:02 < bridge> where the initial proposal was just color 15:02 < bridge> Nietzsche kek 15:02 < bridge> ditto, I don't think this feature will be used, thus can be discarded for maintainability reasons all the same 15:03 < bridge> this is getting seemingly nowhere. 15:03 < bridge> you said yourself that you don't want a xml dependency 15:04 < bridge> now you did a 180 gedree 15:04 < bridge> degree 15:04 < bridge> I don't want a full xml parser in there, I don't mind a small recursive descent parser 15:04 < bridge> And unlike you I seem to be able to be convinced by good arguments 15:05 < bridge> which one did you deem good? 15:05 < bridge> time to write one more parser :justatest: 15:05 < bridge> serious question 15:05 < bridge> catto woke when someone said parser haha 15:06 < bridge> Milkeey be writing C++ parsers on weekends 15:06 < bridge> composability and not having to use the long span tag from html 15:06 < bridge> i get pings on words: assembly, lexer, parser like Tsin on ddmax 15:06 < bridge> Based 15:06 < bridge> that's for sure a good point, I mean it's also good to easily define where color actually ends 15:06 < bridge> Rly does tsin have that? Xd 15:07 < bridge> and it can also be used in a future server pushed ui extension we are also planning 15:07 < bridge> idk but i never seen someone mention ddmax without Tsin message after it 15:07 < bridge> lmao 15:07 < bridge> how is coloration currently reset? just set to white? 15:07 < bridge> I think it’s cool Tsin is still playing after all this time 15:08 < bridge> The broadcaster sets it back to white 15:08 < bridge> `Normal text ^900Red text ^999Normal text 15:08 < bridge> `Normal text ^900Red text ^999Normal text` 15:08 < bridge> good points 15:13 < bridge> wonder whether it makes sense to start thinking now about dynamic ui elements already and whether ddnet is moving towards becoming a library in the end, super flexible in all directions, kind of like a modding toolkit, or whether it's a straight forward implementation towards some goal that is not a library in the end. 15:13 < bridge> or maybe the goal might be to jast have more interesting options for mappers 15:13 < bridge> just 15:14 < bridge> with ui elements 16:07 < bridge> DDNet > Among Us 😄 16:07 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268208351058071563/image.png?ex=66ab9691&is=66aa4511&hm=7fb9f5678dbc6654c6297d876b1d171db55d88ae0d3f873579d3086f68c65846& 16:35 < bridge> epyc 16:52 < bridge> we have come so far 17:00 < bridge> `scrcpy -M --forward-all-clicks` 17:00 < bridge> 17:00 < bridge> i have never seen a mouse cursor in android yet. looks so weird xD 17:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268221983401967616/image.png?ex=66aba343&is=66aa51c3&hm=cd4f21b4cb334889e175f2bd1271c05876f4b7055613cda6751ee2487a96d254& 17:02 < bridge> anyway, editor works for me on android. for forgottencat it seemed to have crashed once 17:35 < bridge> on a non-rooted phone i also don't get it to work xd 17:37 < bridge> `If the application is debuggable you can use the run-as command in adb shell` 17:37 < bridge> i should try that out 17:37 < bridge> maybe we can ship ddnet with debuggable on 17:40 < bridge> I need to write a script that auto suspends my laptop 17:49 < bridge> apparently this file manager can do that: 17:49 < bridge> https://play.google.com/store/apps/details?id=com.folderv.file 17:49 < bridge> 17:50 < bridge> i dont find any open source alternative 17:51 < bridge> The default Files app should work to access apps' internal storage on newer Android versions. It's also seems possible to enable the legacy storage behavior with adb, so all other apps can access an app's files. https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/ 17:51 < bridge> i can read them 17:51 < bridge> but not move files into them 17:53 < bridge> i find a media dir only when moving files: 17:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268235175347617975/image.png?ex=66abaf8c&is=66aa5e0c&hm=8a45ccb85484f58f27a9cb7e0fe730714406103dd94cc5aa5a85b0a6751dc441& 17:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268235175645544538/image.png?ex=66abaf8c&is=66aa5e0c&hm=50682a6020fbda3e4bfd85cb6f20631a6dada6d879b35a29d986af320ac54440& 17:53 < bridge> i wonder if we can use that dir instead 😄 18:00 < bridge> but in the end 18:00 < bridge> it doesn't even matter 18:00 < bridge> Hmm, maybe we should use the external storage as config dir if available, I don't know how common it is for the external storage to be not available 18:01 < bridge> we already do that 18:01 < bridge> it's this emulated storage that can combine sdcards and normal storage 18:02 < bridge> ah, true, we already do, so it should be possible to write there as well 18:02 < bridge> > These directories include both a dedicated location for storing persistent files, and another location for storing cache data. Although it's possible for another app to access these directories if that app has the proper permissions, the files stored in these directories are meant for use only by your app. If you specifically intend to create files that other apps should be able to access, your app should store these files in the shared storage pa 18:02 < bridge> https://developer.android.com/training/data-storage/app-specific 18:02 < bridge> > If you specifically intend to create files that other apps should be able to access, your app should store these files in the shared storage part of external storage instead. 18:03 < bridge> Doesn't seem like the shared storage is meant for this though, mostly for media that the app creates 18:03 < bridge> do we care about that? 18:04 < bridge> more like, it simply doesn't work that way because config files are not media etc. 18:04 < bridge> but how does nextcloud do it then? 18:04 < bridge> i can see all my files there 18:04 < bridge> unpack the apk and check the manifest 18:05 < bridge> maybe there is a way to specify that other apps can access the files 18:06 < bridge> how can i unbinary the manifest? 18:07 < bridge> but they store everything in Android/media 18:08 < bridge> but i feel like it doesnt work from NDK. which is already annoying 18:08 < bridge> i hate this trash OS 😬 18:08 < bridge> yeah, using that might be the best option to make it accessible to users 18:08 < bridge> but yeah, probably not easy with SDL+NDK 18:14 < bridge> porting ddpg to android was pretty easy, rust makes it very easy. 18:14 < bridge> 18:14 < bridge> But i use a native activity currently and cant disable navigation it seems xD 18:15 < bridge> but _even_ with rust it was too annoying xD 18:15 < bridge> When JupstarOS written in Rust? 😏 18:16 < bridge> i am in 18:16 < bridge> jupsti please collab with milkeey and create a new OS with your own backend 18:16 < bridge> jupsti please collab with milkeey and create a new OS with your own GFX backend 18:20 < bridge> pls don't try to make another os, you'll have to implement cpp exceptions in kernel :troll: 18:22 < bridge> i have an idea about a dream os, but i think it would at least take like 20 years as solo dev 18:22 < bridge> so dunno if i want to risk it 😬 18:23 < bridge> will it be in C :owo: 18:23 < bridge> end of year i worked ~2 years on ddpg (-1 month corona infection) 18:23 < bridge> 18:23 < bridge> and that thing still sucks hard 18:23 < bridge> it's insane how time consuming dev is xd 18:24 < bridge> i thought you wrote it all in 6 months xd 18:24 < bridge> i wish xd 18:24 < bridge> that was like my goal time 18:25 < bridge> i started somewhere januar 2022 18:25 < bridge> and i think except for the corona infection i didnt have huge breaks from it 18:25 < bridge> a week holiday here and there but nothing more 18:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268245491368464534/image.png?ex=66abb928&is=66aa67a8&hm=fb97098995ef0409dd42cc15434865682c05eac0b28d4258339faf88145dde79& 18:34 < bridge> :giga_chad: 19:01 < bridge> we allow /save in practice? never knew 19:02 < bridge> what is the sense of that 19:02 < bridge> bro i get baited hard 19:06 < bridge> :gigachad: 19:16 < bridge> @heinrich5991 DDPer took F-DDrace, named it Block, and advertises it in DDNet master without being able to connect 19:16 < bridge> Same with other servers (SunnyLand) 19:16 < bridge> Why do we even support those, when they are not compatible? 19:17 < bridge> They should host their own masters if they don't want any vanilla(ddnet) to join 19:18 < bridge> he already plans to remove them 19:18 < bridge> Good, and it's also weird they call themselves DDNet 19:20 < bridge> wtf, just checking their site with a vpn, so weird, and u can buy all amounts of extras 19:21 < bridge> Yup, they use F-DDrace 🤣 19:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268257821087109220/image.png?ex=66abc4a3&is=66aa7323&hm=c1986c564d9a2856324fd158685333a8ba465f1a4a716e7c3b1efcf17fb06e12& 19:23 < bridge> dunno about that one 19:25 < bridge> @jupeyy_keks is there anyway to not use android/data for usr files? 19:25 < bridge> the other directories are fully accesible as im aware 19:26 < bridge> not that i am aware of 19:27 < bridge> we could add a file downloader to the client, then u could download anything into that path :lol: 19:28 < bridge> I wouldn't even plan it, or give them the ability register without being able to join with ddnet 19:29 < bridge> We are not here so they can use DDNet's list if we can't join, imo 19:29 < bridge> Code is public, they can set up their own master if they want to make their own game 19:30 < bridge> yes 19:31 < bridge> oh, they dont use f-ddrace appearently 19:31 < bridge> seems like ddnet based 19:32 < bridge> Yeah, I was also opposed to helping them much because of this 19:32 < bridge> Just drop it ? 19:32 < bridge> Why are carrying this around 19:32 < bridge> that would be cool, android 11 > has this issue so its wide i guess 19:33 < bridge> yes it's ddnet base not f-ddrace cuz their server are 0.6 base 19:33 < bridge> Heinrich will drop it soon 19:33 < bridge> @learath2 at this point, if you wanna be really nice, you can tell them they have like a week to set up their own master, then they're removed 19:33 < bridge> ye 19:33 < bridge> and the reason they use ddnet master cuz they use it to advertising their server and filter it in their client to show only their own server 19:34 < bridge> LOL, so why don't do just allow all clients and apply for a community? 19:34 < bridge> to prevent bots and other cheats 19:35 < bridge> Ah, so people have to download some thirf party (maybe) virus just to play? 19:35 < bridge> Seems weird 19:35 < bridge> it was my way to prevent cheats but that register to master is they own way you know I don't work with them anymore so don't know exactly what's their plan 19:35 < bridge> Oh didnt know u worked for them, but i see 19:35 < bridge> yeah something like that but it's just a default ddnet client with a few changes in client id and etc 19:36 < bridge> yeah about 6 or 7 years ago i think 19:36 < bridge> useless af 19:36 < bridge> I was work with ddnet persian that time I was just a 17 or 18 yo kid that I copy and wrote a few things 19:37 < bridge> yeah I already create a client that can bypass their anti bot system or anything they call it don't know 19:37 < bridge> I think that's everything they do, i dont see anything special, interesting or new things. Only copied stuff 19:37 < bridge> but they modifed their crc too I don't know what's that so I can load map just can send chat by using f1 console 19:38 < bridge> who even owns this 19:38 < bridge> well in our country we have about 200 players that playing ddper and my server have ~40 or something and we both use custom client 19:38 < bridge> someone named Quick 19:38 < bridge> or Sj 19:38 < bridge> But why? 19:38 < bridge> something like that 19:38 < bridge> This sash guy ? 19:38 < bridge> my client cuz it's acount base 19:38 < bridge> bot client? 19:38 < bridge> i don't know their reason 19:38 < bridge> why do you need a custom client for accounts 19:39 < bridge> no no he's not Sash 19:40 < bridge> well it's using nodejs API for authentication and it's have some features like able to type in persian language and a few more features so I had to create my own client to maybe I be able to beat ddper and have players in my servers 19:40 < bridge> but players love their points on ddrace more than features on servers 19:40 < bridge> Ahh, okay i see 19:41 < bridge> I'm working on ddnet for 10 years I think maybe more and I worked with all three biggest servers as perian pro, ddper and my current server as iranddnet 19:43 < bridge> Is your server in ddnet's master? 19:45 < bridge> no it's not 19:45 < bridge> haha wtf is `g?` in vim xDD 19:45 < bridge> I think it's not right to register it in case that you have to download my client to play 19:45 < bridge> i love random bs 19:46 < bridge> I think it's not right to register it on ddnet masters in case that you have to download my client to play 19:46 < bridge> Oh, so your servers aren't registered at all, and your client provides a list of servers? Or how can I imagine it? 19:46 < bridge> Rot13 not random bs 19:46 < bridge> xdddd 19:46 < bridge> what do you need it for lmao 19:46 < bridge> do you remember old way of ddnet serverlist it's directly send request to servers with ip and port 19:46 < bridge> Idl for random bs 19:47 < bridge> ah yes, i thought so 19:47 < bridge> so I change ddnet to it's old version for loading browser but I have plan to edit mastersrv and run my own master server 19:47 < bridge> Nice! 19:47 < bridge> so it's better and more optimize than my current serverbrowser 19:47 < bridge> Discord truly is an engineering marvel 19:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268263894523318282/IMG_0933.png?ex=66abca4b&is=66aa78cb&hm=933be05bc7c84310fc5efbdbb77d122a7bd1f25c14d4e0519288ffa7fb3de481& 19:50 < bridge> Sounds good 19:50 < bridge> Yep 19:52 < bridge> and I love your F-DDRace, you really spend time for it, I didn't use it but as I see on your github I really loved what you have done there 🤟 19:53 < bridge> Thank you! Appreciate it :heartw: 19:53 < bridge> A lot of hours spent there.... 19:53 < bridge> Yeah i'm sure you spend too much time to make it 19:54 < bridge> Lot of fixes, finetuning, hours of debugging, optimizing... Sleepless nighs 🤣 19:54 < bridge> nights* 19:54 < bridge> I can imagine that situation specially sleepless nights 😄 19:54 < bridge> Anyways I'm really proud of the result, even after more than 6 years I still like to work on it 19:54 < bridge> I've been there for months 19:54 < bridge> Haha :D 19:55 < bridge> you should it's still unique and have everything that a Block server ned to have 19:55 < bridge> Just recently I have added a voting menu and the tavern, so you can drink Grog to increase your permille lvl 19:55 < bridge> even more than what's it's need to have 19:55 < bridge> yeah I check your discord mentions 😄 19:55 < bridge> Not everything, a really proper account system implementation using SQL would be nice 19:56 < bridge> I've done that before it's just need time to do it's not hard just take too much time 19:56 < bridge> But my filebased system works great aswell, handling many special cases tho... 19:56 < bridge> and for your server it's multiple to 10 maybe cuz have too much things to implement and etc 19:56 < bridge> Yea, it's not specifcally hard and ddnet has a good implementation, but I am too lazy, might create 100 new bugs... 19:56 < bridge> 🤣 19:57 < bridge> yeah in that case you better to not work on same branch maybe it's better start a test server and work on that cuz mysql always gonna be buggy as I remember 19:57 < bridge> Yea, and the codebase is not as perfect as I wished it to be, but it's fine and I can work with it good enough 19:58 < bridge> for first time I spend 3 or 4 days to add login, register, logout to ddnet 😄 19:58 < bridge> Especially in the beginning it can take a lot of time, you need a lot of base stuff to work with until you can create actual things quickly 19:58 < bridge> old version of ddnet's mysql was better to implement of account system in latest changes it's a bit hard and tricky maybe 19:58 < bridge> What has changed? 19:58 < bridge> yeah exactly 19:59 < bridge> let me see 19:59 < bridge> before we get scoreworker and etc 20:00 < bridge> when we had game/server/score folder everything was way easier at least for me 20:01 < bridge> that `sql_score` file were epic to add our own implementation 20:01 < bridge> that `sql_score` file were epic to add your own implementation 20:02 < bridge> @learath2 do you have in your book collection something about operating systems? Xd 20:02 < bridge> I think I can grasp what you mean 20:03 < bridge> @fokkonaut and it's my client that I said before about it 20:04 < bridge> LOL 20:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1268268067348156508/image.png?ex=66abce2e&is=66aa7cae&hm=434faba84ec03ad59a1053762fa014e9f071fd01375b89ade64bce6a9a02f28b& 20:04 < bridge> in new version of mysql that not work on Windows 😒 is possible to add new things but I little required more work to do 20:04 < bridge> haha 😄 20:05 < bridge> in new version of mysql that not work on Windows 😒 is possible to add new things but a little required more work to do 20:08 < bridge> I see, client must have been a lot of work, but too much imo LOL 20:08 < bridge> yeah I really agree with you on that 😂 20:09 < bridge> But that looks a lot like DDPer, with Block, SunnyLand, etc 20:10 < bridge> So DDPer is yours? 20:10 < bridge> Or you share the same client? How does it work? 20:13 < bridge> Hm, what sort of information are you looking for? Making an OS? 20:14 < bridge> what os consist of, how the parts are connected with each other and ye how to make an os xd 20:14 < bridge> Hm. I don’t remember if I do, let me check 20:14 < bridge> https://lwn.net/Kernel/LDD3/ this is pretty decent if you want to write a linux device driver 20:15 < bridge> deen when servers need support 20:16 < bridge> https://pages.cs.wisc.edu/~remzi/OSTEP/ I have this bookmarked but I didn’t read much of it yet. I did refer to it a couple times though 20:16 < bridge> yes 20:18 < bridge> @diariesvexar 20:20 < bridge> The only other OS book I’ve heard good things about is the Dinosaur book, but I literally read none of it, can’t give any opinion 20:31 < bridge> Yeah server list is like ddper but that sunnyland servers cuz our players really love that map don't know why 😐 so I run 2 ports of that single map 😄 20:31 < bridge> no it's not mine I have no control on ddper servers 20:31 < bridge> mod's base is mine kind of 20:32 < bridge> no we don't share anything I have my own server and client they have their own 20:32 < bridge> sorry was eating my dinner 😦 20:33 < bridge> but anyway this days I just busy with learning UE and spend less time on ddnet for now 20:40 < bridge> I see 20:40 < bridge> yep 20:41 < bridge> maybe someday I realase my own game hahahaha 😄 20:41 < bridge> maybe someday I release my own game hahahaha 😄 20:53 < bridge> thanks, ill check 😄 21:07 < bridge> Check out the dinosaur book too, you can lmk if its any good 22:37 < bridge> https://www.stopkillinggames.com/ interesting 22:37 < bridge> petition at european level to prevent vendor to just shut down servers and let people who bought a game with nothing left 23:55 < bridge> I have no idea why people assume I have any bot or any setting to ping me on any word 23:55 < bridge> I just from time to time use search in right upper corner ^^ 23:55 < bridge> So no I don't know about everything related to what u accuse me of 😛 lots of things will always slip through my attention (not that I want to know everything or change that) 23:55 < bridge> also I don't reply when someone writes an opinion (good or bad one) 23:55 < bridge> I only reply when someone writes it intentionaly to discredit something or someone related to me =] especialy when someone does it only for attention and its not related to any topic (just to make it clear your mentioning now I don't see as offending or to seek attention xD I see it just as your observation nothing more =] ) 23:55 < bridge> oh and btw its easier to notice when I reply to things related to me because I don't rly write that much on ddnet discord - but when I do then I leave a wall of text muahahahaahaha evil me ^^)