00:06 < bridge> can sb review #9972, it's blocking other PRs I want to do 00:06 < bridge> https://github.com/ddnet/ddnet/pull/9972 00:41 < bridge> spent like 3 hours trying to figure out why a crate update broke stuff 00:41 < bridge> ended up like halfway reimplementing crate behavior that changed & i couldn’t figure out 00:41 < bridge> apparently they just moved it to live behind a feature flag 😃 😃 00:42 < bridge> Blazingly fast feature flag 🚀 00:47 < bridge> blazingly fast fire burning my house down 01:00 < bridge> BLAZINGL😂 😂 😂 😂 😂 RUS😂 😂 T 01:06 < bridge> those who rust 01:46 < bridge> @robyt3 can i test ur skin loading threaded thing :) 02:22 < bridge> Like and Subscribe for more fearfully current tips 05:09 < bridge> idk whats happening! 05:09 < bridge> why am i being punished for my "do it fast and break everything" style of coding nooo! 05:10 < bridge> -# who couldve seen this coming 05:15 < bridge> @fokkonaut i dont have sv_show_drection? 05:15 < bridge> cl_ 05:15 < bridge> ah oke 05:18 < bridge> the difference between the 2 heights is 10 which suggests only the padding is showing which is weird 05:18 < bridge> ah because im an idiot 05:19 < bridge> ```cpp 05:19 < bridge> if(!Data.m_ShowDirection) 05:19 < bridge> { 05:19 < bridge> m_Size = vec2(0.0f, 0.0f); 05:19 < bridge> m_Visible = false; 05:19 < bridge> return; 05:19 < bridge> } 05:19 < bridge> ``` 05:19 < bridge> doesnt set padding /: 05:21 < bridge> eh 05:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356106181034381424/image.png?ex=67eb5bcc&is=67ea0a4c&hm=9b29231e518b742fb11ac5af92ffdb6302f989a8181fbc76796313e94400ee92& 05:22 < bridge> fuck off 05:34 < bridge> xd 05:47 < bridge> just gave a private ip xd 05:47 < bridge> it didnt look private so i didnt notice 08:37 < bridge> CHN server missing again 08:37 < bridge> :justatest: 09:55 < bridge> with no context it could be whatever 13:00 < bridge> Yea it was a single chat message. Deepl also couldn’t figure it out 13:51 < bridge> hello fellas 14:15 < bridge> hello 14:16 < bridge> Can someone help me with regex :PES_Cry: 14:16 < bridge> I'm trying to parse the name out of this ab line 14:16 < bridge> 14:16 < bridge> `2025-03-31 14:09:32 I server: id=61 addr=nunya:business name='Magic Woman'' client=19010 secure=yes flags=1 dnsbl=white` 14:16 < bridge> But the damned quote is screwing with me 14:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356240832369262782/image.png?ex=67ebd934&is=67ea87b4&hm=4cba7089fb671efe50f71cd6d2b74a46a0a69bc34f2d2e2f7ace46ef2554c82a& 14:18 < bridge> Most likely "What now?" 14:18 < bridge> probably out of frustration 14:19 < bridge> ask ai, they are native regex speakers 14:19 < bridge> xD 14:20 < bridge> I did that 14:20 < bridge> you think i wrote that regex myself xd 14:21 < bridge> It spat out this 14:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356241886221963396/image.png?ex=67ebda2f&is=67ea88af&hm=519178818671c0a62183b92d56af822b29f6011b05fb94a1e17f97b25eca0274& 14:21 < bridge> which also does not wor 14:21 < bridge> which also does not work 14:21 < bridge> It spat out this in the end 14:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356241886221963396/image.png?ex=67ebda2f&is=67ea88af&hm=519178818671c0a62183b92d56af822b29f6011b05fb94a1e17f97b25eca0274& 14:21 < bridge> yelling at it with "This also doesnt work" gets me nowhere :( 14:21 < bridge> Then ask another AI 14:21 < bridge> xD 14:22 < bridge> 14:22 < bridge> :nouis: 14:22 < bridge> what even is the problem with the quote? 14:22 < bridge> the capturing group kinda looks correct 14:23 < furo> Is this what you want? `name='(.*)'` The name will be in capturing group 1. 14:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356242440922599604/image.png?ex=67ebdab3&is=67ea8933&hm=d3bc8691310c139eff6366c05c4d54a83e35cd54dec54a4e05c9cc6e6cc70387& 14:23 < bridge> the quote is part of the name 14:23 < bridge> and theres also quotes surrounding the value in the ab line 14:23 < bridge> '\s 14:24 < bridge> name='(.*)'\s 14:24 < bridge> i mean the original string has 2 quote characters 14:24 < bridge> why does it even have that 14:24 < bridge> because the name key's value is always surrounded by single quotes 14:24 < bridge> dont ask me why cuz idk, whoever coded up the antibot knows xd 14:25 < bridge> mh ok, just weird to use double single quotes. what happens if the name already contains a quote? 14:25 < bridge> do you also want to ignore that 14:25 < bridge> if the name contains a quote i wanna keep it 14:25 < bridge> This is exactly the case where the name already contains a quote 14:25 < bridge> that's the whole point 14:25 < bridge> ^ 14:25 < bridge> xd 14:26 < bridge> that's what i thought, but apparently he is not happy with that 14:26 < bridge> @sans._. :justatest: 14:27 < bridge> wut 14:27 < bridge> the problem is parsing the line with that name surrounded by quotes 14:27 < bridge> ah his ai thing failed too 14:27 < bridge> true 14:27 < bridge> ok 14:27 < bridge> you can't even rely on the space afterwards because your name could have ` '` at the end 14:27 < bridge> time to fire up ai magic 14:27 < bridge> you can't even rely on the space afterwards because your name could have `' ` at the end 14:28 < bridge> does the "load current map" shortcut work for anyone 14:28 < bridge> it doesnt work for me 14:28 < bridge> `name='((?:[^']|\\')*)'` 14:28 < bridge> 14:28 < bridge> xdd 14:29 < bridge> the name could even be `xd' client=19810` and that would make parsing even more hellish 14:29 < bridge> THIS IS WHY YOU SANITIZE 14:29 < bridge> lel 14:29 < bridge> it failed 14:29 < bridge> can u use capture groups? 14:29 < bridge> https://regex101.com/r/x8A98s/1 14:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356244118044414104/image.png?ex=67ebdc43&is=67ea8ac3&hm=38e173655bd158e3e6348218137246b418f70aa49f2e743287725bed886af587& 14:29 < bridge> group 1 has it 14:29 < bridge> sure why not 14:30 < bridge> oh it has ' in the name? 14:30 < bridge> and? 14:30 < bridge> ".*" capture it, exclude last `' ` 14:30 < bridge> ```ts 14:30 < bridge> const line = `2025-03-31 14:09:32 I server: id=61 addr=nunya:business name='Magic Woman'' client=19010 secure=yes flags=1 dnsbl=white`; 14:30 < bridge> 14:30 < bridge> const playerName = line.match(/name='(.*)'/gi)![0].slice(6, -1); 14:30 < bridge> 14:30 < bridge> console.log(playerName); // Magic Woman' 14:30 < bridge> ``` 14:30 < bridge> success 14:30 < bridge> :owo: 14:30 < bridge> furo is too smort 14:30 < bridge> `name='(.+)' client` 14:30 < bridge> this works for me 14:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356244410291192078/image.png?ex=67ebdc89&is=67ea8b09&hm=4beead0bf14f7cdf1f32faaff3dd385e1d258c3d8b65f669cff41338ea3945a3& 14:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356244417325043864/image.png?ex=67ebdc8a&is=67ea8b0a&hm=89ffa3a4fd4c9cd4afceb9518a4426608808dc6b8642b7bb7419baf17bb13f3b& 14:31 < bridge> furos would fail if there is a `'` later in the text 14:31 < bridge> or not 14:31 < bridge> wdym 14:31 < furo> It won't fail, regex is greedy by default. 14:31 < bridge> except that never happens 14:31 < bridge> if there's another quoted string on the same line it'd get greedily combined into the name and now you get an output that contains a whole lot of garbage 14:32 < bridge> ```ts 14:32 < bridge> const line = `2025-03-31 14:09:32 I server: id=61 addr=nunya:business name='''Ma'gi'c' W'o'man''''' client=19010 secure=yes flags=1 dnsbl=white`; 14:32 < bridge> 14:32 < bridge> const playerName = line.match(/name='(.*)'/gi)![0].slice(6, -1); 14:32 < bridge> 14:32 < bridge> console.log(playerName); // ''Ma'gi'c' W'o'man'''' 14:32 < bridge> ``` 14:32 < bridge> it works fine wdym 14:32 < bridge> luckily its not possible 14:32 < bridge> furo i love you :owo: 14:33 < bridge> yeah that's a bit of good luck at least 14:33 < bridge> if our logs are razy we cooked 14:33 < bridge> racy 14:33 < bridge> u should use regex101 to test stuff 14:33 < bridge> its so much better than shitjs 14:34 < bridge> I am lol 14:34 < bridge> I just sent the code example cuz why not 14:34 < bridge> u shouldnt need slice 14:34 < bridge> use capture groups properly 14:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356245342479323197/image.png?ex=67ebdd67&is=67ea8be7&hm=ab2ac1191d2020ba4246e2896f13801a5f9a1d4af09d58dc5c5246c950fdb164& 14:34 < bridge> ah 14:34 < bridge> yeah uhhh 14:34 < bridge> it works 14:34 < bridge> im not touching it 14:35 < bridge> :heh: 14:35 < bridge> anyway, the correct fix would be to escape the inner string 14:35 < bridge> ```js 14:35 < bridge> /name='(.*)'/gi.exec(line)[1] 14:35 < bridge> 14:35 < bridge> ``` 14:35 < bridge> i think its 1 14:35 < bridge> else it's not really parsable 14:35 < bridge> yeah 14:35 < bridge> try this @sans._. its cleaner 14:36 < bridge> ```js 14:36 < bridge> 14:36 < bridge> /name='(.*)'/gi.exec(`2025-03-31 14:09:32 I server: id=61 addr=nunya:business name='''Ma'gi'c' W'o'man''''' client=19010 secure=yes flags=1 dnsbl=white`)[1] 14:36 < bridge> "''Ma'gi'c' W'o'man''''" 14:36 < bridge> ``` 14:36 < bridge> works on browser 14:36 < bridge> ooo nice 14:37 < bridge> @milkeeycat are u there? 14:37 < bridge> i have a question for u 14:38 < bridge> in your language, will you allows circular module dependencies? 14:38 < bridge> or u will add forward declarations 14:38 < bridge> or not allow it at all 14:38 < bridge> going for non circular makes stuff more simple 14:41 < bridge> time to get coffee 14:41 < bridge> i wonder if its possible to make a proper std lib without circular modules 14:41 < bridge> well its probs possible 14:42 < bridge> ill yoink what rust does, probably 14:42 < bridge> @milkeeycat is your lang already usable? 14:42 < bridge> 14:42 < bridge> Can I write a real program if I wanted to? 14:43 < bridge> rust allows circular 14:44 < bridge> @jupeyy_keks i can dm u mine 14:44 < bridge> im making a compiler backed for it 14:45 < bridge> No need, we all know edlang repo 😉 14:45 < bridge> its not that one 14:45 < bridge> i mean the work one 14:46 < bridge> 😮 14:46 < bridge> edlang is a bit abandoned 14:46 < bridge> i mean i can simply go on your gh profile xD 14:46 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356248360830370045/concrete?ex=67ebe037&is=67ea8eb7&hm=a3cc254a446c2d16083b327c971730794dbe5197a3acf2a04eafc8a4dafd1013& 14:46 < bridge> the binary xd 14:46 < bridge> xDDDDDD 14:46 < bridge> i doubt u want to get mlir to build it 14:47 < bridge> yeah too xd 14:47 < bridge> Ok i try your examples 14:48 < bridge> i think the "crates" will be called "bricks" 14:48 < bridge> the lang is called concrete xd 14:49 < bridge> mh i think u got other deps on arch than me 14:49 < bridge> rip 14:49 < bridge> u need to install mlir 14:49 < bridge> from aur 14:49 < bridge> and llvm 14:49 < bridge> 19 14:49 < bridge> But I am not on arch xd 14:49 < bridge> im on gentoo btw 14:50 < bridge> Ah true 14:50 < bridge> what arch? 14:50 < bridge> debian? 14:50 < bridge> our ci uses ubuntu 14:50 < bridge> its same 14:50 < bridge> https://apt.llvm.org/ 14:50 < bridge> i use debian btw 14:50 < bridge> ah i required some old libgit 14:50 < bridge> now 14:50 < bridge> `./concrete: CPU ISA level is lower than required` 14:50 < bridge> u need 3 env vars 14:50 < bridge> MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/ 14:50 < bridge> LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/ 14:50 < bridge> TABLEGEN_190_PREFIX: /usr/lib/llvm-19/ 14:50 < bridge> sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools 14:50 < bridge> oh xd 14:50 < bridge> i built it with native on my ryzen sry 14:50 < bridge> @ryozuki currently have a temporary PC, so dunno 14:50 < bridge> 14:50 < bridge> is that VM related? 14:51 < bridge> My new pc arrives soon 14:51 < bridge> xd 14:51 < bridge> i built it with my ryzen 9 14:51 < bridge> then I itest 14:51 < bridge> hmm 14:51 < bridge> wait i build it with lower isa 14:51 < bridge> then I test 14:51 < bridge> i forgot most ppl dont have new cpu 14:51 < bridge> 3800x 14:51 < bridge> it's from 2019 14:51 < bridge> xD 14:51 < bridge> 😬 old 14:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356250153715110059/concrete?ex=67ebe1e2&is=67ea9062&hm=a276cef61a55562be80d173dc8547b1752d78783a5814bc1b3b466f9668d262a& 14:54 < bridge> @ryozuki which cpu exactly do u have rn? 14:54 < bridge> 14:54 < bridge> My new one will be 7950x 14:54 < bridge> 14:54 < bridge> I'll not buy 9950x3d again this year xD 14:54 < bridge> There are many reports of dying 9000 x3d 14:54 < bridge> CPU: AMD Ryzen 9 7900X3D (24) @ 5.66 GHz 14:54 < bridge> did u give back the 9? 14:54 < bridge> it died 14:54 < bridge> no warranty? 14:54 < bridge> i even bought new motherboard to test it 14:54 < bridge> it just died 14:54 < bridge> rip 14:55 < bridge> 14-day return perioud 14:55 < bridge> didn't want to do RMA 14:55 < bridge> ic 14:55 < bridge> is that really lower? 14:55 < bridge> my 7900x3d works nice 14:55 < bridge> wdym size? i guess 14:55 < bridge> i strippedi t btw 14:55 < bridge> my 9950x3d was also a dream cpu, but i never had a processor die before 14:55 < bridge> its like 120mb and i have 100mb discord limit 14:55 < bridge> that kinda shocked me 14:56 < bridge> tthats such a let down xd 14:56 < bridge> no i get same error, that's why 14:56 < bridge> uh no idea 14:56 < bridge> maybe i have the flag somewhere hidden 14:56 < bridge> let me build it on my server 15:04 < bridge> @jupeyy_keks https://edgl.dev/concrete 15:04 < bridge> to download 15:04 < bridge> its not stripped 15:04 < bridge> 188mb :justatest: 15:07 < bridge> ok lez go 15:07 < bridge> still smaller than ddnet-rs binary 15:08 < bridge> i think size is cuz llvm stuff 15:08 < bridge> epyc works 15:08 < bridge> the errors look really sexy 15:09 < bridge> :brownbear: 15:09 < bridge> needs lot of testing everything 15:09 < bridge> Your example already doesn't compile tho xD 15:09 < bridge> 15:09 < bridge> ``` 15:09 < bridge> [UnexpectedType] Error: expected type i64 15:09 < bridge> ╭─[ abc.txt:3:16 ] 15:09 < bridge> │ 15:09 < bridge> 3 │ return fib(10); 15:09 < bridge> │ ───────┬──┬─── 15:09 < bridge> │ ╰──────── expected 'i64' due to this expression 15:09 < bridge> │ │ 15:09 < bridge> │ ╰───── Unexpected type 'u64', expected 'i64' 15:09 < bridge> ``` 15:09 < bridge> we building the lang yet so just making new stuff 15:09 < bridge> we building the lang yet so just adding new stuff 15:09 < bridge> xd use the ones from examples/ 15:12 < bridge> ```rust 15:12 < bridge> mod vec { 15:12 < bridge> extern fn malloc(size: u64) -> *mut u8; 15:12 < bridge> extern fn realloc(ptr: *mut u8, size: u64) -> *mut u8; 15:12 < bridge> 15:12 < bridge> #[intrinsic = "sizeof"] 15:12 < bridge> fn sizeof() -> u64; 15:12 < bridge> 15:12 < bridge> struct Vec { 15:12 < bridge> ptr: *mut T, 15:12 < bridge> len: u64, 15:12 < bridge> cap: u64, 15:13 < bridge> } 15:13 < bridge> 15:13 < bridge> impl Vec { 15:13 < bridge> pub fn new() -> Vec { 15:13 < bridge> let vec: Vec = Vec:: { 15:13 < bridge> ptr: malloc(sizeof::() * 32) as *mut T, 15:13 < bridge> len: 0, 15:13 < bridge> cap: 32, 15:13 < bridge> }; 15:13 < bridge> return vec; 15:13 < bridge> } 15:13 < bridge> 15:13 < bridge> pub fn push(&mut self, value: T) { 15:13 < bridge> let type_size: u64 = sizeof::(); 15:13 < bridge> 15:13 < bridge> if self.len <= self.cap { 15:13 < bridge> let new_cap: u64 = self.cap * 2; 15:13 < bridge> self.ptr = realloc(self.ptr as *mut u8, type_size * new_cap) as *mut T; 15:13 < bridge> self.cap = new_cap; 15:13 < bridge> @jupeyy_keks try this code 15:13 < bridge> output is 4 15:13 < bridge> ye 15:13 < bridge> echo $? 15:13 < bridge> xd 15:13 < bridge> yeah 15:13 < bridge> ```rust 15:13 < bridge> mod hello { 15:13 < bridge> extern fn malloc(size: u64) -> *mut u8; 15:13 < bridge> extern fn puts(ptr: *mut u8) -> i32; 15:14 < bridge> 15:14 < bridge> #[langitem = "String"] 15:14 < bridge> struct String { 15:14 < bridge> ptr: *mut u8, 15:14 < bridge> len: u64, 15:14 < bridge> cap: u64, 15:14 < bridge> } 15:14 < bridge> 15:14 < bridge> fn main() -> u64 { 15:14 < bridge> let x: String = "hello \nworld!"; 15:14 < bridge> puts(x.ptr); 15:14 < bridge> 15:14 < bridge> return 0; 15:14 < bridge> } 15:14 < bridge> } 15:14 < bridge> 15:14 < bridge> ``` 15:14 < bridge> @jupeyy_keks hello world with libc 15:14 < bridge> do you also have some kind of std lib? 15:14 < bridge> yeah 15:14 < bridge> in std/ 15:14 < bridge> i just recently added project dependencies 15:14 < bridge> go to std 15:14 < bridge> do "pwd" 15:14 < bridge> save the path 15:14 < bridge> on random folder do 15:14 < bridge> concrete new myproject 15:14 < bridge> cd myproject 15:14 < bridge> edit Concrete.toml 15:14 < bridge> and add the path to std 15:15 < bridge> like in rust 15:15 < bridge> ``` 15:15 < bridge> [dependencies] 15:15 < bridge> std = { path = "../../std", version = "0.1.0" } 15:15 < bridge> ``` 15:15 < bridge> version doesnt matter xd 15:15 < bridge> ``` 15:15 < bridge> [dependencies] 15:15 < bridge> std = { path = "pathto/std", version = "0.1.0" } 15:15 < bridge> ``` 15:15 < bridge> ```toml 15:15 < bridge> [dependencies] 15:15 < bridge> std = { path = "pathto/std", version = "0.1.0" } 15:15 < bridge> ``` 15:16 < bridge> concrete build to build a project 15:16 < bridge> @ryozuki are gpus your target group or more micro chips? 15:16 < bridge> u can also add --asm --llvm --ast --ir 15:16 < bridge> to output the intermediate files 15:16 < bridge> for now just normal cpus, but with mlir its easier to target gpu kernels and stuff 15:17 < bridge> the lang goal is to be a mix of rust/elixir with a pluggable default async runtime 15:17 < bridge> and simpler lifetimes 15:17 < bridge> oh 15:17 < bridge> and liner types 15:17 < bridge> linear types is what make it most special 15:17 < bridge> not yet implemented tho 15:18 < bridge> https://en.wikipedia.org/wiki/Substructural_type_system#Linear_type_systems 15:18 < bridge> > Linear types correspond to linear logic and ensure that objects are used exactly once. This allows the system to safely deallocate an object after its use,[1]: 6  or to design software interfaces that guarantee a resource cannot be used once it has been closed or transitioned to a different state.[ 15:18 < bridge> > Linear type systems allow references but not aliases. To enforce this, a reference goes out of scope after appearing on the right-hand side of an assignment, thus ensuring that only one reference to any object exists at once. Note that passing a reference as an argument to a function is a form of assignment, as the function parameter will be assigned the value inside the function, and therefore such use of a reference also causes it to go out of 15:18 < bridge> So stuff like `Rc` won't exist? 15:20 < bridge> hmm idk 15:20 < bridge> xD 15:20 < bridge> if u want an example of a lang with linear types: https://austral-lang.org/ 15:21 < bridge> i dont like the syntax a lot tho xd 15:21 < bridge> You too much rust enjoyer XD 15:21 < bridge> xd 15:22 < bridge> the syntax looks cobol like lmao 15:22 < bridge> who likes that 16:00 < bridge> @0xdeen is april fools tomorrow? 16:00 < bridge> i forgot the day 16:00 < bridge> oh yeah xd 16:01 < bridge> Spoiler 16:01 < bridge> kek 16:01 < bridge> we should release ddnet 2.0 16:01 < bridge> Like tw did 1.0 as April fool 16:03 < bridge> ye 16:17 < bridge> from tomorrow onwards, ddnet-rs will replace ddnet 16:27 < bridge> allow x_ prefix skins for april fools pls 16:30 < bridge> ⛩ #Free cheat ⛩ 16:30 < bridge> The best free cheat server for various games is a large catalog of private 16:30 < bridge> High-quality cheats created by experienced developers 16:30 < bridge> Hat will make your game more productive and comfortable. 🍀 16:30 < bridge> Free private cheats for online games @here @everyone 💖 16:30 < bridge> discord.gg/M3RDdwyyGk 16:41 < bridge> any white theme enjoyer here? 16:41 < bridge> here 16:41 < bridge> proof 16:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356277272348201150/image.png?ex=67ebfb24&is=67eaa9a4&hm=fcd4add43b1c4de36708141af366d1f1f965eeb96cd77e001656a065435bfcad& 16:41 < bridge> :justatest: 16:41 < bridge> how was https://ddnet.org/releases/maps.json generated 16:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356277308515684472/image.png?ex=67ebfb2c&is=67eaa9ac&hm=e520c6d2ac1c2092b349db900a929002bee6359dfa960ece950f07994b18a12e& 16:41 < bridge> ban 16:41 < bridge> with AI vibe coding 16:41 < bridge> @tsfreddie 16:42 < bridge> some of the maps got wrong type 16:42 < bridge> multimap is novice iirc 16:42 < bridge> its oldschool 16:42 < bridge> nah 16:42 < bridge> white theme + eye protection mode on monitor 16:43 < bridge> https://github.com/ddnet/ddnet-maps/blob/master/types/oldschool/maps/Multimap.map 16:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356277726885056512/image.png?ex=67ebfb90&is=67eaaa10&hm=c0b9db738f57fca6093e07188a2e42580dbe2399bffa71b8f8590429c6f8174f& 16:43 < bridge> website also shows oldschool 16:43 < bridge> but the json is novice 16:43 < bridge> ddstats is also oldschool so it is oldschool in the database. 16:44 < bridge> kinda weird that the json is mismatched 16:44 < bridge> @everyone steam gift 50$ - [steamcommunity.com/gift-card/pay/50](https://u.to/z802Ig ) 16:49 < bridge> :justatest: 16:49 < bridge> april fools? 16:49 < bridge> blame jason 16:50 < bridge> Jason Derulo~ 16:51 < bridge> exactly 16:53 < bridge> ⛩ #Free cheat ⛩ 16:53 < bridge> The best free cheat server for various games is a large catalog of private 16:53 < bridge> High-quality cheats created by experienced developers 16:53 < bridge> Hat will make your game more productive and comfortable. 🍀 16:53 < bridge> Free private cheats for online games @here @everyone 💖 16:53 < bridge> discord.gg/M3RDdwyyGk 16:57 < furo> @TsFrediman Looking at the code it seems to read this file, https://github.com/ddnet/ddnet-scripts/blob/8cc6949be1a7d0b2780553da6afcf44074dbc8ed/servers/releases but seems like it doesn't update when map info changes and only get appended new maps. 16:57 < bridge> very cool 16:58 < bridge> :nouis: now i have to sync the database just to correct maps 16:58 < bridge> furo app knows it all 17:06 < bridge> why does the list stop at 2021 17:06 < furo> Because it's not synced to git. It's a local file on the server 17:07 < bridge> ofc it is 17:07 < bridge> bummer 17:07 < bridge> database it is then 17:25 < furo> @TsFrediman Or you can use this if you wish https://ddstats.tw/maps/json 17:25 < bridge> i already coded the database one 17:25 < bridge> :justatest: 17:26 < furo> What are you making? 17:27 < bridge> chn website 17:27 < bridge> ddnet.org was blocked by tencent 17:27 < bridge> it's chinese only so they can at least check in chat 17:31 < bridge> @everyone steam gift 50$ - [steamcommunity.com/gift-card/pay/50](https://u.to/5s42Ig ) 18:45 < bridge> @tsfreddie If it helps I can try to port my package to use stuff from ddstats instead of ddnet.org 18:57 < bridge> ⛩ #Free cheat ⛩ 18:57 < bridge> The best free cheat server for various games is a large catalog of private 18:58 < bridge> High-quality cheats created by experienced developers 18:58 < bridge> Hat will make your game more productive and comfortable. 🍀 18:58 < bridge> Free private cheats for online games @here @everyone 💖 18:58 < bridge> discord.gg/M3RDdwyyGk 18:58 < bridge> ⛩ #Free cheat ⛩ 18:58 < bridge> The best free cheat server for various games is a large catalog of private 18:58 < bridge> High-quality cheats created by experienced developers 18:58 < bridge> Hat will make your game more productive and comfortable. 🍀 18:58 < bridge> Free private cheats for online games @here @everyone 💖 18:58 < bridge> discord.gg/M3RDdwyyGk 19:00 < bridge> jesus christ 19:00 < bridge> like cmon guys 19:00 < bridge> you had like 30 seconds to click it and you did and you got a virus 19:01 < bridge> :kek: 19:01 < bridge> poor showing 19:18 < bridge> WTF is this? Is he searching the string ipinfo on the entire GitHub platform and replying everywhere???? How can you even search for issue text on all of github? Is the search that good? https://github.com/ChillerDragon/antibob/issues/6#issuecomment-2766747657 19:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356318580492341410/image.png?ex=67ec219c&is=67ead01c&hm=ad786c3d6d391d0f1766c013aeb02533d49db029a6e9f0bdc6813e39b7404777& 19:26 < bridge> did your discord also switch randomly into super dark mode? :/ 19:27 < bridge> it isnt, but it catches enuf 19:31 < bridge> also @ryozuki do you have time for a review of #9972 as it blocks other PRs I want to do? 😦 19:31 < bridge> https://github.com/ddnet/ddnet/pull/9972 19:33 < bridge> maybe later 19:33 < bridge> im raiding 19:34 < bridge> till 22 19:34 < bridge> in ff :d 19:34 < bridge> ff? 19:34 < bridge> ffxiv 21:32 < bridge> yay 21:58 < bridge> a pretty hefty chunk of time is spent (presummably in hook lines) 21:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356357059930751177/image.png?ex=67ec4572&is=67eaf3f2&hm=c4b59a5f2d1786e7f8863365448f3f196c80a18dd4003a04c51e19c93c547f99& 21:58 < bridge> just doing collision 22:16 < bridge> 50$ gift https://steamcard.cfd/8530194683 22:22 < bridge> `vec2 OldPos = InitPos + ExDirection * CCharacterCore::PhysicalSize() * 1.5f;` 22:22 < bridge> is this why you can hook through corners? 22:32 < bridge> i had this issue too i thought it was tclient speciifc :D 22:33 < bridge> I pushed my WIP: https://github.com/Robyt3/ddnet/tree/Skin-Loading-Threaded 22:33 < bridge> thanks :D 22:45 < bridge> guys im starting to learn regex, pray for my sanity 22:57 < bridge> <_qey> It’s not that hard actually, good luck. 22:58 < bridge> I mean, I was able to get this so far 22:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1356372227725197522/Screenshot_1.png?ex=67ec5393&is=67eb0213&hm=ac8a830bdb775634fa4d23f8935a1e63f343e99d47d08bb8d7ef141b7744c288& 22:59 < bridge> I think whatever I'm doing is gonna work when I finally put it in code 22:59 < bridge> if not 22:59 < bridge> 🪢 23:02 < bridge> <_qey> You can actually just do \d+, no need to specify the length. 23:03 < bridge> aight 23:03 < bridge> thats better 23:04 < bridge> <_qey> And as for IP, ([\d\.]+) will do. 23:04 < bridge> smort 23:04 < bridge> :owo: ty 23:04 < bridge> <_qey> Wait. 23:04 < bridge> <_qey> There’s \ before the dot, it’s not showing for some reason. 23:05 < bridge> <_qey> I hate Discord. 23:05 < bridge> yeah i figured 23:05 < bridge> dw 23:06 < bridge> <_qey> Sooo… As I wanted, Ive implemented whisper logging and auto-banning people based on spam ad of the KNOWN CLIENT (I’ll play along, guys), now I’m in need of actually unique-identifying clients to persist bans across IP changes. Any ideas? 23:07 < bridge> You need to escape the \\ because of how discord formats text 23:08 < bridge> <_qey> I know UUID isn’t a thing. I’m thinking of creating a fingerprint of some kind, but what can it be based on? 23:09 < bridge> <_qey> There was a good practice in good old CS:S, a plugin was setting a config value client side to an identifiable one, ban upon detection. Is this possible in DDNet? 23:10 < bridge> you get alot of config from the client, but thats a really bad uuid 23:12 < bridge> <_qey> If the client is default, sure. Ooooh, we also get skin data, ain’t we? 23:12 < bridge> you only get what skin is selected 23:12 < bridge> what skins are downloaded is only known by db 23:12 < bridge> for 30x same as before 23:13 < bridge> and tahts by ip aswell 23:13 < bridge> or idrk how that works 23:13 < bridge> <_qey> Thing is, those banned are usually not playing on a default client, they do configure their clients. 23:13 < bridge> <_qey> That would be a good fingerprint I guess. 23:13 < bridge> i dont think many people stick with default settings 23:13 < bridge> the first thing i do when opening any game is go straight to settings 23:14 < bridge> the first thing i did was change jump to w 23:14 < bridge> the first thing in ddnet was change jump to w 23:14 < bridge> the next thing was s = hammer then 1 = gun 2 = sg ... etc cuz my hands r too small to reach 5 23:15 < bridge> <_qey> Exactly. Read config (I don’t yet know what we have, I’ll have to dig into the code), make a hash fingerprint out of it, then just ban after the IP change. Genius. 23:15 < bridge> anything which is makred cfg_server 23:15 < bridge> <_qey> I’m just tired of people changing their IP and continue playing as if nothing happened. 23:16 < bridge> ~~anything which is makred cfg_server~~ 23:16 < bridge> ~~anything which is makred cfg_server~~ (i misremembred) 23:16 < bridge> <_qey> A UUID system would be good though. 23:16 < bridge> <_qey> Based on HWID. 23:16 < bridge> it wont stop anyone 23:17 < bridge> <_qey> Spoofable? Yes. But you have to do it. Which is a deterrent for many. 23:17 < bridge> and changing ip isnt? 23:17 < bridge> voldermort client will have a uuid shuffler 23:17 < bridge> <_qey> Way easier to change your IP. 23:17 < bridge> not for me 23:17 < bridge> i have no control over my ip xd 23:18 < bridge> <_qey> How come? 23:18 < bridge> uni internet 23:18 < bridge> it changes when it feels like 23:18 < bridge> and im in a fixed ip range 23:18 < bridge> and my udp ip is different from my tcp 23:18 < bridge> bane of many a ip verifier 23:20 < bridge> we just need accounts 23:21 < bridge> 1. get moderator 23:21 < bridge> 2. cheat under your ip 23:21 < bridge> 3. read who does ban appeals 23:21 < bridge> 4. know who from this community is in your uni 23:21 < bridge> what does this achieve 23:21 < bridge> dunno 23:22 < bridge> we'd need forced accounts tho 23:23 < bridge> <_qey> I’m slowly getting used to you being a weirdo. 23:23 < bridge> i *hope* that the ddnet account system will be available from chat 23:23 < bridge> so thats not a problem 23:23 < bridge> what do u mean with chat 23:23 < bridge> !register !login etc 23:23 < bridge> why should that help 23:23 < bridge> <_qey> Having an account system is a problem for DDNet. 23:23 < bridge> with not breaking backwards compat 23:24 < bridge> well ddnet will not have, so much i can guarantee you 23:24 < bridge> also means it can be implemented on server before client 23:25 < bridge> <_qey> It’s already achievable. 23:25 < bridge> not correct 23:25 < bridge> it would mean we'd have a unsecure account system 23:25 < bridge> it can move you to links 23:25 < bridge> for password entry 23:25 < bridge> and then tell u to enter numbers on the client 23:26 < bridge> still unsecure 23:26 < bridge> the network is unsecure already 23:26 < bridge> that defeats everything you gonna try 23:27 < bridge> <_qey> What do you mean by insecure? 23:27 < bridge> ``` 23:27 < bridge> !register 23:28 < bridge> please goto ddnet.org/register to register 23:28 < bridge> ... 23:28 < bridge> !login 23:28 < bridge> please goto ddnet.org/ingamelogin?code=1238719823 to login 23:28 < bridge> (page says type !login 12093812037816239123712731208731278312 to login) 23:28 < bridge> !login 12093812037816239123712731208731278312 23:28 < bridge> you are now logged in :D 23:28 < bridge> ``` 23:28 < bridge> not secure as said 23:28 < bridge> why not 23:28 < bridge> bcs a man in the middle can read the traffic 23:28 < bridge> change it 23:28 < bridge> whatever he wants 23:28 < bridge> its as secure as https is 23:29 < bridge> which is still succeptable to man in the middle 23:29 < bridge> that is completely wrong 23:29 < bridge> why 23:29 < bridge> ? 23:29 < bridge> Bro 23:29 < bridge> You say the whole internet is insecure? 23:29 < bridge> yeah to an extent 23:29 < bridge> maybe if you distrust the CAs 23:30 < bridge> wait is it 23:30 < bridge> hold on 23:30 < bridge> https://en.wikipedia.org/wiki/HTTPS 23:31 < bridge> according to wikipedia, https protects against man-in-the-middle attacks 23:31 < bridge> yeah 23:31 < bridge> there have been incidents of bad certs 23:33 < bridge> you would have to be a proxy, you dont get any control (without being unstealthy) and you dont get any details 23:34 < bridge> fake ddnet server and you have everything u need 23:34 < bridge> @patiga: my school teacher said Wikipedia is not a good source! 23:34 < bridge> thats a problem with kog aswell 23:34 < bridge> or any other thing 23:35 < bridge> Your school teacher is probably also not the best source xD 23:35 < bridge> Yep 23:35 < bridge> Shots fired 23:35 < bridge> sorry chilli, but my mum told me to not trust internet people :c 23:35 < bridge> kek 23:35 < bridge> but i dont think thats an issue, other servers can have the option for this login method aswell as the server gets no login details 23:36 < bridge> clients supporting 100% secure login methods can block you from using it 23:36 < bridge> btw it's not as secure as https, since our chat is completely plaintext, a mitm attack can just replace the url being sent by the server 23:36 < bridge> Yeah, the older I get the more I realize that teachers must be like me or ppl in my age 23:36 < bridge> 23:36 < bridge> :lol: 23:36 < bridge> yeah to something not ddnet.org 23:36 < bridge> Full distrust 23:36 < bridge> its the same as sending a fishy link 23:37 < bridge> It's very hard to achieve a secure channel over an insecure channel, especially by hand 23:37 < bridge> ah yes look at my new steam game `staem.com/game/123123` 23:37 < bridge> ddnet.loginsecure.org/login 23:38 < bridge> we need to educate the masses x-x 23:38 < bridge> or that idea from ... i forgot which browser which only shows the domain name 23:38 < bridge> Must be? You mean should be? 23:38 < bridge> not subdomain 23:38 < bridge> ddracenetvvork.org/register 23:38 < bridge> always assume ppl are stupid. 23:38 < bridge> 23:38 < bridge> just today i downloaded a random binary by a guy called ryo and executed it 23:39 < bridge> you see people falling for the steam gift card scam, and the link is identical 23:39 < bridge> I once gave a guy called lerato access to my raspberry pi 23:39 < bridge> yet you dont automoderate 23:39 < bridge> yet you dont use automoderate 23:39 < bridge> Do you think I am rational the whole day or what? xD 23:39 < bridge> 23:39 < bridge> Struggler army 23:40 < bridge> also fake servers cant get any login details or even login tokens 23:40 < bridge> unles it sends a fake link 23:40 < bridge> of course xd 23:40 < bridge> not with a client cert authing based system 23:40 < bridge> what about older clients or 0.7 D: 23:40 < bridge> unsupport 23:41 < bridge> btw @essigautomat if u wanna try to port water i can make or help make a map for it 23:41 < bridge> Thank you @robyt3 ❤️ 23:41 < bridge> you seemed to 180 xd 23:41 < bridge> I wish for Stiopia to answer, but he seems inactive :/ 23:41 < bridge> he answered 23:41 < bridge> also i had ideas on how to port the harpoon for some rly cool gameplay but its definitely a bigger feature so idk if it would be well received 😹 23:42 < bridge> <_qey> That’s a very short story it seems. 23:42 < bridge> i dont understand what that means 23:42 < bridge> . 23:42 < bridge> we cannot support clients who's network is not secure anyway 23:42 < bridge> Step one: break this up into multiple PRs 23:42 < bridge> yeah, fs 23:42 < bridge> My Material "Mockup" had multiple thousand lines of code, so no chance to ever get reviewd 23:43 < bridge> i actually was like halfway thru a water port a few months ago but gave up xd 23:43 < bridge> some discussion is needed as to how to handle water tile and any separate layers 23:44 < bridge> at some point I had a material layer which was able to create water xD this was also cool, ice into swimming pool into speedup 23:44 < bridge> cus i think the old pr has separate layers for design water and entity water, so its kinda weird 23:44 < bridge> i think thats fine 23:44 < bridge> thats how the rest of the tiles work 23:45 < bridge> ye but design layer is a separate thing from tiles or quad 23:45 < bridge> also when that happens can the water work like it does in celeste (that the water dynamics work on all sides) 23:45 < bridge> its like a separate Water layer that only renders the fluid 23:46 < bridge> idk i forgot if you can put the border tile on sides 23:46 < bridge> oh is that what the crossed out one does