00:10 < bridge> Cool :^D 00:11 < bridge> :) 00:20 < bridge> Where is the package handling done on client side? 00:29 < bridge> it isn't 00:29 < bridge> or uhh 00:29 < bridge> what are you trying to get done 00:32 < bridge> E.g. how does the client now someone else is online 00:32 < bridge> @ewan E.g. how does the client know someone else is online 00:32 < bridge> @mpft E.g. how does the client know someone else is online 00:32 < bridge> it doesn't. u can use steam or the list of tees from the masters 00:33 < bridge> I'm assuming it's by using the master server data, it reports what players are on every registered server 00:33 < bridge> that's basically what I did for the online icon here 00:33 < bridge> am I confused or doesnt the client have to send a request to the server? 00:33 < bridge> it does when you refresh the server browser, yea 00:33 < bridge> oyea 00:34 < bridge> and the server will answer with a package, no? 00:34 < bridge> json 00:34 < bridge> yeah 00:34 < bridge> tons of json 00:34 < bridge> which is handled where? 00:34 < bridge> i see what u mean now 00:34 < bridge> where the api 00:34 < bridge> where is the api 00:34 < bridge> where do the responses get dealt with 00:35 < bridge> lemme c 00:35 < bridge> ty 00:35 < bridge> my cpp dev env is crippled so i have to look on github 00:35 < bridge> sux 00:36 < bridge> its nice if you know, but you dont have to do some extra work to find out 00:36 < bridge> its nice if you know, but you dont have to do some extra work to find it 00:36 < bridge> its nice if you know, but dont do some extra work to find it 00:37 < bridge> it should be ez to find 00:43 < bridge> prob 00:43 < bridge> that's where it requests info from a server 00:43 < bridge> ty 🙂 00:44 < bridge> higher up, servers are added to a queue to have their info requested 00:44 < bridge> and the filtering is done somewnere else basically 00:44 < bridge> so u might just poke around in there and menus_browser.cpp to get all u need 01:21 < bridge> no. the code locations you found aren't the correct ones 01:21 < bridge> the client gets all its data from https://master1.ddnet.tw/ddnet/15/servers.json 01:22 < bridge> exclusively. you can also download that JSON from elsewhere 😉 01:23 < bridge> the client gets all its data from https://master1.ddnet.org/ddnet/15/servers.json 01:24 < bridge> im looking for an example in the code where the request for this json is sent, as well as an example where the response with the json is received 01:25 < bridge> bouncyness already exists lmao 01:25 < bridge> and gravity and slippery 01:29 < bridge> the request for https://master1.ddnet.org/ddnet/15/servers.json is sent here: https://github.com/ddnet/ddnet/blob/cd81b1f253fee545fb5e746cefc2d802e4d1e7aa/src/engine/client/serverbrowser_http.cpp#L382 01:29 < bridge> Option to make dummies follow you around while avoiding freeze and death tiles 🗣️ 🗣️ 🗣️ 🔥 🔥 🔥 01:29 < bridge> what do you mean with "where it is sent"? do you mean the mastersrv? 01:29 < bridge> ty 01:30 < bridge> You answered it in your first response? 01:31 < bridge> ah 01:31 < bridge> as in what code sends the request 01:31 < bridge> ah 01:31 < bridge> https://github.com/ddnet/ddnet/blob/cd81b1f253fee545fb5e746cefc2d802e4d1e7aa/src/engine/client/serverbrowser_http.cpp#L399 01:31 < bridge> ty 01:31 < bridge> here, it's received 01:31 < bridge> nice thanks 01:47 < bridge> @heinrich5991 sorry if bother, do you also know how packages are being sent to the server (like for picking a server, shooting, movement, etc.)? 01:47 < bridge> @heinrich5991 sorry if bother you, do you also know how packages are being sent to the server (like for picking a server, shooting, movement, etc.)? 01:47 < bridge> @heinrich5991 sorry if I bother you, do you also know how packages are being sent to the server (like for picking a server, shooting, movement, etc.)? 01:47 < bridge> @heinrich5991 sorry to bother, do you also know how packages are being sent to the server (like for picking a server, shooting, movement, etc.)? 01:48 < bridge> yes, I know that. but it's kinda long to explain ^^ 01:49 < bridge> https://chillerdragon.github.io/teeworlds-protocol/ 01:49 < bridge> https://ddnet.org/libtw2-doc/ 01:49 < bridge> some resources (found on https://wiki.ddnet.org/wiki/Resources) 01:50 < bridge> ty 01:53 < bridge> Any chance you have an example in code? 01:54 < bridge> Of doing what exactly? 01:55 < bridge> Sending any package to the server, say for shooting your weapong (if thats its own package even) 01:55 < bridge> Sending any package to the server, say for shooting your weapon (if thats its own package even) 01:57 < bridge> What do you need it for? 01:58 < bridge> atm. for sending echos in chat if someone from your friends list joins the game. But I also want to understand the code in general as im quite new to the project 01:59 < bridge> So you are working in the ddnet client C++ code base? 01:59 < bridge> yes 01:59 < bridge> the git project 02:00 < bridge> Okay yea thats smooth. I almost explained the entire protocol from top to bottom to you :D 02:00 < bridge> u can try looking at similar pull requests ans seeing what files they edit 02:00 < bridge> but you don't need to know about the low level stuff 02:00 < bridge> @heinrich5991 Hmmm, it's a useful for when people should attempt to rejoin if they've been whitelisted, because I don't normally remove the ban 02:01 < bridge> So technically input is not its own packet but its own message and multiple messages can be bundled in one packet when they are sent. But you can think of input like movement as one message. 02:02 < bridge> Messages contain fields that are either strings or integers @apfff how many strings and integers and what they mean and which order they are in is pre agreed on. Sometimes you have to manually build those messages and sometimes you can use helper structs or methods 02:02 < bridge> the way im used to Server/Client interaction is by REST api 02:02 < bridge> Yea this is different 02:02 < bridge> ```C++ 02:02 < bridge> struct CNetObj_PlayerInput 02:02 < bridge> { 02:02 < bridge> int m_Direction; 02:02 < bridge> int m_TargetX; 02:02 < bridge> int m_TargetY; 02:02 < bridge> int m_Jump; 02:02 < bridge> int m_Fire; 02:02 < bridge> int m_Hook; 02:02 < bridge> int m_PlayerFlags; 02:02 < bridge> int m_WantedWeapon; 02:02 < bridge> int m_NextWeapon; 02:02 < bridge> int m_PrevWeapon; 02:03 < bridge> }; 02:03 < bridge> 02:03 < bridge> ``` 02:03 < bridge> @heinrich5991 Hmmm, it's a useful for people to know when they can attempt to rejoin after they've been whitelisted, because I don't normally remove the ban 02:03 < bridge> yeah, im trying to understand 02:03 < bridge> this is what is used for inputs for example 02:03 < bridge> tbf, I mostly do web stuff 02:03 < bridge> https://github.com/ddnet/ddnet/blob/cd81b1f253fee545fb5e746cefc2d802e4d1e7aa/src/engine/client/client.cpp#L252-L298 02:04 < bridge> input is being sent in this method 02:04 < bridge> the code is always a bit all over the place 02:04 < bridge> I documented a few messages what they should include in the end when they are being sent 02:04 < bridge> https://chillerdragon.github.io/teeworlds-protocol/06/system_messages.html#NETMSG_INPUT 02:04 < bridge> here is input 02:04 < bridge> today is the I learned its called packet, not package :poggers2: :nouis: 02:04 < bridge> today is the day I learned its called packet, not package :poggers2: :nouis: 02:05 < bridge> ```C++ 02:05 < bridge> CMsgPacker Msg(NETMSG_INPUT, true); 02:05 < bridge> Msg.AddInt(m_aAckGameTick[i]); 02:05 < bridge> Msg.AddInt(m_aPredTick[g_Config.m_ClDummy]); 02:05 < bridge> Msg.AddInt(Size); 02:05 < bridge> ... 02:05 < bridge> ``` 02:05 < bridge> this is where the message is being built 02:05 < bridge> The `CMsgPacker` builds a new message. We tell it we want a input message and then we will the integers in the correct order using the `AddInt` method 02:06 < bridge> further down the actual input struct will be iterated and packed as a bunch of integers 02:06 < bridge> I hope I wont get flagged as a bot client when sending weird packets 02:07 < bridge> or are they just ignored 02:07 < bridge> You won't get flagged as bot 02:07 < bridge> You might have trouble on ddos protected servers such as ger10 they like to drop weird things 02:07 < bridge> but generally if you send weird stuff the server ignores it 02:07 < bridge> good to know 02:08 < bridge> The server then checks which message you sent with `else if(Msg == NETMSG_INPUT)` 02:08 < bridge> And then it unpacks the same integers in the same order we just sent 02:08 < bridge> https://github.com/ddnet/ddnet/blob/cd81b1f253fee545fb5e746cefc2d802e4d1e7aa/src/engine/server/server.cpp#L1626-L1628 02:09 < bridge> A simpler message sending to look at than input is the chat 02:09 < bridge> Here you have one full message build and send in a few lines 02:09 < bridge> https://github.com/ddnet/ddnet/blob/cd81b1f253fee545fb5e746cefc2d802e4d1e7aa/src/game/client/components/chat.cpp#L1320-L1324 02:10 < bridge> This one is not packing integers and strings manually. But it is using the C++ struct for it. 02:10 < bridge> Those are the two options. 02:11 < bridge> @apfff: but unless you want to fork of and create a custom game thats not compatible with ddnet by changing server and client protocol that stuff should not be interesting to you. 02:11 < bridge> as a client you can only send what the server understands and for those things there are already methods 02:11 < bridge> Thank you 02:11 < bridge> So if you want to send a chat message you just say `m_Chat.SendChat(0, "hello");` 02:12 < bridge> great explanation! 02:12 < bridge> Thank you for your effort! 02:12 < bridge> c: 02:13 < bridge> The server code in the project as well, right? 02:13 < bridge> The server code is in the project as well, right? 02:13 < bridge> yes its one shared code base 02:13 < bridge> some of the code is even included in both the client and the server 02:13 < bridge> where are the requests being handled? 02:13 < bridge> multiple places 02:14 < bridge> i sent you the one example for input 02:14 < bridge> Maybe I havent understood the project structure, but I get the feeling, stuff is all over the place :justatest: 02:14 < bridge> Maybe I havent understood the project structure, but I get the feeling, that stuff is all over the place :justatest: 02:14 < bridge> yes 02:14 < bridge> :feelsbadman: 02:15 < bridge> I think trying to understand it all by browsing the code is a bit exhausting 02:15 < bridge> youll get the hang once you actually work with it 02:15 < bridge> i suggest to just start building what ever you wanted to build 02:15 < bridge> yeah thats what im doing rn 02:15 < bridge> you can ask questions on where to find the things you need here and then you slowly will understand the code base 02:16 < bridge> I usually ask for examples so I have an entry point 02:17 < bridge> I have never used c++ and i have never worked on a (large) software project, only web project 02:17 < bridge> I have never used c++ and i have never worked on a (large) software project, only web projects 02:25 < bridge> How is that as an example? 02:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1265827158362816592/image.png?ex=66a2ece8&is=66a19b68&hm=1ca4c54575a0244b7dcbe8bd691fd98002206b54597399bac009d069c5cdf04d& 02:25 < bridge> https://github.com/ChillerDragon/ddnet/commit/b115220de8ad1f3e61f3308c3aa9515e8d359bd0 02:25 < bridge> @apfff: 02:25 < bridge> thanks a lot! 02:26 < bridge> I will look into it, doing my own example rn 02:26 < bridge> One more question: where are files like executable png being pulled from? My understanding is, that there are two places, one is the local client and one is steam? 02:27 < bridge> executable png? xd 02:27 < bridge> $configdir 02:27 < bridge> omagawd i never know how to trigger that bot 02:28 < bridge> the picture used for DDNet.exe 02:28 < bridge> yea they are in some steam folder 02:28 < bridge> or if you download ddnet from the website they are in the folder you downloaded 02:29 < bridge> The folder is called data/ 02:29 < bridge> ty 02:33 < bridge> Another thing I would love to the see an example of, is how the skins are being rendered. e.g. in the *Emote-Wheel* 02:33 < bridge> Another thing I would love to see an example of, is how the skins are being rendered. e.g. in the *Emote-Wheel* 02:41 < bridge> i rly just gotta keep my mouth shut 02:43 < bridge> prolly RenderTee() in render.cpp 02:43 < bridge> why? 02:50 < bridge> i gave u incorrect info lol 02:51 < bridge> ah np dw 02:52 < bridge> A wrong answer is better than no answer 02:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1265835498514153542/image.png?ex=66a2f4ac&is=66a1a32c&hm=3fe30c7efc77180a6f75517ae3acd3aa1bdde98c2a89d279f858dd3bed354dcd& 02:58 < bridge> can someone explain what i need to do to make cmake work if i add a file :thonk: 02:58 < bridge> i just clicked 'ok' on whatever visual studio auto popped up but now it won't compile 02:59 < bridge> You need to put it in the cmakelist 03:00 < bridge> Don't add files through visual studio solution explorer, make then in the source folder first then regenerate the project. 03:00 < bridge> Don't add files through visual studio solution explorer, make them in the source folder first then regenerate the project. 03:02 < bridge> okay ty 03:34 < bridge> How can I create a replay from any class but CClient. I want to trigger making a replay from the class CEmoticon, but I've been struggling 03:35 < bridge> How can I create a replay from any class but `CClient`. I want to trigger making a replay from the class `CEmoticon`, but I've been struggling 04:34 < bridge> What is a replay 04:35 < bridge> @apfff: 08:26 < bridge> morning 09:24 < bridge> morning 09:24 < bridge> after gym session 09:24 < bridge> :gigachad: 10:05 < bridge> gm 10:29 < bridge> @reitw https://sysdig.com/blog/ebpf-offensive-capabilities/ 10:37 < bridge> yea that's great 10:37 < bridge> but still, if someone is root on your machine 10:37 < bridge> you're already compromised lmao 10:55 < bridge> But yea if you are root you can basically do rly good stuff, like also hide a malicious process whenever someone does ps or top 11:24 < bridge> and https://github.com/ddnet/ddnet/pull/1748 ? 11:33 < bridge> maybe we can shorten the ban to 1 minute for this? 11:40 < bridge> Could also just kick 11:42 < bridge> nah, the lookup has some delay, makes sense to ban for a high multiple of that 11:42 < bridge> the ban is essentially a cache of the lookup 11:42 < bridge> I see 11:42 < bridge> Sounds like the cache is in the wrong place 11:43 < bridge> it works 🤷‍♀️ 11:43 < bridge> But who am I to talk. I would for sure used something as hacky or worse xd 11:43 < bridge> \*if I would support bans 11:44 < bridge> \#banbans 11:45 < bridge> Can a bunch of spoofed IPs fill the ban list? 11:46 < bridge> you cannot spoof a join in a ddnet server 11:46 < bridge> so no 11:46 < bridge> When does it ban? After join? 11:47 < bridge> Ah right because it takes time. So joining starts some dnslb lookup process? 11:49 < bridge> yes 12:06 < bridge> `TestWorkflowEnvironment is used to execute UpdateAccountWorkflow. Please create a new TestWorkflowEnvironment for UpdateAccountWorkflow` another one of the errors 12:12 < bridge> Quick question, when exactly are new players added to the db? Is it when they first join a ddnet server or when they finish their first map? 12:13 < bridge> finish their first map 12:14 < bridge> Alright, also if I check their points before that, does it add an entry then tell me or just assumes 0 points? 12:14 < bridge> same with rank ig 12:14 < bridge> same with /rank ig 12:14 < bridge> I think it says "no rank" 12:14 < bridge> so it doesn't add an entry 12:15 < bridge> ah so doesnt bother to add unless they actually finished a map first 12:15 < bridge> got it 12:15 < bridge> ah so doesnt bother to add them to the db unless they actually finished a map first 12:22 < bridge> @heinrich5991 Do you know if people are able to join a server before the dnsbl check, if enabled, has finished (for example due to response delays by the dnsbl provider) 12:23 < bridge> (they should be able to iirc, but I don't have the code in front of me) 12:24 < bridge> Hmmmm, if you do check, could you maybe figure out if @robyt3's change to the dnsbl_ban behaviour will account for that? 12:25 < bridge> #8640 12:25 < bridge> https://github.com/ddnet/ddnet/pull/8640 12:47 < ws-client> Does someone have a good intel x86_64 assembly neovim config? I tried https://github.com/bergercookie/asm-lsp and its a huge downgrade compared to my vim + YouCompleteMe + gutentags + ctags setup 12:48 < bridge> i raw dawg it without any lsp :feelsbadman: 12:49 < ws-client> I really need my labels to auto complete 12:49 < ws-client> worked so smooth in vanilla vim 13:02 < bridge> yes, should work 13:03 < bridge> Should work in the sense that it would ban the person? 13:29 < bridge> @learath2 when make @pingme role for annoucements 13:32 < ws-client> Okay I somewhat solved my assembly setup by bloating in the same dependency that worked for vim. https://github.com/ycm-core/YouCompleteMe 13:32 < ws-client> I still think there is something better out there 13:32 < ws-client> that is more neovimy and does not require compiling some huuuge thingy with a python script to get started 14:06 < bridge> anyone have source code for a client that shows a trail behind the tee as it moves quickly? 14:14 < ws-client> gotta love the bugs that only happen when nobody is watching 14:14 < ws-client> adding debug prints just fixed my bug wtf?! 14:15 < ws-client> @louis ctrl+shift+d :D 14:15 < bridge> Where can I download new ddnet for android? 14:15 < bridge> I'd suspect UB if single thread, race if multi thread 14:15 < ws-client> yea i for sure messed something up and just pushed the error somewhere else @learath2 14:15 < bridge> in the future 14:15 < ws-client> single threaded 14:15 < ws-client> well future me problem 14:15 < ws-client> ship debug prints to production and call it a day 14:16 < bridge> somewhere in this channel there is a very early debug version 14:16 < bridge> but it's not finished, and it doesnt help if many ppl test it and are sad that it is unfinished 14:16 < ws-client> learato u wanna debug my UB? xd 14:16 < bridge> Thanks 14:17 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1265245601046466615 14:17 < bridge> chillerdragon: is it a shell script :justatest: 14:17 < bridge> but as said, don't expect anything 14:17 < ws-client> @milkeeycat its x86 assembly <:justatest:572499997178986510> 14:17 < bridge> sounds fun :clueless: 14:17 < ws-client> pog 14:18 < ws-client> @milkeeycat it should just run on your machine if compiled with `make` it sends some udp packet to port 8303 if you press "a" 14:18 < ws-client> https://github.com/ChillerDragon/teeworlds-asmr/blob/112beedff208f986960fdbc60c46348c7651cdb2/src/teeworlds_asmr.asm#L224-L238 14:19 < ws-client> thing is if you press "a" again it gets stuck 14:19 < ws-client> so in the key_a method i added a bunch of prints and now it works xxxD 14:19 < ws-client> https://zillyhuhn.com/cs/.1721909979.png 14:19 < bridge> teeworlds client in asm 14:20 < bridge> classic chiller 14:21 < ws-client> Yea i do not feel comfortable in asm land at all 14:21 < bridge> do you have teeworlds client in bash? 14:21 < bridge> I have a friend called ubsan that would love to help 14:22 < ws-client> ubsan for assembly works? xd 14:22 < ws-client> @milkeeycat there is no udp in bash xd 14:22 < bridge> too bad 14:22 < bridge> Oh assembly, ok no ubsan 14:22 < bridge> chillers teeworlds ports: 14:22 < bridge> ruby, lua, javascript, bash, wireshark script language, asm what am i missing? 14:23 < bridge> add udp to bash -> make teeworlds client in bash 14:23 < bridge> ez 14:23 < ws-client> i did heavy gdbing 10 months ago back then i already spammed #developer but it got nowhere xd 14:23 < ws-client> @Jupstar ✪ go 14:23 < ws-client> @Jupstar ✪ python 14:23 < bridge> when zig 14:23 < ws-client> this summer 14:23 < bridge> when will you be home again 14:23 < ws-client> @Jupstar ✪ javascript is by Swarfey and bash doesnt exist :c 14:24 < ws-client> @Jupstar ✪ december 14:24 < bridge> epýc 14:25 < bridge> How do I get access to m_pClient tho 14:25 < ws-client> type it 14:25 < ws-client> `m_pClient` should be accessible like that in all components 14:25 < bridge> maybe it is `Client()` 14:25 < ws-client> Client() is gameclient iirc 14:25 < bridge> 😮 14:25 < ws-client> wait idk tbh 14:25 < bridge> i thoguht that is GameClient 14:25 < bridge> () 14:25 < ws-client> i try and error every time 14:26 < bridge> me2 14:26 < ws-client> when in doubt do `m_pClient->Client()` 14:27 < ws-client> https://zillyhuhn.com/cs/.1721910437.png 14:27 < ws-client> ez 14:27 < ws-client> buy my ddnet code base udemy course now 14:28 < ws-client> https://zillyhuhn.com/cs/.1721910498.png 14:28 < bridge> nice 14:28 < bridge> Client() wins 14:29 < ws-client> i forgot what we are looking for 14:29 < ws-client> i thought he wants the gameclient 14:29 < bridge> did we know that? 14:29 < ws-client> he did mention it earlier 14:29 < ws-client> if its the same person 14:29 < ws-client> i was on matrix back then 14:29 < ws-client> its a different name on irc so i just assumed its the same dude 14:29 < bridge> he wants to start a replay 14:29 < ws-client> yes 14:30 < bridge> i guess that might even work without client with the Console() 14:30 < bridge> xdd 14:30 < ws-client> what is a replay 14:30 < bridge> i guess a demo replay 14:30 < bridge> 30 seconds demo 14:30 < ws-client> bold guess 14:30 < ws-client> from emoticon? 14:30 < bridge> yeah i dunno 14:30 < bridge> good ideas need crazy ppl 14:31 < ws-client> teeworlds entrepreneur doing replays with emote wheel 14:31 < bridge> @apfff what kind of replay u need 14:31 < bridge> teeworlds deluxe edition 14:32 < ws-client> my bold guess is he wants an emote bot and replay bot 14:32 < bridge> ah yeah 14:32 < bridge> he spams heart and suddenly finishes insane maps solo 14:32 < ws-client> gotta replay those rank 1s 14:32 < bridge> and bcs it's a heart, nobody bans him 14:32 < bridge> clever 14:32 < bridge> outplayed 14:33 < ws-client> average #developer chatter 14:33 < bridge> chillerdragon: key_a doesn't work for me 14:33 < bridge> only once 14:33 < ws-client> fak 14:33 < ws-client> ye 14:33 < ws-client> then you can reproduce the bug xd 14:33 < ws-client> do you have a server running on 8303? 14:33 < ws-client> idk if it even matters 14:33 < bridge> i thought you added magic print statements and it works 14:33 < ws-client> i didnt commit xd 14:34 < bridge> ah 14:34 < bridge> it works for d key tho :thonk: 14:34 < ws-client> ye "d" doesnt do too much xd 14:34 < ws-client> udp is "a" only 14:34 < ws-client> obviously 14:34 < ws-client> its a leftists client 14:35 < bridge> my bad xd 14:35 < ws-client> there is no walking right 14:35 < bridge> im left handed and i approve it 14:35 < ws-client> ``git pull && git checkout magic`` 14:35 < ws-client> should fix a 14:35 < ws-client> """"fix"""" 14:36 < ws-client> but it breaks ctrl+c 14:36 < ws-client> but who needs to quit a game that works 14:36 < bridge> how do i close it .-. 14:36 < ws-client> the close feature was removed in magic branch xd 14:36 < ws-client> the debug prints broke it 14:37 < ws-client> `pkill teeworlds_asmr` 14:37 < bridge> `kill -9 $(pidof ./teeworlds_asmr)` to the rescue 14:37 < ws-client> bro bringing the big guns 14:38 < ws-client> there arent that many lines 14:38 < bridge> ctrl + c also doesn't work after killing the process lmao 14:38 < ws-client> somewhere in there i did a mistake but how does one find it 14:41 < ws-client> so "a" works and "adddd" works but "aa" does not work. Meaning that "a" does not brick the program? Only calling a twice?? xd 14:42 < bridge> my professional opinion is that `call recv_udp` breaks it 14:42 < ws-client> commenting that out also breaks ctrl+c 14:43 < ws-client> maybe its just like adding a print it just moves the problem around xd 14:43 < bridge> The program crashes 14:44 < ws-client> my neovim crashes when i try to goto definition of recv_udp xd 14:44 < ws-client> gosh i hate configuring neovim 14:44 < bridge> i was pressing ctrl + c as hard as i could and u did esc as quit xd 14:44 < ws-client> ah interesting 14:44 < ws-client> maybe then its just a timing thing 14:46 < bridge> then you'll need to update your phone. 14:46 < bridge> 14:46 < bridge> What is your phone? 14:46 < bridge> Redmi note 10s 14:46 < bridge> yesterday there was someone with redmi note 9 with problems 14:47 < bridge> with all phones i tested i had no problems. 14:47 < bridge> 14:47 < bridge> nothing i can do for you now 14:47 < bridge> 14:47 < bridge> if you know how to read logs, you can see where it crashes 14:47 < ws-client> nice so old ddnet 9 android works on blackberry from 2016 and earlier and blazingly new ddnet needs google hypixel phone from 2025 or newer 14:47 < bridge> chillerdragon: for me key_a breaks after syscall in recv_udp 14:47 < ws-client> ok nice so wats wrong with the syscall 14:48 < bridge> https://f-droid.org/de/packages/com.pluscubed.matloglibre/ 14:48 < bridge> for example with this app 14:48 < bridge> I think everything will work in the release 14:48 < ws-client> idk where the code is from but i must have copy pasted it from some trust worthy blog post or stackoverflow 14:48 < bridge> if it doesnt work now, then it will probably also not work in release 14:48 < bridge> the release will only improve gameplay, not compability 14:58 < bridge> When release? 14:58 < bridge> no release date 15:06 < bridge> `CClient::SaveReplay()` . What I'm trying to understand is how F1 commands work. I get that you can set one up with `Console()->Register(..)`, but I havent figured out, how you can "trigger" these commands outside of `CClient` 15:07 < bridge> I'm pretty sure its doing pattern matching/ regex with the F1-Input, but I would like to use these commands outside of the F1 Console 15:08 < ws-client> woah jopsti u were right its actual replays i would never have believed its actually replays xd 15:09 < ws-client> @APFFF there is no regex but ye it looks for the string you typed and matches it against a list of names and then calls the callback 15:10 < bridge> chillerdargon: is it sockfd? https://github.com/ChillerDragon/teeworlds-asmr/blob/bc23f1f5ecb2169db9afe261d0301908bd9fdcdd/src/udp.asm#L26 15:10 < ws-client> i don't think there is a smooth way of calling it from other code. You can use the `ExecutLine()` hack or just copy paste the code 15:10 < ws-client> the socket file descriptor 15:10 < bridge> shouldn't it be in rdi? 15:10 < bridge> 0_o 15:11 < ws-client> wot 15:11 < ws-client> ah yes 15:11 < ws-client> i also realized that 15:11 < ws-client> but it didnt work 15:11 < bridge> but we fixed at least something xd 15:11 < ws-client> https://zillyhuhn.com/cs/.1721913096.png 15:12 < ws-client> this changed nothing xd 15:12 < bridge> but it could break stuff in future! 15:12 < ws-client> maybe 15:12 < ws-client> i forgot where i got the code from 15:13 < ws-client> reading asm docs rdi seems correct but who ever did the fancy xor rdx, rdx must have known what they do 15:13 < bridge> do you see output from dbg_print_uint32? 15:13 < ws-client> but yea ill probably commit it 15:13 < ws-client> only once 15:13 < bridge> would the best approach be then, to call the callback myself? 15:14 < ws-client> @APFFF ``m_pClient->Client()->void CClient::SaveReplay()`` 15:14 < ws-client> aaa 15:14 < ws-client> ``m_pClient->Client()->SaveReplay()`` 15:14 < ws-client> dont call the callback 15:14 < ws-client> just call what it calls 15:15 < ws-client> the console command call back is ``void CClient::Con_SaveReplay(IConsole::IResult *pResult, void *pUserData)`` 15:15 < ws-client> but you can straight up call ``void CClient::SaveReplay(const int Length, const char *pFilename)`` 15:16 < bridge> chillerdragon: what are the chances that the passed data makes no sense? 15:16 < ws-client> what data? 15:16 < ws-client> r 15:16 < bridge> for recvfrom 15:16 < ws-client> you mean all of it? xd 15:17 < ws-client> high chance 15:17 < bridge> fair xd 15:17 < ws-client> sadly i forgot where i got the code from 15:17 < ws-client> but while looking at https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/ it makes some sense to me 15:18 < bridge> apfffel 15:18 < ws-client> ja 15:18 < bridge> gewiss 15:21 < bridge> `m_pClient->Client()` returns the `src/engine/client.h` Client, i need the `src/engine/client/client.h` tho 15:22 < ws-client> a 15:23 < ws-client> then you need to add it to `src/engine/client.h` 15:23 < ws-client> or move your code to client.cpp 15:23 < ws-client> this separation is pretty annoying imo 15:23 < bridge> what even is the difference 15:24 < ws-client> gameclient.cpp is supposed to be game logic 15:24 < ws-client> and client.cpp is more low level engine kind of stuff 15:24 < ws-client> but tbh SaveReplay sounds more like game to me 15:24 < bridge> the SaveReplay code? 15:24 < ws-client> yea idk that separation i can not explain 15:25 < ws-client> @milkeeycat commenting out all code in recv_udp fixes nothing 15:25 < ws-client> commenting out the call to it fixes it xd 15:26 < bridge> chillerdragon: if i comment out `syscall` it works for me 15:26 < bridge> in recv_udp 15:26 < ws-client> ah hm now it works 15:26 < ws-client> idk what happend 15:26 < bridge> xdddd 15:27 < bridge> i have to remove build dir 15:27 < ws-client> not sure if make picks it up 15:27 < ws-client> ye 15:27 < bridge> and run make again 15:27 < ws-client> Makefile is bad 15:34 < ws-client> ``got udp: 040000513B594605BD0F`` 15:34 < ws-client> hell yeah 15:34 < ws-client> it still breaks but i get udp data 15:34 < ws-client> that looks like a valid packet 15:35 < ws-client> https://twnet.zillyhuhn.com/?d=04+00+00+51+3b+59+46+05+bd+0f&v=7 15:35 < ws-client> yup 15:35 < bridge> wat was the problem? 15:35 < ws-client> i didnt fix it 15:35 < ws-client> xd 15:35 < ws-client> its still stuck 15:35 < bridge> xd 15:35 < ws-client> but i fixed a double dereference 15:35 < ws-client> so apparently [] dereference 15:35 < ws-client> so does lea 15:36 < ws-client> https://stackoverflow.com/questions/1658294/whats-the-purpose-of-the-lea-instruction 15:36 < ws-client> https://stackoverflow.com/questions/10362511/basic-use-of-immediates-vs-square-brackets-in-yasm-nasm-x86-assembly 15:36 < bridge> never used lea in my life :justatest: 15:36 < ws-client> i see it all the time everywhere 15:36 < ws-client> `lea r8, [udp_srv_addr]` 15:36 < ws-client> i guess thats a ``&&UdpAddrBuffer`` in C 15:37 < bridge> lea rath, 2 15:37 < bridge> gottem 15:37 < ws-client> lmao 15:38 < ws-client> so if i get correct data and even my epic hex printer from stackoverflow works why does it still stuck -.- 15:39 < bridge> if you replace `dil` with `dl`, do you still get correct data? xd 15:39 < bridge> in recv_udp 15:40 < ws-client> https://github.com/ChillerDragon/teeworlds-asmr/commit/6cd0c9d195060f02c4f60afe0f72d633f583cd7d 15:40 < ws-client> i just copied the code that worked in send udp xd 15:40 < ws-client> it also needs the file descriptor 15:41 < bridge> what's better `lea rax, addr` or `mov rax, [addr]` ? xd 15:41 < ws-client> they should do the same or i dont understand assembly 15:41 < bridge> ye 15:41 < ws-client> to me its just syntactic sugar 15:41 < bridge> but maybe one is better than the other 15:42 < ws-client> such sweet language 15:42 < bridge> im more of a mov enjoyer 15:43 < ws-client> assembly ressources are so scarce it feels 15:43 < ws-client> its only ppl writing shell codes or boot loaders 15:43 < bridge> or just ask Learath 15:43 < bridge> he knows everything :greenthing: 15:43 < ws-client> tru 15:44 < ws-client> only dude i ever found do anything other than bootloaders or shellcode is this G https://www.youtube.com/watch?v=b-q4QBy52AA 15:44 < bridge> he made his own programming language for lulz on april 1st :gigachad: 15:45 < ws-client> i should probably watch his video even if its long its gonna save me some time i assume 15:45 < bridge> TsodingDaily is goated 15:46 < bridge> just like this guy: https://www.youtube.com/watch?v=W80DJjNGE7c 15:46 < ws-client> hmm i think this assembly dude is trying to tell me i just red `4294967208` bytes from the socket? 15:47 < ws-client> average tw packet size 15:47 < ws-client> @APFFF the comments xxD 15:47 < ws-client> > When copilot gets stuck, it asks this guy for help 15:49 < bridge> bro is living in his own world 15:49 < bridge> https://github.com/ChillerDragon/teeworlds-asmr/blob/6cd0c9d195060f02c4f60afe0f72d633f583cd7d/src/udp.asm#L31 chillerdragon: it's not an address, is it? xd 15:49 < ws-client> eeee 15:49 < ws-client> nice catch thanks xd 15:50 < ws-client> still enough bugs to break it 15:50 < ws-client> -.- 15:50 < ws-client> ah wait it is 15:51 < ws-client> @milkeeycat thats the genius C api 15:51 < ws-client> that wants a ``int *addr_len`` 15:52 < ws-client> the method takes 2 size arguments one by value and one by pointer 15:52 < ws-client> still better than opengl axaxax 15:52 < bridge> my bad, i can't read x 15:52 < bridge> d 15:54 < bridge> What's this? 15:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266030914945679390/image.png?ex=66a3aaab&is=66a2592b&hm=9c509064bf0b9459c83539f2b98d09c254f7fb0b2c4079d1f217603bb9d07414& 15:55 < bridge> What's this server? 15:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266030914945679390/image.png?ex=66a3aaab&is=66a2592b&hm=9c509064bf0b9459c83539f2b98d09c254f7fb0b2c4079d1f217603bb9d07414& 15:55 < bridge> it broke my parsing function xd 15:57 < ws-client> @Jupstar ✪ when metal backend so tim cook will mention ddnet in the gaming section of wwdc25 15:59 < ws-client> @sans._. server info is a free form your parser should be flexible. what part broke it? 15:59 < bridge> chillerdragon: if i don't have shit running on the port u said, recvfrom will hang, right? xd 16:00 < ws-client> lemme try 16:00 < ws-client> ye it hang xd 16:00 < ws-client> its blocking udp read 16:00 < ws-client> once it works i will try to do non blocking flag shit 16:00 < bridge> I'm parsing the whole object returned by the master server as a single thing with this schema: 16:00 < bridge> 16:00 < bridge> https://github.com/Sans3108/DDNet/blob/4f307140fd52373d260858ccba2701078c656ee1/src/Master.ts#L22 16:00 < bridge> can i run ddnet server? 16:00 < ws-client> yes 16:01 < ws-client> its ofc 0.7 assembly 16:01 < bridge> I didn't know server info was free form tbh 16:01 < ws-client> but its still fine xd 16:01 < ws-client> the servers sends json the master just redistributes it 16:01 < bridge> Sucks that idk rust so I can properly type it 16:02 < bridge> gotcha 16:08 < bridge> when tim cook gives me a job at apple 16:10 < bridge> when do you give me a job at chiller inc. 16:17 < ws-client> when i raised enough money to pay employees 16:26 < bridge> chillerdragon: maybe you have to send some data after getting first packet? :thonk: 16:27 < bridge> oh, you send it, my bad xd 16:27 < bridge> https://blog.rust-lang.org/2024/07/25/Rust-1.80.0.html 16:30 < bridge> why is the osu-lazer package in nixos dammin 2gb big :( 16:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266039854236700732/image.png?ex=66a3b2ff&is=66a2617f&hm=60d5e87d3a0144f6afd9b36b7a0641c65b942fc159cf0b9144d14db25356c296& 16:31 < bridge> why is the osu-lazer package in nixpkgs dammin 2gb big :( 16:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266039854236700732/image.png?ex=66a3b2ff&is=66a2617f&hm=60d5e87d3a0144f6afd9b36b7a0641c65b942fc159cf0b9144d14db25356c296& 16:34 < bridge> > 16:34 < bridge> > 16:34 < bridge> > Add size_of and size_of_val and align_of and align_of_val to the prelude 16:34 < bridge> > 16:34 < bridge> > All FFI programmers rejoice! 16:34 < bridge> epyc 16:42 < bridge> server info free form is shit D: 16:42 < bridge> I feel this 17:12 < bridge> is it a bug that when I open ddnet it's fullscreen but when I choose different workspace and switch back it's not fullscreen anymore? :\ 17:16 < bridge> sounds like a bug.. but is it a bug in ddnet is the question 😬 17:16 < bridge> maybe it's "feature" of i3 17:33 < bridge> ``` 17:33 < bridge> note: rustc unexpectedly overflowed its stack! this is a bug 17:33 < bridge> note: maximum backtrace depth reached, frames may have been lost 17:33 < bridge> note: we would appreciate a report at https://github.com/rust-lang/rust 17:33 < bridge> help: you can increase rustc's stack size by setting RUST_MIN_STACK=16777216 17:33 < bridge> note: backtrace dumped due to SIGSEGV! resuming signal 17:33 < bridge> error: could not compile `client-types` (lib test) 17:33 < bridge> ``` 17:33 < bridge> 17:33 < bridge> 🫠 17:33 < bridge> "backtrace dumped due to SIGSEGV" *cough* 17:40 < bridge> That’s definitely something I will have to keep in mind. Once the bug is fixed if I send an invalid tw packet and the server drops it it will also hang in the same way. Should not confuse that with some assembly bugs. 17:40 < bridge> but right now it has to return data? 17:41 < bridge> when you send the same data 17:41 < bridge> from key_a 17:41 < bridge> when you press a 17:42 < bridge> I send the very first packet and the server responds. If I would send the same packet again the server should respond the same way. 17:42 < bridge> 17:42 < bridge> iirc the second send does not even work. But I forgot. I will continue debugging tomorrow time to sleep now 17:47 < bridge> for me it's sent :p 17:47 < bridge> sleeping now? 17:47 < bridge> ur in the usa? 17:47 < bridge> wait 17:47 < bridge> in asia 17:48 < bridge> yes 17:48 < bridge> are u in korea 17:48 < bridge> chinese ddnet is pretty fun tbh 17:48 < bridge> yes 17:48 < bridge> they host more fun mods 17:49 < bridge> ddnet chn is fun cuz i havent seen any blockers around, and novice players are more easily impressed than eu novice players :owo: 17:50 < bridge> ok maybe not 17:51 < bridge> yeah they give so many compliments if you hard carry lmao :brownbear: 18:11 < bridge> :kek: 18:12 < bridge> the cultural difference definitely shows 18:13 < bridge> i'd exclusively play on the chn servers if the great firewall would allow me to 18:24 < bridge> I give up, Im pathetic reptile brain quiche eater :pepeW: 18:26 < bridge> A very long time ago, it used to be that way on EU-Servers as well :feelsbadman: 19:16 < bridge> from which version character input targetpos sended to server with zoom? 19:20 < bridge> from which version character input targetpos sended to server with zoom? 19:20 < bridge> (i mean 1 or 2 years ago targetpos was screenspace not worldspace) 19:27 < bridge> from which version character input targetpos (TargetX/TargetY) sended to server with zoom? 19:27 < bridge> (i mean 1 or 2 years ago targetpos was screenspace not worldspace) 19:45 < bridge> gm 20:00 < bridge> any devs 20:01 < bridge> game master 20:01 < bridge> u 20:02 < bridge> anonymous gores champion 20:02 < bridge> retired 20:04 < bridge> @learath2 one should use strncst whenever possible over strcat right? 20:05 < bridge> strncat* 20:06 < bridge> Always 20:38 < bridge> never mind, im gigachad 20:59 < bridge> When beta or alpha? 21:01 < bridge> you already tried the beta 21:01 < bridge> it crashed 21:01 < bridge> i asked you for logs 21:01 < bridge> nothing more anyone here can do 21:01 < bridge> Thanks 21:02 < bridge> yep sorry, but what do you hope for? If you want to help us understanding why it crashes, you have to give us logs 21:02 < bridge> as of now nobody in the dev team can reproduce it 21:31 < bridge> it doesn't work on my dumbphone as well :feelsbadman: 21:34 < bridge> is it arm64? 21:34 < bridge> else u have to use robytes artifacts 21:34 < bridge> where do i even check that xd 21:35 < bridge> https://f-droid.org/de/packages/com.kgurgul.cpuinfo/ 21:35 < bridge> i think i used this 21:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266117187844706334/image.png?ex=66a3fb04&is=66a2a984&hm=cea45e4ef73ae1cba60cad2ea085a3b5e0ac3112c2ffae9461ca0272a9c41417& 21:38 < bridge> nice now give logs: 21:38 < bridge> https://f-droid.org/de/packages/com.pluscubed.matloglibre/ 21:39 < bridge> or `adb logcat` if u have that 21:40 < bridge> i have flappy bird & doodle jump on ma phone 21:41 < bridge> nais 21:41 < bridge> how do I copy needed stuff ?xd 21:42 < bridge> search for ddnet in the log thing 21:42 < bridge> and screenshot or smth 21:42 < bridge> xd 21:42 < bridge> or copy 21:42 < bridge> dunno 21:42 < bridge> u epyc dev, u'll find out 21:43 < bridge> there's no logs about ddnet 21:43 < bridge> :justatest: 21:43 < bridge> create some! 21:43 < bridge> then search crash 21:43 < bridge> or dump 21:49 < bridge> @milkeeycat still nothing found? 21:50 < bridge> is the app even starting at all, or is there some anti virus or shit like that 😂 21:50 < bridge> it opens 21:50 < bridge> and then closes 21:50 < bridge> and u cant find any logs? 21:52 < bridge> after 10 tries it thew a wall of text 21:52 < bridge> i think it's about ddnet xd 21:53 < bridge> did u forget to press record on matlog? xd 21:53 < bridge> how can it not be logged 21:54 < bridge> there wasn't anything 5 previous times -.- 21:54 < bridge> phones hard 21:54 < bridge> record, open ddnet, stop record, save to file, send me pm xd 21:54 < bridge> then i hack u 21:54 < bridge> hmhm 21:55 < bridge> sus 21:56 < bridge> ok, maybe it wasn't ddnet related :\ 21:56 < bridge> does it work now or what 21:56 < bridge> no 21:56 < bridge> then logs 21:56 < bridge> it started app again and no wall of tex 21:56 < bridge> it started app again and no wall of text 21:57 < bridge> glsoslgoslgogslosglosglogsloglossglo 21:57 < bridge> tja 21:57 < bridge> xD 21:57 < bridge> mhh how can i convince you 21:57 < bridge> https://tenor.com/view/cute-cat-gif-25910152 21:57 < bridge> ooooooooh, i found record button 21:57 < bridge> give logs 21:57 < bridge> 😎 21:57 < bridge> EPYC 21:58 < bridge> i didn't see it first 15 times 22:01 < bridge> where are the logs? xd 22:02 < bridge> did u save them to file or what 22:02 < bridge> ye 22:03 < bridge> dunno never done that xD 22:03 < bridge> on newer android if u open the file explorer app you can simply select an app 22:03 < bridge> and then it shows all files of that 22:03 < bridge> or press "recently" 22:07 < bridge> I DID IT 22:07 < bridge> epyc 22:07 < bridge> I FOUND THIS SON OF A BITCH 22:07 < bridge> yeah have to admit it is hard 22:08 < bridge> https://github.com/pluscubed/matlog?tab=readme-ov-file#where-are-the-logs-saved 22:08 < bridge> the github tells xddd 22:11 < bridge> it was easier to debug chiller's assembly program than find there those log files are 22:11 < bridge> yep, they hate their users 22:11 < bridge> pure hate 22:12 < bridge> can I post em here? 22:13 < bridge> i dunno if android log contain anything personal 22:13 < bridge> so yes, you can 22:13 < bridge> what's written here stays here 22:13 < bridge> 😏 22:13 < bridge> oh yea :justatest: 22:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266126722898858156/2024-07-25-22-58-28.txt?ex=66a403e6&is=66a2b266&hm=14dfda8cf0011fadb03fda0cb608e4e0be8e10b7f9ca365e0139fcb5ea9bcbce& 22:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266126723276341391/2024-07-25-22-59-28.txt?ex=66a403e6&is=66a2b266&hm=7c7d784545ec340f708176197548f433a0c434b55a3f7cf545ac21fd7bd290ba& 22:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266126723704164362/2024-07-25-23-04-36.txt?ex=66a403e6&is=66a2b266&hm=cd9ee836322245ab09fb5ae50f80062d42327baf650e26b487b9e84beef5b80e& 22:15 < bridge> you deserve 3 of them 22:15 < bridge> idk if any of them useful tho xd 22:16 < bridge> when does this happen 22:16 < bridge> happen what? 22:16 < bridge> bottom one looks like a SDL bug 22:17 < bridge> we're talking about ddnet right? 22:17 < bridge> yeah 22:19 < bridge> This all looks unrelated to DDNet and SDL. Tag should be "SDL" for SDL stuff and "org.ddnet.client" for the DDNet client 22:19 < bridge> Maybe try to enable usb debugging and run logcat on PC 22:19 < bridge> @milkeeycat did have a filter active? 22:19 < bridge> wat filter? 22:19 < bridge> in your log 22:20 < bridge> mybe if it happens in ddnet or sdl scope lol 22:20 < bridge> but it can be a consequence of romething improperly managed by SDL 22:21 < bridge> hmm, neither SDL nor ddnet appear a single time in these logs though 22:21 < bridge> here debug apk 22:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266128117613854720/DDNet.apk?ex=66a40532&is=66a2b3b2&hm=a70e8540ba03c6575c2ee14e72c2e8d4b30489ad0f448d14cd9a12a740bbe342& 22:21 < bridge> so I'd say the logs are incomplete 22:21 < bridge> maybe the logcat app can't capture the logs of other apps 22:21 < bridge> so it only get's the generic system logs 22:22 < bridge> so it only gets the generic system logs 22:24 < bridge> these kind of middleware bugs happen all the time 22:25 < bridge> looks like one of the logs contains the stacktrace for a NPE in the logcat app though 22:25 < bridge> this kind of middleware bug happens all the time 22:27 < bridge> Literally nothing changed 😬 22:27 < bridge> the `java.lang.NoSuchFieldException`? 22:27 < bridge> no more logs? 22:27 < bridge> Nop 22:27 < bridge> yeah, since it's printed on stderr I assume their error handling code looks like `e.printStackTrace(System.err);` 22:28 < bridge> what did that one error once show btw? 22:28 < bridge> the one that when u opened the app 20 times 22:28 < bridge> Can you run `adb logcat` on your PC? 22:28 < bridge> With device connected with USB debugging enabled 22:28 < bridge> It's the one with bunch of java mumbo jumbo 22:30 < bridge> If it works with linux ill try tomorrow 22:31 < bridge> yeah, should work on linux: https://developer.android.com/tools/adb 22:33 < bridge> @jupeyy_keks I wonder if any device still needs special handling because of 16 bit color depth, which seems to be suggested here: https://wiki.libsdl.org/SDL2/README/android#misc 22:34 < bridge> `gfx_color_depth` is currently unused except to show the correct resolution in the list, we are not settings these SDL flags at the moment 22:34 < bridge> but then it should please crash inside ddnet 22:34 < bridge> we can simply do that as fallback strat.. but honestly never seen problems 22:34 < bridge> i defs doubt its the issue here 22:34 < bridge> his phone is way too new 22:34 < bridge> yeah, with the debug version we should get a readable crash log with logcat 22:35 < bridge> if logcat doesn't help, the link also explains how to run valgrind on your phone :justatest: 22:35 < bridge> android-project/app/src/main/java/org/libsdl/app/SDLInputConnection.java 22:36 < bridge> i wonder if that class causes it 22:36 < bridge> cant find anything related otherwise 22:37 < bridge> i hate all this manifest shit xD 22:37 < bridge> ```xml 22:37 < bridge> android:id="@+id/arguments_edit" 22:37 < bridge> android:layout_width="match_parent" 22:37 < bridge> android:layout_height="0dp" 22:37 < bridge> android:layout_weight="1" 22:37 < bridge> android:gravity="top" 22:37 < bridge> android:hint="@string/hint_enter_arguments_here" /> 22:37 < bridge> ``` 22:37 < bridge> this is in their android tests 22:38 < bridge> "To fix it now, you can extend carbon.widget.EditText and override setCursorColor(...) to an empty method." 22:38 < bridge> 22:38 < bridge> https://github.com/ZieIony/Carbon/issues/326 22:38 < bridge> i try to find similar cases for the issue from the log 22:38 < bridge> but absolutely no idea if that already happens inside ddnet 22:39 < bridge> but since milkey said the popup showed the same log.. not unlikely 22:39 < bridge> theoretically we dont need any java UI 22:40 < bridge> the issue in the log is simply caused by running an only app on new android version, which prohibits most reflection 22:40 < bridge> i wonder if we can somehow disable all stuff 22:40 < bridge> the java.lang.NoSuchFieldException in the log is simply caused by running an only app on new android version, which prohibits most reflection 22:40 < bridge> i no understand 22:40 < bridge> what is an only app 22:40 < bridge> old* 22:41 < bridge> related to minsdk version or what 22:41 < bridge> my phone is very new and runs without problems xdd 22:41 < bridge> new android version will prevent reflection, so whatever hack this app developer used to set a cursor color no longers works 22:41 < bridge> stop speaking rich 22:41 < bridge> no, that stack trace is related to the logcat app in particular 22:42 < bridge> but milkey said it happened after starting ddnet 5 times 22:42 < bridge> stop speaking in rich 22:42 < bridge> mh ok 22:42 < bridge> @milkeeycat we need your log when u opened ddnet 5 times 22:42 < bridge> make screenshot 22:42 < bridge> `at com.pluscubed.logcat.ui.LogcatActivity.onOptionsItemSelected(LogcatActivity.java:627)` happens inside a listener in the logcat app 22:42 < bridge> yeah but milkey said he had same log 22:42 < bridge> or smth 22:42 < bridge> i have 2 e in name :feelsbadman: 22:43 < bridge> milketja 22:43 < bridge> i am called jupppey 22:43 < bridge> all the time 22:43 < bridge> i join your sadness 22:43 < bridge> did you update to latest PR? it also includes #8637, maybe this causes a bug in their input driver 22:43 < bridge> https://github.com/ddnet/ddnet/pull/8637 22:43 < bridge> did you update to latest touch input PR? it also includes #8637, maybe this causes a bug in their input driver 22:44 < bridge> welcome to the club jupppey 22:44 < bridge> nope 22:44 < bridge> thanks milktja 22:45 < bridge> now ask for logs the guy who asked about mobile version of ddnet :justatest: 22:45 < bridge> he can only write "Thanks" 22:46 < bridge> lemme know when you fix da client xd 22:47 < bridge> :c 22:47 < bridge> we need u 22:47 < bridge> milk 22:47 < bridge> what are the chances ill break my phone :justatest: 22:49 < bridge> 0.001% 22:49 < bridge> u connect it by usb 22:49 < bridge> do pacman -S adb 22:49 < bridge> adb logcat 22:49 < bridge> will it be possible to change the controls in the next versions ddnet mobile? 22:49 < bridge> read log 22:49 < bridge> i can easily add +5% because of skill issues xd 22:50 < bridge> xd 22:50 < bridge> maybe, maybe only in the version afterwards.. no decision made yet 22:50 < bridge> 22:50 < bridge> generally the idea is yes 22:54 < bridge> mobile version is too early for anything to be set in stone im guessing? 22:54 < bridge> what do you mean 22:54 < bridge> it's not finished at all 22:55 < bridge> basically the same thing 22:55 < bridge> too early/unfinished 22:55 < bridge> meh 22:55 < bridge> Can you guys link me the latest apk version? 22:55 < bridge> Also, can i play on mobile with keyboard and mouse? 22:56 < bridge> wait that's interesting, what if i connect a physical keyboard and mouse to my phone and try to play :Thonk: 22:56 < bridge> i have an otg cable and usb hub, i might try it 22:56 < bridge> I have a telegram channel where the content is based on mobile ddnet, many subscribers would really like to be able to change controls, so if the idea was implemented many would be happy 22:57 < bridge> wait that's interesting, what if i connect a physical keyboard and mouse to your pc and try to play 22:57 < bridge> yea i see the irony, it's for shits and giggles anyway 22:57 < bridge> :kek: 22:57 < bridge> it should be possible to connect bt mouse & keyboard to android 22:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266137471104848027/DDNet.apk?ex=66a40de8&is=66a2bc68&hm=0b75e0b708d3aff7bd52b49125c0417d26e5d2a1333b9ea46bc184b5539b59d8& 22:58 < bridge> i rebased now 22:58 < bridge> keyboard definitely works, haven't tested with a mouse but it should work 22:58 < bridge> but i doubt that fixes our issue in any way 22:58 < bridge> maybe always pin latest apk for ppl to easily see it? 22:59 < bridge> nah 22:59 < bridge> it's use at own risk 22:59 < bridge> fair 22:59 < bridge> time to fry my phone 22:59 < bridge> old <- https://discord.com/channels/252358080522747904/293493549758939136/1266137471477878866 22:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1265245600975421490/DNet.apk?ex=66a3724a&is=66a220ca&hm=3354dc7793bacdf301ec20724f57eca0a6e477d938f65f22c4183a609f8e25fd& 22:59 < bridge> I have a friend and he seemed to connect a keyboard and mouse and play 23:33 < bridge> wdym use at own risk? 23:33 < bridge> is it buggy? 23:34 < Tarot_> Hi 23:35 < bridge> is this apk safe 23:37 < Tarot_> eeeee are you east ? 23:40 < bridge> I'm up 23:48 < Tarot_> Is there anyone here ? 23:49 < bridge> Helo