20:17 < dav1d> dx: the latter 20:18 < dx> dav1d: ..but why? 20:18 < dav1d> you'll get yelled at at first, but later on, meh I yelled at that guy isn't that trivial, let's help him 20:18 < dx> sounds good :D 20:18 < dav1d> others will start helping you because you dominate the channel with your problem 20:19 < dav1d> (my experience/explanation) 20:19 < dx> ha ha good luck dominating #archlinux 20:19 < dav1d> ^^ 20:19 < dx> i always want to be "the guy who did as much homework as possible before asking", but evidently people go tl;dr 20:20 < dav1d> dx: yeah :( 20:20 < dav1d> #archlinux is often my last resort 20:20 < dav1d> and when I ask there I have quite some information gathered up 20:20 < dx> a stack exchange site might be a good option for this kind of question, too 20:21 < dx> i asked only one question ever in there, http://stackoverflow.com/questions/16874043/bash-command-substitution-forcing-process-to-foreground 20:21 < dx> after failing to get answers in most irc channels, someone who knew how to answer it appeared 20:23 < dav1d> ha SO! 20:23 < dav1d> I think I put a 500 reputation bounty on a question once 20:23 < dx> how did that go? 20:23 < dav1d> the one answering was me ... 48 hours later with no sleep 20:24 < dav1d> I forgot a matrix.transpose() :( 20:24 < dx> :( 20:25 < dav1d> http://stackoverflow.com/questions/12538361/frustum-culling-implementation 20:25 < dav1d> even 5 days later :( 20:25 < dav1d> and I did research that problem I bet at least 5 days before asking on SO :( 20:26 < dav1d> dx: haha thanks for the upvote^^ 20:27 < dx> :3 20:29 < dx> damn, 3pm already 20:30 < dx> just saw a mention of google reader in dinnerbro's twitter feed... i was supposed to write a script to export the shared items of all my friends but i procrastinated it until today, when it dies --- Day changed lun. juil. 01 2013 05:02 <+md_5> Download job 'Version & Libraries' started (8 threads, 1 files) 05:03 <+md_5> good jerb mojang 12:29 <+md_5> } else if (((paramob.al().equals("Dinnerbone")) || (paramob.al().equals("Grumm"))) && ( 12:29 <+md_5> (!(paramob instanceof tz)) || (!((tz)paramob).bG()))) { 12:29 <+md_5> GL11.glTranslatef(0.0F, paramob.P + 0.1F, 0.0F); 12:29 <+md_5> GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);' 12:29 <+md_5> I dont getit 12:29 <+md_5> tz is the class for player 12:29 <+md_5> and bG() checks if a cape is hidden 12:29 <+md_5> but parammob is the thing that is name tagged 12:29 <+md_5> oooh 12:29 <+md_5> I guess you can nametag other stuff, just not in vanilla 12:30 < Dinnerbone> md_5: you can nametag any mob... 12:30 < Dinnerbone> In vanilla 12:30 <+md_5> yeah 12:30 <+md_5> but whats with the second condition 12:30 <+md_5> c(!(paramob instanceof tz)) || (!((tz)paramob).bG() 12:30 < dav1d> so Db and grum get special nametags?^^ 12:30 < Dinnerbone> If it's a player, check if the cape is on 12:31 <+md_5> you cant name a player in vanilla :( 12:31 < dav1d> :( 12:31 < dav1d> would be funny :) 12:31 <+md_5> lets make a plugin! 12:31 <+md_5> ohwait bukkit wont give us an api for 5 years 12:31 < dav1d> well that won't work 12:31 < dav1d> the skin would change, wouldn't it? 12:51 < dx> jeb mentioned 1.6.2 12:51 < dx> it's our opportunity guys 12:52 < dx> we can have packet length headers this time 12:52 < dav1d> I have the best idea ever 12:52 < dav1d> remove the packet id 12:52 < dav1d> replace it with a length header, find the correct header by guessing 12:52 < dav1d> s/header/packet/ 12:52 < dx> loling 12:53 < dx> there's a few simple packets that look exactly the same though 12:54 < dx> dav1d: what happened with the UTF-8 change anyway? 12:55 < dav1d> no idea 12:55 < dav1d> someday, maybe 12:55 < dx> lol 12:55 < dx> that's something we can actually and realistically manage to get merged 12:55 < dx> maybe. 12:56 < dav1d> for big servers that would also quite reduce the bandwith, especially with json 12:56 < dx> yeah 12:56 < dav1d> 50% less in average I'd assume 12:56 < dav1d> at least for europe/us 12:56 < dx> i stopped reading the logs the last time we talked about it because some people had drunk weird stuff and were suggesting UTF-32 instead 12:58 < Calinou> we can have packet length headers this time 12:58 < Calinou> lol 12:58 < dx> :3 13:06 < dav1d> well, the only benefit of packetlength headers would be, you don't have to implement the complete protocol 13:06 < dav1d> and you can verify your networking code 13:06 < dav1d> but that's about it? 13:07 < dx> also much more lightweight proxies that can handle more traffic 13:07 < dx> and trivial support of multiple protocol versions for those 13:26 < Grum> < dx> we can have packet length headers this time <-- but who would listen to this channel anymore? ... oh wait.... 13:27 < dx> hah what 13:28 < dx> nice to see you around 13:28 * Grum idles some more. 13:29 < dx> see you later :3 13:29 < Grum> TkTech: dont keep that ban on my account btw. do whatever you want 13:29 <+md_5> there is no ban o.O 13:29 < dx> ...did i miss something? 13:29 <+md_5> also 13:29 <+md_5> why is sir gone again 13:29 <+md_5> ._. 13:29 * md_5 finds logs 13:29 < Grum> also, we'll never add packet-length-prefixes in this major protocol version; just so you know; you can stop asking/demanding/begging 13:30 <+md_5> thats what you said about the ping stuff :3 13:30 < dx> Grum: "major protocol version"? 13:30 < Grum> yes, and you said it was a '9 line fix' 13:30 < Grum> look how wrong we both were. 13:30 < dx> you mean the protocol versions covered by minecraft 1.6? 13:30 < Grum> i know i'm right about this one though. 13:31 < Grum> dx: until we majorly overhaul the protocol (look at the end of my todolist) we wont change it. 13:32 < Grum> (and 'it' being the 'adding of length-prefix to packets) 13:32 <+md_5> Grum at the same time switch to NIO for networking :3 13:32 < dx> Grum: i assume this todolist will be complete before the release of 1.7 13:32 < dx> Grum: so we're going to start bothering you again by that time 13:33 < Grum> md_5: maybe 13:33 < Grum> dx: it wont be 13:33 < dx> Grum: shhhh 13:33 < dx> Grum: it will 13:33 < dx> Grum: have some faith in yourself 13:33 < Grum> nope. it wont 13:33 <+md_5> Grum dont worry, its not 10 lines 13:33 < Grum> this todolist is multiple years worth of work :) 13:33 <+md_5> its about 15000 13:33 <+md_5> *1500 13:34 < Grum> I'm actually not sure what a 'sane' way of doing the protocol is 13:34 < Grum> or rather the network implementation 13:34 < Grum> i've used netty, its nice 13:34 <+md_5> https://github.com/EcoCityCraft/Spigot/blob/master/CraftBukkit-Patches/0025-Netty.patch 13:34 <+md_5> yah 13:34 <+md_5> although been using netty 4 for all my stuff 13:34 <+md_5> means a lot of yelling to the devs 13:35 <+md_5> Even CR7 (20th or so release of netty4) has at least one bug I need fixed, 13:36 < Grum> i'm not really looking forward implementing the encryption using netty 13:37 < Grum> also the whole different queues etc, we should just get rid of that BS 13:52 <+md_5> Grum Ive already implemented the encryption surprisingly simple and Ive perfected it over the months 13:52 <+md_5> still need to pull request it to them 13:54 < Grum> md_5: the way we're doing the round-cycling with packets to confirm state 13:54 < Grum> i do not like that :/ 14:03 <+md_5> and all the mojang infrastructure is brning 14:03 <+md_5> burning 14:03 <+md_5> good job 14:07 < Grum> md_5: yeah we broke ourselves hehe 14:07 < Grum> seems the loadbalancers @ amazon are screaming 14:08 <+md_5> more $$$ of EC2 plz 16:55 <+sadimusi> does anybody have an idea what the first byte of the new plugin message sent after the server list ping is used for? 16:55 <+sadimusi> so far I only encountered the value 49 16:59 <+sadimusi> o.O it looks like the client only sends the plugin message and the magic (or shrödinger) byte the first time you click on "Multiplayer" 17:00 <+sadimusi> refreshing the list only sends the 0xfe and the server happily replies 17:00 <+sadimusi> Dinnerbone: ^ 17:01 <+sadimusi> and the server complains with "[SEVERE] Reached end of stream for /127.0.0.1" 17:03 <+sadimusi> (never mind about the byte, it was of course the protocol version and I printed it out in hex) 17:22 <+sadimusi> maybe there's something wrong with my proxy 17:22 <+sadimusi> but I'm pretty sure the server gets a NullPointerException when an older client pings it 17:22 <+sadimusi> i.e. lower protocol version in the plugin message 17:23 <+sadimusi> higher values on the other hand are ok 17:25 < dx> odd 17:26 < dx> you must be doing something wrong, since getting errors in older servers was the reason grum scrapped the original extended 0xfe and used plugin messages instead 17:26 < dx> oh wait - older client to new server? 17:26 <+sadimusi> well, older servers won't send the plugin message at all 17:26 <+sadimusi> *lient 17:26 <+sadimusi> +c 17:26 < dx> oh, so it's an issue that doesn't exist yet 17:26 <+sadimusi> yes 17:26 < Not-001> [Craft.Net] SirCmpwn pushed 8 commits to master [+11/-0/±49] http://git.io/f_Eo1w 17:26 < Not-001> [Craft.Net] SirCmpwn 28052d4 - Update protocol version, add new blocks/items 17:27 < Not-001> [Craft.Net] SirCmpwn e187742 - In-progress protocol updates 17:27 < dx> got it 17:27 < Not-001> [Craft.Net] SirCmpwn b43d7dc - Added another changed packet 17:27 < Not-001> [Craft.Net] SirCmpwn 78cff86 - Add new packets 17:27 < Not-001> [Craft.Net] SirCmpwn ff1eac9 - Merge master into snapshot 17:27 < Not-001> [Craft.Net] SirCmpwn 5580ab9 - Basic 1.6 support 17:27 < Not-001> [Craft.Net] SirCmpwn 6eab3ef - Fixed walking/flying speed for 1.6, fixed another changed packet 17:27 < Not-001> [Craft.Net] SirCmpwn 3a3ac91 - Update README 17:27 <+sadimusi> my proxy probably just didn't pick up on further plugin messages, I assume they are sent every time you click on refresh 17:28 <+sadimusi> because if you don't send it you get an old-style reply 17:28 <+sadimusi> i.e motd§0§20 17:30 <+sadimusi> and the protocol byte is of course signed, so the highest thing you can send is 127 17:31 < dx> yep. that's going to be fun 17:34 < dx> some day i should read up on signedness in java, what i've seen so far doesn't make much sense. 17:35 <+sadimusi> why? everything is signed, period. 17:35 < Calinou> sadimusi: suddenly: negative versions 17:36 < Calinou> or just a reset :P 17:36 < dx> sadimusi: i heard that & 0xFF turns it into 'unsigned' 17:36 < dx> and that's where it stops making sense 17:37 <+sadimusi> you can get the unsigned value of a byte this way, yes 17:37 <+sadimusi> but you have to store it in an int 17:37 < dx> oh 17:39 < dx> is it something like the bitwise operators always working with unsigned? because doing & 0xFF over an eight bit number sounds like a NOOP to me 17:40 <+sadimusi> I'm not quite sure how it works since the VM handles bytes as ints anyway 17:43 < Yoshi2> shouldn't the only difference between signed and unsigned lie in how they are interpreted? 17:45 < dx> that would make sense in a lower level language 17:45 < dx> but it seems you can't just tell java to 'interpret this as unsigned', you have to have some int in the middle 18:17 < Grum> dx: there is some issue with the 1.6 server reading the requests, it will send the 1.3 one back 18:17 < Grum> already fixed; deployed when we update 18:17 < dx> Grum: woo! 18:17 < dx> also sadimusi ^ 18:17 < Grum> again, shows even more how annoying it is to fix the 'super small issue' in a good way ;) 19:31 < ellisvlad> Hey everyone ;) 19:33 < Yoshi2> good day, ellisvlad 19:35 < ellisvlad> Hai Yoshi ;) Anyone tried to play around with the new 1.6 update yet? :P 19:38 < ellisvlad> I'm trying, but so much has changed! :P 19:38 < ellisvlad> Like Chat messages 0.o 19:38 < Yoshi2> the 1.6 update is out already? Whew, time flies by fast when I don't pay attention to it 19:38 < ellisvlad> Yeah, it came out today ;) 19:38 < dexter0> Craft.Net has 1.6 protocol support iirc. 19:39 < ellisvlad> you will need the new launcher 19:39 < SinZ> people have calculated that the PluginAPI will be released in 1.9 19:39 < SinZ> as 1.3 changed how singleplayer completelly worked 19:40 < SinZ> 1.6 is the new launcher 19:42 < ellisvlad> aha, go the chat working ;) 19:42 < ellisvlad> *got 19:43 < ellisvlad> You need to send this string now, {{"text":" Hello World"}} 19:43 < ellisvlad> :/ 19:44 < Grum> ohnoes, bytes 19:44 < iBotPeaches> I wonder how long we can still use the old chat w/ new json 19:45 < ellisvlad> lol 19:46 < ellisvlad> grr.. nvm... didn't work -.- 19:47 < Grum> iBotPeaches: until we break it ;) 19:47 < ellisvlad> oh nvm got it 19:47 < ellisvlad> {"text":" Hello World"} 19:47 < ellisvlad> sinlge set of curly braces 19:49 < iBotPeaches> It was easy to strap the old chat into the new json packet, which worked to get a working 1.6 update out, now can rest and work on full json integration 19:49 < iBotPeaches> using all the pretty bold, color, translate, using, etc 19:51 < ellisvlad> :P 19:55 < Grum> for now ;) 19:57 < Yoshi2> I do hope that the "now" will last for a while :) 19:58 < iBotPeaches> 1.6.x comes out, its removed :o 19:59 < iBotPeaches> would be my luck :) 20:01 < ellisvlad> http://puu.sh/3sHsz.jpg ;) 20:09 < Grum> like making the chat work is that hard lol :P 20:11 < Drainedsoul> I'd think making things work would be pretty easy when you're being paid and don't have to reverse engineer. 20:12 < ellisvlad> :P 20:15 < ellisvlad> ugh, now the player movement speed x.x 20:15 < ellisvlad> The player goes insainly fast xD 20:15 < ellisvlad> Hmm, using floats now.. 20:24 < ellisvlad> ugh... my 0xCA Player Abilities packet seems to do nothing :/ 20:24 < ellisvlad> The flags are set and got correctly, but the speeds are just wrong -.- 20:33 < iBotPeaches> ellisvlad: Loop the entity_count, reading string then float 20:33 < iBotPeaches> s/entity_count/properties_count in 0x2c 20:42 < ellisvlad> Hmm, The annoying thing is that when I set the fly and walk speeds, the player goes really fast (0.6 blocks per step, instead of 0.25) but if the client starts flying, the server gets sent the walk and fly speeds, which come as what I set them -.- 20:44 < ellisvlad> what is even stranger, is that the FOV changes as I send lower walk and fly speeds, but the player stll moves just as fast 20:51 < Grum> Drainedsoul: except that we documented it and told people about it some weeks ago 20:55 < ellisvlad2> wait, what?! 20:55 < ellisvlad2> can I have a link please? ;) 20:56 < Grum> yeah sure, go look in dinnerbones twitter history 20:56 < Drainedsoul> https://gist.github.com/Dinnerbone/5631634 20:57 < iBotPeaches> I wonder if this new system supports newlines, without manually sending new packets for each newline 20:57 < Drainedsoul> the old system did 20:58 < Drainedsoul> ... 20:58 < iBotPeaches> hm, then I was doing something wrong on the old system 20:58 < Drainedsoul> http://i.imgur.com/T75BUHj.png that's all one packet 20:58 < iBotPeaches> are you sending \n ? 20:59 < Drainedsoul> I'm just using my special string Newline, I think it's CRLF 20:59 < Drainedsoul> when it implicitly converts itself to a string 20:59 < Drainedsoul> I'll check sec 20:59 < Drainedsoul> oh no apparently it's just LF 21:00 < iBotPeaches> I'll give it a shot tonight, thanks for the info 21:00 < Drainedsoul> netime 21:01 < Yoshi2> does the server send one or two packets for when a player writes a very long message? 21:02 < Drainedsoul> what do you mean "very long" 21:02 < ellisvlad2> It can all be one packet 21:02 < Yoshi2> so long, that it is broken into two lines 21:02 < ellisvlad2> Up to 32767 characters xD 21:03 < ellisvlad2> but it's easier just to use \n 21:03 < Drainedsoul> there's no race conditions with newline either 21:03 < Yoshi2> I'm happy if it does not send two packets for long player messages 21:04 < ellisvlad2> player messages are a slightly different story 21:04 < Yoshi2> that was always a pain on my old bot which accepted chat commands 21:04 < ellisvlad2> Client -> server is still limited to 200 chars or somthing 21:04 < Drainedsoul> is that limit client or server imposed? 21:05 < ellisvlad2> Server -> Client is unlimited (for most purposes xD) 21:05 < ellisvlad2> Client 21:05 < Drainedsoul> yeah so it's not really limited 21:05 < ellisvlad2> And vanilla Server 21:05 < Drainedsoul> : P 21:05 < Drainedsoul> ah okay 21:05 < iBotPeaches> server -> client has no limit ive reached 21:05 < ellisvlad2> 32767 ;) 21:05 < Drainedsoul> in a sane world it'd be 65535 :( 21:05 < iBotPeaches> so size of short :) 21:05 < ellisvlad2> xD 21:06 < ellisvlad2> signing where pointless ftw 21:06 < Drainedsoul> life wouldn't be fun without if (len<0) 21:06 < Yoshi2> got to love java for that 21:06 < ellisvlad2> although, even with a signed short, you will never reach that huge number :P 21:06 < whatupdave> hey does anyone have the new 0xFE packet? 21:06 < Drainedsoul> there's a now 0xFE packet? 21:07 < ellisvlad2> yeah I got it, kinda 21:07 < whatupdave> yeh, it includes the server address in it. AWESOME 21:07 < Drainedsoul> what do you mean "address"? 21:07 < iBotPeaches> ah was that in the 1.6.1 update? 21:07 < ellisvlad2> http://b.wiki.vg/1.6...1.6.1 21:08 < whatupdave> oh awesome, thanks ellisvlad 21:08 < ellisvlad> np 21:09 < Drainedsoul> writeString(MC|PingHost); <== what is this 21:10 < ellisvlad> I'm not entirly sure 21:10 < Drainedsoul> like are "MC" and "PingHost" constants and they're being OR'd together, or did someone forget to put quotes around a string? 21:10 < whatupdave> it's a straight up string 21:10 < ellisvlad> I keep just getting 157.0..0.0..0 in my packet dump 21:10 < whatupdave> it appears just like that in there 21:11 < whatupdave> i'm guessing it acts like a user-agent 21:14 < ellisvlad> Oh wow, I'm reading from the wrong buffer... 21:14 < Drainedsoul> wut 21:14 < ellisvlad> p->writebuf->readbyte() was meant to be p->readbuf->readbyte() 21:14 < Drainedsoul> : | 21:14 < ellisvlad> no wonder I was getting random-ish results xD 21:14 < Drainedsoul> you don't 21:15 < Drainedsoul> abstract the protocol parsing... 21:15 < Drainedsoul> ? 21:15 < ellisvlad> "abstract the protocol parsing", What do you mean? :P 21:16 < Drainedsoul> I mean use some facility to abstract the protocol away from you 21:16 < Drainedsoul> I use a "Packet" class 21:16 < Drainedsoul> with some metaprograms 21:16 < Drainedsoul> and type erasure 21:18 < Grum> like are "MC" and "PingHost" constants and they're being OR'd together, or did someone forget to put quotes around a string? <-- quotes 21:18 < ellisvlad> Oh no, I do :P I'm just doing this so I can see what the ping packet says :P 21:19 < Drainedsoul> thanks, that clears that up at least 21:20 < ellisvlad> http://puu.sh/3sKPu.png :P 21:22 < Drainedsoul> C? 21:22 < Grum> Drainedsoul: for backwards compat we 'fake' a 'custom payload packet' around the extra data 21:22 < Grum> else ancient servers will terminate the connection before you get a reply after reading a 'bad packet id' 21:23 < ellisvlad> Drainedsoul: c++ 21:23 < Drainedsoul> ah okay, that would make sense 21:24 < Drainedsoul> but you're using printf not std::cout! 21:28 < ellisvlad> :P 21:28 < ellisvlad> To whom it may concern: http://puu.sh/3sLaY.png (Sorry it is a little ugly on the eyes) 21:29 < Drainedsoul> this is what the client sends correct? 21:29 < ellisvlad> ugh, my internet likes to be dodgy -.- 21:29 < Drainedsoul> this is what the client sends correct? 21:30 < ellisvlad> Yeah Client->Server 21:30 < ellisvlad> Server->Client is the same as it was 21:31 < Drainedsoul> the last ~half of the packet, what's it a representation of, and how does it represent that thing 21:32 < ellisvlad> Opps I filtered a little too much http://puu.sh/3sLmk.png 21:33 < ellisvlad> So, using http://b.wiki.vg/1.6...1.6.1#packets 21:33 < ellisvlad> "MC|PingHost" is the user agent of minecraft 21:33 < ellisvlad> b is the ip of the server, according to the client 21:34 < ellisvlad> That's quite cool 21:34 < Drainedsoul> wait after host, they write a short, and then they write a string of bytes 21:35 < Drainedsoul> oh nvm 21:35 < ellisvlad> So using this, we could now, in theory, code many virtual servers into one very easily 21:36 < ellisvlad> Just by checking which IP/hostname the client thinks they are connecting to 21:36 < Drainedsoul> what does the 0x0E mean? 21:36 < Drainedsoul> before the IP starts 21:36 <+sadimusi> protocol version 21:36 <+sadimusi> wait, no 21:36 < ellisvlad> :P 21:36 <+sadimusi> that's probably the length of the string 21:36 < ellisvlad> yeah 21:36 <+sadimusi> the protocol version should be 0x34 21:37 < ellisvlad> it sends the length of b twice? 21:37 < Drainedsoul> what is the 0x49 for then? 21:37 < ellisvlad> 1 21:37 < ellisvlad> lol 21:37 <+sadimusi> it's a regular plugin message packet 21:37 < ellisvlad> the start of the IP 21:38 < Drainedsoul> ah okay 21:38 < Grum> it sends: FE, 01 (backward compat part); 0xFA String:"MC|PingHost" ShortPayloadSize, Byte:protocolVersion, String:"Host", int:port 21:38 <+sadimusi> I currently build it like this in my ping script: http://pastie.org/8100945 21:39 < Grum> so a server who has no idea abou the extra part, will read the 0xFA packet without problems 21:39 <+sadimusi> but I guess I'll remove it again when the 1.3 response is fixed 21:39 < Grum> oh that is fixed 21:39 < Grum> just not pushed live 21:40 < Drainedsoul> okay that seems pretty straightforward, thanks 21:41 <+sadimusi> there are already 591 servers on 1.6.1 on my list, so I have to wait until that drops to 0 before changing anything 21:41 < whatupdave> thanks Grum! Stoked this got added to the protocol 21:41 < Drainedsoul> does it always send the IP, or is it however the client entered the server on the list? 21:42 < whatupdave> Drainedsoul it's the address the client added to the server list 21:42 < ellisvlad> can be a hostname 21:42 < Drainedsoul> yeah that's super useful 21:42 < Drainedsoul> it's like HTTP all over again ;) 21:42 < ellisvlad> lol 21:43 < whatupdave> yep, this is going to make the experience at Minefold a lot better 21:44 < ellisvlad> :P 21:45 < ellisvlad> :( still can't get the player speeds right.. 21:46 <+sadimusi> I still don't get why anybody would use this for virtual hosting over a simple SRV record 21:46 < ellisvlad> lol 21:46 < ellisvlad> SRV can take a few mins to update xD 21:47 <+sadimusi> not necessarily 21:48 < ellisvlad> My DNS always takes forever, even when I flush it :P 21:49 <+sadimusi> well, if this is really an issue for somebody I guess virtual hosting is an option 21:49 <+sadimusi> but it's just so much more work 21:49 < ellisvlad> :P 21:50 <+sadimusi> plus it uses some of your precious resources 21:50 < ellisvlad> Bungee could make a thing of it 21:51 < ellisvlad> ..idk :P just throwing random ideas out there 21:51 <+sadimusi> using bungee only for virtual hosting wouldn't make much sense, but maybe you could directly connect to certain servers this way 21:51 < whatupdave> what you really want is a way of redirecting the client, so bungee could send a packet to the client to say reconnect to this host 21:52 < whatupdave> then bungee wouldn't have to proxy the connection 21:52 < ellisvlad> yeah 21:52 <+sadimusi> if you don't want to proxy, just use DNS 21:52 < ellisvlad> but to merge servers with portals or chat commands is a nice feature 21:53 < ellisvlad> lol, anyone else have a minecraft launcher with this many errors yet? http://puu.sh/3sMbH.png :P 21:54 <+sadimusi> Grum: did you also fix the nullpointerexception you get when sending a protocol version < 73? 21:54 < Grum> ? 21:55 <+sadimusi> it happens when the client sends a protocol version < 73 in the 0xfa packet 22:00 < Grum> sadimusi: no idea 22:00 < Grum> also dont care 22:00 < Grum> no client does that 22:01 <+sadimusi> it might become a problem when 1.6.2 comes out 22:25 < Grum> sadimusi: not sure how it would send a lower version? :D 22:26 <+sadimusi> Grum: well, I assume the error would then occur if someone sends a version < 74 22:26 <+sadimusi> which a 1.6.1 client would do 22:26 <+sadimusi> I could be wrong of course, maybe just try it out before shipping 1.6.2 22:54 < ffmdr> does anyone know the origin of map_client.txt? 22:57 < ffmdr> vanilla mentions it in crash reports and it is referred to in mcp/forge as proguard map file(not retroguard one used by mcp) 22:57 < Krenair> google proguard 22:57 < ffmdr> ... 22:58 < ffmdr> I am not asking about proguard 22:58 < ffmdr> it looks like mcp/forge devs get original mojang obf mappings after minecraft releases 22:59 < ffmdr> and are allowed to use them to some extent 22:59 < brainiac94> indeed 23:00 < ffmdr> are you confirming that it looks like that or confirming that they receive the mappings? 23:01 < brainiac94> i'm pretty sure they do get the mappings 23:02 < ffmdr> I am pretty sure that Searge on livestream is working with mojang mappings and then removes package names 23:02 < Krenair> I've heard that MCP gets the obfuscator mappings, yeah.. 23:03 < Krenair> According to @SeargeDP: @D!nnerbone knows that changes in the obfuscation are usually no big problem for us. 23:03 < ffmdr> I readed that tweet as: are usually big problem for us 23:03 < ffmdr> fail 23:04 < ffmdr> was removing package names requirement by Mojang to not make source code too pretty? 23:04 < ffmdr> Forge does have its own package mappings but what's the point then o.O 23:07 < ffmdr> https://github.com/MinecraftForge/FML/blob/master/update_packages.py#L27 23:07 < ffmdr> and https://github.com/MinecraftForge/FML/blob/master/update_packages.py#L89 23:09 < brainiac94> has anyone looked at the new packets in the protocol? 23:10 < ffmdr> spout have updated to 1.6, some of new packets have proper names 23:10 < ffmdr> while other have fields named unknown 23:10 < brainiac94> i'm just asking because the spec of 0x2c in the burger vitrine is confusing 23:11 < brainiac94> is it just transmitting a Map ? 23:11 < ffmdr> lemme look 23:11 < brainiac94> http://b.wiki.vg/1.6.1...1.5.2#packets:0x2c 23:12 < ffmdr> looks like that one isn't in spout yet 23:13 < ffmdr> let's look at mcp 23:13 < ffmdr> it is named PacketUpdateAttributes and it transmitting a collection 23:15 < ffmdr> collection of 'AttributeInstance's...let me look deeper 23:15 < brainiac94> how does it have getKey() and getValue()? 23:16 < ffmdr> first int in packet could be entity id 23:16 < ffmdr> then goes string => double hashmap 23:17 < brainiac94> that's what i thought. I'll just try and see whether it gives me any useful information 23:17 < brainiac94> thanks very much! 23:17 < ffmdr> and here is 0x1b 23:17 < ffmdr> https://github.com/Vanilla/Vanilla/blob/631322cfa15a033482dd575964f1d95ccd2b3836/src/main/java/org/spout/vanilla/protocol/codec/entity/SteerVehicleCodec.java 23:19 < brainiac94> thank you 23:21 < ffmdr> health is not float, other changes are pretty clear 23:21 < ffmdr> now float* 23:22 < ffmdr> confirmed 0x2c int is entity id 23:24 <+sadimusi> uhm... 0x2c has been documented in the wiki for quite some time now http://wiki.vg/Pre-release_protocol#Entity_Properties_.280x2C.29 23:24 < brainiac94> .. I completely forgot to check that. 23:24 < brainiac94> thank you 23:25 < ffmdr> sadimusi: oh 23:26 < ffmdr> sadimusi: it should now go to main protocol page 23:32 < ffmdr> just found READ_ME_I_AM_VERY_IMPORTANT file from Dinnerb0ne :D 23:33 < Krenair> Are you guys updating the Protocol page? 23:33 < Krenair> if not I will 23:36 < ffmdr> is minecraft using scala? 23:37 < ffmdr> or is it just scala support in mcp 23:37 < ffmdr> for mods 23:38 < Krenair> Apparently LexManos added Scala support in MCP so people can make Forge mods with it or something 23:38 < ffmdr> ah 23:38 < Krenair> So yeah now you get '"scalac" is not found on the PATH. Scala files will not be recompiled' every time you run a script 23:39 < ffmdr> FML .gitignore: map_client.txt 23:39 < ffmdr> heh 23:49 < Krenair> ffmdr, where was that? 23:51 < ffmdr> Krenair: which gitignore was that? 23:51 < Krenair> yes. from what repo? 23:51 < ffmdr> forge mod loader --- Day changed mar. juil. 02 2013 00:06 < Krenair> :/ 00:06 < Krenair> Protocol History page doesn't include 1.5 releases 00:12 < ffmdr> You are not allowed to: Release the decompiled source code of Minecraft in any way. 00:12 < ffmdr> there are 383 github repos with minecraft source code 00:12 < ffmdr> lololo 00:12 < ffmdr> *no one cares* 00:33 < brainiac94> .. I just found out about the new chat formatting 00:33 < brainiac94> this is going to be interesting for my bot 00:35 < ffmdr> {text: blabla} 00:36 < brainiac94> is it just that for general messages? 00:37 < ffmdr> I think yes, dunno about colors 00:37 < ffmdr> https://github.com/ElasticPortalSuite/BungeeCord/blob/1296783d9bd9ce13dfcd665935e7c28f8bf43ba1/proxy/src/main/java/net/md_5/bungee/BungeeCord.java#L491 00:37 < ffmdr> (example) 00:38 < brainiac94> so what if i send formatted text - i've read that they ditched § altogether, so is it going to be an array of formatted text objects? 00:40 < ffmdr> I have no idea about colors, I haven't seen them impl anywhere 00:41 < Drainedsoul> is there any kind of complete documentation on the chat formatting/JSON/etc.? Or just the gist that Dinnerbone threw up? 00:41 < brainiac94> i havent seen one 00:42 < Drainedsoul> okay, would be nice to know which strings are supported for "color", and whether "bold" is supported, etc. 00:43 < ffmdr> oh found dinnerb0ne gist about colors 00:43 < ffmdr> https://gist.github.com/Dinnerbone/5631634 00:44 < ffmdr> oh you can now throw translations into chat 00:44 < ffmdr> that's nice 00:44 < Drainedsoul> this is the gist I was just looking at, it doesn't give a complete enumeration of supported colors 00:46 < ffmdr> it is in EnumChatFormatting class 00:46 < ffmdr> hmm weird there is code in it for reading old chat style 00:50 < Drainedsoul> where can I see this EnumChatFormatting class 00:50 < ffmdr> http://pastebin.com/Nma1t4HB 00:50 < ffmdr> I guess it maps names to enum by replacing _ with space 00:50 < ffmdr> or just with _ 00:52 < Drainedsoul> so we can probably stick like "bold", "italic", "strikethrough", etc. as JSON properties? 00:52 < Drainedsoul> will have to test. 00:52 < ffmdr> yeah, also test "dark blue" or "dark_blue" 00:53 < Drainedsoul> yeah I'll have to convert my stack-based formatting over to generating JSON instead of generating section sign codes 01:07 < ffmdr> yay, just finished my script which adds package names to MCP 01:07 < ffmdr> it was a pain 01:09 < brainiac94> ffmdr, the pastebin URL is invalid... 01:10 < ffmdr> brainiac94, I set it to 10 minutes 01:10 < brainiac94> nevermind then 01:11 < nopresnik> :O MC protocol changed. Pinging the version returns motd 01:14 < ffmdr> nopresnik: :0 01:15 < nopresnik> :O 01:24 < ffmdr> does anyone know what's bukkit status? 01:28 < nopresnik> ffmdr, yep. They are not moving 01:29 < ffmdr> you mean not doing anything? 01:31 < nopresnik> ffmdr, They will, but they aren't just yet 02:09 < brainiac94> is there any documentation on this "Yggdrasil" protocol yet? 02:13 < ffmdr> brainiac94: nope 02:13 < ffmdr> just look at launcher code 02:13 < brainiac94> meh. Thanks 02:16 < brainiac94> wait - does it actually affect the way a client connects to the game server after acquiring a session ID? Currently, my bot manages to connect and receive the 0x01 packet, but then the server says client end-of-streamed 02:17 < brainiac94> Which is odd, because I know for a fact it's the server closing the socket 02:22 < ffmdr> > wait - does it actually affect the way a client connects to the game server after acquiring a session ID? 02:22 < ffmdr> I guess not 02:22 < ffmdr> so if you are a server you are fine 02:24 < Drainedsoul> whoo 02:25 < ffmdr> btw no more lastlogin stelears 02:25 < ffmdr> *yay* 02:26 < Drainedsoul> wut 02:26 < ffmdr> stealers 02:26 < Drainedsoul> why/how is that 02:26 < ffmdr> http://www.mpgh.net/forum/422-minecraft-tutorials/647873-how-make-last-login-stealer-noobs-visual-basic.html 02:26 < ffmdr> (random example) 02:27 < Drainedsoul> how have they gotten around that? 02:50 <+sadimusi> the only way you could possibly prevent this is by not offering a "keep me logged in" option... 02:55 < ffmdr> nope 02:56 < ffmdr> after logging in with password it receives a token from server and saves it 02:56 < ffmdr> after logging in with token it is invalidated and you receive a new one 03:07 < Drainedsoul> so what if they steal your token and log in before you do? 03:23 < ffmdr> [Ljava.lang.String;@398f573b left the game 03:23 < ffmdr> lol 03:23 < ffmdr> MCP bug? 03:26 < brainiac94> ! isn't that an object identifier? 03:27 < brainiac94> i've had that happen a lot when i was unexperienced and tried to convert a byte[] into a String using .toString() 03:28 < ffmdr> it looks like I screwed up varargs somewhere in translation classes 03:29 < ffmdr> yeah it was that nevermind 03:29 < ffmdr> I had a warning related to varargs when recompiling so I removed it 03:30 < ffmdr> reverted and warning is magically gone too 06:38 < SinZ> Drainedsoul: on the event someone got a copy of your access token, you could simply re-generate it by logging in normally 06:49 < Drainedsoul> I was just getting at the fact that someone running software on your computer to steal your password is -- in my opinion -- being on the other side of the airtight hatchway 06:50 < Drainedsoul> http://blogs.msdn.com/b/oldnewthing/archive/2012/12/07/10375415.aspx <== if you haven't heard that figure of speech before 07:02 <+md_5> Grum 07:02 <+md_5> } catch (Throwable throwable) { 07:02 <+md_5> this.a = 0; 07:02 <+md_5> this.b = ""; 07:02 <+md_5> } 07:02 <+md_5> why u so catch throwable 07:02 < Grum> because that is what the old code did, i didn't feel like ensuring that all exceptions where of type ioexception 07:10 < gonewest> hello all. question about the new 1.6.1 server release and the 0xFE server list ping protocol 07:10 < AlphaBlend> Grum: Did you guys name leads in the mojang code LEASHes? 07:10 < AlphaBlend> i'm curious :P 07:10 < Drainedsoul> what about it? 07:11 < AlphaBlend> the unobfuscated bukkit code says LEASH in the NMS Item class 07:11 < AlphaBlend> so i'm curious 07:13 < gonewest> for me anyway, a new server running 1.6.1 is replying to 0xfe 0x01 with the old v1.3 response: [motd, #players, maxplayers] rather than the newer response including server version and protocol version... why? 07:14 < AlphaBlend> gonewest: 1.6.2 --> MC-19592 - 1.5.2 clients show server 1.6.1 as 1.3 in Multiplayer screen 07:16 < AlphaBlend> so yes, that got fixed in the next patch 07:19 < gonewest> ah, thanks. I didn't see that. 07:31 < Grum> AlphaBlend: yes we renamed the item after it was added (leash != good name) 07:31 < AlphaBlend> oh 07:31 < AlphaBlend> rope? :P 07:48 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+1/-0/±3] http://git.io/mt0DXQ 07:48 < Not-001> [Craft.Net] SirCmpwn c54daeb - Added packet events to client 10:55 < ffmdr> yay craftbukkit 1.6 \o/ 11:01 < SpaceManiac> aww, the game doesn't respond kindly to being maximized while loading anymore 11:01 < ffmdr> before it was just lagging 11:01 < ffmdr> what changed? 11:02 < SpaceManiac> game appears entirely in bottom-left corner 11:04 <+md_5> ffmdr spigot 1.6 \o/ 11:05 < ffmdr> spigot <3 11:05 < ffmdr> https://github.com/EcoCityCraft/Spigot/commit/6e333e5df4345ab43d98e550e2ee1aed5793560f 11:05 < ffmdr> hahahahahaah 11:05 < ffmdr> nice 11:06 <+md_5> ffmdr I always end up leaving that trace in 11:06 <+md_5> and then the issue is 11:06 <+md_5> when someone disconnects by clicking x on the client 11:06 <+md_5> it gets spammy 11:06 <+md_5> and people come crying 11:09 <+ammar2> md_5: if cause isn't end of stream or other unimportant network errors, print trace? 11:10 < ffmdr> just found lastloginstelear in some 1.6 compatible launcher 11:10 < ffmdr> it even uses UDP 11:11 < ffmdr> no more custom launchers... 11:12 <+md_5> can a mojangsta please tell me about sponges 11:12 <+md_5> werent they meant to be implemented like 8 versions ago 11:12 <+md_5> o.O you can leash *anything* 11:21 < ffmdr> https://gist.github.com/ffmdr/f632db50354c15c151fd - SEEMS LEGIT 11:23 <+md_5> ffmdr I dont even 11:23 < ffmdr> md_5: I nearly used that launcher 11:23 <+md_5> where 11:23 <+md_5> dafaq 11:23 <+md_5> did 11:23 <+md_5> you get it from 11:24 < ffmdr> http://minecraft.zyczu.pl/ 11:24 < ffmdr> lol 11:24 <+md_5> ffmdr was the mojang one so sexy it hurt? 11:25 < ffmdr> yeah maybe a little 11:25 < ffmdr> just found author's email/name/home address, gonna make his life a pain now 11:26 < ffmdr> does anyone checked if MagicLauncher is clear? it was made by optifine author iirc but is obf'd and such 11:28 <+md_5> ffmdr does it support 1.6? 11:28 < ffmdr> yeah 11:28 <+md_5> I use SKMCLauncher, no 1.6 yet though 11:28 < ffmdr> I use magic launcher generally 11:28 < ffmdr> for modding 11:28 <+md_5> guise I'm doing 1.6 update for wiki 11:28 < ffmdr> it shows conflicts nicely and stuff 11:28 <+md_5> plz dont touch page till I iz done 11:28 * edk makes 100 whitespace edits 11:37 <+md_5> done 11:46 < ffmdr> will minecraft run from chroot or something like that? 11:46 < nopresnik> Anyone know how to fix "name has protected access in EntityHuman" when trying to get "name" from final EntityPlayer entityplayer = ((CraftPlayer) player).getHandle();?? 11:47 < ffmdr> nopresnik: it is protected for a reason 11:47 < nopresnik> ffmdr, only since 1.6 11:47 < ffmdr> just use player.getName() ? 11:47 < nopresnik> Cant 11:47 < ffmdr> try to get player by its entity? 11:48 < nopresnik> have a look, im trying to update this 11:48 < nopresnik> https://github.com/NerdNu/ModMode/blob/master/src/nu/nerd/modmode/ModMode.java#L127-L176 11:50 < ffmdr> is it adding colors tags to nick? 11:50 < nopresnik> pretty much, yeah 11:50 <+md_5> probably gonna have to use reflection 11:50 * md_5 checks 11:51 < ffmdr> yeah field.setAccessible(true) 11:51 <+md_5> yah 11:51 <+md_5> reflection required 11:55 < nopresnik> Well what's the best way of doing that? 12:07 < ffmdr> health is now float right? 12:08 < ffmdr> is not 10 hearts 10.0 health? 12:09 < ffmdr> is now* 12:09 < nopresnik> I did hear that in #bukkitdev 15:13 <+sadimusi> if I generate a new access token, does my old one get invalidated? I certainly hope not 15:14 < SinZ> I think they only get invalidated if you log out with them 15:15 <+sadimusi> alright, so if I steal one I just have to use it once so the actual user has to get a new one :) 15:25 < ffmdr> sadimusi: it is 15:25 < ffmdr> you receive a new one 15:26 <+sadimusi> of course I receive a new one, the question is wether I can still use the old one to log in 15:26 < ffmdr> ohh 15:26 < ffmdr> thats a good question 15:26 < ffmdr> give me your token, I'll check it 15:26 <+sadimusi> :p 15:27 <+sadimusi> where is this thing stored? 15:29 < ffmdr> o.O 15:29 < ffmdr> can't find it 15:29 < ffmdr> got it 15:29 < ffmdr> launcher_profiles.json 15:29 < ffmdr> there are accessToken and clientToken 15:32 <+sadimusi> yep, it's still valid 15:32 < ffmdr> sadimusi: send me yours, I'll try to login as you and check 15:32 < ffmdr> :P 15:32 <+sadimusi> wait, an old access token is also still valid? o.O 15:33 <+sadimusi> ah no, the client just doesn't complain 15:33 < ffmdr> http://www.reddit.com/r/Minecraft/comments/fq8zi/why_does_logging_onto_a_smp_server_require/ 15:34 <+sadimusi> the issue would be invalidating those signatures when you change the passowrd 15:35 < ffmdr> hmm 15:35 < ffmdr> so checking if key was revoked 15:35 < ffmdr> but this way it would be same traffic load on auth servers 15:35 < ffmdr> I guess 15:36 <+sadimusi> a centralized system isn't that bad, the auth servers aren't down nearly as much recently as they used to 15:37 < ffmdr> afk 15:38 < TkTech> They're up more often then they're down at least, which is a change :) 15:38 * TkTech still can't believe he home-rolled his database 15:39 * sadimusi still can't believe minecraft.app doesn't want to use the pretty jdk 7 he installed :/ 15:40 < TkTech> Did they set a fixed version in the plist? 15:40 <+sadimusi> not sure, it might be OS related 15:40 <+sadimusi> I'm using the mavericks preview, so it's totally my fault 15:41 <+sadimusi> running it from the console works fine though :) 15:42 <+sadimusi> oracle removed all the mac links for jdk 6 o.O 15:43 < barneygale> I wonder /why/ mc.net is up more now. afaik part of the problem was it being a java app running on a single machine keeping all its data in memory 15:43 < barneygale> Have they improved the code, or the architecture? 15:44 <+sadimusi> iirc they switched from jsp to play 15:44 < barneygale> play? /me googles 15:44 < barneygale> ah nice, that's good 15:44 <+sadimusi> mollstam once mentioned it and I think there is still a play fork in their github org 15:45 < barneygale> for all the shit the mc devs get, it's a lot better than it used to be 15:45 < barneygale> Did SirCmpwn get banned for his tirade against grum last week? 15:45 < SinZ> yup 15:46 < barneygale> good 15:46 < barneygale> I was hoping that would happen - it was pretty unacceptable 16:09 < ffmdr> barneygale: again? 16:10 < barneygale> yeah you'd think he'd learn 16:10 < ffmdr> > * sadimusi [14:39:44] still can't believe minecraft.app doesn't want to use the pretty jdk 7 he installed :/ 16:10 < ffmdr> sadimusi: apple tools don't play well with oracle jdk 16:50 < Drainedsoul> well assuming he values actually speaking his mind about the various developmentally-challenged parts of Minecraft over being in this channel, there's nothing to learn 16:50 < dav1d> I guess it's time to update! 16:50 < dav1d> burger, yay 16:50 < Drainedsoul> "you'd think he'd learn" is condescending and implies there's some kind of "lesson", that the moderators/administrators of this channel are some arbiters of moral rectitude 16:55 < Grum> * sadimusi [14:39:44] still can't believe minecraft.app doesn't want to use the pretty jdk 7 he installed :/ <-- just make it use it? 16:56 < dav1d> y u osx :( 16:56 < Grum> also saying 'minecraft.app' means nothing :P 16:56 < Grum> which of the two? ;D 16:57 < dav1d> chromium cache is pissing me off right now, updating documentation and I have to wget it to check if it updated 17:01 < ffmdr> Grum: last time I checked Apple java wrapper for .app doesn't seen oracle java 17:01 < dexter0> Apple recommends that developers bundle Java with the .app 17:02 < dexter0> and they must do so if they submit to the Mac App Store (which I know you guys don't) 17:14 < AlexDaDu> Anybody here who knows the new available fields of the ServerPingPaket? 17:17 < TkTech> Was the wiki not already updated? 17:17 < mbaxter> Didn't seem to be when I looked 17:17 < dx> probably not, it was a really late addition 17:18 < TkTech> Grum: dexter0 has a point actually, do you happen to know why it isn't bundled? Just not a priority at the moment or is there a technical blocker? 17:20 < barneygale> Drainedsoul: what are you talking about? http://mcdevs.org/irc/rules "Do not harass Mojang employees." is why he was banned, I assume. 17:20 < barneygale> IRC channels need rules yo 17:20 < barneygale> well, when they're big enough anyway 17:21 < Drainedsoul> which has nothing to do with what I said. What I said was that following the rules is only worthwhile so long as the benefits do not outweigh the costs. This is true of everything in life. 17:21 < barneygale> Your argument is "rules are made to be broken"? 17:21 < barneygale> Fascinating 17:22 < Drainedsoul> No, my argument is that everything has a cost/benefit calculus 17:22 < Drainedsoul> and that valuations are subjective 17:22 < barneygale> Sure. And the people who actually /run/ the channel thought it was out of line 17:22 < Drainedsoul> so where the benefits -- if any, to you -- of harassing Mojang employees may not outweigh the costs -- being banned -- the same may not be true for SirCmpwn 17:22 < barneygale> As did basically everyone else who was there 17:22 < dx> AlexDaDu: parse everything after the constant 1 byte that was there before as a "plugin message" packet, the contents of that message are a byte that is the protocol version, a string that is the host the client is connecting to, and an int that is the port AFAIK 17:22 <+ammar2> AlexDaDu: the client sends the normal \xFE ping packet, followed by a plugin message packet containing a byte, string and int (unsure about the order jsut yet) 17:23 < dx> ammar2: ha ha i win 17:23 <+ammar2> good on you 17:23 < dx> ha ha. 17:23 < Drainedsoul> http://puu.sh/3sLmk.png here's the packet, for reference 17:23 < AlexDaDu> ok, thanks :) I'll try it. 17:24 < barneygale> So speaking of which I'm updating the Server List Ping page, and was wondering what the channel thinks of this example that was added: http://wiki.vg/Server_List_Ping#Example 17:24 < barneygale> I think it's a bit verbose and duplicates the example above it. 17:24 < Drainedsoul> since I added it I think it's good 17:25 < barneygale> oh you did? 17:25 < barneygale> well, any other thoughts? tis a wiki after all. I don't mind if it stays. 17:25 < dx> "PROTOCOL ANALYSIS" lol 17:25 < mbaxter> I dunno why it sends it as FA custom message instead of just, you know, sending the String 17:25 <+ammar2> seems ok I guess, a bit too verbose for my liking though 17:25 <+ammar2> mbaxter: because the server continues to reads packets as normal 17:26 <+ammar2> so you can't just send more stuff without it being interpreted as a new packet 17:26 < dx> mbaxter: old servers stop parsing when they get 0xFE 0x01 17:26 <+ammar2> dx: they don't, which is what the problem is. 17:26 < dx> er. 17:26 * barneygale wonders what extra data format will be tacked on the next time they want to change server list ping ;D 17:26 < mbaxter> ammar2: pfffffffffft don't need your logic 17:26 <+ammar2> after you send that 0x01 its waiting on a keep alive id 17:26 < dx> yeah i said it backwards. 17:26 < dx> ammar2: keepalive is 0x00 17:26 < mbaxter> correct. 17:26 < dx> none of that is sent 17:26 <+ammar2> well whatever the the thing is 17:27 < mbaxter> 0x01 is login request, lol 17:27 < mbaxter> silly amar 17:27 < mbaxter> +m 17:27 <+ammar2> yeah so its waiting on the rest of that packet 17:27 <+ammar2> which is why the hacky plugin message approach 17:27 < dx> that's *really* old servers 17:28 < dx> the ones mojang doesn't care about 17:28 <+ammar2> yup, gr.um was fine with them being broken but not the ones which try to read that one byte out 17:28 < Drainedsoul> well I think the issue is that at some point they did care about them, and now they're stuck with that legacy 17:29 < dx> yes, they cared about them when they weren't too old 17:29 < dx> lol. 17:29 < Drainedsoul> it's kind of like why WinAPI still has relics of old 16-bit Windows in it 17:31 < AlexDaDu> So, is the new information, such as host and port, included in the ServerPingPacket or in an extra packet? 17:31 < barneygale> Drainedsoul: windows has older stuff than that 17:31 <+ammar2> extra packet 17:31 < mbaxter> I believe it'd be read as a 250 immediately after the ping packet? 17:32 < barneygale> try creating a file called AUX 17:32 < mbaxter> 250/FA 17:32 < dx> the official implementation sends everything as part of 0xFE 17:32 <+ammar2> mbaxter: riht 17:32 < mbaxter> ammar2: yay 17:32 < barneygale> You won't be able to do it, and that restriction came from DOS 1.0 (iirc) 17:32 <+ammar2> dx: wot m8 17:32 < dx> you're free to interpret 0xFE 0x01 as one thing, and 0xFA and the rest as another packet 17:32 < dx> ammar2: check burger m8 17:32 < dx> http://b.wiki.vg/1.6...1.6.1#packets:0xfe 17:32 <+ammar2> dx: regardless of how its sent, at the other end it looks like a \xFA after a \xFE 17:33 < dx> yeah 17:33 < dx> well 17:33 < barneygale> Actually I was intending to write up on Server_List_Ping as if it were one packet 17:33 < dx> i think the read part of this is symmetrical too 17:33 < Drainedsoul> I think that's the best approach 17:33 < barneygale> As it's good to have that page readable without understanding the Protocol page 17:33 <+ammar2> certainly makes sense 17:34 < AlexDaDu> In the original minecraft code it seems to be send in one packet 17:34 < dx> barneygale: hmm sounds good, but also mention that it can also be interpreted as 0xFA for backwards compat, since people will wonder what those fields are for 17:34 < barneygale> Yep, sure 17:36 < dx> should burger vitrine show obfuscated class names? the json output includes it, and in this case i'd like to look at that code 17:37 < dx> i mean, are there any reasons to hide that kind of info? 17:38 < TkTech> sadimusi: ^ 17:39 < dx> (mostly for convenience. getting burger working locally was trivial, other than the fact that the dependency on solum wasn't mentioned) 17:39 < dx> "pip install git+https://etc" was enough to solve that 17:51 < AlexDaDu> I've solved my problem. 17:54 < AlexDaDu> 3 + 2 * this.b.length() + 4, what is 3 for a length? 17:54 < ffmdr> where 17:55 < AlexDaDu> In the 0xFA PingHost paket 17:55 < ffmdr> it is short and byte 17:55 < AlexDaDu> https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/Packet254GetInfo.java#L36 17:55 <+ammar2> 1 (protocol version) + 2 (string short prefix) 17:57 < AlexDaDu> ah ok, thanks 17:57 < AlexDaDu> Makes sense 17:57 < TkTech> dx: https://github.com/mcdevs/Burger/issues/9 17:58 < TkTech> Only 12 months ago. 17:58 < dx> TkTech: lol 17:59 < TkTech> dx: There's an edit button on github's UI now…no excuses! 17:59 < TkTech> Think it should be there, add it :P 17:59 < dx> lol. 17:59 < dx> you have no excuses either :D 17:59 < TkTech> Burger + Solum are both deprecated to me, it's sadimusi's project now. 18:00 < dx> excuses! 18:00 < dx> dammit. 18:01 < Yoshi2> there is an excuse for everything ;) 18:01 < TkTech> Solum is looooong dead to me, I haven't made a commit in…oh my god it's been two years?! 18:04 <+ammar2> barneygale: btw I updated your gist for the new stuff https://gist.github.com/ammaraskar/5910348 18:04 <+ammar2> if it seems hacky, thats because it is. 18:06 < barneygale> Oh, I got distracted doing something else bah 18:18 < barneygale> alright, here you go 18:18 < barneygale> when did minecraft get 18:19 < barneygale> err, clipboard fail 18:19 < barneygale> http://wiki.vg/Server_List_Ping 18:19 < barneygale> ^ thar 18:19 < barneygale> Formatting is a bit pants at the moment - not sure if I should move it into a table or perhaps make it all monospace 18:19 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+1/-0/±4] http://git.io/qaMQ4w 18:19 < Not-001> [Craft.Net] SirCmpwn f07ba3f - Added 1.6.1 support 18:20 <+ammar2> barneygale: XX XX - port the client is connecting to, as a big-endian short. 18:21 <+ammar2> burger says int 18:21 <+ammar2> my code works with int 18:21 < barneygale> oh, my mistake 18:21 <+ammar2> and the length adds a 4 on, which is the length of an int 18:21 < barneygale> Hm, really? 18:22 <+ammar2> yup 18:22 < barneygale> Its 4 too big? :/ 18:22 < barneygale> That seems like a bug 18:22 <+ammar2> wat 18:22 < barneygale> also why is mojang encoding ports as ints... 18:22 <+ammar2> because they can? 18:23 < barneygale> aren't port numbers restricted to 16 bit? I thought everything uses shorts for em 18:24 <+ammar2> seems so 18:24 < Grum> the other port was also transmitted as int; just keeping it identical 18:24 <+ammar2> barneygale: well whatever the case, they've used int for ports and you should fixitfixitfixit 18:24 < barneygale> yeah fixing it now 18:25 < Not-001> [PartyCraft] SirCmpwn pushed 1 commit to master [+0/-0/±2] http://git.io/J8w4kQ 18:25 < Not-001> [PartyCraft] SirCmpwn 90c8c2a - Update to 1.6.1 18:26 < Yoshi2> maybe because port numbers go up to 65 535, but a signed short can only store half of that 18:26 < Not-001> [SMProxy] SirCmpwn pushed 1 commit to master [+0/-0/±2] http://git.io/YYbYpQ 18:26 < Not-001> [SMProxy] SirCmpwn 8b7f436 - Update to 1.6.1 18:26 < barneygale> ah Yoshi2 that'll be it 18:27 < barneygale> updated the page btw 18:28 <+ammar2> barneygale: minor stuff: no need to specify big endian, thats the network order. May wanna elaborate a bit on 'length of the rest of the packet, as a big-endian short' 18:28 <+ammar2> since rest of the packet is gonna confuse people if they haven't looked at the plugin message packet page 18:30 < barneygale> "rest of the data" would be better I suppose 18:33 < Drainedsoul> why do people insist on saying "short", "int", "long" instead of "16-bit signed integer" 18:34 < dx> because saying short is shorter 18:34 < Drainedsoul> it's ambiguous 18:34 < SinZ> because short,int,long are better than int16,32,8,64 18:35 < dx> it's defined clearly in the data types wiki page 18:35 < Drainedsoul> so if people happen to read the data types page, then they'll know. The issue is that "short", "int", "long", etc. are all actual data types. 18:36 < Drainedsoul> and they don't have a specific, fixed width in all instances 18:36 < barneygale> their length is obvious from the page 18:36 < dx> they do. in java. 18:36 <+ammar2> in the context of the minecraft protocol they have a particular meaning 18:36 < barneygale> and yeah, in java they do have those lengths 18:36 < barneygale> have you taken over as knit-picker general now 18:37 < Drainedsoul> yeah but the world doens't revolve around Java, as evidenced by the fact that the wiki gives code examples in a variety of languages 18:37 < barneygale> ammar2: made the changes you suggested 18:37 <+ammar2> barneygale: thanks <3 18:37 < dx> the minecraft protocol revolves around java 18:37 < barneygale> Drainedsoul: the wiki also gives example values every time it mentions "short" or whatever 18:37 < barneygale> there is no ambiguity 18:37 < barneygale> stop complaining 18:38 < Drainedsoul> I don't think pointing out that something is potentially ambiguous is "complaining" 18:38 < barneygale> It's not potentially ambiguous 18:38 < barneygale> only to complete cretins 18:39 < Drainedsoul> it's actually deliberately ambiguous in certain contexts 18:39 < barneygale> Where 18:39 < dx> it's only ambiguous if you're talking about C code that will be ported to several architectures 18:39 < Drainedsoul> the C and C++ standards deliberately avoid fixing the widths of short/int/long, giving them only minimum widths 18:39 < barneygale> dx: even then, there are example values and I'm intending to give a full packet dump. 18:40 < barneygale> if confusion enters the mind of a reader for a split second it can be easily resolved by checking either of those 18:40 <+ammar2> or you know, reading the Data types page 18:40 < dx> this is not C. we assume people coding C will be aware that their language makes no guarantee on the lengths of those data types. it's not our problem if they don't 18:40 <+ammar2> which is a pre-requisite to understanding the protocol anyway 18:40 < dx> ^ 18:40 < barneygale> ammar2: I try to keep the Server List Ping page readable to people who don't want to understand the rest of the protocol 18:40 < Drainedsoul> or you could just make communication unambiguous 18:40 < barneygale> hence why it doesn't say "send an 0xFE, then a 0xFA" 18:41 < barneygale> Drainedsoul: then start your own wiki, with your own formal notation system 18:41 <+ammar2> barneygale: yeah but the data types page isn't exactly a large block of text like the protocol page. May as well link to that too 18:41 < barneygale> because using english is inherently ambiguous 18:41 <+ammar2> just to keep grounds covered 18:41 < barneygale> ammar2: sure 18:42 < barneygale> done. 18:42 < TkTech> barneygale: Because they have to. 18:43 < barneygale> TkTech: sorry, what was that in response to? 18:43 < TkTech> barneygale: The max port is 65535, which is an unsigned short. 18:43 < dx> oh, that. 18:43 < TkTech> barneygale: No unsigned types in Java, so you either have to & 0xFF it, or just store it as a larger type. 18:43 < barneygale> Right, yeah 18:43 < dx> context: "why is the port field int not short" 18:44 < barneygale> Yoshi2 explained that to me 18:44 * barneygale isn't very familiar with java 18:44 < Drainedsoul> lol no unsigned data types 18:44 < Drainedsoul> good language 18:44 < barneygale> Drainedsoul seems oddly familiar. 18:44 < dx> better than having every value as a double 18:44 < Drainedsoul> that's undoubtedly true 18:44 * dx read a 15 minute lua tutorial last week 18:45 < Drainedsoul> it's also better than having only 1 fixed width integer type, which is signed 18:45 < Drainedsoul> doesn't JavaScript do all numbers are doubles too? 18:45 <+ammar2> dx: oh god the one on site with comments in code explaining everything? 18:46 < dx> ammar2: ye, wat about it? 18:46 <+ammar2> dx: nil 18:46 < barneygale> Drainedsoul: http://blogs.msdn.com/b/oldnewthing/archive/2012/10/17/10360184.aspx 18:46 < dx> ammar2: hmm, i think that wasn't mentioned.. 18:47 < dx> ammar2: WELP 18:47 < Yoshi2> catching exceptions in lua is fun because it often involves checking if the result of a function is nil 18:47 < TkTech> dx: Python does numerics pretty well (at least with 3.3+'s Decimal module updates) 18:47 < TkTech> dx: Dynamic typing + evolving types 18:48 < Drainedsoul> barneygale: http://wiki.vg/NBT#Specification 18:48 < TkTech> Where a number will change types to suit its value and eventually if necessary turn into an arbitrary-precision value. 18:48 <+ammar2> oh yeah, its really handy to have something just increase its capacity instead of overflowing 18:48 < barneygale> So change it if you want, I won't revert it back 18:48 < barneygale> someone who might feel more strongly than me might do so 18:49 < barneygale> you can have your bottle. 18:49 < Drainedsoul> my point is that it's been changed, and has been for a while 18:49 <+ammar2> TkTech: one of the many reasons why its great for quick prototyping 18:49 < Drainedsoul> well automatic promotion is great except where it isn't, I don't know how I feel about that 18:50 < Drainedsoul> I'm personally a fan of checked arithmetic, where you throw on overflow 18:54 < dx> TkTech: python handles it nicely (although not caring about efficiency), but i think what lua does is justified since their VM is tiny 18:55 < TkTech> dx: Wah? Python's AP is very efficient. 3.*+ has made incredible (over 300x speedups) leaps 18:55 < TkTech> dx: http://docs.python.org/3/whatsnew/3.3.html#new-decimal 18:57 < dx> TkTech: oh, i haven't followed on 3.3, but i meant that some operations will get inconsistent performance due to reallocations... or they did, before this update. 18:57 < dx> TkTech: it's not like most people can realistically use 3.x yet, though :( 18:57 < TkTech> dx: Sure they can, hell it's the default on Ubuntu. 18:58 < TkTech> dx: And the allocation issue is solved in part or in whole by pypy or one of the many inline tools for CPython 18:59 < dx> TkTech: and it's been the default in arch for a long while and all i do is typing python2 or changing hashbang lines of script, because most stuff isn't ported yet 18:59 < TkTech> Pfft, lazy bones. You're a dev and the project is probably open source! 19:00 < TkTech> 99% of my old tools were a quick 2to3 away from porting. 19:00 < dx> TkTech: the port of flask/werkzeug to py3 was finished last month actually, i could port some of my stuff to it now, but i believe i have other deps that are stuck in py2 still 19:01 < dx> TkTech: it's all about deps. it's rarely as simple as 2to3 for them 19:46 < ellisvlad> hey guys, quick question.. 19:46 < ellisvlad> Have I got it right that Servers need to handle sprinting now? 19:47 < ellisvlad> e.g. when the player's speeds change 19:50 < TkTech> Yar, but it's apparently getting un-done. 20:36 < ellisvlad> oh kk 20:36 < ellisvlad> thx 20:37 < ellisvlad> I just spent the last half hour coding a sprint system to give 20 blocks of sprint with 0.3blocks/sec regen 20:37 < ellisvlad> lol 21:52 < Drainedsoul> yesterday someone pasted me the vanilla Minecraft's chat formatting enum. Super useful but unfortunately the paste expired. :/ Anyone happen to have that? 21:56 < iBotPeaches> ah darn, i want that too. Instead of manually figuring out what all these possible "translate:" values are 22:12 < ffmdr> Drainedsoul: you mean my paste? 22:15 < ffmdr> Drainedsoul: https://gist.github.com/265374b55a14c08e39e3 22:17 < Drainedsoul> yes, sweet, thanks 22:19 < ffmdr> how does colors in entity names work now?? 22:19 < ffmdr> is it also json? 22:20 < iBotPeaches> yer, "color": "yellow" 22:21 < iBotPeaches> I don't know all the colors yet, but all the basic ones seem to work 22:21 < iBotPeaches> and don't know how to color portions of strings anymore, because it seems the color effects entire string 22:23 < ffmdr> iBotPeaches: could you test dark_blue and "dark blue" for me 22:24 < iBotPeaches> ffmdr: at work now, can't be spinning up minecraft windows :) 22:24 < Drainedsoul> I'm pretty sure you can embed objects, so you can do 22:24 < ffmdr> iBotPeaches: :P 22:25 < Drainedsoul> {"text":[{"color":"blue","text":"hello"}," ",{"color":"yellow","text":"world"}]} 22:26 < ffmdr> what about entity names 22:27 < Drainedsoul> I have no idea about entity names, I'm trying to make my chat implementation compliant 22:27 < iBotPeaches> Drainedsoul: I'll give it a shot, too bad its a lot of bloat if you wanna throw a lot of colors together 22:29 < ffmdr> I can do a quick converter from & color codes 22:30 < iBotPeaches> if dark blue == navy, I have navy confirmed working 22:33 < Drainedsoul> is it actually called "navy"? 22:38 < ffmdr> what the heck is "navy"? 22:38 < Drainedsoul> a kind of dark blue 22:38 < Drainedsoul> "navy blue"? 22:40 < Drainedsoul> so are bold/italic/underline/strikethrough/random combinable now? 22:40 < Drainedsoul> like can you set "bold":true,"italic":true ? 22:41 < Drainedsoul> and is it "underline" or "underlined"? 22:42 < iBotPeaches> I'm still working my json thing through, havent made it to those yet 22:47 < Yoshi2> Drainedsoul: if I remember correctly, making italic/bold/etc. combinable is one of the reasons why the new chat system was created 22:49 < Drainedsoul> my biggest problem with this system is that it's a lot harder to make it gracefully fail 22:49 < Drainedsoul> previously if you had a string longer than 32267 characters, you could just slice it down to 32267, check for a trailing section sign, and send it 22:49 < Drainedsoul> what am I supposed to do with this JSON object, just not send it at all? 22:53 < iBotPeaches> Drainedsoul: thats what I'm dealing with :/ (I'm reconstructing the json, except the split text part) 22:53 < iBotPeaches> which is failing still miserably due to invalid json, since I keep accidentally splitting mid json format 22:54 < Drainedsoul> the only thing I can think of, which would be ridiculously expensive, is take your JSON object, reparse it, remove later nodes from it, reserialize it, and see what it serializes to 22:54 < Drainedsoul> either that or start again from scratch and cut out nodes or segments of text 22:54 < Drainedsoul> or just not send overlong serializations at all 22:55 < Drainedsoul> just send {"text":""} or something 22:55 < iBotPeaches> yeah gonna stick with not sending anything, till I have a lot of time 23:24 < Drainedsoul> so with JSON chat, is U+00A7 representable as a literal now? 23:49 < ffmdr> does anyone know good pastebin alternative with delete option which isn't gist? 23:50 < Drainedsoul> you can delete from pastebin? 23:51 < ffmdr> yeah 23:51 < ffmdr> with an account 23:51 < Drainedsoul> yeah 23:51 < Drainedsoul> ? what's the problem with that ? 23:52 < ffmdr> problem is that it is pastebin 23:52 < Drainedsoul> how is that a problem 23:52 < ffmdr> I don't like it 23:52 < Drainedsoul> oh, okay. I misunderstood your question. 23:52 < ffmdr> pastebin stores password as unstalted md5 23:52 < ffmdr> passwords* 23:53 < Drainedsoul> I just log into pastebin with my facebook : P 23:53 < ffmdr> >_< 23:53 < ffmdr> yeah that perfectly solves the problem 23:53 < Drainedsoul> I'm not sure if that's sarcasm or not. 23:53 < ffmdr> recently pastebin was hacked and all emails/passwords/ips was leaked 23:54 < dav1d> also pastebin is ugly 23:54 < dav1d> use you rown 23:54 < dav1d> ffmdr: https://github.com/Dav1dde/vp 23:55 < ellisvlad> lol 23:55 < ellisvlad> nice 23:55 < ffmdr> meh I know some cool open source ones but I don't want to host my own 23:55 < ellisvlad> or use puush Much better ;) 23:56 < ellisvlad> you can send screenshots, files and text super quickly :P 23:56 < ellisvlad> look 23:56 < ellisvlad> http://puu.sh/3tEoJ.png 23:56 < Drainedsoul> in fairness I could've hosted that screenshot on imgur about as quickly