18:47 < winny> shoghicp: hey did you see the wireshark pcap file I linked in this channel yesterday night, i was curious if anybody knew why my mc client was making so many useless outbound packets for a server list ping https://bytesadism.org/~winston/upload/minecraft.pcapng.gz <-- the communication on ipv4 is minecraft, ipv6 is my php script 18:47 < dav1d> for 1.6.2 18:47 < shoghicp> dav1d: that is for Minecraft PE ;) 18:48 < dav1d> shoghicp: I know 18:48 < dav1d> shoghicp: you should make a plugin for 1.6.2 18:48 < dav1d> :P 18:48 < shoghicp> I've an alpha plugin for that ;) 18:48 < shoghicp> but it only allows joining and chatting 18:49 < shoghicp> winny: TCP things? 18:49 < winny> lots 18:49 < shoghicp> do you close the socket after requesting the info? 18:50 < winny> yeah 18:50 < winny> fclose() 18:50 < shoghicp> try using pure socket functions 18:50 < shoghicp> instead of streams 18:50 <+pdelvo> inventiry type 11 is a horse inventory? 18:50 <+pdelvo> inventory* 18:51 < winny> no i mean, them minecraft client is making a lot of useless back and fourth communication for server list ping that doesn't match up with just doing the method for 1.6.1, while my php script and the other example scripts are very minimalistic in the number of packets they send back and forth 18:51 < shoghicp> oh 18:51 < shoghicp> notchcode? 18:51 < winny> i'm not familiar with that word 18:52 < shoghicp> http://www.urbandictionary.com/define.php?term=notchcode 18:52 < dav1d> for (int i=0; i < 1; ++i) :> 18:53 < winny> good term 18:53 < winny> here, i'll export the packets to a text file so you can view them readily in your browser 18:53 < shoghicp> :D 18:53 < Yoshi2> a for loop like that is actually used in minecraft? 18:55 < winny> it could be who knows 18:55 < winny> lol 18:55 < Yoshi2> it wouldn't suprise me too much 18:56 <+pdelvo> I think the java compiler would be smart enough to optimize that so we will never know 19:00 < winny> should I put the entire packet disscetion in this text file? 19:00 < winny> or just the summary lines? 19:00 < shoghicp> put the entire packet 19:01 < winny> summary + packet bytes? 19:02 < shoghicp> yes 19:04 < shoghicp> winny: also, you may want to check PocketMine-MP source code ;) 19:04 < winny> https://bytesadism.org/~winston/upload/minecraft%20client%201.txt https://bytesadism.org/~winston/upload/minecraft%20client%202.txt https://bytesadism.org/~winston/upload/minecraft%20php%20script.txt 19:05 < winny> lol. 19:05 < winny> 119 packets vs 12 packets 19:06 < winny> client & server both 1.6.2 19:07 < shoghicp> Minecraft is crazy 19:07 < winny> ikr 19:08 < Yoshi2> we all knew that, but sometimes it tries to top even the stuff we already know 19:08 < winny> i'm not very good at picking apart protos, but i'm thinking it's trying legacy methods at about the same time 19:24 < TkTech> sadimusi: I've molested the front page a bit, hidden the title, and add a site-wide notice for anonymous users. 19:24 < TkTech> *added 19:25 <+pdelvo> Maybe you should add a link to the freenode web client for people who are not using irc 19:27 < winny> having spam issues? 19:31 < TkTech> Hasn't even been switched for… an hour? 19:32 < TkTech> …and there's already something like 20 spam signups. 19:33 < winny> ridiculous 19:55 < FigurePrints> What is the equivalent to the lastlogin file in 1.6.x? (thx) 19:58 < Thinkofdeath> FigurePrints: launcher_profiles.json 19:59 < FigurePrints> thx thinkofdeath 20:14 < TkTech> Cube world worth buying? 20:15 * sfan5 suggest googling 20:16 * TkTech is asking the channel that has expressed interest in it, has purchased it, and likely knows that I'm interested in RE'ing it. 20:16 < TkTech> But thank you for your suggestion. 20:22 < Not-001> [BraLa] Dav1dde pushed 1 commit to master [+0/-0/±4] http://git.io/Tqnbhg 20:22 < Not-001> [BraLa] Dav1dde e0e54a3 - use the awesome new config-signals 20:24 < Not-001> [BraLa] Dav1dde pushed 1 commit to master [+0/-0/±1] http://git.io/j_FMxg 20:24 < Not-001> [BraLa] Dav1dde 54e46a0 - cleanup, add a few safety checks 20:25 < dav1d> man! how do I love this code: https://github.com/Dav1dde/BraLa/blob/master/brala/entities/player.d#L43-L76 20:25 < dav1d> <3 20:26 <+sadimusi> FigurePrints: if you use the token in there make sure to update it 20:26 < dav1d> connect a variable to the config, once the value changes in the config, the variable is automatically updated 20:26 < dav1d> no wrapper seen when you use the variable though, it looks like a normal type to the user 20:26 < dav1d> I love it 20:26 < dav1d> one of the reason I use D :) 20:27 <+sadimusi> I meant update the value in the config, otherwise the client complains the next time the user starts it 20:28 < Prf_Jakob> dav1d: not exactly sure what it does 20:29 < dav1d> Prf_Jakob: connects the variables MOVE_* STRAFE_* and SENSITIVITY to the config keys: game.key.movement.* etc., now if I update the value in the config, the variables are automatically updated 20:29 < Prf_Jakob> k 20:29 < dav1d> Prf_Jakob: so if the user wants a higher sensitivity, chooses the configure option in a menu, changes the value and magically SENSITIVITY adopts that value 20:30 < Prf_Jakob> I have something similar but values are stored in a local place and then have signals that just fire on changes 20:30 < dav1d> without calling player.update_keys_from_config(config) whatever 20:30 < dav1d> Prf_Jakob: yeah, but the config is also updated via a config file and the commandline :) 20:31 < dav1d> and later on with a scripting api 20:31 < dav1d> this makes things really easy (I hope :P) 20:31 < Prf_Jakob> https://github.com/Charged/Miners/blob/master/src/miners/options.d#L388 20:31 < Prf_Jakob> dav1d: ^ 20:32 < dav1d> Prf_Jakob: yeah mine looks pretty similiar 20:32 < dav1d> Prf_Jakob: only that the config manages the updates 20:32 < dav1d> Prf_Jakob: but good idea, opAssign so it works backwards 20:32 < dav1d> SENSITIVITY = 10; 20:32 < dav1d> updates the config 20:32 < Prf_Jakob> all values sit on the config 20:32 < dav1d> but that means I can't connect multiple configs 20:32 < Prf_Jakob> so everything goes via the options 20:33 < dav1d> I probably will never need that, but I like to have it 20:33 < Prf_Jakob> multiple configs? 20:33 < Prf_Jakob> I have multiple users for the values 20:33 < dav1d> https://github.com/Dav1dde/BraLa/blob/master/brala/utils/config.d#L366 20:33 < dav1d> Prf_Jakob: users? 20:34 < dav1d> Prf_Jakob: I mean one ConfigBound-Value couldn't be connected to multiple configs, except I store all configs it is connected to 20:34 < Prf_Jakob> dav1d: right, but I work around that by only having the value be in one place 20:34 < Prf_Jakob> and then all users go via the Option instance 20:35 < dav1d> well, I have one global config, never intend to have multiple, so that wouldn't be an issue, but the possibility is gone 20:35 < Prf_Jakob> again thats what I do 20:35 < dav1d> yeah 20:35 < dav1d> but I like possibilites :> 20:35 < Prf_Jakob> But you have put all the values where they are used 20:35 < Prf_Jakob> Escentially coping them around 20:37 < dav1d> maybe I make a config array, isn't a big deal 20:37 < Prf_Jakob> I don't think you are getting it 20:38 < dav1d> Prf_Jakob: no I don't understand what you mean 20:38 < dav1d> I think 20:39 < Prf_Jakob> in the player code you write: 20:39 < Prf_Jakob> if (foo == MOVE_FORWARD) 20:39 < Prf_Jakob> I would write 20:39 < Prf_Jakob> if (foo == opts.MOVE_FORWARD) 20:40 < dav1d> na, that's not what I want to have 20:40 < dav1d> point is, I want as less as possible "visible connections" between instances 20:41 < dav1d> if that's nicely hidden magically over the configs-instance which ties everything together that's all I want 20:41 < Prf_Jakob> yet you have a single config 20:41 < dav1d> yes 20:41 < Prf_Jakob> and you bloat your classes 20:41 < dav1d> ? 20:41 < dav1d> why is this bloat? 20:42 < dav1d> if the game class wants to change movement: player.MOVE_FORWARD = 3 20:42 < Prf_Jakob> https://github.com/Dav1dde/BraLa/blob/master/brala/utils/config.d#L367 20:42 < dav1d> or config.set!char("game.key.movement.forward") 20:42 < Prf_Jakob> https://github.com/Dav1dde/BraLa/blob/master/brala/utils/config.d#L376 20:42 < Prf_Jakob> all of those bloat the using class. 20:43 < dav1d> Prf_Jakob: I really don't care about that 20:43 < dav1d> there is only one class at a time alive 20:43 < Prf_Jakob> for player maybe 20:43 < Prf_Jakob> but I found that I need config things all over the place 20:43 < Prf_Jakob> just saying 20:43 < dav1d> Prf_Jakob: yes, they can use good old delegates 20:44 < dav1d> Prf_Jakob: config.connect!T(key, { ... }) 20:46 <+sadimusi> does anybody already have some working yggdrasil code? 20:47 <+sadimusi> otherwise I'll start updating the documentation on my own 22:08 < SinZ> sadimusi: I kinda have some working yggdrasil code, but it is horribad, and it made dinnerbro cry 22:08 <+sadimusi> :D 22:09 <+sadimusi> do you happen to know the format for the profiles? I keep getting 400 22:10 < SinZ> https://github.com/SinZ163/SinZ-MC-Launcher/blob/master/SinZ%20MC%20Launcher/Login/Yggdrasil.cs 22:11 < TkTech> Where did that name come from? 22:11 <+sadimusi> currently the profiles seem pretty useless and not even the vanilla launcher implements them properly :/ 22:11 <+sadimusi> I have no idea who came up with it 22:11 <+sadimusi> but it's in the launcher 22:12 <+sadimusi> I guess for now I'll skip the whole profile stuff 22:13 <+sadimusi> currently I can't even have two profiles for the same user in the vanilla launcher... 22:14 <+sadimusi> afk 22:14 < SinZ> The profile system works in the launcher, except the account is still limited to one for now 22:15 < SinZ> http://pastebin.com/1TcK9MUv Some actual JSON of what your query to Yggdrasil should be 22:17 <+sadimusi> for me that counts as not working ;) 22:17 <+sadimusi> the auth and refresh requests work fine for me, I was just wondering about the optional selectedProfile property 22:18 <+sadimusi> you get it back when you refresh but it looks like you're only allowed to send it when authenticating 22:18 <+sadimusi> anyway, I'm really afk now 22:18 < iBotPeaches> you have to pass wumbo: true 22:19 <+pdelvo> bye chanserv 22:20 < SinZ> Yggdrasil output: http://pastebin.com/BcqW69ji 22:32 < TkTech> Hm, let me take a crack. 22:47 < zuazo> hello people 22:47 < TkTech> Heyo 22:47 < zuazo> how can I contribute to the wiki.vg wiki? 22:48 < TkTech> Just register and then ask for your account to be confirmed here. 22:49 < TkTech> sadimusi: https://gist.github.com/TkTech/5970188 22:49 < TkTech> sadimusi: My start 22:50 < zuazo> ok, my account name is "zuazo", could you confirm it? 22:51 < TkTech> zuazo: All done! 22:51 < zuazo> thanks TkTech! 22:52 < zuazo> you reverted some changes I made to the Protocol page 22:52 <+sadimusi> TkTech: I'm personally more interested in the refresh mechanism, but it looks like the access token is bound to a profile, so there isn't much interesting going on there 22:53 < SinZ> client token is required for refresh iirc, as client token is bound to the individual launcher 22:53 <+sadimusi> yes 22:53 <+sadimusi> and every accessToken from the same account and client token is invalidated 22:53 < TkTech> zuazo: There were no reversions, but a few edits might have been lost in the transition before the old wiki was locked. 22:55 < TkTech> sadimusi: Getting there 22:55 <+pdelvo> enjoy your daily netsplit 22:55 < zuazo> for example, I updated the 0xFE packet to reflect all the new fields in 1.6.1 22:55 < zuazo> I will try to reapply the changes 22:55 <+pdelvo> they are in a new page i think 22:55 <+pdelvo> http://wiki.vg/Server_List_Ping 22:55 < SpaceManiac> the return 22:55 < TkTech> New launcher is uuuuuggggly. 22:55 < SinZ> TkTech: they haven't really worked on visuals yet 22:56 < zuazo> Yes, pdelvo, but it's a bit confusing 22:56 < SinZ> add a bold red text saying to go to the new page then <3 22:56 <+sadimusi> TkTech: my implementation already works pretty well, I'm just not sure if the client messes with the launcher_profiles.json if it is open while I put the new access token in there 22:56 < SinZ> the client doesn't know if the json exists 22:56 <+pdelvo> Jeah I think i will change the article because it is basicly a 0xFE packet, a plugin message packet with some payload in it which can be read as a packet 22:56 < zuazo> the structure shown in Protocol for 0xfe is no longer correct 22:56 < SinZ> only the launcher accesses it 22:57 < SinZ> sure it is 22:57 <+pdelvo> the packet itself is correct 22:57 <+sadimusi> SinZ: s/client/launcher/ 22:57 < dx> TkTech: i was surprised when i saw a screenshot of the new launcher on windows, it actually looks decent. the gui toolkit java uses for linux has a terrible default theme 22:58 < SinZ> it is just a default theme 22:58 < zuazo> pdelvo: 0xfe in 1.6.1 is not 2 bytes length and has more fields 22:58 < zuazo> pdelvo: can I update the 0xfe packet? 22:58 < SinZ> zuazo: yes it is, except the multiplayer menu sends two packets at the same time 22:58 < SinZ> 0xfe and 0xfa 22:59 <+pdelvo> the packet is two bytes. 0xFE, 0x01. after this packet the client also sends a 0xfa packet 22:59 < zuazo> ah, ok, sorry, pdelvo and SinZ, you are right 22:59 <+pdelvo> what you have seen in the code of minecraft is a very ugly way sending two packets in one method body 23:00 < SinZ> we still need to yell at Gru.m for doing an ugly implementation 23:00 < Drainedsoul> I don't think it's intended to be two packets, it's just intended to be able to be parsed that way so that older servers don't crash 23:04 < zuazo> Drainedsoul: surely you're right 23:05 < dx> SinZ: he kinda did it together with us :D 23:05 < SinZ> dx: except his implementation of sending two packets could of been cleaner 23:05 < dx> SinZ: you mean the java side? 23:06 < SinZ> yes 23:06 <+pdelvo> old servers just read the part of the 0xFE and are fine. they dont read whats next 23:07 < dx> pdelvo: old vanilla servers keep reading packets and interpreting them 23:08 < dx> of course pre shcrodinger byte ones probably fail horribly at the 0x01 now 23:09 < dx> since that's a login packet.. with garbage contents 23:09 < Stormx2> protocol version is the first byte after the ident, which led me to believe the server might check that before reading the rest of the packet 23:10 < Stormx2> no idea if it actually does 23:10 < SinZ> it reads it all 23:10 < SinZ> md_5 wanted protocol version, so he now receives protocol version in the ping 23:11 < Stormx2> somewhat usefully, the server doesn't check for equality with the protocol version sent in MC|PingHost, so you can send 127 quite happily 23:11 < Stormx2> It only fails if it's too low 23:12 < TkTech> sadimusi: https://gist.github.com/TkTech/5970188 I think that's all of it. 23:12 < TkTech> sadimusi: Look okay? The SIGNOUT endpoint exists but is unused. 23:13 < SinZ> TkTech: if clienttoken exists, you should be sending it in login 23:13 < SinZ> or else you invalidate all your existing access codes 23:17 < SinZ> and yggdrasil won't complain if you define your own client token 23:18 < SinZ> yay, more netsplits 23:18 <+sadimusi> TkTech: there are also validate and invalidate endpoints, but I guess those are pretty useless 23:18 < zuazo> in the 0x64 packet, the unknwon field is entityId (of EntityHorses) 23:18 <+sadimusi> TkTech: switch_profile is a bit misleading, it's just a login 90% of the time 23:19 < TkTech> sadimusi: Whoops, _logout_request should be using INVALIDATE not AUTHENTICATE 23:24 <+pdelvo> Let me know if thats better: http://wiki.vg/Server_List_Ping#Client_-.3E_Server 23:29 < Drainedsoul> why is the Disconnect Packet content specified in String.Format() .NET notation 23:32 <+pdelvo> why not? 23:32 < Drainedsoul> lacks universality 23:32 < Drainedsoul> I like the notation personally, just saying 23:34 < zuazo> one question about Protocol page, "Total Size" includes PacketID? 23:34 < SinZ> yes 23:37 < zuazo> in packet 0x13 I renamed unknown to jumpBoost 23:38 < zuazo> I also added 0x85 packet, I called it "Tile Editor Open" --- Day changed jeu. juil. 11 2013 00:00 <+sadimusi> pdelvo: why is the server response explained twice for the server list ping? 00:01 <+pdelvo> Because I just edited to upper part without it in it and I thought it was missing. I remove it :D 00:01 <+pdelvo> or maybe merge it 00:03 <+pdelvo> I removed it 00:14 < Stormx2> uhg 00:14 < Stormx2> pdelvo, 00:14 < Stormx2> I deliberately didn't write the page like that 00:15 < Stormx2> That page is intended to be read by folks who don't care about the minecraft protocol 00:15 < Stormx2> The previous version was easier to understand. 00:16 <+pdelvo> maybe we should put my version in the protocol page and revert your version? 00:16 < Stormx2> well 00:17 < Stormx2> iirc we already have a page for plugin messages right? 00:17 < Stormx2> http://wiki.vg/Plugin_channel 00:18 < Stormx2> otherwise I don't see the issue with the old version, besides formatting. 00:20 <+pdelvo> I dont liked it because of DRY 00:20 < Stormx2> where did it repeat itself? 00:20 < Stormx2> with the examples? 00:21 < Stormx2> there's some overlap but they're serving different purposes. Plus it's not bad to have an "overview" and a "detailed view" too. 00:23 <+pdelvo> you have basicly a packet description of a plugin packet in it, you describe how strings are encoded. But I see your point. If someone is just interested in getting these information it is easier, but if someone has written code to work with the protocol is easier to have mine version which is based on things which existed before 00:24 < Stormx2> If they know that much, they can figure it out. my version linked to the two packets involved 00:26 < Stormx2> i.e. if they're writing a protocol implementation and ask "how does a server list ping fit into this?" they can decern enough from the page to work it out 00:27 < Stormx2> it's hardly the most difficult problem you'll come across if you're doing a protocol implementation heh 01:40 < dav1d> clonejo: closing issue #1 soon, I think :> 01:40 < dav1d> #9 will be resolved, too I think 01:52 < Drainedsoul> I don't really think that mentioning the fact that there's a plugin packet embedded in the ping packet is useful. It's an ugly backwards compat hack 02:07 < clonejo> dav1d: \o/ 02:12 < dx> Drainedsoul: so explaining stuff is bad now? 02:14 < Drainedsoul> no I mean that framing it in that way is just unnecessarily confusing. 02:14 < dx> meh 02:15 < Drainedsoul> it's not a 0xFE packet followed by a 0xFA packet, it's a 0xFE packet whose internal structure happens to contain a 0xFA packet for backwards compatibility 02:15 < dx> this is like when we discussed data types 02:15 < dx> pointless. 02:21 < zuazo> Drainedsoul: so u think it will be better to document it as a big ping packet instead of two? 02:24 < Drainedsoul> Well in the latest version of the protocol that's what it is. The 0xFA business is a backwards compat hack, and I think should be mentioned as such, rather than presenting it as two different packets that happen to be sent one after the other. 02:30 <+md_5> it's not a 0xFE packet followed by a 0xFA packet, it's a 0xFE packet whose internal structure happens to contain a 0xFA packet for backwards compatibility 02:30 <+md_5> nooo 02:30 <+md_5> its 2 different packets 02:30 <+md_5> how its sent is implementation specific 02:30 <+md_5> bungeecord for example recieves them as 2 packets 02:30 <+md_5> first it reads a {0xFE, 0x00} 02:30 <+md_5> then it reads a {0xFA, "MC|Ping"} 02:30 <+md_5> etc etc 02:30 < zuazo> md_5: but minecraft itself, both client and server, read it as a single packet 02:30 <+md_5> zuazo so what 02:30 <+md_5> we arent about MC itself 02:31 < zuazo> nothing :-P 02:31 <+md_5> many users in this channel have never decompiled MC 02:31 <+md_5> you cannot tell that is the case by cleanroom inspection 02:31 < Drainedsoul> your definition of "packet" is nebulous, and anyone can change it 02:32 < dx> it actually makes more sense to parse them as two packets 02:32 < dx> since when do we do things exactly the same way the original implementation does, instead of more sensible alternatives? 02:33 < dx> we aim for interoperability not code translation 02:33 < Drainedsoul> how does it make more sense to parse them as two packets? A packet is supposed to carry some atomic, actionable information. 0xFE 0x01 no longer fits that definition. 02:34 <+md_5> it makes sooo much more sense 02:34 <+md_5> especially if you want to optionally use the data in the second packet 02:34 <+md_5> Bungee reads the first packet 02:34 <+md_5> then starts a timer 02:34 <+md_5> and tries to read the next packet 02:34 <+md_5> if the timer is up, it responds without using the Host data in the second packet 02:35 <+md_5> however if it gets the second packet, it uses the virtual host data 02:35 < dx> i'm pretty sure that at this point bungee is the only client that actually requires the extra information from the second packet 02:35 < dx> so it's really optional 02:35 <+md_5> vanilla does NOT use the second packet 02:35 <+md_5> in any way shape or form 02:36 < dx> SRV based virtual hosting doesn't need it either 02:36 <+md_5> I should remove SRV based bhosting from bungee now 02:37 < dx> yeah, it just made deployment more painful, right? 02:37 <+md_5> thats means breaking the config again though 02:37 < Drainedsoul> such parsing is nice, but it sounds pretty tightly-coupled to me 02:37 < dx> can't you leave it as deprecated then? 02:46 < SinZ> deprecating the SRV config in bungee would work 02:48 < zuazo> the problem can be that someone can accidentally implement an 0xfe packet without the embedded 0xfa 02:48 < zuazo> IMHO the docu is less clear 02:48 < SinZ> zuazo: vannila server would just assume they are 1.4-1.5 then 02:48 < SinZ> no biggy 02:50 <+md_5> no 02:50 <+md_5> vanilla server doesnt do anything to the 0xFA 02:50 <+md_5> it would assume nothing 02:50 < SinZ> close enough to pre-1.6 02:55 < zuazo> i have doubts about what would be best 03:40 <+sadimusi> Stormx2: http://wiki.vg/Protocol_Overview looks pretty neat, why isn't it linked anywhere? 03:46 < clonejo> It should be updated and linked on the main page. 03:50 < dav1d> man this was some good music 04:47 < TkTech> What is going on with you tonight Freenode? Did I forget your anniversary? 04:48 <+Prf_Jakob> TkTech: nickserv has been missing for parts of the day 04:48 <+Prf_Jakob> and now sleep 04:56 < SinZ> and netsplits all over the place 06:04 < dexter0> Would someone who knows how/can please confirm SirCmpwn's wiki account? 06:06 <+md_5> confirmed 06:07 <+SpaceManiac> oh yeah I registered for that, SpaceManiac confirm would be great 06:14 <+md_5> SpaceManiac done 06:30 < Not-001> [node-minecraft-protocol] mappum pushed 1 commit to master [+0/-0/±1] http://git.io/M8eZcA 06:30 < Not-001> [node-minecraft-protocol] mappum 00baac9 - Bumped protocol version for 1.6.2 06:33 < Not-001> [node-minecraft-protocol] mappum pushed 1 commit to master [+0/-0/±3] http://git.io/0jA15Q 06:33 < Not-001> [node-minecraft-protocol] mappum f3657f7 - Bumped protocol version for 1.6.2 06:37 < TkTech> ~_~ http://wiki.vg/File:180px-Ancient.jpg 06:41 < dx> TkTech: you should ban maintenance script 06:42 < dx> huh. that file is not in the old wiki. how did that happen 06:42 < dx> nevermind found it http://mc.kev009.com/File:Ancient.jpg 06:44 < Not-001> [Craft.Net] SirCmpwn pushed 3 commits to master [+0/-0/±7] http://git.io/NSDyBA 06:44 < Not-001> [Craft.Net] SirCmpwn 7ec102b - Update packets and server-side support to Minecraft 1.6.2 06:45 < Not-001> [Craft.Net] SirCmpwn 60c4281 - Client-side 1.6.2 support 06:45 < Not-001> [Craft.Net] SirCmpwn e094216 - Update README to reflect 1.6.2 changes 07:09 <+kev009> oh weird, nobody informed me of the switch. should I 301 mc.kev009.com? 07:16 < dx> lol 07:17 < dx> well uhm 07:17 < dx> good to see you here 07:19 < dx> kev009: apparently TkTech has asked you to redirect it before, but either way it would be nice to have a proper redirection now. just confirm with TkTech - personally i found it useful to access the old server to lookup a few minor details that got lost in the migration. 07:21 < dx> kev009: also, i bet he didn't inform you because he didn't expect you to appear :D 07:21 <+kev009> a netsplit borked my username but I'm still alive and have these crazy things called email addresses :) 07:24 < dx> well i can't really speak for him regarding this 07:42 < icetooth> minecraft 07:42 < icetooth> hah 07:50 < dx> hah. 07:56 < AlphaBlend> oh bleh 08:57 < TkTech> sadimusi: https://gist.github.com/TkTech/8ece76404c1eb10c92d4 08:57 < TkTech> sadimusi: It's like a honeypot wet dream. 09:00 < mappum> TkTech: what does your honeypot detect? griefers? 09:01 < TkTech> mappum: All those spam signups on the wiki, which seem neverending. 09:01 < mappum> ah, cool 09:01 < dx> what do they even register for? 09:01 < TkTech> On mc.kev009.com everything from SEO spam to viagra. 09:01 < TkTech> They can't post on wiki.vg because no one will confirm them. 09:02 < dx> but do all of them edit pages? i think the few i saw had no changes at all 09:02 < TkTech> My script should keep culling and banning their IPs from signing up again. 09:02 < mappum> i don't think the minecraft development community is the best demographic to market viagra to 09:02 < TkTech> Nope! Some of them do nada. 09:02 < TkTech> It's just absurd how many exploited boxes they have available. 09:03 < dx> TkTech: seen any patterns in those boxes? 09:03 < TkTech> Haven't taken a close look at 99% of them yet 09:04 <+md_5> add a captcha..... 09:05 < TkTech> CAPTCHA's are 99% useless. Most of them are outright broken, and others just get dished out to a taiwanese kid for a penny per thousand. 09:05 < TkTech> Tried them, stopped maybe 10%. 09:07 <+md_5> require people do verify their MC account before signing up 09:07 <+md_5> I've done that for a lot of sites 09:07 < TkTech> Why? This script will just cull the bad users each night. 09:07 <+md_5> just join special server -> if premium, get kicked with confirmation code which is a hash of their name + shared secret salt 09:07 * dx cough 09:07 < dx> http://dump.dequis.org/oo7w-.jpg 09:07 < TkTech> No extra work from anyone. 09:08 <+md_5> your script is 100% accurate? 09:08 < dx> the captcha is "join #mcdevs and let us confirm that you're human" 09:08 <+md_5> since we have to do manual approval anyways 09:08 < dx> i'm sure that's 100% accurate 09:08 <+md_5> wouldnt manual account creation be a logical step 09:09 < AlphaBlend> TkTech: CAPTCHAs are useful because there's apparently no better alternative 09:10 < dx> i like trivial hardcoded captchas that only someone who targets your site would know how to bypass 09:10 < dx> like the bitlbee wiki captcha which is always the first part of the irc channel topic, "Welcome to the BitlBeeHive" 09:10 < TkTech> md_5: Because manual account creation is a pain in the ass? 09:11 <+md_5> I dont see how its any different from this, there is only one additional field to enter 09:11 <+md_5> already we have username and need to tick a box 09:11 <+md_5> lets just add password to the mix 09:12 < TkTech> You realize when you're looking at a user page there's a user rights link on the sidebar, right? 09:12 <+md_5> and? 09:13 < TkTech> So you don't have to enter anything? How is this not obvious to you, or are you intentionally looking for something to be snarky about? 09:13 <+md_5> you have to enter their username to get to their user/userrights page 09:14 < TkTech> No, you don't. I just look at the recent changes page for new users, click their name, click the sidebar link, check the box and submit. 09:15 <+md_5> so now we are arguing : click recent changes -> user -> promote, vs, add user, username, password, create 09:15 < TkTech> But anyways, once you write the extension to allow any user to securely create accounts at whim, let me know. 09:15 < dx> i just have this bookmarked http://beta.wiki.vg/Special:UserRights 09:15 <+md_5> .... 09:15 * md_5 stares at wikipedia 09:15 * md_5 stares at account creator rank 09:16 < Drainedsoul> and people get snappy with me about pointless arguments. 09:16 < dx> Drainedsoul: :D 09:16 < TkTech> Seriously, I can't understand why md_5 is being a whiny bitch. 09:17 < TkTech> Not really in the mood for this at 2AM. 09:17 < TkTech> Wait, no it's 3AM. Even better. 09:17 <+md_5> is the old wiki still up? 09:17 <+md_5> I'm missing changes from the pre release + protocl changes 09:17 < TkTech> Yes it is, mc.kev009.com. 09:17 < dx> yeah 09:17 < dx> TkTech: also did you talk with kev009? 09:17 < dx> TkTech: he's alive 09:18 < dx> TkTech: i bet you weren't expecting that 09:18 < TkTech> I wasn't, haven't seen him in days and haven't seem him active in much longer. 09:18 < dx> 02:09 <+kev009> oh weird, nobody informed me of the switch. should I 301 mc.kev009.com? 09:18 < dx> two hours ago 09:18 <+ammar2> he might've died again 09:19 < AlphaBlend> TkTech: Is that really a shortcut? 09:19 < dx> shortcut? 09:20 < TkTech> kev009: If you could 301 it tomorrow that would be great. One last full SQL dump would be great too. 09:20 < AlphaBlend> i go to the user account special page, enter their name, pulls up their acc, then change rank 09:21 < TkTech> That's when someone asks you. I was pre-emptively checking for old users re-registering. 09:21 < TkTech> (Plus I usually have recent changes open anyways) 09:22 < TkTech> Actually, I'll just make a "/confirm " plugin for Textual. 09:22 <+ammar2> TkTech: well you could offer the auth via mc username as an alternative to manual confirmation 09:23 < dx> ammar2: we would lose users that were registered before, such as pbunny 09:23 < TkTech> ammar2: And you're volunteering to maintain it indefinitely and keep it up to date? 09:23 <+ammar2> yup 09:23 <+ammar2> dx: alternative 09:23 < dx> lol 09:23 <+ammar2> manual confirmation still works alongside it 09:23 < TkTech> ammar2: And to do the same thing for cube worlds and the other games that people are interested in documenting on wiki.vg? 09:23 < dx> well the cube world modders got their own wiki already, at github 09:24 * AlphaBlend snickers at mention of pbunny 09:24 < TkTech> Their documentation is shit, I'm redoing it. 09:24 < dx> TkTech: neat 09:24 < dx> TkTech: but honestly better keep it at their wiki, or formally offer them to use ours 09:24 < TkTech> Come back to that tomorrow. Going to sleep. 09:25 < dx> sure 09:25 < TkTech> I'm not sure what the majority opinion is here. 09:26 < TkTech> To me, the manual process is piss simple and literally anyone can do it. 09:26 < TkTech> Everything else is coming across as pointless whining. 09:27 < dx> the manual process is a bit awkward but other kinds of manual account creations are a different kind of awkwardness 09:27 < dx> so welp 09:27 < dx> IMO, better keep the current system, it's not broken 12:09 <+pdelvo> damn cubeworld. Take my money 12:12 < Not-001> [node-minecraft-protocol] zuazo pushed 4 commits to master [+0/-0/±5] http://git.io/O63xhA 12:12 < Not-001> [node-minecraft-protocol] zuazo ae2046d - packet 0xfe (ping): some fields renamed, put the correct protocol version in mc.ping() 12:12 < Not-001> [node-minecraft-protocol] zuazo 6b09737 - Added packet 0x85 (Tile Editor Open) 12:12 < Not-001> [node-minecraft-protocol] zuazo c597436 - packet 0x2c: properties updated to support 1.6.2 version (elementList added) 12:12 < Not-001> [node-minecraft-protocol] zuazo 8e06879 - README: added propertyArray example 12:23 < dav1d> lol 12:23 < dav1d> brala multiclient 12:28 <+pdelvo> would be cool. Im getting information together and startet a protocol description. Looks a bit like minecraft 12:31 < dav1d> protocol backend is not a problem 12:31 < dav1d> the rendering is :> 12:31 <+pdelvo> I know you can do that! 12:32 < dav1d> rendering of terrain should be easier 12:32 < dav1d> actually 12:33 < dav1d> if I find a way to smartly merge vertices 12:33 < dav1d> and greedy increase the size 12:33 < Not-001> [node-minecraft-protocol] zuazo pushed 1 commit to master [+0/-0/±2] http://git.io/SdR5HQ 12:33 < Not-001> [node-minecraft-protocol] zuazo 634ad00 - Release 0.11.2 12:33 < Not-001> [node-minecraft-protocol] zuazo tagged 634ad00 as 0.11.2 http://git.io/n0tccw 14:23 < superjoe> did my wiki.vg account get deleted? 14:24 < superjoe> Login error. There is no user by the name "superjoe" 14:24 <+sadimusi> we have a new wiki, all accounts were removed 14:24 < superjoe> ah 14:25 < superjoe> so how do I get editing privileges 14:25 <+sadimusi> you just got them 14:26 < superjoe> thanks 14:26 < superjoe> :)\ 15:52 < dav1d> omg 15:52 < dav1d> you could render cubeworld pretty easy with particles 15:52 < dav1d> I did something similiar already... 15:52 < dav1d> might play around with that 18:35 <+pdelvo> @TkTech have you started reengineering cubeworld? 20:26 < TkTech> pdelvo: Not yet, slated as a weekend project. 20:26 < TkTech> pdelvo: Interested? 20:27 < dexter0> Is there an RE community for Cube World yet? 20:28 < TkTech> md_5: If I switch it from manual confirmation to context-specific questions on signup ("What is Markus Petersons monicker?") would that suffice? I would need a fairly large list of questions and answers that can be done 5 at a time and refreshed with a new set once that poor taiwanese kid types the answer. 20:28 < TkTech> dexter0: Nothing organized so far as I can see, a few forum posts. 20:29 < TkTech> dexter0: http://cubeworldforum.org/topic/7103-study-serverclient-protocol-for-cube-world/ 20:29 < TkTech> ... 20:29 < TkTech> "I think it would be a big step into server modding if we documented and understood the CW server protocol like how kev009 did it for Minecraft."... 20:33 < TkTech> dexter0: That's amazing timing. I link you and a minute later it goes down for maintenance. 20:33 < dexter0> I saw it 20:33 < dexter0> but still, haha 20:34 * dexter0 wishes they had a mac version 20:34 < TkTech> Do you still have it open? What was the IRC channel they listed 20:35 < dexter0> #ModCubeWorld 20:35 < dexter0> no server listed 20:36 < TkTech> dexter0: Esper 20:36 < Yoshi2> ohh, cube world, I think it has been ages since I last heard a thing about it 20:51 <+pdelvo> Jeah I am. I bought it today and started looking at the protocol 20:52 <+pdelvo> Its actually a little-endian minecraft protocol with 32bit packet ids 20:53 <+pdelvo> and of course without length information in each packet. so you have to know every packet 20:54 < Drainedsoul> little endian protocol -_- 20:55 < Drainedsoul> does it at least use unsigned integers for lengths? 20:55 <+pdelvo> there are no lengths :D 20:56 < Drainedsoul> there are no lengths, anywhere in the protocol? I mean MC doesn't have packet lengths, but it has lengths for arrays, strings, etc. 20:56 <+pdelvo> ask me in a week 20:57 < Yoshi2> that seems like a nice start 20:57 <+pdelvo> this is what I got: https://github.com/pdelvo/CubeworldProtocol 20:57 < Drainedsoul> omfg 20:57 < Drainedsoul> UTF-16 20:57 < Drainedsoul> when they say "chars", what do they mean? 20:58 < Drainedsoul> wow the packet ID is a whole 32-bit integer? Because we might need 4 billion different packets eventually! 20:58 <+pdelvo> Im not sure about that. I havent found any strings. I searched for other people who done that and they said it was utf 16. 20:58 <+pdelvo> jeah they are 20:59 < Drainedsoul> well you can't safely implement the protocol unless you know whether the length is in code units or code points >: / 20:59 < Drainedsoul> I wish people would stop saying "char" or "character" 20:59 <+pdelvo> Skip the data types section. it is work in progress :D 21:00 < Drainedsoul> client version is int32 21:00 < Drainedsoul> because what about Cube World version -4? 21:00 <+pdelvo> prealpha builds 21:01 <+pdelvo> and jeah it is a int32 and not a uint32 21:01 < Drainedsoul> what is this game written in? 21:01 < Drainedsoul> is it Java? 21:02 <+pdelvo> its native 21:02 < Drainedsoul> what 21:02 < Drainedsoul> they actually CHOSE UTF-16 21:02 < Drainedsoul> wowowowow 21:02 <+pdelvo> c++ or something like that 21:02 < Drainedsoul> that's like saying oh I could buy a fast car, or a nice car 21:02 < Drainedsoul> but I'll buy a shitty slow car 21:03 <+pdelvo> I would not blame them until we actually find a place were they use utf-16 21:03 < Drainedsoul> wat 21:03 < Drainedsoul> UTF-16 is still horrible because it's space inefficient 21:04 < Drainedsoul> there's literally no reason to choose UTF-16 over UTF-8 or -32 that I can think of 21:04 < Drainedsoul> other than "well I have to support WinAPI" 21:04 < Drainedsoul> but WinAPI isn't even really UTF-16, because it's UTF-16 LE, which is nonstandard since UTF-16 is defined explicitly to be BE 21:05 <+pdelvo> and the client version is int32, because the server reports a negative value if you send a negative value as the client version :D Client version: -16777213 21:05 < Drainedsoul> lol 21:06 < Drainedsoul> I'll give them that that's nowhere near as bad as using signed integers for lengths 21:07 <+pdelvo> I dont think you should blame someone for things you dont understand. It could make you look like an idiot. wait until we know most parts of the protocol to be sure --- Log closed jeu. juil. 11 21:21:43 2013 --- Log opened jeu. juil. 11 21:21:51 2013 21:21 -!- Irssi: #mcdevs: Total of 123 nicks [1 ops, 0 halfops, 10 voices, 112 normal] 21:22 <+pdelvo> http://wiki.vg/Special:RecentChanges 21:22 <+pdelvo> ... 21:22 -!- Irssi: Join to #mcdevs was synced in 73 secs 21:23 < dexter0> dat account spam 21:24 < Flemmard> ([a-zA-Z]{11})(\d{3}) ? 21:25 < Flemmard> all those have 11 letters / 3 numbers, no way to lock those kind of pattern ? 21:29 < iBotPeaches> is HoneyPot enabled or something? 21:30 < TkTech> I'm letting them go for a few days, basically inoculating the wiki. 21:31 < TkTech> Flemmard: https://gist.github.com/TkTech/e144311a175095141521 21:32 < TkTech> All the IPs will be banned from signups. 21:36 < Yoshi2> that is a nice number of spam accounts 21:36 < TkTech> It's been going on for months and months. Can't think of when they didn't hit the wiki... 21:44 < TkTech> Re-organizing the homepage 21:44 < TkTech> Anyone have a large icon we could use for Minecraft and one for Cube World? 21:45 < iBotPeaches> i like the blue boxes you put around each game 21:45 < Yoshi2> how large should it be? 21:46 < TkTech> Fairly large, I'm thinking of turning the homepage into two columns with the icon and a small blurb below each. 21:46 < TkTech> The minecraft one would lead to the current homepage. 21:49 < TkTech> (Someone have a better idea?) 21:54 < iBotPeaches> TkTech: I think Minecraft should still be the sole focus, until cube world becomes popular 21:54 < iBotPeaches> maybe a sidebar link 21:55 < iBotPeaches> but an entire 50/50 split for the game doesn't seem right to me 22:06 < TkTech> iBotPeaches: A sidebar link would never get noticed. 22:06 < TkTech> A 70%/30% column split would be fine. 22:06 < iBotPeaches> yer side panel, not sidebar. my bad 22:08 < TkTech> Yeah, that's what I'm thinking as well. 22:09 < TkTech> dexter0: Not horribly impressed with the cube worlds channel. 22:09 < dexter0> I expect that kind of constant off topic chatter while the folks who really know what they are doing work things out. 22:10 < TkTech> Good point, this channel isn't exactly 100% on topic either. 22:10 <+pdelvo> Doyou mean #cubeworld on freenode? 22:11 < Drainedsoul> the wave of condescension washed over me as though SirCmpwn had returned. 22:11 < dexter0> pdelvo: #ModCubeWorld on esper 22:52 < superjoe> aw come one 22:52 < superjoe> SirCmpwn was never that bad 22:52 < superjoe> have you guys ever experienced piman over in #gamedev? 22:53 < superjoe> s/one/on/ 23:31 < iBotPeaches> SirCmpwn doesn't know when to stop. Its his way or the highway 23:59 < itsme1> hi, how do i get edit permission for http://wiki.vg/ ? --- Day changed ven. juil. 12 2013 00:00 < clonejo> itsme1: wait a sec… 00:01 < clonejo> itsme1: I confirmed your account 00:01 < itsme1> ok, thanks 04:38 <+kev009> last backups: 04:38 <+kev009> http://mc.kev009.com/wiki-latest.xml.bz2 04:38 <+kev009> http://mc.kev009.com/wiki-latest-images.tar.bz2 04:38 <+kev009> 301 installed to www.wiki.vg 04:39 <+kev009> So long, and thanks for all the fish! 05:42 < dx> kev009: i think TkTech wanted a sql dump because the xml dumps might be missing some info 05:42 < dx> but the most important stuff is in those xml anyway 13:51 < daegon> Hi I am facing some trouble during update of python proxy client to latest version 13:51 < daegon> http://pastebin.com/dmd7W3L2 13:55 <+sadimusi> which part isn't working? 13:55 < Yoshi2> daegon: where are you facing trouble? 13:56 < dav1d> lol 13:56 < dav1d> for a second I thought I am in python.de -_- 13:57 < daegon> I think at packet x02 since I updated all the other packets, made xfa after xfe 13:57 < dav1d> the awkward momen you realize you're german but count in english 13:57 <+sadimusi> :) 13:58 <+sadimusi> daegon: maybe just run your traffic through a second proxy and check the both packet logs 13:58 <+sadimusi> -the 13:58 < daegon> the accounts are connecting but giving message outdated client, even though all packets are updated 13:59 < dav1d> daegon: did you update the protocol id? 13:59 < dav1d> quick ctrl+f doesn't show me your protocol id 13:59 < dav1d> http://wiki.vg/Protocol#Protocol_Version 14:00 < daegon> ah.. 14:00 <+sadimusi> the 0xfa packet doesn't look right to me 14:00 < dav1d> sent with the handshake 14:00 < dav1d> http://wiki.vg/Protocol#Handshake_.280x02.29 14:01 < dav1d> phewe line 257.. 14:01 < daegon> i changed xfa since now there is 2 inventory types and it comes after xfe 14:01 <+sadimusi> it looks to me like you're reading the length twice 14:01 < daegon> this is working for 1.5.2 even though I dint mention protocol id 14:02 < dav1d> 'Chat message {}'.format(', '.join('[{}]'.format(msg) for _ in range(100)) 14:02 < dav1d> daegon: ^ 14:02 < dav1d> daegon: line 257 14:02 <+sadimusi> in 1.5.2 0xfa isn't used for the server list ping 14:02 < Yoshi2> if I could suggest something, please replace some of the characters in the code with their hexadecimal representation 14:02 < dav1d> and 259 14:02 < dav1d> 266 14:03 < Yoshi2> specifically, in the parts where your proxy checks the ID of a packet 14:03 <+sadimusi> dav1d: ("[%s]" % msg) * 100 14:03 < dav1d> sadimusi: not the same 14:03 < dav1d> sadimusi: also {}.format <3 14:03 < dav1d> I used to hate it, but it is amazing 14:04 <+sadimusi> I'm still mostly using % 14:04 <+sadimusi> mostly because it's shorter 14:04 < dav1d> 'Chat message {}'.format(', '.join(['[{}]'.format(msg)] * 100)) 14:04 < dav1d> ^ 14:04 < dav1d> also works 14:04 < dav1d> but generators! 14:04 < dav1d> sadimusi: format is amazing :> 14:04 < dav1d> '{self.bar}'.format(self=self) 14:04 < Yoshi2> I don't quite understand generators as a word, but I like format very much 14:04 < dav1d> :D 14:05 < daegon> hmm done.. sadly thats not the reason though 14:05 < dav1d> well the generator doesn't allocate 100 list elements 14:05 < dav1d> one at a time 14:05 < dav1d> it's lazy 14:05 < daegon> i think I am making a mistake with the packets 14:05 <+sadimusi> I do use format in burger extensively 14:05 < dav1d> yield, e.g. "makes" a generator 14:05 < dav1d> sadimusi: '...'.format(self=self, **otherargs) 14:06 < dav1d> <3 14:06 < dav1d> pretty formatstrings 14:06 < dav1d> %(...)s 14:06 < dav1d> instead of ^ 14:06 < dav1d> {..} 14:06 < dav1d> well you probably know that :P 14:08 < Yoshi2> I used to do stuff like this before I discovered format: 14:08 < Yoshi2> print "The bear has found "+str(amount)+" sticks and built a house in "+str(time)+" hours." 14:08 < daegon> @david any other advice? 14:08 <+sadimusi> format is pretty cool, I just don't use most of it's features 90% of the time 14:08 <+sadimusi> so % does the trick 14:08 <+sadimusi> it is however extremely powerful for variable formats 14:09 <+sadimusi> e.g. https://github.com/mcdevs/Burger/blob/master/burger/toppings/packetinstructions.py#L97 14:09 < dav1d> daegon: well yeah, I would do the dispatching of these packets probably with metaclasses :> 14:09 < dav1d> daegon: in general, I would make a class for each packet 14:09 <+sadimusi> dav1d: noooooooo 14:09 < dav1d> sadimusi: no? 14:09 < daegon> really? 14:09 <+sadimusi> no, I would never do that 14:09 <+sadimusi> instead have something generate them 14:09 < dav1d> yes, makes stuff a lot easier 14:10 <+sadimusi> especially in python 14:10 < dav1d> except you want a proxy 14:10 < Yoshi2> how would you generate the packets? 14:10 <+sadimusi> in java I'd probably use an enum or something 14:10 < dav1d> then you can pass most of that stuff right through 14:10 < dav1d> sadimusi: I didn't say he has to hardcode them 14:10 <+sadimusi> https://github.com/sadimusi/mc4p/blob/master/mc4p/messages.py#L37 14:10 < dav1d> things like NamedTuple exist, I'd do it similiar 14:10 < dav1d> with some __new__ magic 14:11 <+sadimusi> If i wrote mc3p I probably would have done it a little different, but it's a good start 14:11 < dav1d> class Handshake(Packet): id = 0x02; string username; string host; int port; 14:11 < dav1d> then let __new__ of Packet generate methods and fields 14:12 < dav1d> oh 14:12 < dav1d> lol 14:12 < dav1d> I mixed in D 14:12 <+sadimusi> no types for you :P 14:12 < dav1d> but you get the idea 14:12 <+sadimusi> yeah 14:12 < dav1d> similiar like sqlalchemy does it 14:12 <+sadimusi> that would be pretty but lack the backwards compatibility I need in mc4p 14:12 < dav1d> right 14:12 < dav1d> which I don't care about :> 14:13 <+sadimusi> but as long as you don't create packet classes with explicit read() and write() methods you're doing it right 14:14 < dav1d> class Handshake(Packet): id = 0x02; _fields = { 'version' : Byte, 'username' : String, 'host' : String, 'port' : Int } 14:14 < dav1d> ^ 14:14 < dav1d> could look like that 14:14 <+sadimusi> class Handshake(Packet): id = 0x02; version = Byte; username = String; host = String; port = Int; 14:14 <+sadimusi> would be prettier imo 14:14 < dav1d> sadimusi: no 14:15 <+sadimusi> more like sqlalchemy 14:15 < dav1d> sadimusi: @property for the properties 14:15 < dav1d> generated in __new__ 14:15 < dav1d> mh 14:15 < SinZ> Yoshi2: ylt had a protocol generator eons ago, which showed great progress, if it was ever used 14:15 < dav1d> well makes no difference 14:16 < dav1d> yeah sqlalchemy does more magic 14:16 < dav1d> _fields would be easier 14:16 <+sadimusi> yes 14:17 < SinZ> https://github.com/ylt/Resonate/blob/master/src/Resonate/Packets.py generated by https://github.com/ylt/Resonate/blob/master/src/Resonate/dev/Generate_Packets.py 14:17 < SinZ> most likely wont work anymore, due to major wiki refactoring 14:17 <+sadimusi> won't work anyway, because of ugly packets 14:18 < daegon> is there something wrong in these lines? http://pastebin.com/Ckx52BFg 14:18 < SinZ> sadimusi: anything too messy, you just invent a datatype that handles it better 14:18 <+sadimusi> dav1d: I'd put in even more magic like display_name = Conditional(String, lambda msg: msg.mode in (0, 2)) 14:19 < dav1d> sadimusi: step two :> 14:19 < Yoshi2> I don't think such a generator would be very useful to me, because I need to write functions to deal with the data anyway 14:19 <+sadimusi> daegon: o.O 14:19 <+sadimusi> daegon: use struct 14:20 <+sadimusi> no wait, what are you even using the port for? 14:20 < dav1d> this looks really wrong? 14:20 < Yoshi2> daegon: yes, please use python's struct module 14:20 < dav1d> or construct! 14:20 <+sadimusi> the port should be an int, not a hex string 14:21 < dav1d> https://pypi.python.org/pypi/construct 14:21 < dav1d> never used it, but always wanted to 14:21 <+sadimusi> you could build the whole protocol with this thing :D 14:22 < SinZ> it would save time just writing the wiki in your own format, just do a converter OF the wiki 14:22 < dav1d> you're sure? 14:22 < dav1d> if not I think you can get pretty far 14:23 < dav1d> anyways need to buy stuff 14:23 < dav1d> :> 14:24 < Yoshi2> construct looks very nice, but it seems to be slightly complicated 14:24 < SinZ> I bet some small maitnence to ylt's script would get the job done 14:24 < SinZ> and add code to handle the annoying types, like slot 14:25 < Yoshi2> now, if construct had some sort of tl;dr, that would be great 14:51 < dav1d> bioshok for 25€... 14:51 < dav1d> *bioshock 15:41 < clonejo> TkTech: Notifico seems down 15:41 < clonejo> (the bots) 15:42 < SinZ> Not-003 is in esper still 15:48 < TkTech> It's very rare for all the bots to go down, it's usually a network-specific connection issue. 15:54 < TkTech> clonejo: They've been given a kick in the butt, should show up on your next message. 15:59 < clonejo> ok, thanks 16:38 < TkTech> And a ban for you, and a ban for you, and one for you too! 16:39 <+pdelvo> thats funny isnt it? :D 16:41 < TkTech> There's lots of IPs only doing 1 or 2 accounts, then there are a few doing 30+. 17:09 < Thinkofdeath> TkTech: Any chance of getting the wiki bot back now we have switched servers? Maybe using MediaWiki hooks instead 17:09 < TkTech> It should already be up, don't think anyone has made a change in the last few hours 17:09 < Thinkofdeath> Ah cool 17:20 < Thinkofdeath> TkTech: Made an edit and the bot is a no show 17:41 < TkTech> Thinkofdeath: I think I found a bug 17:42 < TkTech> Thinkofdeath: Running again, see if this works. 17:44 < iBotPeaches> did we have to register new accounts? why does it say mine doesn't exist anymore 17:45 < iBotPeaches> I re-registered, no worries 17:49 < Thinkofdeath> iBotPeaches: Comfirmed your account 17:49 < Thinkofdeath> TkTech: May another edit 17:49 < Thinkofdeath> *Made 17:51 < iBotPeaches> thanks 18:16 < TkTech> Thinkofdeath: Yeah, this script sucks. Going to redo as a WikiMedia extension. 18:17 < Thinkofdeath> TkTech: Ok then :) 20:34 < TkTech> kev009_: I thought you were going to do a redirect... 20:34 < TkTech> kev009_: People are asking me if the wiki is dead -_- 20:38 <+kev009_> TkTech: zuh? 20:38 <+kev009_> http://mc.kev009.com/derp wfm 20:38 < TkTech> kev009_: mc.kev009.com is a file listing 20:42 <+kev009_> fixed i guess 20:42 <+kev009_> no more nbt 20:50 < TkTech> kev009_: Thanks --- Day changed sam. juil. 13 2013 03:28 < Vislo> Hello 12:15 < Not-002> [node-minecraft-protocol] zuazo pushed 1 commit to master [+0/-0/±2] http://git.io/MIE0bg 12:15 < Not-002> [node-minecraft-protocol] zuazo 5c8f29b - Release 0.11.3 12:15 < Not-002> [node-minecraft-protocol] zuazo tagged 5c8f29b as 0.11.3 http://git.io/AKFzdw 13:12 < dav1d> this new launcher sucks 13:13 < dav1d> currently having a shitty internet, I can't play because the button to play is greyed out 13:13 < dav1d> this is just stuipid 13:14 < dx> dav1d: please stop pirating 13:14 < dav1d> I can't even click the play button if I logout 13:14 < dav1d> -.- 13:15 < dav1d> so how do I start minecraft if I can't click that button... 13:15 < dav1d> bypassing the launcher.. 13:15 <+pdelvo> maybe a parental system :D 13:15 < dx> dav1d: and that's piracy. 13:16 < dav1d> dx: dafuq? 13:16 < dx> dav1d: not having a good internet connection is illegal now, get with the times 13:16 < dav1d> omfg 13:16 < dav1d> do I really have to disconnect myself from the internet so I can launch it in offline mode 13:17 < dav1d> 64 bytes from dav1d.de (78.46.162.82): icmp_seq=554 ttl=55 time=1233 ms 13:17 < dav1d> dx: ^ 13:17 < dav1d> cool 13:17 < dav1d> -.- 13:17 < dav1d> SinZ: didnt you have a custom launcher? 13:17 < SinZ> yup 13:17 < nyuszika7h> the launcher isn't obfuscated 13:17 < dav1d> how can I start minecraft without the launcher? 13:17 < nyuszika7h> anyone can easily decompile and modify it 13:17 < nyuszika7h> dav1d: not so easy with the new folder scheme I think 13:17 < dav1d> because this launcher is just stuipid 13:17 < nyuszika7h> so I don't know 13:18 < SinZ> its actually easier than before, kinda 13:18 < nyuszika7h> it is? 13:18 < dav1d> I can't even click that fucking button 13:18 < SinZ> you can have the icon without voodoo 13:18 < nyuszika7h> dav1d: what error in dev console? 13:18 < BizarreCake> Erm... can I get my account confirmed so I could edit pages at the wiki? 13:18 < BizarreCake> Or more specifically, the server list page :I 13:19 < dav1d> brb disconnecting myself from the internetz... 13:19 < SinZ> I need to rewrite that part of my launcher though, as they changed stuff 13:19 < dx> BizarreCake: done 13:19 < BizarreCake> :D! Thanks 13:21 < dav1d> this is so stuipid 13:21 < dav1d> so retarded 13:21 < dav1d> netcfg down ...; minecraft16 13:21 < dav1d> works 13:21 < dav1d> play offline 13:21 < dav1d> -.- 13:43 < Not-002> [BraLa] Dav1dde pushed 3 commits to master [+0/-0/±8] http://git.io/OhddBQ 13:43 < Not-002> [BraLa] Dav1dde 637f6f4 - fix config.set overriding old signals, improve ConfigBound 13:43 < Not-002> [BraLa] Dav1dde 29149a3 - improve camera, implement up/down movement 13:43 < Not-002> [BraLa] Dav1dde e62476c - disable snooping in offline mode 14:11 < Not-002> [BraLa] Dav1dde pushed 1 commit to master [+0/-0/±2] http://git.io/Cl9-yg 14:11 < Not-002> [BraLa] Dav1dde 7c7085b - implemented a new camera, fixed #1 14:11 < dav1d> wow 14:12 < dav1d> github closes issues automatically 14:12 < dav1d> neat 14:12 < dav1d> clonejo: :D 17:51 < clonejo> dav1d: nice feature 17:58 < clonejo> dav1d: Sadly I can't test it right now. 18:02 < dav1d> :( 18:34 < dav1d> someone knows how the rotation in the PositionLook packet works? 18:35 < dav1d> I dont really understand it 18:36 < dav1d> just angles in degrees? 18:36 <+pdelvo> 256 -> 2*pi or 360° 18:37 <+clonejo> dav1d: http://wiki.vg/Protocol#Player_Look_.280x0C.29 18:37 < dav1d> seen that 18:37 < dav1d> pdelvo: 256? 18:37 <+pdelvo> oh sorry. They changed that 18:37 < dav1d> clonejo: but it doesn't really explain it 18:37 <+pdelvo> Or im just stupid 18:37 < dav1d> my old code was obviously broken 18:39 <+pdelvo> Ah. In the entity packets they use a byte 18:39 < dav1d> especially what is which axis... 18:39 < dav1d> opengl coordinate system? 18:40 < dav1d> because if it is, then the wiki is wrong 18:54 < dav1d> can someone help me test this? 18:54 < dav1d> clonejo, pdelvo? 19:02 < dav1d> awesome 19:03 < dav1d> so I only have to add 180° 19:03 < dav1d> .. 19:06 < Not-002> [BraLa] Dav1dde pushed 2 commits to master [+0/-0/±4] http://git.io/B3AFBg 19:06 < Not-002> [BraLa] Dav1dde f1f36d7 - small optimization, don't recalculate perspective on every move 19:06 < Not-002> [BraLa] Dav1dde 7997d36 - send correct player rotation, fixed #9 19:23 < Not-002> [netherrack] thinkofdeath pushed 5 commits to master [+0/-0/±10] http://git.io/MvrWzA 19:23 < Not-002> [netherrack] thinkofdeath b6acf50 - Switch Y and Stance back 19:23 < Not-002> [netherrack] thinkofdeath 4508456 - Crash fixes 19:23 < Not-002> [netherrack] thinkofdeath 0a979fd - Log placement 19:23 < Not-002> [netherrack] thinkofdeath 80a0bbc - Changed the internals of worlds 19:23 < Not-002> [netherrack] thinkofdeath 9920df2 - Fixed the return type of World.Block 20:12 < ffmdr> md_5: hi, I got a problem with SpecialSource, I point --srg-in at mcp/conf - in result jar classes and methods are renamed but field/method calls are not which results in "Player.q" etc - what I missed? 20:18 < Not-002> [BraLa] Dav1dde pushed 1 commit to queuetest [+0/-0/±3] http://git.io/JlHLww 20:18 < Not-002> [BraLa] Dav1dde 0a3f27d - minor tweaks -> dmd 2.063 20:18 < dav1d> dafuq? 20:21 < ffmdr> dafuq 20:37 < ffmdr> md_5: so I wanted to remap "just" a mod jar, it looks like it needs rest of minecraft in jar to remap (the mod) properly - a classpath option would be cool 20:51 < ffmdr> procyon decompiler really kicks ass - love it so much <3 21:38 < ffmdr> does anyone have patched fernflower? can't find it anywhere 21:41 < ffmdr> talking about http://www.mcportcentral.co.za/index.php?topic=3272.0 ("fernflower fix") 21:47 < ffmdr> it looks like stackoverflow answer was deleted but here is the mirror http://www.pressingquestion.com/1788232/Fernflower-Java-Decompiler-Help 22:05 < ffmdr> just decompiled fernflower with fernflower to fix decompile errors 22:25 < mbaxter> so meta 22:58 < dav1d> lol 22:58 < dav1d> minecraft, dafuq? 22:58 < dav1d> player rotation angles are really really strange 23:01 < Not-002> [BraLa] Dav1dde pushed 2 commits to master [+1/-0/±5] http://git.io/59vOfw 23:01 < Not-002> [BraLa] Dav1dde b3e47d1 - improve queue, mess around with a new queue implementation 23:01 < Not-002> [BraLa] Dav1dde e5a4f65 - improve camera, minecraft angles -> brala angles --- Day changed dim. juil. 14 2013 04:26 < SinZ> ugh, Esper is commiting suicide atm 04:27 < SpaceManiac> Oh, I was worried it was me 04:27 < SpaceManiac> "/dev/sda1 will be checked for errors at next reboot" yaaaay linux 04:39 < iBotPeaches> is there any url to download the "latest" server at all times? 04:39 < iBotPeaches> since the s3 bucket is just versioned 04:39 < iBotPeaches> http://www.minecraft.net/download/minecraft_server.jar doesn't appear to be updated anymore 04:39 < iBotPeaches> Or maybe a /latest linked to whatever the current version is 04:43 < SinZ> iBotPeaches: http://s3.amazonaws.com/Minecraft.Download/versions/versions.json will give you the latest at the bottom, and then download that version 04:43 < iBotPeaches> SinZ: ahhh kudos :) 09:05 < DavidEGrayson> Heya, I just updated my client to support 1.6.2 and I wanted to update its entry on http://wiki.vg/Clients . I used to be able to log in as user DavidEGrayson to the Wiki but now the Wiki is claiming that there is no such user. Do I have to ask someone here to confirm my account or something? 09:06 < SpaceManiac> There's been a reset of some variety, re-register and then ask for confirmation here 09:08 < DavidEGrayson> OK, I re-registered as DavidEGrayson and now would like permission to edit pages, please. 09:10 <+ammar2> DavidEGrayson: confirmed, the page you're looking for is http://wiki.vg/Client_List btw 09:10 < DavidEGrayson> oh yeah, I got that wrong. Thanks ammar2 ! 12:13 <+md_5> ffmdr there is a classpath option 12:13 <+md_5> just start java with -cp 12:13 <+md_5> and use the --live flag 13:46 < PlayerW_OName> hello 13:50 < SpaceManiac> Whoo 13:51 < SpaceManiac> Updating McURL to work with the new launcher and got a smooth Windows install process down 13:53 < PlayerW_OName> does anyone know why mojang messed up sessions that much? 13:57 < Calinou> >windows 13:58 < PlayerW_OName> can someone tell me how do i obtain client-token? i have no idea :( 13:58 < Calinou> wit hahx 13:58 < Calinou> with hax 14:06 < PlayerW_OName> ehm... any better ideas? xD 14:43 < dav1d> yay I figured the rotation out 14:43 < dav1d> PlayerW_OName: from the launcher_profiles? 14:45 < dav1d> yeah look at these damn diamonds! http://i.imgur.com/haZ59S8.jpg 14:45 < dav1d> :> 14:58 < Not-003> [BraLa] Dav1dde pushed 2 commits to master [+0/-0/±3] http://git.io/16Fyug 14:58 < Not-003> [BraLa] Dav1dde 1afa75f - increase max angle for x rotation 14:58 < Not-003> [BraLa] Dav1dde 44c59c3 - completly fix minecraft rotations 15:29 < PlayerW_OName> dav1d my problem is that i'm making launcher and trying to send that damn json, do you mean that i need to check does launcher have client token, if not try to make profile? 15:29 < dav1d> PlayerW_OName: oh, you mean the new api 15:29 < dav1d> haven't messed with that yet 15:29 < dav1d> still using the old 15:29 < PlayerW_OName> yup 15:31 < PlayerW_OName> the old one was easy in java, connect, read from stream to string and use string.split 15:32 < PlayerW_OName> grr... why did they changed that anyway? it was still able to make profiles in old api -,- 15:33 < dav1d> oh dear, I wonder how I can set the cookie 15:34 < PlayerW_OName> in java? 15:34 < dav1d> no 15:34 < dav1d> I don't touch java, except it's for university 15:35 < PlayerW_OName> so what are you using? 15:36 < dav1d> D 15:36 < dav1d> and that's the problem, I don't wanna use curl, so I am using a rather hack for HTTP, now I need a way to hack in cookies 15:36 < rom1504> set-cookie:...\r\n 15:37 < dav1d> rom1504: in a relativly sane way 15:37 < PlayerW_OName> first i was trying to write launcher in c++, but java has much more standard libraries 15:38 < rom1504> dav1d: so you are using some lib then ? 15:38 < dav1d> rom1504: kinda :> 15:39 < dav1d> rom1504: https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/http.d 15:39 < dav1d> if you call this a lib 15:39 < dav1d> nvm 15:40 < dav1d> I just saw it, he added string headers[] I think 15:40 < dav1d> well then it's easy 17:31 < Ampzilla> hello 17:37 < PlayerW_OName> hi 17:39 < Ampzilla> working on a minecraft launcher and I'm a bit confused on the download paths I would need to use in order to download all of the game files, any hints to add to what the wiki says? 18:25 < PlayerW_OName> you need minecraft.jar in proper version, lwjgl.jar, jinput.jar, lwjgl_util.jar and natives unpacked from windows_natives.jar 18:30 < PlayerW_OName> about download paths, they are diffrent for >1.6 version 18:50 < Not-003> [netherrack] thinkofdeath pushed 2 commits to master [+0/-0/±2] http://git.io/Z0IvVQ 18:50 < Not-003> [netherrack] thinkofdeath f730f67 - Removed unused debugging code 18:50 < Not-003> [netherrack] thinkofdeath e3cbbe4 - Fixed some deadlocking issues 20:14 < dav1d> clonejo: btw you have steam? 20:14 < dav1d> pdelvo: ^ 20:14 <+pdelvo> yo 20:15 < dav1d> pdelvo: steam name? :> 20:15 * pdelvo <- 20:15 < dav1d> :D 20:15 <+pdelvo> :D 20:15 <+pdelvo> like almost everywhere 20:15 < dav1d> pdelvo: don't have l4d2 by any chance? 20:15 <+pdelvo> no sorry :( 20:15 < dav1d> y u so slow steam -_- 20:16 <+pdelvo> because its summer sale :D 20:16 < dav1d> pdelvo: 4.99€ 20:16 < dav1d> :> 20:16 < dav1d> bought it 20:16 < dav1d> too many clonejos on steam 20:18 < dav1d> 68games not bad :> 20:18 <+pdelvo> :D 20:18 <+pdelvo> whats your name? 20:19 < dav1d> pdelvo: ColdSunshine atm 20:23 <+clonejo> dav1d: I should be clonejo on Steam 20:23 < dav1d> clonejo: can you add me? 20:23 <+clonejo> not now 20:23 < dav1d> hehe k 20:24 <+clonejo> I'm on a train and my notebook doesn't run steam 20:26 <+clonejo> yay, Ruhr area -> UMTS everywhere --- Day changed lun. juil. 15 2013 00:49 < PlayerW_OName> so anyone know how to obtain clientToken? 00:51 < Dinnerbone> Make one 00:51 < Dinnerbone> It can be anything 00:52 <+sadimusi> Dinnerbone: wouldn't it make more sense to hash something specific to the hardware the client is running on? 00:52 <+sadimusi> It would make it much harder to permanently steal an access token 00:53 < Dinnerbone> How would you propose I do this? 00:53 < Dinnerbone> You can't permanently steal an access token 00:53 < Dinnerbone> You can only "steal" it once 00:53 < Dinnerbone> Once a token is used it's invalid 00:53 <+sadimusi> you just refresh it 00:53 < Dinnerbone> Which gives you a new one 00:53 <+sadimusi> yes 00:54 <+sadimusi> but you don't tell it to the original client 00:54 < Dinnerbone> The old one is now invalid. If the victim logs back in they invalidate yours because you're using the same clientToken 00:54 <+sadimusi> that's exactly why I'm proposing it 00:54 <+sadimusi> I can easily wipe the client token of the victim 00:54 <+sadimusi> and a completely random one gets generated 00:55 < Dinnerbone> The users are also going to have a list of every valid access token + where/when they're used, and a button to invalidate it 00:55 < Dinnerbone> However 00:56 < Dinnerbone> How would you propose I make a client token that: won't change per environment, isn't going to conflict with another one in the world, is possible to get from java, and the attacker can't get himself? 00:56 <+sadimusi> the last point doesn't matter 00:56 < Dinnerbone> Okay 00:56 < Dinnerbone> The other 3 points do 00:56 <+sadimusi> yes 00:57 <+sadimusi> how do you define enviroment? 00:57 <+sadimusi> the serial number of the cpu or hd might be a good start 00:57 < Dinnerbone> If I change computer specs, it can be invalidated. If I move a laptop house to house, it shouldn't be 00:57 < Dinnerbone> Okay 00:57 < Dinnerbone> Do you know how to get that from java? Because I don't. All I know is a network mac address which is incredibly unreliable 00:58 <+sadimusi> why is it unreliable? because it changes too often? 00:59 < Dinnerbone> It changes, you may not have one, you may have multiple, we may not actually have access to it 01:00 <+pdelvo> mac addresses can be changed easily (if the hardware supports it) 01:00 <+sadimusi> sure, but that's your fault then 01:00 < Dinnerbone> It's also very terrible for uniqueness 01:00 <+sadimusi> according to stackoverflow it's almost impossible to get the serial nr of the hard drive 01:00 < Dinnerbone> sadimusi, not really since one of your points for going this route is that attackers shouldn't be able to change it 01:01 <+sadimusi> ok, it'll probably require root privileges though 01:01 < Dinnerbone> Indeed, as will us retrieving the token from some systems (linux, notably. Mac maybe) 01:01 < Dinnerbone> Not a price I'm willing to pay 01:02 <+sadimusi> yeah, would have been nice but the costs just don't outweigh the benefits 01:04 < PlayerW_OName> what about hashing username (on computer, not minecraft)? is it possible? 01:04 <+sadimusi> that doesn't make any sense