06:12 < bridge> im asking again cuz i got ignored last time 06:12 < bridge> 06:12 < bridge> ```cpp 06:12 < bridge> // Each player can also have a spectator char whose name plate is displayed independently 06:12 < bridge> if(GameClient()->m_aClients[i].m_SpecCharPresent) 06:12 < bridge> { 06:12 < bridge> const vec2 RenderPos = GameClient()->m_aClients[i].m_SpecChar; 06:12 < bridge> RenderNamePlateGame(RenderPos, pInfo, 0.4f); 06:12 < bridge> } 06:12 < bridge> // Only render name plates for active characters 06:12 < bridge> if(GameClient()->m_Snap.m_aCharacters[i].m_Active) 06:12 < bridge> { 06:12 < bridge> const vec2 RenderPos = GameClient()->m_aClients[i].m_RenderPos; 06:13 < bridge> RenderNamePlateGame(RenderPos, pInfo, 1.0f); 06:13 < bridge> } 06:13 < bridge> ``` 06:13 < bridge> why is this not if else? 06:27 < bridge> I think some mod can have both at the same time 06:28 < bridge> You can see the first commit that has those 06:36 < bridge> bit weird but oke 06:41 < bridge> what mod? why is there no comment then? 06:41 < bridge> i would remove it 06:41 < bridge> `Client-Render-SpriteScale-Anti-Static -> roby/Client-Render-SpriteScale-Anti-Static` 06:42 < bridge> if its possible to do before i dont want to be the one to remove the feature 06:42 < bridge> `Client-Render-SpriteScale-Anti-Static -> roby/Client-Render-SpriteScale-Anti-Static` 06:42 < bridge> i havent heard of multiple name plates 06:42 < bridge> oo new roby branch 06:42 < bridge> spec char should only exist when char is not there 06:43 < bridge> ¯\_(ツ)_/¯ 06:43 < bridge> how do you add a custom sound? 06:43 < bridge> i cant tell if i did it correctly or my wv is just broken because it fails to open 06:44 < bridge> shame i dont think haswell vulkan drivers support fsaa 06:44 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357939016443498576/image.png?ex=67f206c2&is=67f0b542&hm=26283d48dca81b1b4f2c3a196de91d1b4e2bcf9ee7e398fc006c1db47a59984b& 07:01 < bridge> these 2 files are almost identical, why? 07:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357943112906833920/image.png?ex=67f20a93&is=67f0b913&hm=b7c84665c17597e7488c332eaf52bb127a641734a5d4a329e570540c81bab8ec& 07:34 < bridge> @robyt3 for doing EProtocol, there is a map between each item and bool 07:34 < bridge> do i add a custom class to handle this (with no overhead) 07:34 < bridge> do i add a templated class (EnumMap) to handle enum, type maps (with no overhead) 07:34 < bridge> do i raw dog it (just use an array and lots of static casts) (with no overhead) 07:34 < bridge> do i use a (unordered_)map to be clean (with overhead) 07:49 < bridge> https://github.com/ddnet/ddnet/pull/9582 07:49 < bridge> Can someone restart the auto merge plz? 08:09 < bridge> ```cpp 08:09 < bridge> for (EProtocol Protocol : CEnumIterator()) 08:09 < bridge> { 08:09 < bridge> if(aOldProtocolEnabled[Protocol] == m_aProtocolEnabled[Protocol]) 08:09 < bridge> { 08:09 < bridge> continue; 08:09 < bridge> } 08:09 < bridge> if(m_aProtocolEnabled[Protocol]) 08:09 < bridge> { 08:09 < bridge> m_aProtocols[Protocol].SendRegister(); 08:09 < bridge> } 08:09 < bridge> else 08:09 < bridge> { 08:09 < bridge> m_aProtocols[Protocol].SendDeleteIfRegistered(false); 08:09 < bridge> } 08:09 < bridge> } 08:09 < bridge> ``` 08:09 < bridge> i do believe i am doing advanced cpp for no reason 08:41 < bridge> ипрм рои мопм 08:46 < bridge> $english 08:46 < bridge> Hi! Most of us communicate in English. If you’re having trouble with English, use to help you out. 08:46 < bridge> i wana be a code owner xd 08:46 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357969666605187172/image.png?ex=67f2234e&is=67f0d1ce&hm=79728826e52da0789ef145b53964da0918f98fe0f5cfa7ae1627480f35d8590c& 08:48 < bridge> @heinrich5991 can i be codeowner of src/game/client/components/nameplates.* 08:51 < bridge> darn they went offline 08:55 < bridge> oh wait nvm u have to have write access 09:26 < bridge> i thought my touchpad stopped working but turns out i was sitting on my plugged in mouse xd 09:26 < bridge> holding down lclick 09:50 < bridge> Server/entities 09:50 < bridge> 09:50 < bridge> Client/Prediction/entities 09:50 < bridge> We don't mix em 09:50 < bridge> Gm btw, solly productive af today! 09:55 < bridge> not the implementation but the structure 09:56 < bridge> if you add a new variable (with getters and setters) to the server, it would make sense to add it to client prediction 09:56 < bridge> that to me sounds like something that should be interfaced 09:56 < bridge> https://tenor.com/view/funny-cat-gif-26552422 09:56 < bridge> i just woke up 10:26 < bridge> привет 10:26 < bridge> Hello 10:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357995405106872401/image.png?ex=67f23b46&is=67f0e9c6&hm=595aabc3eb4e0f70f1a1a3b46bb48b0950d1efe9993135c3a4353925bb1df29a& 10:29 < bridge> why on gods many colored earth? 10:33 < bridge> You can add yourself to the CODEOWNERS file and PR it, I suppose the file should be sorted in ascending order to clear this up immediately 10:33 < bridge> at this point just auto everything :PepeCringe: 10:36 < bridge> I'm not a write access and I shouldn't be 10:36 < bridge> The thing I read said I had to be 10:38 < bridge> I see, I think GitHub generally prevents you from pinging non-repository users 10:39 < bridge> well, you can ping them, but you can't assign to issues or request a review unless they commented on it or are a user with write access 10:41 < bridge> No sure, maybe that also needs a discussion. I've used an array and casts before because it's simple and no overhead. https://github.com/ddnet/ddnet/blob/064ae962eb46cc807d0b6b40a0950e8555380c01/src/game/client/components/touch_controls.cpp#L804-L854 10:44 < bridge> Can you rebase the branch on current master? Auto merge doesn't work because it tries to run the old Ubuntu CI 10:45 < bridge> oopsie 10:46 < bridge> lemme se 10:46 < bridge> see 11:05 < bridge> This was done almost 2 decades ago, but iirc the reason was to unify lambda and function declaration syntax 11:12 < bridge> This looks promising 11:12 < bridge> https://github.com/Neargye/magic_enum 11:12 < bridge> but idk since we're in c++ 11:13 < bridge> but idk since we're usin c++ 11:15 < bridge> I often forget how nasty metaprogramming looks in C++ 11:48 < bridge> ddnet-rs had a wrong display on the low screen resolutions. 11:49 < bridge> what does that mean 11:49 < bridge> the health and armor bar is really big 11:50 < bridge> it is nearly full of 1/4 of the screen 11:50 < bridge> it depends on your DPI, you can change it with `cl.render.ingame_ui_scale ` (float) 11:50 < bridge> I remember there was a bug, dunno if you have to reset the config 11:50 < bridge> But I tested it on my phone and looked good afaik 11:51 < bridge> I had a screenshot of it 11:51 < bridge> You can always share it with me if you want. I can later take a look with default settings 11:51 < bridge> What resolution do you have? 11:52 < bridge> I have done an overcomplicated no overhead solution. I don't particularly like casting back and forth, feels like you might as well just use an enum 11:52 < bridge> 1366x768 11:52 < bridge> Ok ty 11:52 < bridge> Truly weird resolution 11:52 < bridge> Ah 11:52 < bridge> not 1/4 11:52 < bridge> I have done an overcomplicated no overhead solution. I don't particularly like casting back and forth, feels like you might as well just use an enum. Judge however you like 11:52 < bridge> but truly much bigger than vanilla 11:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358016605858300016/Image_22801310979008.png?ex=67f24f05&is=67f0fd85&hm=aae409a8035c2f35520946cd1990291683e1eefe2d3cc51125d5d44478887cfa& 11:53 < bridge> idk why 11:53 < bridge> Yeah it defs doesn't fit in your case 11:54 < bridge> How does normal vanilla look like for you? 11:55 < bridge> How does patiga get pinged 11:55 < bridge> Let me find a screenshot... 11:55 < bridge> How does patiga get pinged. I think you can get requested for review wo write 11:55 < bridge> Maybe the thing I read was wrong 11:55 < bridge> Maybe you are a detective and find smth you should not know 😂 11:56 < bridge> He probs has it private 11:56 < bridge> Private write access? 11:56 < bridge> I mean you can hide that you are a member of a organization 11:57 < bridge> Ah I see 11:57 < bridge> Why would you want to do that 11:57 < bridge> Badges r cool 11:58 < bridge> I saw that but I rolled my own solution 11:58 < bridge> that's what i mean we're using c++ 😄 11:59 < bridge> Hm 11:59 < bridge> I cannot find a screenshot 11:59 < bridge> always reinventing the wheels 11:59 < bridge> I'm going to PrintScreen. 12:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358018615387099176/Image_23290784930072.png?ex=67f250e4&is=67f0ff64&hm=316076678688b7a863f3535250244b7a0c655b7dd8dc77777dc15ecbb53b6ac0& 12:01 < bridge> Oh wow so much smaller, ok 12:01 < bridge> So this is vanilla health bar 12:01 < bridge> I mean I'll do it and see if it works 12:01 < bridge> Best map 12:01 < bridge> It's the shit 12:01 < bridge> I wonder why ddnet-rs causes this problem 12:02 < bridge> But 12:02 < bridge> are we now in favor of always using `unsigned` or `unsigned int` ? I learned to always use `unsigned int` but I want to do this consistent with tw "corporate" guidelines 12:02 < bridge> I cannot realize most of Rust code 12:02 < bridge> Because it tries to do DPI related sizes. 12:02 < bridge> 12:02 < bridge> On a phone it's harder to read e.g. the system time in your screenshot 12:02 < bridge> Since the screen is smaller 12:02 < bridge> But I set a minimum scale factor, and maybe that minimum is too hight 12:02 < bridge> But I set a minimum scale factor, and maybe that minimum is too high 12:03 < bridge> ~~use uint32_t~~ 12:03 < bridge> :nouis: 12:03 < bridge> Well that is actually the correct way to go 12:04 < bridge> For new code use proper variable sizes 12:05 < bridge> When I learned int64_t for the first time, I found tw int64 is long long, but int64_t is long. 12:06 < bridge> Ah yeah I remember trouble like that 12:07 < bridge> I felt strange, and then I found that long long equals long in the GCCx64. 12:07 < bridge> I meant the range. 12:09 < bridge> Ah 12:09 < bridge> So i thought that's why there are int32_t and int64_t. 12:13 < ws-client> how do i read config variables form the antibot module? 12:19 < bridge> the return type of `sizeof` is `unsigned int`, hm 12:20 < bridge> isn't it size_t? 12:21 < bridge> https://en.cppreference.com/w/cpp/language/sizeof 12:21 < bridge> this is at least what my IDE tells me, but I feel like you are right 12:21 < bridge> > The result of a sizeof expression is a constant expression of type std::size_t. 12:21 < bridge> Do you run on 32bit? XD 12:21 < bridge> no? 12:22 < bridge> maybe I am compiling for it xD 12:22 < bridge> this is from `map.h`: ` virtual int GetDataSize(int Index) const = 0;` 12:22 < bridge> Whould be size_t 12:22 < bridge> this is from `map.h`: ` virtual int GetDataSize(int Index) const = 0;` 12:22 < bridge> Should be size_t 12:24 < bridge> Ig, except the map format explicitly only supports u32 or similar 12:25 < bridge> so should be unsigned int at least, int might overflow to negative values 12:28 < bridge> what does `int * unsigned` do? is this an unsigned or an int then oO 12:28 < bridge> should be int, feeling like it 12:33 < bridge> there wa explicitly logic added to return 0 instead of negative numbers, because otherwise it would return error codes 12:34 < bridge> gives you an int 12:35 < bridge> because the operator is defined on the int probably 12:35 < bridge> and -5 * 30 -> 150 12:35 < bridge> so its probably an int either way 12:35 < bridge> and -5 * 30 -> -150 12:39 < bridge> I don't think we do that, so the interface might not have it 12:41 < bridge> IDEs usually evaluate all the way to fundamental types. `size_t` is defined to be an unsigned integer type large enough by the implementation 12:42 < bridge> This problem is solved for now, I had to just be a caucious there 12:44 < bridge> This problem is solved for now, I had to just be caucious there 12:44 < bridge> didn't you fix it already huh 12:45 < bridge> Hi guyz 12:45 < bridge> How should I upload a 1.5GB file for GitHub 12:46 < bridge> helllooo 12:46 < bridge> hi 12:46 < bridge> hey guys 12:46 < bridge> Hellou :3 12:46 < bridge> To figure this out you need to follow the integer promotion rules followed by the usual arithmetic conversions. 12:46 < bridge> 12:46 < bridge> In the case of int and unsigned, the overall result should be unsigned 12:46 < bridge> Just commit it? 12:47 < bridge> Apparently the max size is 100MiB 12:47 < bridge> LFS 12:47 < bridge> does github have an upload file size limit? Maybe lookup github LFS 12:47 < bridge> Or do you have other experience Teero? 12:47 < bridge> Github givrs some free lfs storage, if not enough you can also host your own 12:47 < bridge> Github gives some free lfs storage, if not enough you can also host your own 12:47 < bridge> Hmmm no but 100mb sounds so low. Is it a private repo? 12:49 < bridge> Ok is uploading 12:49 < bridge> let's see if it works 12:49 < bridge> https://docs.github.com/en/repositories/working-with-files/managing-large-files/configuring-git-large-file-storage 12:50 < bridge> I followed this 12:57 < bridge> > GitHub Free 2 GB 12:57 < bridge> > GitHub Free 2 GB 12:57 < bridge> (Maximum file Size), just FYI 13:04 < bridge> Uhh, I hope that is per repo? 😄 13:06 < bridge> I don't know, you have [the link](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-git-large-file-storage) 🙈 13:06 < bridge> I don't know, you have [the link]() 🙈 13:09 < bridge> whoever said that we should be making cleanup prs instead of features 13:09 < bridge> this is so much easier 13:09 < bridge> fix random shit 13:09 < bridge> hell yeah 13:31 < bridge> hi guys can we have like a thing to uuh disable /showothers sound because its quite annoying when theres 20 people 13:31 < bridge> Hellou :3 13:32 < bridge> what's /showothers sound 13:32 < bridge> <01000111g> u dont hear the others if they arent shown, are you on an old client? 13:35 < bridge> @sollybunny You can run clang-tidy locally btw, no need to debug with the CI 13:35 < bridge> ``` 13:35 < bridge> cmake -G Ninja -DCMAKE_CXX_CLANG_TIDY="clang-tidy" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. .. 13:35 < bridge> ninja clean 13:35 < bridge> cmake --build . --config Debug --target everything -- -k 0 >clang-tidy.log 13:35 < bridge> ``` 13:37 < bridge> most easy and normal CLI command 13:38 < bridge> I mean the transparent tees whenever you are in solo or in a team 13:39 < bridge> Don't look at the Android library build scripts :justatest: 13:40 < bridge> 👀 mmm im on a very underpowered machine right now 13:41 < bridge> but i should do that when im not, thankz 13:41 < bridge> `find . -type f \( -name "*.h" -o -name "*.cpp" \) -exec sed -i -E 's/\bvirtual\s+(.+?\s+override)/\1/g' {} +` removes all extra virtuals ;D 13:41 < bridge> Or don't set errors-as-warnings, then you get all erros on the first run 13:41 < bridge> Or don't set errors-as-warnings, then you get all errors on the first run 13:41 < bridge> Or don't set warnings-as-errors, then you get all errors on the first run 13:42 < bridge> the network python scripts are horrible 13:42 < bridge> i love when discord pasted downloads folder instead of the video im trying to copy 13:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358044316752150669/Untitled_video_-_Made_with_Clipchamp_59.mp4?ex=67f268d4&is=67f11754&hm=f0b9b0ce59d4ae9ae0b2ba1dc067c8f643ae326153d5ca5d7ad62a012c973104& 13:44 < bridge> guys lets post our downloads folders for no reason, first person to get accidently doxxed/canceled wins 13:44 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358044669438853211/image.png?ex=67f26928&is=67f117a8&hm=748c5fb31718caece0051174080c5421ce5f770978a4c69d8a9b9472d677b7dd& 13:54 < bridge> you want this? 13:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358047097055612949/96bEIu01.mp4?ex=67f26b6b&is=67f119eb&hm=7052351ad0d5d9668cee69cd4581bec39e9b9e9e3ae2344058afdcabc3441f44& 14:02 < bridge> Yes 14:36 < bridge> french what? 😂 15:01 < bridge> the fact that it is unsorted bothers me 15:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358064815515500756/image.png?ex=67f27beb&is=67f12a6b&hm=4e3a2ea781769127ff4843516f4c41b64ef6e74539026f3026c43e1e73cb898c& 15:05 < bridge> i blame @teero777 15:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358064942309314702/image.png?ex=67f27c09&is=67f12a89&hm=50fe89c6ba2b75e86648c3710201ecf891b580b414d3445e9f3838f769ca872c& 15:05 < bridge> bench bench bench 15:05 < bridge> all because of me 15:05 < bridge> melon check #tooling 15:06 < bridge> im getting more tps :D 15:06 < bridge> oh lord have mercy 15:06 < bridge> road to 250M tps 15:50 < bridge> Oh it's a great video trust 15:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358076382424465568/french-woman-watches-animals-get-filled-with-water.webm?ex=67f286b1&is=67f13531&hm=ae630e28e9ebd38db9cbd08036200fc9c387e188cef9f0b7cf1f841db082fd24& 15:50 < bridge> this is so #off-topic dont ban me 15:51 < bridge> sorted by hopes and dreams 15:52 < ws-client> @Solly (bun bun) i never understood people that do not clear their downloads folder after the download completed 15:53 < ws-client> https://zillyhuhn.com/cs/.1743861143.png 15:53 < bridge> wow 15:56 < bridge> the file just lives somewhere else 15:56 < bridge> my second folder for files is clean 15:57 < bridge> but the Downloads folder contains files 15:57 < bridge> That looks like adwaita 16:06 < bridge> adwaita? 16:06 < bridge> why would you wanta wait for ads? 16:06 < bridge> why would you want**a** **wait** for **ad**s? 16:26 < bridge> might change the network scripts to use long format strings so its readable by a non god teir progamer 17:25 < bridge> ba dum tss 17:25 < bridge> thank you 17:38 < bridge> @everyone steam gift 50$ - [steamcommunity.com/gift-card/pay/50](https://u.to/zPA3Ig ) 17:38 < bridge> sigh 17:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358103577066733719/image.png?ex=67f2a005&is=67f14e85&hm=e6e03ff4d67b8d50e645c5cadf24878653d36b9185d121c4bf8e95a8679477da& 17:38 < bridge> impossible that discord still didnt fix this 17:38 < bridge> just impossible 17:38 < bridge> people clicking obvious scams? 17:39 < bridge> ppl sending obvious scams 17:39 < bridge> i want my markdown style links >< 17:39 < bridge> plz dont take them away because of bad people ruining it 17:39 < bridge> this one doesnt even work 17:39 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358103812606263396/image.png?ex=67f2a03d&is=67f14ebd&hm=60000cbed05b1b262b80b7cd42e1f14fde99dfef663700e71d02c5cdad30e32e& 17:39 < bridge> sneam 17:39 < bridge> you can literally use discord automod to block "50$ gift" 17:39 < bridge> or any discord bot 17:39 < bridge> but ddnet staff is so slow 17:40 < bridge> i think tiny urls should be blocked and google dangerous link thing 17:40 < bridge> and warn on newly registered domains 17:41 < bridge> makes it hard to accidently trip the filter 17:41 < bridge> can be done w/ discord bot 18:09 < bridge> The value just changes, has it ever occured to you that we have already done these things? 18:09 < bridge> it didnt 18:09 < bridge> its always 50 dollar 18:10 < bridge> It's fine for like a month, then the next scam uses 50 euro gift, then it's 25 euro gift, then its 25 dollar gift 18:10 < bridge> 50 or 20 18:10 < bridge> then it's free game 18:10 < bridge> then it's free hacks 18:10 < bridge> then it's 30 dollar gift, then it's free nudes 18:10 < bridge> it has to be very hard to block new gift every month 18:10 < bridge> feel you 18:10 < bridge> but ive seen only 50$ 18:10 < bridge> @ryozuki do you think this code compiles? and if it does what will it output? 18:10 < bridge> ```rust 18:11 < bridge> struct Foo<'a> { 18:11 < bridge> field: &'a i32, 18:11 < bridge> } 18:11 < bridge> 18:11 < bridge> impl<'a> Foo<'a> { 18:11 < bridge> pub fn foo(&self) -> &'a i32 { 18:11 < bridge> self.field 18:11 < bridge> } 18:11 < bridge> } 18:11 < bridge> 18:11 < bridge> fn main() { 18:11 < bridge> let mut foo = Foo { field: &10 }; 18:11 < bridge> let tmp = foo.foo(); 18:11 < bridge> foo.field = &20; 18:11 < bridge> 18:11 < bridge> dbg!(tmp); 18:11 < bridge> } 18:11 < bridge> ``` 18:11 < bridge> the fact that they spam the same msg in every channel is already enough 18:11 < bridge> just direct block xd 18:11 < bridge> there is also the @heinrich5991 factor, what if someone legitimately wants to talk about a string containing "50$ gift"? 18:12 < bridge> I'm sure he can spend 8 hours with you on how the god given right to use the string "50$ gift" is not to be breached 18:13 < bridge> 50$ gift 18:13 < bridge> I spent 2 hours trying to find a regex that only catches unescaped attempts at trying to highlight everyone because he thought people should be able to talk about it 18:14 < bridge> 💀 18:14 < bridge> Why would anyone need to discuss @ everyone on the ddnet discord in a meta manner, I do not know, but I still had to figure out a way 18:16 < bridge> just making life harder for everyone 18:16 < bridge> on my server i blocked "stenmcommnunnity" and 50$ gift and havent seen these spam in long time 18:17 < bridge> I'm sure such decisions are much easier to make when there aren't ~27k members and 7 admins with very different sensibilities 18:18 < bridge> i dont see anyone buying 50$ gift for their grandma on ddnet server 18:18 < bridge> idk why would there be such discussion about this specific thing 18:18 < bridge> and I don't see any reason anyone should need to type @ everyone 18:19 < bridge> @everyone 18:19 < bridge> i mean it doesnt work 18:19 < bridge> just role permission 18:19 < bridge> but it was in every scam message for a bit, so it was a nice easy way to detect them 18:30 < bridge> the way a much small server is handling it is to match any previously seen scam msg 18:30 < bridge> because they always come in waves, the goal is to cut the wave as short as possible to prevent another wav ecoming 18:30 < bridge> this is why @everyoneshouldnt be matched xd 18:30 < bridge> also the bots never type and msg all channels at once and that is detectable, but it could be circumvented 18:31 < bridge> I personally would match it and just handle the few cases where it is some legitimate meta-discussion by hand 18:31 < bridge> i guess so 18:31 < bridge> i would get banend if i wasnt a part of this meta discussion 18:47 < bridge> rust pros and others I have a stupid question, why is it possible to call `work` function many times and mutate the struct later, shouldn't it be borrowed immutably for `'a`? :\ 18:47 < bridge> ```rust 18:47 < bridge> struct Foo<'a> { 18:47 < bridge> field: &'a i32, 18:47 < bridge> } 18:47 < bridge> 18:47 < bridge> impl<'a> Foo<'a> { 18:47 < bridge> pub fn work(&'a self) -> &'a i32 { 18:47 < bridge> self.field 18:47 < bridge> } 18:47 < bridge> 18:47 < bridge> pub fn no_work(&'a mut self) -> &'a i32 { 18:47 < bridge> self.field 18:47 < bridge> } 18:47 < bridge> } 18:47 < bridge> ``` 18:53 < bridge> self doesnt own field, cuz field is a reference 18:53 < bridge> u could say &'a mut self doesnt matter for "field" 18:54 < bridge> cause field is already a non mut ref 18:54 < bridge> new code 18:54 < bridge> ```rust 18:54 < bridge> impl<'a> Foo<'a> { 18:54 < bridge> pub fn work(&'a self) {} 18:54 < bridge> pub fn no_work(&'a mut self) {} 18:54 < bridge> } 18:54 < bridge> ``` 18:54 < bridge> why isn't it possible to call `no_work` many times? 18:55 < bridge> cuz the 'a 18:55 < bridge> ur mutably borrowing for 'a 18:55 < bridge> remove it 18:56 < bridge> on the self 19:06 < bridge> Can I have $50 19:07 < bridge> as a gift 19:10 < bridge> @everyone 19:15 < bridge> @everyone steam gift 50$ - Learath2 please I need it to feed my family 19:17 < bridge> :feelsbadman: 19:18 < bridge> Guess I'll just have to go back to work... murpi you still hiring? 19:18 < bridge> 🚬 19:21 < bridge> never 19:29 < bridge> @robyt3 https://github.com/ddnet/ddnet/pull/7016 my life is a lie you didnt make them squash commits xd 19:30 < bridge> @essigautomat 19:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358131711719768235/image.png?ex=67f2ba38&is=67f168b8&hm=94ee18ad2f6cc34f4fcc7fbf2c0a4ba46d04d14cb2ebe31cc6783e44a2279a25& 19:30 < bridge> this looks great 19:31 < bridge> now that theres 2 unique looking thing i think the others should have differnet ones aswell, even if they arent as cool as rotating thing 19:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358131825800778019/image.png?ex=67f2ba54&is=67f168d4&hm=c2880eda174f5f6dd390d5a65af17b0e1e523fe1d895be477842c5eb16bc2727& 19:31 < bridge> that is future work though 19:32 < bridge> maybe shotgun can be a bouba () 19:32 < bridge> and frozen thing can be a small not very complex snowflake 19:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1358132247290450182/iu.png?ex=67f2bab8&is=67f16938&hm=e02ee343275c895c8d7cebe086c3cd8fd55c54437db5d3bba87329f30f446192& 19:59 < bridge> 👍 did not forget, freeze laser is also still on my TODO list, but I only have 2 hands 19:59 < bridge> use feet :kek: 20:00 < bridge> I am on my phone rn, can send foto from german Autobahn 20:01 < bridge> please do, if you are not the driver 20:01 < bridge> And can't program with phone with hands and feet 20:01 < bridge> well, might need 4 phones 20:01 < bridge> one for each limb :kek: 20:03 < bridge> I look forward to it 20:05 < bridge> Should just make an executive decision and stop trolling the playerbase tbh 20:07 < bridge> What if they make the executive decision to make me a purple name because I infringed on the right to say "50$ gift"? 20:07 < bridge> Unlucky 20:07 < bridge> You got the easy way out 20:08 < bridge> "trolling the playerbase" My friend... I don't know where to start 20:08 < bridge> only hein would have this absurd? opinion anyways 20:09 < bridge> Also hasn't hein always stated it was his opinion and he hopes he wasn't the final say on everything? Why are you allowing his say to be the final say on everything 20:10 < bridge> he's grandpa heino. And old people are not flexible D': 20:11 < bridge> You can sensibly block these spam messages and monitor for the logs for f+s 20:11 < bridge> You can sensibly block these spam messages and monitor the logs for f+s 20:11 < bridge> what is this even about? 20:11 < bridge> please don't shit on heinrich, he is amazing and has done a lot for this game 20:12 < bridge> I'm not shitting on hein, he's just... Extra about things, to an extreme fault 20:12 < bridge> I'm just trolling. But criticism should always be allowed. 20:12 < bridge> sure 20:13 < bridge> and it's common pattern when experienced people has their way of doing things 20:13 < bridge> have 20:14 < bridge> most of the time due to good reasons and well founded and sometimes "because we have been doing this all the time" 20:14 < bridge> or always 20:15 < bridge> I would just filter the literaly exact message they send and go from there 20:15 < bridge> I would just filter the literal exact message they send and go from there 20:16 < bridge> can I advertise fot the banserver utility I created ? 20:16 < bridge> for 20:16 < bridge> is it about spambots? 20:16 < bridge> It's about discord steam scam messages 20:17 < bridge> ah, my bad 20:17 < bridge> thought ingame 20:17 < bridge> Ya, it's a much easier problem to deal with, cause afraik, they don't change what they say ever 20:17 < bridge> So it's like... Just filter it wtf? 20:18 < bridge> Ya, it's a much easier problem to deal with, cause afaik, they don't change what they say ever 20:18 < bridge> pretty easy solution, ig 20:22 < bridge> Ah, I see Learath discussed it a bit above, just filter the entire message every single time asap, you don't need to filter small portions of it 20:23 < bridge> They don't change the text often enough 20:25 < bridge> The ones ingame are obviously a different story 🫡 20:26 < bridge> imo it's discord's job for public servers 20:26 < bridge> Both, it's our community 20:26 < bridge> I don't like confrontation, so I state my opinion on things and don't really go much further than that 20:26 < bridge> I don't like the great wall of hein, and I'll gladly take admin and spank him up 20:26 < bridge> :greenthing: 20:26 < bridge> SKEITH FOR ADMIN CONFIRMED? 20:27 < bridge> TOO EZ 20:27 < bridge> Hey man, murpi got admin in less time than me! 20:28 < bridge> It is my opinion that both on discord and ingame we can be faar more aggressive with our filtering and accept some collateral. I think only murpi would agree with me there, so that's that 20:28 < bridge> i dont even know how and when murpi got admin 20:28 < bridge> Discord is omega easy 20:28 < bridge> Accounts are magical things 20:29 < bridge> Flip a switch and filter out all the bad boys 20:29 < bridge> hein would never allow it 20:29 < bridge> and the other camp does has smart people with sensible arguments that would take hours and hours of discussion, at which point they'll probably have just changed my mind because, well I do not like conflicy 20:29 < bridge> and the other camp does has smart people with sensible arguments that would take hours and hours of discussion, at which point they'll probably have just changed my mind because, well I do not like conflict 20:29 < bridge> Ya. that's one of the main problems with DDNet though :D 20:30 < bridge> Need a nice mix of both 20:30 < bridge> Like I do not believe for one second that you have some legitimate need to send the link of a bot client whether ingame or on discord 20:30 < bridge> Need a nice mix of both that actually play the game and understand what could benefit it 20:31 < bridge> Need a nice mix of both that actually play the game and understand what could benefit it / needs to be done 20:31 < bridge> you can count messages after joining 20:32 < bridge> But I guess yes, there is some tiny probability that you sent the link to say something like "gosh darn it, I hate that people keep sending this botclient.com/download-bot-today, link" 20:32 < bridge> or how fast a message with said link was sent after joining. 20:32 < bridge> or just ban the link 20:33 < bridge> cant you let users who have like 50+ msgs to be ignored by any filter 20:33 < bridge> Anyway, these were litigated a billion times over. I'm very tired and not allowed to implement the albeit imperfect solution that is obvious to pretty much everyone 20:33 < bridge> So I will not be talking about this anymore, it is a topic that does not bring any joy, only despair 20:34 < bridge> Most of the discord spam is from people that lose their legit accounts to token grabbers 20:34 < bridge> Maybe it's time to purple name unironically Learath 20:34 < bridge> They see the "free 50$ gift" and click the link 20:34 < bridge> i see 20:35 < bridge> maybe put a command to bypass filter like /sendrealmessage message:[] 20:35 < bridge> Why be part of the team when the team doesn't want to team, there's an obvious issue here that NEEDS a solution asap, why aren't they working with you to come up with one, rather than giving reasons why it can't be done 20:36 < bridge> about ingame spam. 20:37 < bridge> If they can't work with you to come up with a better solution, then why do they get to just say no to the only solution available 20:37 < bridge> That you're willing to do 20:37 < bridge> Well on most things we do not disalign this much. This specific topic has been a contention point for years onw 20:38 < bridge> Well on most things we do not disalign this much. This specific topic has been a contention point for years now 20:38 < bridge> :pepeW: 20:38 < bridge> We block people for defending themselves in block, I personally view this as less evil than reposting a bot link 20:38 < bridge> We ban people for defending themselves in block, I personally view this as less evil than reposting a bot link 20:39 < bridge> The only current spam issue that is easily fixable is the join spam. That's why I made an issue for it (and people pointed out the option to limit connections already exists, so that one is at least in theory solved) 20:40 < bridge> The message spam is not all that easy to automate, but moderation tools are hardly adequate to handle it by hand 20:40 < bridge> We ban people for defending themselves in block, I personally view this as less evil than reposting a bot link 20:40 < bridge> 20:40 < bridge> Obviously this is only dealt with this way because we can't know who started it 20:40 < bridge> This wouldn't be the first time we took a certain approach because it was easier 20:41 < bridge> If you're posting a bot link you're a moron, and sorry, morons get punished all the time in this world 20:41 < bridge> but inclusion 20:41 < bridge> :kek: 20:42 < bridge> Please punish ne 20:42 < bridge> Please punish me 20:42 < bridge> The bot ads ingame are an obvious cat and mouse issue, but there is a solution so trivial and sooooo obvious to anyone that even takes a glancing look at the problem can point it out 20:43 < bridge> My grandmother who has no technical background could probably come up with the solution were you to put it into the correct analogy 20:43 < bridge> accounts 20:43 < bridge> but they have to be perfectly implemented too with quic so we wait another 10 years 20:43 < bridge> Anyway, I have said too much. If I talk more I'll be in big trouble 20:43 < bridge> that's not what granny would say 20:44 < bridge> Keep talking, if the team has a problem, I'm sure they'll listen, in the end, you're a very respectable admin and the entire community knows it 20:44 < bridge> we might get a Learath3 at some point 20:45 < bridge> fear sounds like a primitive instrument to be ruled by, but it works. 20:45 < bridge> Fucked up world if Learath gets demoted 20:45 < bridge> don't fear 20:45 < bridge> I for one quit 20:46 < bridge> Wait guys, I already quit 20:46 < bridge> He just dramatizes it a bit 20:46 < bridge> SHIT 20:46 < bridge> I wouldn't get demoted I was just joking about that. But I do not enjoy conflict 20:46 < bridge> welcome in the white boi club, Skeith 20:47 < bridge> I think I told deen on the forums to grow a pair of balls once when he wanted to shutdown DDNet 20:47 < bridge> I'm extending this to you, Learath 🍺 20:47 < bridge> :greenthing: 20:48 < bridge> I have no intention of quitting, or doing anything really. If we can agree that you'll get banned for posting links to bots, I'll gladly implement it 20:48 < bridge> :owo: 20:49 < bridge> This was before I was mod and one of the reasons I was almost declined :kek: 20:49 < bridge> *start of ad* use my banserver utility for banning spambots on all ingame servers and give me feedback, in case features are needed *end of ad* 20:49 < bridge> So you should direct your advocacy to getting us to the consensus that there is no legitimate reason to post some substrings in public chat 20:49 < bridge> gdin my love, you allowed me to be the best I could be 20:49 < bridge> *shamelessly advertising* 20:49 < bridge> Dinner was online on Naufrage 4 20:49 < bridge> And I almost cried 20:49 < bridge> Seeing him again 20:49 < bridge> damn 20:49 < bridge> I miss gdin 20:50 < bridge> Ya, I can get gdin to connect at any time usually, I just DM him, it's too ez 20:50 < bridge> Damn 20:50 < bridge> o 20:50 < bridge> We go way back 20:50 < bridge> That's one reason I wouldn't really enjoy becoming admin at any time 20:50 < bridge> I love having discussions 20:50 < bridge> How many spanks do you think it'll take on hein 20:51 < bridge> gb dinner back pog 20:51 < bridge> It's not spanks you need, it's just to debate him on it and convince him of something I couldn't in 2 years with solid arguments 20:51 < bridge> I think Heinrich is just a little fed up, given he hasn't been on discord for a good time 20:51 < bridge> Bro, I'm the master debater 20:52 < bridge> actually heinrich is the master debater 20:52 < bridge> Just pm robyte, he is deluxe admin 20:52 < bridge> he will hit u everywhere 20:52 < bridge> But, you are not allowed to get angry, no mean words, nothing but pure logical arguments 20:52 < bridge> fuck 20:52 < bridge> It depends on the person I discuss with 20:52 < bridge> thats where heinrich wins 20:52 < bridge> i have a screenshot of him saying fuck on this discord 20:52 < bridge> rare event 20:52 < bridge> well i think i lost it 20:52 < bridge> I get too invested and end up getting heated 20:52 < bridge> :justatest: 20:53 < bridge> @davide my beloved 20:53 < bridge> :( 20:53 < bridge> same, its why i cant be mod or admin and also because im lazy as fuck and only do things here when i want to do them 20:53 < bridge> You should see mod chat from his earlier times :justatest: 20:54 < bridge> Anyway, enough talking around the topic. When do we get political ? 20:54 < bridge> Also if I'm debating about something I think I'm 10000% right :greenthing: 20:55 < bridge> A lot of people who think they are good at debating are not really good at debating. You are not allowed to get passionate at all 20:55 < bridge> I love having heated arguments, one of the things I enjoy on texting 20:55 < bridge> I love having heated arguments, one of the things I enjoy on testing 20:55 < bridge> People constantly want to tell you that you suck 20:55 < bridge> :monkalaugh: 20:55 < bridge> always remember to add in ragebait to your takes 20:55 < bridge> I drop in a coke here and there 20:55 < bridge> That's usually enough 20:56 < bridge> I throw in humor 20:56 < bridge> A little sprinkledink 20:56 < bridge> Another issue is that the argument is not completely baseless. If it were it'd be trivial to argue against 20:57 < bridge> #logs lear 20:57 < bridge> I enjoy having arguments even if I loose, it just means I can improve and do better in the next one 20:57 < bridge> weirdo 20:58 < bridge> You have to dig deep into what each course of action leads to and what actions it might lead to by 3rd parties and what counter actions would be required and why in one situation the counter action is more trivial than the other 20:58 < bridge> #general 20:58 < bridge> HELP 20:59 < bridge> And after all that is done, you have ethics to discuss and finally at the end of the day, the only thing that changed is that it's a easier to be annoying to the author of the spambot 20:59 < bridge> I helped 20:59 < bridge> that guy wasn't the only one that posted it, prob more spammers inc 20:59 < bridge> Yeah I muted two 20:59 < bridge> And after all that is done, you have ethics to discuss and finally at the end of the day, the only thing that changed is that it's a bit easier to be annoying to the author of the spambot 21:01 < bridge> I wish we could have people who know their stuff improve us in that regard instead of you admins being forced to do it (speaking of AB for example) 21:01 < bridge> It is technically an unsolveable problem I mean, google with their millions didn't solve it 21:01 < bridge> Apart from noby but dude hasn't opened his laptop in the last 2 months again 21:01 < bridge> Ya noby gone af 21:01 < bridge> He answeres like every 3 months 21:01 < bridge> But he answers! 21:01 < bridge> yep 21:02 < bridge> We really should find a new antibot engineer to take over 21:02 < bridge> ChillerDragon is cooking up his one :cat_cracked_hehe: 21:02 < bridge> Hey I hear people are actually working on effective anti-tas measures, so maybe at least that will happen 21:03 < bridge> Kog has a good solution but it's not really suitable for ddnet sadly 21:03 < bridge> I like my idea for antibot measures! 21:03 < bridge> https://discord.com/channels/252358080522747904/1263223077077254165/1357903305669607584 21:03 < bridge> :nouis: 21:03 < bridge> We discussed this one at the meetup, we didn't really want to do that 21:04 < bridge> Yeah it also doesn't really make sense, it won't work because ddnet is not as sensitive as kog 21:04 < bridge> It's at the bottom of that wall of text 21:04 < bridge> Yeah it also doesn't really make sense, it won't really work because ddnet is not as sensitive as kog 21:04 < bridge> Do not elaborate at all about it if any of you know anything about it 21:04 < bridge> i vote for chiller as our anti freespeech commissioner 21:04 < bridge> I know all about, I won't evaluate about 21:04 < bridge> Just saying it makes no sense xD 21:04 < bridge> I just wanted to say we know their solution and we don't think it's a good fit for us 21:04 < bridge> I think leaving it entirely to moderators is too much 21:05 < bridge> Keep in mind, I'm the rat for all communities at once 21:05 < bridge> :monkalaugh: 21:05 < bridge> TAS? Yeah no way, that needs to be solved by an automated system 21:06 < bridge> I like the idea of ghosts being public, and linking dealing with it to accounts 21:06 < bridge> Having a reputation system etc. 21:06 < bridge> BTW if we actually allow physics changes for season 2 please let me be in charge 21:06 < bridge> there is so much dumb code in the physics 21:06 < bridge> just slow ass code that can't be made faster mostly because of rounding errors 21:06 < bridge> Linking accounts to runs is probably the biggest upcoming drama ever 21:07 < bridge> Ahahahahahh 21:07 < bridge> RiiC99 21:07 < bridge> It'll be a battle of proportions never seen before in ddnet history. People will call peoples parents slurs that I won't know exists 21:08 < bridge> Yeah I'm hyped for the upcoming discussion and workload 21:08 < bridge> Why don't we just start fresh? :D 21:08 < bridge> now if we had a single ruler then this would not be a problem 21:08 < bridge> Surely no drama that way :D 21:08 < bridge> monarchy ftw 21:08 < bridge> That's why the only semi-successful attempt at accounts has been jupstars attempt which pretty much completely sidestepped the problem 😄 21:08 < bridge> legacy runs and legacy points! yay! 21:09 < bridge> i mean no one is doing anything because they can't do anything xd 21:09 < bridge> Surely they won't ship me a pipebomb, surely 21:09 < bridge> administration has to initiate this 21:09 < bridge> All of that shit is already meaningless in the grand sceme of things! Rip the bandaid wahoooooooooooooo 21:10 < bridge> It's as meaingless as keeping them around as legacy! 21:10 < bridge> So nothing has changed 21:10 < bridge> Well @jupeyy_keks is pretty much done, assuming we don't need accounts linked to ranks, it's only waiting on QUIC which also doesn't seem to have much work left 21:11 < bridge> So it only required heinrich to have some extra time and we are there. Accounts, yaay. Accounts that don't really do much, but accounts nonetheless 21:11 < bridge> Don't link points or accounts to anything, names aren't linked to fucking anything, it's all just floating in the wind. Add accounts, and things that are properly attached to these accounts, call it a day. 21:11 < bridge> It's the only real way to do it 21:11 < bridge> ofc they have to be linked? xd 21:11 < bridge> Don't link points or ranks to anything, names aren't linked to fucking anything, it's all just floating in the wind. Add accounts, and things that are properly attached to these accounts, call it a day. 21:12 < bridge> just like accounts in other games 21:12 < bridge> the design decisions can't be that hard 21:12 < bridge> Then we don't call them points or ranks, we call them something new, we confuse the playerbase 21:12 < bridge> That's the camp I will be on when the promised day cometh 21:12 < bridge> But you acquire these points and ranks the same way, they can just be called pointies and rankies! 21:12 < bridge> Call it pp 21:13 < bridge> Like osu 21:13 < bridge> I love pp! 21:13 < bridge> I have 10.87K pp 21:13 < bridge> Can I look at your pp 21:13 < bridge> The internal drama will be even more epic when people notice that we can't really ban by these accounts that contain no ranks nor any obstacle to creation 😛 21:14 < bridge> :monkalaugh: :monkalaugh: :monkalaugh: :monkalaugh: 21:14 < bridge> Wait, accounts are meaningless this whole frickin time? 21:14 < bridge> Thankfully steam does take some measures, so we could punish people by not allowing them to play with an account linked to a certain steam account ever again 21:15 < bridge> If you're reading this evil doers: DO NOT link to steam 21:15 < bridge> I guess we can technically also ban emails 21:16 < bridge> The account server supports whitelisted email domains 21:16 < bridge> We could simply move the verification part to the email providers xD 21:16 < bridge> are we sure hein would allow this 21:16 < bridge> Anyway, these were also already litigated in the past. I'm like that dude Keith from attack on titan 21:16 < bridge> He may use this very obscure email provider 21:17 < bridge> I got this one pre-approved, worry not 21:17 < bridge> This alone would definitely help 21:18 < bridge> We could add more measures in the future! 21:18 < bridge> HOPE IS REAL 21:18 < bridge> Realistically we'd need account only servers for anything that isn't Linear/Multeasymap/AiP-Gores 21:18 < bridge> To have an impact 21:18 < bridge> Learath, we simply pipebomb the people that would likely pipebomb you 21:19 < bridge> Since that is not happening in a billion billion years. I have other plans in mind 21:19 < bridge> Wait Learth, do you think I'd pipebomb you 21:19 < bridge> Wait Learath, do you think I'd pipebomb you 21:19 < bridge> Many many types of trust score, moderation tools that allow moderating by those scores 21:20 < bridge> I already sent my pipebomb out of fear 21:20 < bridge> I would never condone violence 21:20 < bridge> Sorry 21:22 < bridge> I somehow made rice that is simultaneously over and undercooked 21:23 < bridge> Eat half of it out of spite 22:51 < bridge> where in the code are server settings loaded to the client? 22:52 < bridge> `CGameClient::LoadMapSettings` 22:53 < bridge> like server settings, not map 22:53 < bridge> how does client know about g_Config.m_SvDeepfly in character.cpp 22:53 < bridge> or does it just use default value 22:54 < bridge> That's the same, `CFGFLAG_GAME` 22:54 < bridge> It doesn't know about server settings being changed outside of the map at the moment 22:55 < bridge> alright ty 22:55 < bridge> that would explain why the prediction is broken 22:55 < bridge> #7589 22:55 < bridge> https://github.com/ddnet/ddnet/issues/7589 23:36 < bridge> Permanent bans suck 23:43 < bridge> uh, kinda sounds like big brother implemented in ddnet 23:52 < bridge> yep yep, it's time for a social credit system