00:17 < bridge> [teeworlds] I made a tw discord bot concept. if somone would like to use it: https://github.com/jxsl13/TeeworldsDiscordBot 00:17 < bridge> [teeworlds] have fun 00:19 < bridge> [teeworlds] or just add https://discordapp.com/api/oauth2/authorize?client_id=628902630617513985&permissions=116800&scope=bot to your server, as long as the bot still runs. 13:21 < bridge> [teeworlds] Cool what does it do? 13:39 < bridge> [teeworlds] just two basic functions, one is to look for an online player and the other one is to look for active tw servers based on a gametype. 14:06 < bridge> [teeworlds] might add more functions if someone has any ideas 14:11 < bridge> [teeworlds] Make it livestreamable 14:11 < bridge> [teeworlds] Discord has live streams 14:11 < bridge> [teeworlds] make it controllable 14:11 < bridge> [teeworlds] !connect 14:11 < bridge> [teeworlds] !watch name 14:11 < bridge> [teeworlds] or id 14:12 < bridge> [teeworlds] only spectator mode 14:41 < bridge> [teeworlds] seems to be too much of a hassle and I don't quite get what you exactly mean. 14:45 < bridge> [teeworlds] the bot doesn't connect to servers, it just retrieves server information that one can also obtain from the server browser. 14:49 < bridge> [teeworlds] Yes, but you could connect it to some client thing 14:49 < bridge> [teeworlds] I know its hard xd 14:50 < bridge> [teeworlds] it's written in python xD I'm surely not going to reimplement the client in python. 17:04 < bridge> [teeworlds] lol rewriting whole tw client in python 22:23 < bridge> [teeworlds] what kind of player disconnects are actually propagated to the CGameController ? 22:23 < bridge> [teeworlds] only default ones or the timeout ones? 22:39 < bridge> [teeworlds] hm, k seems to be called as callback in CServer::DelClientCallback 22:42 < bridge> [teeworlds] so all of them 22:42 < bridge> [teeworlds] even those that `CGameController` isn't aware of yet 22:45 < bridge> [teeworlds] Oo 22:45 < bridge> [teeworlds] ah no, there's a check about that 22:46 < bridge> [teeworlds] hmmm 22:46 < bridge> [teeworlds] `>= CClient::STATE_READY` 22:47 < bridge> [teeworlds] I replaced the normal m_apPlayer iteration with std::vector and I'm adding players (ids)to the vector whenever a player is constructed and removing the player when he's destroyed, dunno whether that adds any performance improvements or rather none 22:47 < bridge> [teeworlds] I seem to be getting invalid ids in that vector 22:49 < bridge> [teeworlds] hm, ok, might be something different there ._.. wrong vector 22:54 < bridge> [teeworlds] basically even tho the client is not yet known by the controller, is can be dropped, but if it's not known, then there shouldn't exist any CPlayer object yet? 23:13 < rand> there shouldn't be a CPlayer without client at least 23:48 < bridge> [teeworlds] if you use a vector and delete a random player 23:48 < bridge> [teeworlds] the id is NOT the index in the vector, so be careful 23:55 < bridge> [teeworlds] I know 😄