00:00 <+bridge> [ddnet] I saw some squashes commits by themselves right in PR. Can it be done by bors so we wont lose history until all work done ? (less manual work as well) 00:02 <+bridge> [ddnet] I saw someone squashes commits by themselves right in PR. Can it be done by bors so we wont lose history until all work done ? (less manual work as well) 01:03 <+bridge> [ddnet] xD 01:03 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/754477343518752788/screenshot_2020-09-13_01-03-06.png 01:03 <+bridge> [ddnet] (that was the output when trying to use /save) 01:04 <+bridge> [ddnet] 👀 01:18 <+bridge> [ddnet] @Welf try /save GER 01:18 <+bridge> [ddnet] (fix is in the pipeline) 01:18 <+bridge> [ddnet] ahh i see 01:27 <+bridge> [ddnet] lol 01:27 <+bridge> [ddnet] thought location doesnt matter anymore 01:27 <+bridge> [ddnet] :feelsbadman: 01:29 <+bridge> [ddnet] i thought when the location didnt matter there was a bug 01:29 <+bridge> [ddnet] no 01:29 <+bridge> [ddnet] u cant chot with it anymore 01:30 <+bridge> [ddnet] Like the HUGE trolls Maggi and Forris did 01:30 <+bridge> [ddnet] :kek: 01:30 <+bridge> [ddnet] falling down 01:31 <+bridge> [ddnet] https://forum.ddnet.tw/viewtopic.php?t=1759 01:31 <+bridge> [ddnet] :realnoby: 02:41 <+bridge> [ddnet] Hello bois. Im streaming alot of teeworlds lately and i really have a big problem with people using the n bomb and other words 02:42 <+bridge> [ddnet] Really need a solution for this do like censore certain words. Can u guys help me out with this? 02:52 <+bridge> [ddnet] they are using the n-word in the in game chat? i think we discussed about a language filter already 04:18 <+bridge> [ddnet] no need 04:19 <+bridge> [ddnet] censoring will lead people to get around it and make it even worse 04:19 <+bridge> [ddnet] especially me 04:56 <+bridge> [ddnet] lol 11:48 <+bridge> [ddnet] can we have ammo for weapons 11:49 <+bridge> [ddnet] Like u set in switch layer with delay how many times u can shoot with the weapon that u collected and lose it afterwards 12:22 <+bridge> [ddnet] Well, having the chat not get recorded would help, but i guess it can't be changed easily 12:36 <+bridge> [ddnet] I think the most easist way is when initnalize CTextRender, do GetChar for every character 12:38 <+bridge> [ddnet] Only when I receive message full with CJK characters which had not encountered before, I feel lag. Repeated CJK characters message didn't make me lag. I upload a video to youtube https://youtu.be/et_SsWyCd5U?t=27 . The lag is begin at 0:26. 12:38 <+bridge> [ddnet] 12:38 <+bridge> [ddnet] And I found maybe most of the older player use old version of DDNet Client, so they did not encount this issue. When most of new player use steam client, they may think it is normal behavior. 12:39 <+bridge> [ddnet] I think the most easiest way is when initnalize CTextRender, do GetChar for every character 12:41 <+bridge> [ddnet] > censoring will lead people to get around it and make it even worse 12:41 <+bridge> [ddnet] @lola even games like league of legends have a language filter, i don't think they would use them, if they made it worse 13:00 <+bridge> [ddnet] censoring in roblox 13:00 <+bridge> [ddnet] :justatest: 13:08 <+bridge> [ddnet] @Eki it would be really useful to say, what versions of ddnet 13:08 <+bridge> [ddnet] e.g. ddnet since around 14.1 has a new font for chinese characters which is pretty huge 13:08 <+bridge> [ddnet] 13:08 <+bridge> [ddnet] can you try 13.x? 13:12 <+bridge> [ddnet] but ddnet cannot just call getchar for every character, that would kill even newest pcs 13:38 <+bridge> [ddnet] > censoring will lead people to get around it and make it even worse 13:38 <+bridge> [ddnet] if this censoring will be clientside & disabled by default nothing will change tho 13:39 <+bridge> [ddnet] but streamers should be happy 13:40 <+bridge> [ddnet] > @Eki it would be really useful to say, what versions of ddnet 13:40 <+bridge> [ddnet] > e.g. ddnet since around 14.1 has a new font for chinese characters which is pretty huge 13:40 <+bridge> [ddnet] > 13:40 <+bridge> [ddnet] > can you try 13.x? 13:40 <+bridge> [ddnet] @Jupstar ✪ ok i will try it 13:40 <+bridge> [ddnet] Atleast people who need it can turn it on, though I guess then people will send streamers things like "n1qqer` 13:41 <+bridge> [ddnet] oh, this is what the problem 13:41 <+bridge> [ddnet] Then we will have to try reduce 1337 text into a skeleton text and filter every variation 13:41 <+bridge> [ddnet] btw they can also disable the chat and display it on the terminal on the 2nd window 13:42 <+bridge> [ddnet] Then they will start sending arabic that looks like latin letters 13:42 <+bridge> [ddnet] Yeah disabling chat seems to be the only safe way 13:48 <+bridge> [ddnet] cl_showchat 0, doesnt even show old chat when typing, so it should be safe 13:50 <+bridge> [ddnet] @maggi323 @LCSG47 does above help? 13:51 <+bridge> [ddnet] We might introduce something like 'streamer_mode' (which would have explanations how to use it) because using "cl_showchat" is not so obvious way especially for newcomers 13:54 <+bridge> [ddnet] newcomers... I bet even some devs(including me) wont discover Jupstars approach fast enough to use it 13:57 <+bridge> [ddnet] > @Eki it would be really useful to say, what versions of ddnet 13:57 <+bridge> [ddnet] > e.g. ddnet since around 14.1 has a new font for chinese characters which is pretty huge 13:57 <+bridge> [ddnet] > 13:57 <+bridge> [ddnet] > can you try 13.x? 13:57 <+bridge> [ddnet] @Jupstar ✪ 14.1 don't have any problem, very fluent when people speak 13:58 <+bridge> [ddnet] @BannZay you can disable chat via settings -> HUD 14:07 <+bridge> [ddnet] yea, but its not obvious that you can still see it in dedicated console 14:08 <+bridge> [ddnet] and streamers might need to see it so they wont disable chat 14:14 <+bridge> [ddnet] @Eki ok thx, then its probably that freetype struggles with the huge font size 14:15 <+bridge> [ddnet] @deen this might be interesting for you ^ 14:45 <+bridge> [ddnet] > @maggi323 @LCSG47 does above help? 14:45 <+bridge> [ddnet] @Jupstar ✪ i know about that, but i mean a chat that is visible for the streamer, but doesn't get recorded in streaming software 14:45 <+bridge> [ddnet] @maggi323 yes, just enable console, cl_show_console or smth like that in f1 14:45 <+bridge> [ddnet] then u have chat on 2nd monitor 14:45 <+bridge> [ddnet] Ah, gotta try that out, ty 15:19 <+bridge> [ddnet] junge @Welf league of legends is an account based SJW game 15:19 <+bridge> [ddnet] Not even slightly compareable to teeworlds 15:20 <+bridge> [ddnet] wtf is a SJW game 15:43 <+bridge> [ddnet] you can set your streaming software to capture only game window. Second monitor is not even a requirement here 15:46 <+bridge> [ddnet] or you can set your streaming software to capture only game window. Second monitor is not even a requirement here 16:41 <+bridge> [ddnet] > or you can set your streaming software to capture only game window. Second monitor is not even a requirement here 16:41 <+bridge> [ddnet] @BannZay But then you wouldn't be able to see chat 😄 but tried it out with hiding chat and activating console, works. 16:41 <+bridge> [ddnet] But little bug is, that the steam fps is now shown in the middle of the screen and shift+tab isn't doing anything ingame (which is quite nice actually) 18:01 <+bridge> [ddnet] @maggi323 yea, bad idea... you got to switch between apps to read the chat this way 18:05 <+bridge> [ddnet] How you like the idea to make chat as overlay (similar to steam overlay) ? How bad performance will be in this case? 18:37 <+bridge> [ddnet] Tbh. I think a censoring option would be still really nice. U could just give us an option where we can add certain terms to the censoring collection. So we could add terms that we dont want to see in chat. I mean the consol thing is a solution for now. But for people who dont understand what is going on in this game and im constantly like writing stuff in the chat and noone can see what i am answering to could be really offthrowing 18:38 <+bridge> [ddnet] Idk i would really love to still have the chat ingame and still have an option to block certain words 18:54 <+bridge> [ddnet] Like Twitch chat filter, you can edit your personal FIlter list 18:58 <+bridge> [ddnet] build check style makes me crazy, it complains about things I didnt touch. Can we fix all style issues in the codebase using this script someday? 18:58 <+bridge> [ddnet] @maggi323 just use 'messages from friends only' or /dnd 19:25 <+bridge> [ddnet] censoring feature with txt/json file so you can add words to censor by yourself 19:25 <+bridge> [ddnet] would be useful 20:05 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/2812 20:05 <+bridge> [ddnet] @LCSG47 ^ 20:37 <+bridge> [ddnet] omg 20:39 <+bridge> [ddnet] anti konsti function 21:14 <+bridge> [ddnet] what is wordlist.txt in data folder? 21:17 <+bridge> [ddnet] used for generating random save codes if you say /save without your own save code 21:17 <+bridge> [ddnet] woow 21:18 <+bridge> [ddnet] okey, its amazing :poggers: 21:22 <+bridge> [ddnet] what for does TILE_NPC_xxxxx stand? 21:22 <+bridge> [ddnet] what for does `TILE_NPC_x` stand? 21:22 <+bridge> [ddnet] @Jupstar ✪ any ideas what I can do about the text problem? 21:24 <+bridge> [ddnet] <Андрей Рудой> Theese buttons can't contain localized text properly 21:24 <+bridge> [ddnet] <Андрей Рудой> https://cdn.discordapp.com/attachments/293493549758939136/754784693534326956/unknown.png 21:29 <+bridge> [ddnet] @Андрей Рудой you could abbreviate them? The only other choice was 2 rows in 5:4 & 4:3 screens, but people were not happy with that either 21:31 <+bridge> [ddnet] @Андрей Рудой ||замени на "Суицид", я когда переводил че-т и не думал, что они такие кнопки завезут|| 21:32 <+bridge> [ddnet] ||но все равно там по краям будет|| 21:34 <+bridge> [ddnet] and what is `TILE_BONUS`, looks like its empty tile 21:35 <+bridge> [ddnet] <Андрей Рудой> @deen really, this small buttons cant fit on 4:3? 21:35 <+bridge> [ddnet] <Андрей Рудой> xdd 21:38 <+bridge> [ddnet] Making them bigger won't fit 21:38 <+bridge> [ddnet] <Андрей Рудой> Maybe font smaller? 21:40 <+bridge> [ddnet] would look bad IMO 21:40 <+bridge> [ddnet] <Андрей Рудой> What if left second button just `kill`? 21:40 <+bridge> [ddnet] <Андрей Рудой> In English 21:40 <+bridge> [ddnet] <Андрей Рудой> russians understand that xd 21:40 <+bridge> [ddnet] is there really a need for a kill button 21:41 <+bridge> [ddnet] <Андрей Рудой> When you afk block while fapping on tees... 21:41 <+bridge> [ddnet] Some newcomers restart by rejoining their dummy or going to spectators and back, since those were the only available buttons 21:42 <+bridge> [ddnet] <Андрей Рудой> What if make this button's text unicode skull icon? 21:42 <+bridge> [ddnet] <Андрей Рудой> Like it's obvious that skull symbol mean's death 21:44 <+bridge> [ddnet] what if another button is not localized well? 21:44 <+bridge> [ddnet] to another language 21:44 <+bridge> [ddnet] I like dynamic font size here 21:45 <+bridge> [ddnet] solves all problems 🙂 21:45 <+bridge> [ddnet] makes the menu look inconsistent 21:45 <+bridge> [ddnet] IMO 21:45 <+bridge> [ddnet] check the screen, this is inconsistent lmao 21:45 <+bridge> [ddnet] yes, if you look up you see that I didn't argue that this looks good 21:46 <+bridge> [ddnet] yea, just saying 21:48 <+bridge> [ddnet] > what is TILE_BONUS, looks like its empty tile 21:58 <+bridge> [ddnet] @BannZay I checked and SkyFly has different names. the one on DDmaX is Skyfly, not SkyFly 21:58 <+bridge> [ddnet] And apparently jao is aware of it 22:24 <+bridge> [ddnet] yea, all maps I mentione are from different servers 22:25 <+bridge> [ddnet] I thought we should not use names of existing maps despite their server 22:26 <+bridge> [ddnet] they dont have same names 22:28 <+bridge> [ddnet] @deen yes, make smaller fonts 22:28 <+bridge> [ddnet] and let the fonts know their unicode regions, so freetype API calls are removed 22:29 <+bridge> [ddnet] the current font is 16mb, thats quite huge, and i dunno if freetype internally doesnt load it into memory or if it loads it from file 22:29 <+bridge> [ddnet] @Jupstar ✪ well, I took that font because Chinese guys told me it looks best 22:29 <+bridge> [ddnet] the current font is 16mb, thats quite huge, and i dunno if freetype internally load it into memory or if it loads it from file 22:30 <+bridge> [ddnet] Oh, loading from file might actually be relevant. We could try loading it into memory ourselves and pass that to freetype? 22:30 <+bridge> [ddnet] yes that works, but no garantuee that this is the problem 22:30 <+bridge> [ddnet] its just guessing 22:30 <+bridge> [ddnet] I have seen huge io delays on Windows 22:30 <+bridge> [ddnet] bcs freetype takes the char pointer 22:30 <+bridge> [ddnet] but mostly when writing, not reading 22:31 <+bridge> [ddnet] @jao what you mean? 22:31 <+bridge> [ddnet] one letter lower case another uppercase = different names? 22:31 <+bridge> [ddnet] yes 22:31 <+bridge> [ddnet] yes 22:31 <+bridge> [ddnet] doesnt makes sense to me 22:31 <+bridge> [ddnet] anyway 22:32 <+bridge> [ddnet] there 2 other maps with exactly the same names 22:32 <+bridge> [ddnet] which 22:33 <+bridge> [ddnet] illusion 22:33 <+bridge> [ddnet] and some else 22:33 <+bridge> [ddnet] search my messages 22:35 <+bridge> [ddnet] and Experiment 22:35 <+bridge> [ddnet] there is illusion and Illusion 22:35 <+bridge> [ddnet] not the same 22:36 <+bridge> [ddnet] same for Experiment and experiment 22:37 <+bridge> [ddnet] lol 22:37 <+bridge> [ddnet] how to differently pronounce this maps names? 22:37 <+bridge> [ddnet] why do we even have a rule to not have the same names for maps 22:38 <+bridge> [ddnet] illusion ddmax and Illusion oldschool 22:38 <+bridge> [ddnet] because they are old 22:38 <+bridge> [ddnet] we can enforce the rule for new maps but not for old ones 22:38 <+bridge> [ddnet] New maps should have different names 22:38 <+bridge> [ddnet] sure, but I asked another question 22:39 <+bridge> [ddnet] because it maps should be clear to divide i guess 22:39 <+bridge> [ddnet] if u make a popular map series u may wouldnt like someone using a similiar name 22:39 <+bridge> [ddnet] @Jupstar ✪ hm, I don't see a file staying open, so my guess is libfreetype loads the font into memory. 22:40 <+bridge> [ddnet] @Jupstar ✪ could you maybe test with QingGo if making it know the unicode regions would work? (not sure how to do that) 22:40 <+bridge> [ddnet] @deen it could also just be that freetype api is called twice when fallback 22:40 <+bridge> [ddnet] for both faces 22:40 <+bridge> [ddnet] so regions would be nice 22:42 <+bridge> [ddnet] @lola unfortunetely having different register is not enough to distinguish files in windows 22:42 <+bridge> [ddnet] thats why it makes no sense to me 22:42 <+bridge> [ddnet] the answear "the names is different" 22:42 <+bridge> [ddnet] the answer "the names is different" 22:42 <+bridge> [ddnet] @lola unfortunetely having different letters registers is not enough to distinguish files in windows 22:43 <+bridge> [ddnet] ik, on Linux capitals count as other letter but windows doesnt care 22:44 <+bridge> [ddnet] solution is using Linux 22:44 <+bridge> [ddnet] I mean, the names is the same 22:44 <+bridge> [ddnet] thats a point 22:44 <+bridge> [ddnet] i'm using a even larger font on vanilla textrender rework, couldn't produce any noticeable lag. 22:44 <+bridge> [ddnet] maybe ur pc is fast 22:45 <+bridge> [ddnet] or freetype only opens the file when needed 22:45 <+bridge> [ddnet] bcs my memory didnt jump when the fallback font was loaded 22:45 <+bridge> [ddnet] maybe run a profiler 22:45 <+bridge> [ddnet] but also just could be just runned in a thread 22:53 <+bridge> [ddnet] @Jupstar ✪ interesting, the windows version indeed keeps the file open, Linux didn't 22:53 <+bridge> [ddnet] I'll try to load from memory directly 22:58 <+bridge> [ddnet] yeah was more realistic with such huge laggs 😄 23:04 <+bridge> [ddnet] ah is aki = qinggo ? 23:05 <+bridge> [ddnet] eki* 23:07 <+bridge> [ddnet] > 23:07 <+bridge> [ddnet] > ah is aki = qinggo ? 23:07 <+bridge> [ddnet] yes 23:12 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/754811778864644226/unknown.png 23:15 <+bridge> [ddnet] ye, 60ms for one sentence on one frame is pretty bad 23:15 <+bridge> [ddnet] its better with preloaded fonts anyway 23:15 <+bridge> [ddnet] never trust smth u didnt program yourself xd 23:15 <+bridge> [ddnet] not even then xd 23:17 <+bridge> [ddnet] but ddnet did call `RenderGlyph` more than expected. for the same sentence it called `RenderGlyph` double than what I've called in mine for some reason. 23:17 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/754813114188300409/unknown.png 23:22 <+bridge> [ddnet] @TsFreddie 🌈 maybe because we try the normal font first, like Jupstar said? 23:23 <+bridge> [ddnet] i did font fallback too 23:23 <+bridge> [ddnet] i'm looking at the code. you didn't do anything with the font until you found the glyph index which is just looking at a charmap. 23:23 <+bridge> [ddnet] idk what went wrong 23:24 <+bridge> [ddnet] maybe you could stop there with gdb and check? 23:24 <+bridge> [ddnet] where the backtrace comes from 23:24 <+bridge> [ddnet] (or some other debugger) 23:25 <+bridge> [ddnet] probs bcs it has two different font sizes? 23:25 <+bridge> [ddnet] once u typing and once its displayed 23:25 <+bridge> [ddnet] i'm using bind 23:25 <+bridge> [ddnet] ok 23:26 <+bridge> [ddnet] both test are executed the same way. let me poke around with a debugger 23:27 <+bridge> [ddnet] r u at opengl 2? 23:27 <+bridge> [ddnet] or 3.0 23:27 <+bridge> [ddnet] 2 23:27 <+bridge> [ddnet] k 23:32 <+bridge> [ddnet] wait 23:32 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/754816791431217232/unknown.png 23:32 <+bridge> [ddnet] same sentence, one frame 23:33 <+bridge> [ddnet] get char space is smth different tho 23:33 <+bridge> [ddnet] but it did take 76ms 23:33 <+bridge> [ddnet] for one sentence 23:33 <+bridge> [ddnet] @heinrich5991 did you make the indent depth 2 in .clang_format? 23:33 <+bridge> [ddnet] in debug and with profiler 23:33 <+bridge> [ddnet] @Learath2 no? 23:34 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/.clang-format 23:34 <+bridge> [ddnet] I made it one tab 23:34 <+bridge> [ddnet] Ah, github.... 23:34 <+bridge> [ddnet] it's showing as 2 spaces 23:34 <+bridge> [ddnet] but still 23:35 <+bridge> [ddnet] like.. how? 23:35 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/754817445025546322/unknown.png 23:35 <+bridge> [ddnet] how do you spend that much time finding a space in the texture 23:36 <+bridge> [ddnet] do you start with a 1024px texture? 23:36 <+bridge> [ddnet] ye. i don't want to resize texture because i don't want to keep a copy of the texture in memory 23:36 <+bridge> [ddnet] so i'm using fixed sized texture 23:37 <+bridge> [ddnet] also std::vector 23:37 <+bridge> [ddnet] who knows what happens in debug mode 23:37 <+bridge> [ddnet] try in releasewithdebuginfo 23:38 <+bridge> [ddnet] sure 23:38 <+bridge> [ddnet] and if it still uses >50ms, its too much 23:38 <+bridge> [ddnet] Yeah, profiling in debug is meh in C, it's awful with C++ and STL use 23:38 <+bridge> [ddnet] debug is rarely really useful 23:39 <+bridge> [ddnet] In C you still get a rough idea of what is taking time, given you aren't coding like a goof 23:39 <+bridge> [ddnet] well you could on purpose add things only for debugging 23:40 <+bridge> [ddnet] Oh btw, @TsFreddie 🌈 is that on windows? 23:40 <+bridge> [ddnet] :saddog: ye 23:41 <+bridge> [ddnet] A profiler with a nice interface, I was excited for a second 😄 23:41 <+bridge> [ddnet] https://github.com/google/orbit 23:42 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/754819209074049094/unknown.png 23:42 <+bridge> [ddnet] lol 23:42 <+bridge> [ddnet] Oh, for anyone profiling on linux, I spent a couple hours looking at profilers a couple days ago. For a sampling profiler `perf` seems to be the gold standard. For a JIT/VM like one there is no beating `valgrind` 23:43 <+bridge> [ddnet] i tried perf, complained about many things i should change 23:43 <+bridge> [ddnet] never used it again xd 23:43 <+bridge> [ddnet] Oh, googles gperftools wasn't bad either, and as a bonus it is valgrind compatible, so kcachegrind is available to display it 23:44 <+bridge> [ddnet] but i used it in eclipse back then 23:44 <+bridge> [ddnet] so maybe i should retry 23:44 <+bridge> [ddnet] @Jupstar ✪ I can't imagine it asking you to change much as long as you have the kernel module in there, you just need permissions 23:45 <+bridge> [ddnet] yeah but i remember i did it and didnt work, then saw eclipse also had a bug, and then i gave up xD 23:45 <+bridge> [ddnet] idk how well it integrates with tools honestly 23:45 <+bridge> [ddnet] `perf record -g -p ` and `perf report` to display it worked great for me 23:45 <+bridge> [ddnet] but perf is faster than valgrind isnt it? 23:45 <+bridge> [ddnet] obviously ran as sudo so you can see the kernel symbols in cleartext 23:46 <+bridge> [ddnet] that alone would be worth alot already 23:46 <+bridge> [ddnet] They are different kinds of profilers. Perf is sampling, valgrind is a VM 23:46 <+bridge> [ddnet] Sampling is obviously much much faster, but as it can sample only so many times, it's also inaccurate sometimes 23:47 <+bridge> [ddnet] And VMs are also inaccurate because they introduce massive overhead that inflates the cost of very small calls 23:47 <+bridge> [ddnet] So you need both kinds of tools to get a good image of the performance of your application 23:47 <+bridge> [ddnet] ok 23:48 <+bridge> [ddnet] Oh and perf has annotate, which can show you which instructions map to which source lines and which instructions are the hottest 23:49 <+bridge> [ddnet] Sadly, no obvious bottlenecks left in the ddnet server, with #2820 23:49 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/2820 23:49 <+bridge> [ddnet] The only other low hanging fruit is "IsBanned" which you can optimize a whole lot, but it's only 1.6% of the cpu time under heavy load 23:50 <+bridge> [ddnet] that bot xD 23:50 <+bridge> [ddnet] depends how many bans u have 23:50 <+bridge> [ddnet] maybe it should only trigger when "issue #number" or "pr #number" 23:50 <+bridge> [ddnet] being able to turn off banlist checking for inforequest-sized packets is useful imo 23:50 <+bridge> [ddnet] especially with long banlist 23:50 <+bridge> [ddnet] @onby even with 50 bans you can blast through with linear search 23:51 <+bridge> [ddnet] and 500+? 23:51 <+bridge> [ddnet] You have 500+ bans? 23:51 <+bridge> [ddnet] yes 23:51 <+bridge> [ddnet] Okay, we'd want something more like binary search at that point 23:52 <+bridge> [ddnet] but we could easily do that, `if(m_vBans.size() > somearbitraryconstantwebenchmarkfor) bsearch(m_vBans); else lsearch(m_vBans);` 23:53 <+bridge> [ddnet] that does sound better but still i think being able to disable the check for certain types/sizes of packets could be useful 23:53 <+bridge> [ddnet] Not very easy to discard packets without context 23:53 <+bridge> [ddnet] size 23:54 <+bridge> [ddnet] For 0.7 you can get a conntrack module set up so you can drop things < 520 for non established conns 23:54 <+bridge> [ddnet] the first connection packet + serverinfo request packets for 0.6 are always the same size 23:54 <+bridge> [ddnet] For 0.6 I guess you can do something similar but do a u32 check for it being a join packet 23:55 <+bridge> [ddnet] checking the header is probably better ye 23:55 <+bridge> [ddnet] I think for these things you'll have a much better time dropping them waaaay early though 23:56 <+bridge> [ddnet] IsBanned is only 1.6% of the cpu load anyway 23:56 <+bridge> [ddnet] with what size banlist 23:56 <+bridge> [ddnet] 0 23:56 <+bridge> [ddnet] well lol 23:56 <+bridge> [ddnet] but being a hashmap, it doesn't have bad asymptotic performance 23:56 <+bridge> [ddnet] what kind of ban list do you have @onby 23:56 <+bridge> [ddnet] long 23:56 <+bridge> [ddnet] @onby maybe consider a whitelist instead 😄 23:57 <+bridge> [ddnet] who is banned? network attacks or actual players 23:57 <+bridge> [ddnet] also how long? 23:57 <+bridge> [ddnet] botters 23:57 <+bridge> [ddnet] the list is just perma bans and i go thru and clean it out every so often 23:57 <+bridge> [ddnet] how many bans? 23:57 <+bridge> [ddnet] People botting on noby's server are the only people on earth that use static ips in 2020 btw 23:57 <+bridge> [ddnet] there are a surprising amount of static ips 23:57 <+bridge> [ddnet] what is cgnat 23:58 <+bridge> [ddnet] He is like a magnet for static ip botters 23:58 <+bridge> [ddnet] wtf 23:58 <+bridge> [ddnet] I guess it could be cgnat and noby could be banning significant portions of germany, but I guess there'd be complaints already 😄 23:59 <+bridge> [ddnet] i check the ip (range) first to see if it has been shared recently 23:59 <+bridge> [ddnet] well you don't see the server if you're banned 23:59 <+bridge> [ddnet] u do if the server is set to not check the banlist for info requests 23:59 <+bridge> [ddnet] That's probably a good idea 23:59 <+bridge> [ddnet] meh