23:56 < ffmdr> I use screencloud 23:57 < ffmdr> ellisvlad: your fonts suck 23:57 < Drainedsoul> http://alternativeto.net/software/pastie/ ? 23:57 < ellisvlad> But I just hit Ctrl+Shift+PrntScrn Drag a region to screenshot and then I get the uploaded url on my clipboard ;) 23:57 < ellisvlad> http://puu.sh/3tEqq.txt 23:58 < dav1d> you can do that with basically every pastebin, if you set up the correct keybindings 23:58 < dav1d> it would be ~1 bashline with xbindkeys and xcliü 23:59 < ellisvlad> It's much easier than using pastebin tho 23:59 < ffmdr> hf copying text from screenshots --- Day changed mer. juil. 03 2013 00:00 < Drainedsoul> I had an instructor in college who used to put code snippets in lab write ups as jpegs 00:00 < Drainedsoul> -_- 00:00 < ellisvlad> lol 00:00 < ellisvlad> Thats what puush Ctrl+Alt+V is for, upload clipboard ;) 00:00 < dav1d> lol 00:00 < dav1d> we get entire images made out of latex 00:00 < ellisvlad> ouch 00:01 < ellisvlad> anyway gtg, cya ;) 00:47 <+sadimusi> dx: class names would make sense, I often need them and have to look at the json... 00:47 <+sadimusi> dx: I'm reworking vitrine anyway, I'm sure I'll find a place for them 00:49 <+sadimusi> it's also getting a redesign :) (WIP: http://cl.ly/Q1pm) 00:58 <+ammar2> sadimusi: purdy 01:14 < dav1d> burder pls 01:43 < Drainedsoul> anyone have any kind of word on what the valid strings for the "color" property are yet? 01:48 < ffmdr> +1 01:48 < Drainedsoul> if not I'm getting to the point where I'll be able to test 01:59 <+sadimusi> I guess still just the ansi colors 02:00 <+sadimusi> and I think I saw an underscore somewhere 02:00 <+sadimusi> so dark_blue for the darker variants 02:01 <+sadimusi> *light_blue 02:59 < Drainedsoul> So the client accepts this ==> {"text":[{"color":"green","text":[{"bold":true,"text":["Drainedsoul"]}," has come online"]}]} 02:59 < Drainedsoul> but outputs it with no bold or colour :| 03:45 < iBotPeaches> Drainedsoul: if you make the color node and text node in the same level, instead of nested, does that work 03:46 < Drainedsoul> lemme try it rq 03:48 < Drainedsoul> yeah that works 03:49 < iBotPeaches> that worked for me too, but then I can't control individual color 03:49 < Drainedsoul> hmm? 03:49 < iBotPeaches> i mean multiple colors 03:50 < iBotPeaches> the instead I nest color in a text node, it doesn't take it 03:50 < iBotPeaches> http://i.imgur.com/2f5ifB3.png 03:50 < Drainedsoul> gimme a sec 03:53 < Drainedsoul> yeah this {"text":[{"color":"green","text":"hello"},{"color":"red","text":"world"}]} 03:53 < Drainedsoul> just outputs white text 03:53 <+sadimusi> o.O 03:53 < iBotPeaches> coloring usernames should not be this hard 03:53 < iBotPeaches> it just takes the color of the root node color, and refuses any nested colors 03:54 <+sadimusi> that's definitely not how it's intended 03:55 <+sadimusi> [...] there'll be a proper stack based colouring/formatting system, so no more leaking colours [...] 03:55 < iBotPeaches> gonna go look back at the gist 03:55 < iBotPeaches> maybe missed something 03:55 <+sadimusi> there is no nesting there 04:02 < iBotPeaches> yeah just tried switching orders up, just in case it was picky, no go 04:02 < Drainedsoul> it doesn't look like the old school formatting works either 04:03 < Drainedsoul> unless it only works in the root text node 04:07 < iBotPeaches> If you pack the entire string into the root text node though with old formatting it works 04:07 < iBotPeaches> thats what im doing now 04:07 < Drainedsoul> lol okay, time to pull all my old chat-handling code back down from GitHub and abandon ship on this new stuff 04:08 < iBotPeaches> though, bad practice cause how long will old stuff work with new json :o 04:08 < Drainedsoul> I'd say we should report this as a bug, but there's probably no vanilla use case 04:08 < Drainedsoul> lol 04:11 < mbaxter> The serializer does not work 04:11 < mbaxter> (as one would expect) 04:12 < mbaxter> Presumably it's incomplete. 04:13 < Drainedsoul> one would expect something pushed in a release build of a piece of software not to work? 04:13 < Drainedsoul> or am I parsing what you said wrong 04:13 < iBotPeaches> yeah this isn't < 1.0 anymore, this is just aggravating 04:15 < mbaxter> serializing a ChatMessage with two ChatMessages as children, it turns it into {"text":["firsttext","secondtext"]} and drops formatting/color. 04:16 < iBotPeaches> then removing the old style chat in new json, should never happen, until the new system works 04:17 < iBotPeaches> im out of here, killed my drive to work 04:17 < Drainedsoul> rofl 04:18 < Drainedsoul> inb4 this is "working as intended" 04:19 < Drainedsoul> there, back up-and-running with old style chat inside a thin JSON wrapper lol 04:19 <+sadimusi> I guess each node just applies its style to all children and the default is white with no style instead of noop 04:19 < Drainedsoul> surely this is the kind of bug that would get caught in testing though 04:19 < Drainedsoul> I mean who designs a tree structure and only tests it with one child 04:20 <+sadimusi> Dinnerbone, apparently :P 04:20 < Drainedsoul> ;) 04:20 <+sadimusi> somebody has to ask him tomorrow 04:23 < mbaxter> Interesting part is that the code that takes a ChatMessage to console-readable text seems to work fine 14:50 < ellisvlad> Hmm, hey guys :D 14:51 < ellisvlad> is there an easy way to stop the client checking the minecraft login is valid before connecting to a server? 14:51 < ellisvlad> What I mean is, that in <1.6 it was easy to connect to a server with two open minecraft clients, but you needed two logins, which I have. 14:52 < ellisvlad> How can I connect to my testing server with two seperate clients, logged in as DIFFERENT accounts without http://puu.sh/3u5J0.png on either of them :/ 14:53 < dx> interesting 14:55 < dx> that actually looks like the server rejecting your login, not the client checking it 14:55 < ellisvlad> But I coded the server, and never made a login check :P 14:55 < dx> ..wait what 14:55 < ellisvlad> It was fine in 1.5.2 and before, but 1.6 one break it x.x 14:56 < dx> err.. when do you get this message exactly? 14:56 < ellisvlad> Just as I connect 14:56 < dx> to the server? 14:56 < ellisvlad> yeah 14:56 < dx> wot. 14:57 < ellisvlad> "Connecting..." then "Logging in..." then it says failed :/ 14:57 < dx> okay yeah i haven't bothered to look at the new auth flow so this makes no sense for me 14:57 < SinZ> I don't think Yggdrasil touched server auth 14:57 < ellisvlad> Hmm :P 14:58 < dx> are these usernames part of the same mojang account? 14:58 < ellisvlad> no 14:58 < ellisvlad> ah hang on... 14:58 < ellisvlad> http://puu.sh/3u5S7.png 14:58 < ellisvlad> lol xD 14:58 < SinZ> usernames as we know it, are "profiles" in mojang accounts 14:59 < ellisvlad> I'm going to hope it is the minecraft multiplayer auth servers failing :P 14:59 < dx> ellisvlad: but you said you never made the login check 14:59 < dx> ._. 14:59 < dx> (so like offline mode due to laziness?) 15:00 < ellisvlad> Server that is being connected to definately makes no checks of user authentication, I turned it all off 15:00 < ellisvlad> Vanilla client is failing the login check, I think.. 15:03 < dx> yep. makes no sense. 15:04 < ellisvlad> http://puu.sh/3u63z.jpg 15:06 < ellisvlad> :( Multiplayer servers are back online.. but it still doesn't work 15:07 <+sadimusi> do you have to click "log out" on the second client? 15:08 <+sadimusi> if you do the auth server won't accept a joinserver request from the client 15:08 <+sadimusi> you can try removing the profiles json before starting the second client 15:08 <+sadimusi> or just disable the auto login 15:09 < ellisvlad> I disabled auto login 15:10 <+sadimusi> maybe a http proxy can help 15:10 <+sadimusi> just to debug it I mean 15:11 <+sadimusi> a fake auth server would definitely do the trick, but you shouldn't have to go to such lengths 15:11 <+sadimusi> what does the dev console say btw? 15:12 < dx> http proxy... hmm 15:12 < ellisvlad> Might just make a fake auth server :/ 15:12 < ellisvlad> sadimusi: http://puu.sh/3u63z.jpg 15:13 < dx> i'd expect this kind of auth to use SSL with certificate checking 15:13 < ellisvlad> I don't think it does 15:13 <+sadimusi> dx: I don't think the certificate is pinned 15:13 < dx> that's just what i expect from sensible auth methods :3 15:14 <+sadimusi> and even if it is, it's probably somewhere in the jar 15:14 < dx> but yes, in the worst case, just mod launcher/client/server 15:14 < dx> ye 15:15 < ellisvlad> ugh, this is a pain 15:15 < ellisvlad> it was fine with 1.5 launcher :P 15:16 < ellisvlad> What is mcoapi.minecraft.net? 15:17 < SinZ> realms 15:17 < ellisvlad> kkl 15:45 < ellisvlad> Right OK 15:45 < ellisvlad> guys to anyone who had the same problem as me when they wanted to test, I've made a solution :P 15:46 < dx> yes? 15:47 < ellisvlad> Two steps 15:47 < ellisvlad> firstly, Add "127.0.0.1 session.minecraft.net" to your hosts file (http://puu.sh/3u7fU.png) 15:48 < ellisvlad> (REMEMEBER TO REMOVE THIS WHEN YOU WANT TO USE THE PROPER AUTH SERVERS AGAIN!!) 15:50 < ellisvlad> Secondly, download and run http://81.105.11.105/SessionMC-FakeAuth.exe 15:50 < ellisvlad> just leave it running, and it will just auth you no matter what 15:51 < ellisvlad> I wrote that program myself and can promise it has no viruses or any of that crap :/ but feel free to scan it and run in sandbox or whatever 15:51 < ellisvlad> it will need to open port 80 though 15:52 * Yoshi2 uses a disassembler on the .exe 15:52 < ellisvlad> lol 15:54 < ellisvlad> Here is teh source if you really want it http://puu.sh/3u7sD.zip 15:54 < ellisvlad> CPP.cpp is the main file 15:54 < ellisvlad> http://puu.sh/3u7tQ.txt 15:55 < dx> regardless of the fact that you wrote it, i can't help but say that the url looks LEGIT AS FUCK 15:55 < ellisvlad> ik, my DNS thing is messed up 15:55 < ellisvlad> sec 15:55 < Flemmard> CPP.cpp, nice naming 15:55 < ellisvlad> lol 15:55 < sfan5> :D 15:55 < dx> your indentation is messed up 15:56 < ellisvlad> http://www.ellisvlad.com/Server.exe 15:56 < ellisvlad> better? ;) 15:56 < dx> as a python programmer, i am legally required to stab you for that indentation fuckup 15:56 * dx stabs ellisvlad 15:56 < ellisvlad> ;) 15:56 < ellisvlad> I made this in a hurry xD 15:56 < ellisvlad> This in no way showcases my ability or skill ;) 15:58 < ellisvlad> anyway, if you want to use it, do :P 15:58 < ellisvlad> if not, then just ignore it :P 15:59 < ellisvlad> if you don't want to download/run the exe change your hosts to point to my IP 15:59 < ellisvlad> I'll have the thing running for the next few hours 15:59 < ellisvlad> by few hours I mean 10-12 xD 15:59 < iBotPeaches> a new day, no anger. Drainedsoul did you report that bug? should we fire it on the bug tracker or just ping it here? 16:02 < ellisvlad> x.x My L key has fallen off my keyboard 16:04 < Flemmard> it has l-eft 16:05 < ellisvlad> *slow clap* 16:05 < ellisvlad> ;) 16:05 < Flemmard> sorry :D 16:12 <+sadimusi> iBotPeaches: first try pinging him, if it doesn't work use the bug tracker 16:14 < Yoshi2> ellisvlad: lucky you, after 20 minutes of searching around in the exe I haven't found anything that could be malicious ;) 16:17 <+sadimusi> ellisvlad: you've worked around it, but do you know what the issue actually is? 16:17 < iBotPeaches> i feel bad for mojang, that tracker looks horrible 16:17 < iBotPeaches> 2k issues a day 16:17 < iBotPeaches> 1990 which are idiots 16:18 <+sadimusi> lets ping him then 16:19 <+sadimusi> Dinnerbone: are you aware that it's impossible to color individual parts of a chat message with the new json format? 16:19 < iBotPeaches> http://dinnerbone.com/mojira/crashes/MCX-777/ -> lol 16:19 <+sadimusi> ellisvlad: it really doesn't even use ssl? 16:19 < iBotPeaches> sadimusi: that was that problem I said to you a few days ago 16:19 < iBotPeaches> Never trust that JSON is incoming, should of caught that and failed silently 16:20 < mbaxter> iBotPeaches: Better have a tracker full of crap than no tracker \o/ 16:21 < SpaceManiac> I was sad to hear server-side texture/resource packs are dead 16:21 < iBotPeaches> mbaxter: pretty sexy system to automatically pull stacks into an area 16:21 < mbaxter> A lot of people's attempts at using the new json system resulted in that client crash. 16:22 < ellisvlad> lol 16:22 < ellisvlad> I kinda hope they switch back to the old one... 16:23 < ellisvlad> or they could make a new packet called ChatFormatted or somthing 16:24 < iBotPeaches> most of those crashes are peopel sending old chat 16:24 < iBotPeaches> ex JSON string: §5Welcome to the server, SuperBower118§5! 16:25 < ellisvlad> yeah 16:27 < mbaxter> I'm hoping for a 1.6.2 with fixed serializer 16:28 < ellisvlad> or a json detector, so it can be optional 16:29 < Drainedsoul> I didn't report the bug, no 16:29 < mbaxter> proper support is all that's needed, and ignoring messages that aren't valid 16:31 < Drainedsoul> what's wrong with ellisvlad's indentation? My objection is that he appears to be using VC++ :P 16:31 < ellisvlad> ;) 16:32 < ellisvlad> VC++ has nice debugging 16:32 <+sadimusi> Drainedsoul: there is a new indent after dllinit() 16:32 < Drainedsoul> VC++ has shitty C++ support. 16:32 < ellisvlad> I normally use Eclipse with G++ 16:32 <+sadimusi> or is the dllInit() just indented by half the tab width? 16:32 < dx> dllInit uses four spaces 16:32 < dx> everything else uses tabs 16:33 < ellisvlad> xD 16:33 < dx> well, return 0 uses spaces too 16:33 <+sadimusi> o.O shouldn't every editor normalize this automatically? 16:33 <+sadimusi> (to spaces) 16:33 < ellisvlad> I think VS tries to do spaces, and I do tabs xD 16:33 < dx> every decent editor, maybe 16:34 < Drainedsoul> I would never use an editor that normalized my indentation to spaces 16:34 < dx> you have to use an editor that lets you configure to something consistent 16:34 < ellisvlad> There is a setting for it somewhere.... I just never bother :P 16:34 < ffmdr> does anyone have maven repo with paulscode soundsystem? 16:34 < dx> the choice of spaces vs tabs is irrelevant if it's consistent 16:35 < ellisvlad> unless you want to conserve a few bytes of disk space by using tabs ;D 16:35 <+sadimusi> I'm coding a lot of python and spaces are the norm there, but I guess tabs are ok too 16:35 <+sadimusi> just don't mix it 16:35 < ellisvlad> I remember pascal hates tabs -.- 16:35 < ellisvlad> that's why I hate pascal ;) 16:36 < ffmdr> why paulscode isn't in maven central? 16:36 < Yoshi2> I once accidently mixed tabs and spaces in python, it was a huge mistake 16:37 < dx> ffmdr: i can't think of anyone that does client modding building everything with maven 16:37 < Drainedsoul> I would consider using Python in general if there was a "Python with curly braces" edition 16:37 < ffmdr> dx: here am I 16:37 < dx> ffmdr: lol 16:37 < dx> ffmdr: anyone else* 16:38 < SpaceManiac> Drainedsoul: from __future__ import braces 16:38 < dx> SpaceManiac: :D 16:39 < Yoshi2> still, I don't miss the braces too much 16:39 < SinZ> I do 16:39 <+sadimusi> ellisvlad: I'm trying to get to the bottom of this, but I only own one account :/ 16:39 < ffmdr> I've heard that minecraft is using gradle 16:39 < ffmdr> gradle sucks 16:39 < Yoshi2> what is gradle? 16:40 < dx> sadimusi: evidently this is a conspiracy to get us to give more money to mojang 16:40 < ffmdr> it's a shitty build manager 16:40 <+sadimusi> dx: :D 16:40 < ellisvlad> But I have two accounts, and it doesn't work :P 16:40 < Yoshi2> hm, I see 16:40 <+sadimusi> ellisvlad: yes, and I'd like to find out why 16:40 < ellisvlad> Having to use my faker 16:41 < dx> sadimusi wants to debug it better 16:41 < Drainedsoul> what's the problem? 16:41 < ellisvlad> Well, I'm fine with it not working normally xD I'm actually quite proud of this faker :P 16:41 < dx> that 'faker' is not a solution for anything... 16:42 < ellisvlad> xD 16:42 < dx> and if the server is working in offline mode, it shouldn't even be needed 16:42 < ellisvlad> yeah that's true 16:42 < Drainedsoul> wot is the problem tho 16:42 < ellisvlad> basically 16:42 < ellisvlad> http://puu.sh/3u63z.jpg 16:42 <+sadimusi> it's 20€ now? o.O 16:42 < ellisvlad> autologin is off 16:43 <+sadimusi> ah wait, I can steal the lastlogin from my flatmate 16:43 < ellisvlad> yet if I load up two clients on seperate accounts, I can't go on a server with the first client I logged in with 16:43 < dx> sadimusi: loling. 16:43 < dx> sadimusi: that's what the new launcher is supposed to prevent, right? 16:43 < ellisvlad> lolin also :P 16:44 <+sadimusi> dx: not at all 16:44 < Drainedsoul> hmm I don't have access to two accounts :T 16:44 <+sadimusi> dx: you can still just steal the profiles.json thingy 16:44 < Yoshi2> I've got two accounts, but only one is paid :/ 16:44 <+sadimusi> you just have to use it before your target does 16:44 < dx> sadimusi: oh, but you won't get the password 16:44 <+sadimusi> no, but you don't need it 16:44 < dx> yeah 16:45 < ffmdr> ellisvlad: why did you blur session id? don't you trust us :D? 16:45 < dx> it's just a token that in theory could be invalidated if the real owner wants to 16:45 < ellisvlad> I have two...but I don't really want to give out the password lol 16:45 < dx> maybe you could share that token now! 16:45 < ellisvlad> idk actually lol 16:45 < Yoshi2> it's all theory 16:45 < dx> we're going to need more docs about this stuff in the wiki 16:46 < iBotPeaches> the bug report was marked: https://mojang.atlassian.net/browse/MC-21436 16:46 < Yoshi2> the new json chat also works in theory 16:46 < dx> yep 16:46 < dx> sucks that we have to find out now, after the release 16:47 < ellisvlad> lol 16:47 < dx> but the snapshots aren't very modder friendly 16:47 < Drainedsoul> imagine a world wherein Mojang released MSDN-style documentation 16:47 < dx> i have no idea if MSDN-style is a good or bad thing 16:48 < Drainedsoul> http://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx here, decide for yourself :P 16:48 < ffmdr> is new chat broken client side ;/ ? 16:48 < ffmdr> are we stuck to white for all 1.6.1 time? 16:49 < Drainedsoul> well, you can just use old style chat 16:49 < iBotPeaches> just use old style, works fine 16:49 < Drainedsoul> if the "text" property of the root JSON object is just old style chat, works 16:49 < ffmdr> \o/ 16:50 < dx> evidently § is superior 16:50 < Drainedsoul> I'm mad there no way to escape the section sign in chat :( 16:50 < dx> is that seriously the only thing that annoys you about the § implementation? 16:50 < ellisvlad> xD 16:50 < Drainedsoul> it's the thing that annoys me the most 16:51 < Drainedsoul> I've written a regular expression engine in C++, text processing doesn't really annoy me anymore 16:51 < Drainedsoul> xD 16:51 < ellisvlad> at first I hated that all strings were unicode lol 16:51 < Yoshi2> just think of all the lawyers who tried to play minecraft 16:51 < Drainedsoul> how could you hate Unicode :( 16:51 < jast> fun fact: on German keyboards, shift+3 = § 16:51 < ellisvlad> it was a pain to use in C++ 16:51 < ellisvlad> I like char* :( 16:51 < Drainedsoul> write your own Unicode string library 16:51 < Yoshi2> they couldn't use the § sign to talk about laws 16:51 < Drainedsoul> that's what I did 16:51 < ffmdr> btw after converting my texture pack to 1.6 I have no water/lava in it...is it because of no optifine? 16:51 < ellisvlad> I kinda did lol 16:52 < Yoshi2> jast: indeed, it's even printed on most if not all german keyboards 16:52 < iBotPeaches> shift+3 no way 16:52 < iBotPeaches> # 16:52 < Drainedsoul> I was sued once, couldn't find a lawyer, defended myself 16:52 < Drainedsoul> so much section sign 16:52 < ellisvlad> http://puu.sh/3u9ij.png 16:52 <+sadimusi> it's right under esc on my keyboard 16:52 <+sadimusi> no modifier key needed 16:53 < ellisvlad> easy ;) ...please don't stab me again :P 16:53 < Drainedsoul> wtf 16:53 < ellisvlad> That was I can use char* with one byte per character, and use \a as the weird simolean sign thing 16:54 < Drainedsoul> -_- 16:54 < ellisvlad> ;D 16:54 < Drainedsoul> Unicode doesn't involve limiting yourself to ASCII/Latin-1 and U+00A7 16:54 < ellisvlad> xD 16:54 < ellisvlad> for me it does lol 16:55 < Drainedsoul> I mean if your application isn't Unicode-aware, and you're dragging UCS-2 off the wire, you can't even confidently compare two strings for equality 16:55 < Drainedsoul> and you certainly can't compare ignoring case 16:55 < ellisvlad> Well, I can, but everything is ASCII 16:56 < Drainedsoul> yeah so you're not actually testing for equality, since equality comparisons aren't "equality comparisons after being lossy" 16:56 < Drainedsoul> trying to pack the BMP into one byte is intrinsically lossy 16:57 < ellisvlad> sure, but I'm only targetting an English/(English keyboard) audience for my server, so it is fine ;D 16:58 < Drainedsoul> that doesn't mean anything. You use characters outside ASCII in English 16:58 < ellisvlad> which ones? 16:59 < Drainedsoul> résumé has U+00E9 in it, twice. And U+00E9 is in Latin-1, but Unicode-aware applications are free to represent it equally as U+0065, U+0301 17:01 < Drainedsoul> naïve has U+00EF in it, also in Latin-1, but representable equally as U+0069, U+0308 17:03 < ellisvlad> I don't mind losing accents in words, resume and naive can be deduced by context without any special semivowels or accents ;) 17:03 < ellisvlad> ...*Assimilation not Semivowel lol 17:05 < Drainedsoul> if you're writing a server, it's not about what you do and don't mind, it's what your users don't mind 17:05 < Drainedsoul> what are they going to think when they type "résumé" and get "rsum" back 17:06 < ellisvlad> xD "rsum" Yeah I guess, but for now, my server is just for me and some friends, could change it in the future if I need to 17:08 < ellisvlad> tbh, this server I am making is incredibly loose xD I;m amazed it is still running at all xD 17:14 < dx> gotta admit that UCS-2 falls back nicely to latin1 most of the time 17:19 < Dinnerbone> Never trust that JSON is incoming, should of caught that and failed silently 17:20 < Dinnerbone> iBotPeaches: you can crash the client in 10,000 different ways 17:20 < Dinnerbone> We aren't going to catch them and be nice 17:20 < iBotPeaches> :) 17:20 < SpaceManiac> oh, hi 17:20 < Dinnerbone> (Though for the record this *is* caught) 17:20 < Dinnerbone> (See the section where it said what json it was.) 17:20 <+sadimusi> that's fine, but what about the colors? 17:20 < Dinnerbone> (Or rather what the server sent, especting json) 17:21 < Dinnerbone> expecting* 17:21 < Dinnerbone> (But I agree with your "lol"; it's a great point on how proxies blindly accepting all versions hoping that there are no incompatibilities even though we explicitly say there are, is a bloody stupid system.) 17:24 < dx> you're blindly asserting that they are blindly accepting everything :D 17:25 < dx> (some of them do, of course) 17:25 < dx> also, colors 17:26 < ffmdr> btw after converting 1.5 texture pack with textureender I have no water/lava in 1.6...any ideas? 17:26 < dx> check json output? 17:32 < ffmdr> Skipped renaming misc/water.png - couldn't find it! 17:32 < ffmdr> hmm 17:33 < ffmdr> there are only custom_water_still.png in texturepack root (water/lava) 17:33 <+sadimusi> Dinnerbone: did you already have a look at https://mojang.atlassian.net/browse/MC-21436 ? chat colors really seem completely broken to us... 17:35 < ffmdr> and isn't minecraft supposed to use vanilla textures if it can't find it in resource pack? 17:36 < Dinnerbone> sadimusi: it's assigned to me, I will investigated it 17:36 < Dinnerbone> Please be patient :) 17:37 < dx> ffmdr: pretty sure that custom water is a mcpatcher/optifine feature, the vanilla converter won't support it obviously 17:37 <+sadimusi> sure, but please just tell us this is not intended behaviour 17:37 < Dinnerbone> It's not or it would be closed off as such 17:37 < ffmdr> dx: yeah so where is 1.6 water now? 17:37 <+sadimusi> good, we'll wait for a fix then 17:39 < mbaxter> Dinnerbone: Thanks for working on serializer/deserializer <3 17:40 < ffmdr> is minecraft 1.6 not using texture for water/lava? 17:42 < ffmdr> but more important question is why it isn't using vanilla water when there is no water texture in resourcepack? 17:43 < dx> http://dpaste.com/1284561/ 17:43 < dx> HARDCORE REVERSE ENGINEERING 17:44 < dx> the .mcmeta is a json that specifies the animation frames 17:44 < ffmdr> yeah I found water_still xD 17:44 < ffmdr> but it should use vanilla texture 17:44 < dx> why do you think it should 17:44 < Dinnerbone> ffmdr: what is being shown ingame? 17:44 < Dinnerbone> In place of lava or water 17:44 < Dinnerbone> Purple "missing texture" sprite? 17:44 < ffmdr> yeah 17:45 < ffmdr> missing texture sprite 17:45 < Dinnerbone> Pastebin console output 17:45 < ffmdr> sure, sec 17:45 < dx> Dinnerbone: console output of texture ender or the minecraft client? 17:45 < Dinnerbone> Client 17:46 < dx> also, these .mcmeta don't look like the published gist at all 17:46 < Dinnerbone> The gist was a collection of possible sections 17:46 < Dinnerbone> They wouldn't be put together 17:46 < Dinnerbone> Not all at the same time at least ;) 17:48 < dx> well, there's no .mcmeta with a "texture" section, and no "font" either 17:48 < Dinnerbone> There is in vanilla and if you had a file which needed it, textureender makes the texture section 17:48 < ffmdr> Dinnerbone: I redownloaded latest textureender and it looks like I have my water now 17:48 < Dinnerbone> Font is NYI as per the gist 17:48 < ffmdr> I mean converting again with latest 17:48 < Dinnerbone> Okay 17:48 < dx> Dinnerbone: gotcha. 17:48 < ffmdr> I guess it was fixed 17:49 < ffmdr> recently 17:49 < Dinnerbone> On that note, home time! ;D 17:50 < dx> later! 17:51 < ffmdr> oh wait 17:51 < ffmdr> it looks like applying resourcepack changed only gui textures 17:51 < ffmdr> ... 17:52 < ffmdr> that's even more weird 17:57 < ffmdr> ahh accidently converted old version, still no water with latest unsticher, pasting logs 17:58 < ffmdr> [CLIENT] [SEVERE] Unable to parse animation metadata from minecraft:textures/blocks/lava_flow.png: invalid frameindex 44 17:58 < ffmdr> same for water/lava flow/still 17:58 < ffmdr> and here is unsticher log http://pastebin.com/BapPYLET 18:00 < ffmdr> I'll try to copy custom_water_* to new 1.6 place 18:04 < ffmdr> meh custom_water_* files was only in pre-1.5 version 18:23 <+sadimusi> ellisvlad: it looks like the client token must be unique, so just delete the launcher_profiles.json after you logged in with the first client 18:24 <+sadimusi> ellisvlad: making up my own client token didn't work, maybe there's a checksum or something 18:32 < ellisvlad> Hmm 18:32 <+sadimusi> it's a UUID, so I'm not really sure why making one up didn't work 18:40 < SpaceManiac> I've noticed I can't be logged in on one profile, then switch profiles and use the same account - I have to log out and back in 18:40 < SpaceManiac> Might be related. 19:30 < ellisvlad> Hmm...I've never noticed this before... 19:30 < ellisvlad> erm... 19:30 < TRocket> noticed what? 19:30 < ellisvlad> A graphical glitch? Can someone see if they can replicate this... 19:31 < ellisvlad> All blocks, including surface blocks flicker? 19:31 < ellisvlad> It looks like it might be an effect of a torch? 19:31 < ellisvlad> but all lighting is being effected 19:31 < Yoshi2> in the newest minecraft version? 19:31 < ellisvlad> and there are no torches 19:31 < ellisvlad> yes 19:32 < ellisvlad> You don't really notice it if you don't try to.. but I did :P 19:32 < ellisvlad> Anylne else see the same? 19:33 < ellisvlad> I'll record it.. 19:34 < Yoshi2> damn, the new launcher is not exactly fast at downloading minecraft, this might take a bit 19:35 < SinZ> first run takes the longest 19:36 < SinZ> 1.6.2 would take little time, as it only would need the version.jar 19:37 < ellisvlad> http://youtu.be/4Ey8isd5YNk 19:37 < ellisvlad> kinda hard to see 19:38 < ellisvlad> Best seen at 39-50secs ish 19:38 < Yoshi2> "This video is private. Sorry about that. " 19:38 < SinZ> video is private 19:38 < ellisvlad> ah lol oops 19:38 < ellisvlad> try now :P 19:40 < SinZ> that looks like time of day changing 19:40 < ellisvlad> But it is quite random 19:40 < ellisvlad> and the sun was rising 19:42 < Yoshi2> does it happen again in the same place? 19:42 < ellisvlad> Yeah, it happens everywhere 19:44 < Yoshi2> I see 19:44 < Yoshi2> does it happen on your custom server, or in vanilla too? 19:56 < Yoshi2> I watched the floor a few times now after setting the time to 0, I didn't encounter the bug in vanilla singleplayer 20:04 <+sadimusi> ellisvlad: I filed a bug about these client token collisions: https://mojang.atlassian.net/browse/MCL-862 20:15 < dx> sadimusi: \o/ 20:15 < dx> i like how mojang makes trackers for everything now 20:15 < dx> (let's not talk about feature requests now) 20:21 < Dinnerbone> sadimusi, I'm not sure what the issue here is 20:22 < Dinnerbone> With the same client token you are not able to log into different minecraft accounts? 20:22 < Dinnerbone> Or with the same token you can't log into the same account multiple times? 20:22 < dx> it's two clients, two accounts 20:23 < Dinnerbone> Two different client tokens in two different accounts? 20:23 < Dinnerbone> And it won't let that happen? 20:23 < Dinnerbone> If that's the case how is anybody logging in at all? 20:24 < dx> for the steps to reproduce it, he copied the launcher_profiles.json, so it's the same clientToken 20:25 < Dinnerbone> Okay 20:25 < Dinnerbone> With those exact steps this is working completely as intended... 20:25 < dx> but it's meant to happen when you use two accounts with the same launcher 20:25 < dx> to connect to two servers at the same time 20:27 < dx> i'm not sure why he went with two computers with the same launcher_profiles.json... 20:29 < Dinnerbone> Replied to the ticket 20:30 < Dinnerbone> Does that make sense or am I missing something? :D 20:31 < dx> well... it makes sense *and* you're missing something :D 20:31 < dx> UI 20:31 < dx> damn enter 20:31 < dx> *UUID collisions are indeed extremely unlikely, so much that people pretend those actually don't exist, and i'm fine with pretending that 20:32 < dx> the problem here is that someone with two accounts can't use the same launcher twice for each of those accounts 20:32 < dx> because that same launcher has the same clientToken, apparently. 20:32 < Dinnerbone> They sure can 20:32 < Dinnerbone> The same client token can be used to log into 100 different accounts 20:32 < Dinnerbone> Just, and this is the important part, not the same account twice. 20:33 < dx> as in, not the same mojang account? 20:33 < Dinnerbone> They can be in the same mojang account just different minecraft attached to it 20:33 < Dinnerbone> (Right now that's 1:1 but we will be dropping that restriction very very soon) 20:34 < dx> wait, that's right, these two usernames can't be in the same mojang account... derp me. 20:34 < Dinnerbone> The client token '1' can be logged into: Dinnerbone, Djinnibone, dx, xd, notch, herobrine, etc all at the same time 20:34 < Dinnerbone> Whether they are all in the same mojang account or mixed or all different 20:34 < Dinnerbone> But it cannot be logged into the same one more than once 20:34 < Dinnerbone> The latter invalidates the former 20:35 < Dinnerbone> And this is why we're even more fine than usual with pretending that UUIDs won't conflict 20:35 < dx> well, logging in a second client using the same token/launcher seems to invalidate the session of the first one to log in to multiplayer 20:35 < Dinnerbone> Because it's incredibly unlikely that the same UUID will generate twice; much less so that they will generate twice *for the same person* 20:35 < dx> using different accounts 20:35 < dx> that's definitely not as intended 20:35 < Dinnerbone> Using the same client token? 20:35 < dx> yes 20:35 < Dinnerbone> See #4 in my comment 20:36 < dx> what 'tokens' are invalidated? the clientToken UUID gets invalidated too? 20:36 < Dinnerbone> Client token never gets invalidated, only the access token 20:37 < Dinnerbone> When the second launcher logs in, it sends it to the server in exchange for a new one back 20:37 < Dinnerbone> This logs out the first client which still has the old (now invalid) access token 20:38 < dx> so wait.. if a second launcher invalidates the access token of the first one always, how is one supposed to log in to two different accounts? 20:38 < ffmdr> [CLIENT] [SEVERE] Unable to parse animation metadata from minecraft:textures/blocks/lava_flow.png: invalid frameindex 44 + http://pastebin.com/BapPYLET 20:38 < ffmdr> Dinnerbone, could you look? 20:38 < Dinnerbone> ffmdr, how many frames do you have in lava_flow? 20:39 < Dinnerbone> imgur it 20:39 < Dinnerbone> dx, in this scenario you have a few things going wrong 20:39 < Dinnerbone> 1 is that you're now creating two launchers with the same client token. I need to make this harder to do somehow 20:39 < Dinnerbone> Because it's creating crap like this 20:40 < dx> it's not about two launchers, it's about reusing the same one 20:40 < Dinnerbone> 2 is that at the moment of the copy, both launchers have the same access token which at that time is valid 20:40 < ffmdr> Dinerbone: there are four errors lava/water flow/still and the texturepack is defscape from minecraft forums 20:40 < Dinnerbone> As soon as one launcher uses the token, it gets invalidated and the one which didn't use it gets logged out 20:40 < ellisvlad> Hmm, Hi Dinnerbone, the problem was that I had two clients logged in as seperate accounts but on the same computer, (sharing teh same .minecraft) The second account login invalides the first one, even though the account is different 20:40 < ellisvlad> yeah, that 20:41 < Dinnerbone> The second launcher logged into the same account even if but for a brief period of time 20:41 < Dinnerbone> Or did you change the json to select the other account? 20:41 < Dinnerbone> (If you did it through the launcher; it would have started in the first account, using up the token, before you switched to a new one) 20:42 < ellisvlad> I only turned off auto-login and typed the login manually 20:42 < ellisvlad> for both accounts 20:42 < Dinnerbone> Can you go draw up requests to reproduce this to the login server because I still don't see the issue here :D It's all WAI as far as I see! 20:43 * dx pokes sadimusi again 20:43 < ellisvlad> http://puu.sh/3u63z.jpg was this morning 20:43 < Dinnerbone> /authorize clientToken:1 username:aaa => accessToken AAA 20:43 < Dinnerbone> /authorize clientToken:1 username:bbb => accessToken BBB 20:44 < Dinnerbone> AAA and BBB should both be valid 20:44 < dx> huh the windows version of the launcher looks much less ugly 20:44 < Dinnerbone> /authorize clientToken:1 username:aaa => accessToken CCC 20:44 < Dinnerbone> AAA is invalid, BBB and CCC are valid 20:45 < Dinnerbone> /refresh clientToken:1 accessToken:BBB => accessToken DDD 20:45 < Dinnerbone> AAA and BBB are invalid, CCC and DDD are valid 20:45 < Dinnerbone> (authorize should be authenticate, dammit! Pretend I said authenticate :D) 20:45 < ellisvlad> lol 20:46 < ffmdr> Dinnerbone: here is lava_flow http://imgur.com/o3XqZxp, texture pack is 64x and animation is from 0 to 44 20:46 < Dinnerbone> You mean 0 to 43? 20:46 < Dinnerbone> There is no frame 44 there 20:47 < ffmdr> well .txt file contains 0 to 44 20:47 < ffmdr> in mcmeta there are also 0 to 44 20:47 < Dinnerbone> And that's why it's complaining 20:47 < Dinnerbone> It's wrong 20:47 < Dinnerbone> Whoever made it did a typo :) 20:47 < ffmdr> is mcmeta counting from 1? 20:47 < dx> the .txt file is wrong 20:47 < Dinnerbone> 2816 (height) / 64 (width) == 44. 44 frames is 0,1,2,3...40,41,42,43 20:47 < ffmdr> right 20:47 < Dinnerbone> mcmeta or txt frames always start at 0 and there was never a frame 44 in this image 20:48 < dx> the mcmeta is just a result of translating it 20:48 < Dinnerbone> Previously we'd ignore this 20:48 < Dinnerbone> But now we let you know that it's wrong 20:50 < dx> welp, i think we'll have to wait for sadimusi to get a proper http request flow debug 20:52 < ellisvlad> OK, I've recorded a thing for the logging in to two accounts thing 20:53 < ellisvlad> Leme just render and upload, fraps likes to give nice and bulky files -.- 20:54 < Yoshi2> before I had Fraps, I had to use Hypercam2 for recording 20:54 < Yoshi2> THAT created nice and bulky files 20:55 < Yoshi2> Fraps feels like a blessing because one minute of 1920x1080 footage is only 1gb 20:55 < ellisvlad> only ;) 20:55 < Dinnerbone> Pick a better codec! 20:55 < ffmdr> Dinnerbone: thanks my water/lava are back but here comes another problem, after restarting game with this texturepacks fonts are corrupted (let me do ss) 20:55 < Yoshi2> as opposed to 2gb for one minute of 640x480 footage in HC2 20:55 < ellisvlad> x264 is where it is at ;) 20:56 < Yoshi2> I like my footage lossless, thank you :) 20:56 < ffmdr> http://screencloud.net/v/cmoW 20:57 < ellisvlad> nice 20:57 < ffmdr> when starting game with vanilla textures and then changing texturepacks, fonts are fine 20:57 < ellisvlad> shift all the fonts to the right slightly :P 20:58 < ellisvlad> http://youtu.be/1D5y23JI3yE 20:59 * dx just started mc 1.6 for the first time with this window manager 21:00 < dx> and.. holy shit all the bugs are gone 21:00 < ffmdr> what kind of window manager is 'this' 21:00 < dx> X11 non-reparenting tiling window manager 21:01 < ffmdr> no I mean name lol 21:01 < dx> lol 21:01 < dx> http://www.qtile.org/ 21:01 < dx> but yeah, non-reparenting window managers always had issues with java 21:03 < ffmdr> compositing in window managers always make camera moving in minecraft laggy more or less 21:04 < dx> isn't that normal because of the way indirect rendering works? 21:05 < ffmdr> normal would be super smooth like with disabled compositing 21:05 < dx> yes, and no compositing means direct rendering, which means there's not a single process catching every frame 21:06 < dx> but i might be talking out of my ass here 21:06 < dx> you should confirm with other opengl apps (glxgears doesn't count) 21:07 < ffmdr> btw newest lwjgl is having really _annoying_ bug on linux, on game start/off it is switching my refresh rate to 50hz... 21:07 < ffmdr> I can't replace lwjgl that easy now as it is unpacking natives every time -_- 21:08 < Dinnerbone> ffmdr, which version are you trying to change it to? 21:08 < ffmdr> Dinnerbone: I am trying to use latest git version with xrandr fix 21:09 < Dinnerbone> Make a new version on disk temporarily 21:09 < Dinnerbone> Tell it to use that custom lwjgl you're making and done 21:10 < ffmdr> can I point library in profile to filesystem or it will always download from s3? 21:10 < Dinnerbone> It'll fallback to filesystem 21:10 < ffmdr> oh 21:10 < ffmdr> cool 21:11 < Dinnerbone> Playing offline will be quite impossible otherwise :D 21:12 < ffmdr> I am not exactly sure if https://github.com/tfg13/lwjgl/commit/ad78b69d3 fixed all problems, but deleting xrandr binary makes it not switch my refresh rate to 50hz... 21:14 < ffmdr> Dinnerbone: after restarting game with this texturepack fonts are corrupted - http://screencloud.net/v/cmoW - could you look into this? 21:14 < ffmdr> fonts aren't corrupted when starting game with vanilla textures and then switching to converted defscape 21:15 < Dinnerbone> https://mojang.atlassian.net/browse/MC-17673 21:16 < ffmdr> oh 21:16 < ffmdr> "not a bug" -_- 21:17 < Dinnerbone> "Fixed for 1.6.2" 21:18 < ffmdr> heh 113 duplicates 21:19 < ffmdr> is there a release date for 1.6.2 yet? 21:19 < ffmdr> if not I hope optifine will fix it in the meantime 22:37 <+sadimusi> dx, Dinnerbone: sorry, I was afk for a while 22:38 <+sadimusi> Dinnerbone: I understand if starting too clients on the same computer is not a use case you want to support, I'm only talking about collisions 22:38 < Dinnerbone> Aye but collisions will only matter for the same clienttoken+minecraft user 22:38 < Dinnerbone> See my text from earlier 22:38 <+sadimusi> no 22:38 <+sadimusi> I was always trying it with two different accounts 22:39 < Dinnerbone> Try it with the api please and rule out user error + launcher errors 22:39 < dx> sadimusi: i don't think he said that's an use case they won't support 22:39 < Dinnerbone> /authorize clientToken:1 username:aaa => accessToken AAA 22:39 < Dinnerbone> /authorize clientToken:1 username:bbb => accessToken BBB 22:39 < Dinnerbone> AAA and BBB should both be valid 22:41 < Dinnerbone> (Replace authorize with authenticate, typos!) 23:04 <+sadimusi> Dinnerbone: I'm still pretty sure AAA isn't valid anymore 23:04 <+sadimusi> Dinnerbone: tried it completely with curl this time 23:05 < Dinnerbone> It should be, if not that's the bug 23:05 < Dinnerbone> This was designed to let you have multiple accounts per client token 23:05 < Dinnerbone> That's how it worked at design, at development and in testing 23:05 < Dinnerbone> Even in production! So if it's broken that's a recent thing 23:05 <+sadimusi> alright, I'll add a comment to the report 23:06 < Dinnerbone> Please include a copy of your requests+responses from server 23:06 <+sadimusi> I'll do that 23:20 <+sadimusi> I added the comment and noticed that one of the accounts I was testing with wasn't yet migrated 23:21 <+sadimusi> but I don't think that has anything to do with it 23:22 < Dinnerbone> sadimusi, uh 23:22 < Dinnerbone> Drop the username part of your validates 23:22 < Dinnerbone> And what do you get? 23:22 <+sadimusi> I had no idea how to do the validate requests... 23:23 < Dinnerbone> Validate takes an accesstoken, possibly an optional client token (can't remember), and an optional profile:{id,name} 23:24 <+sadimusi> dropping the username doesn't change anything 23:25 < Dinnerbone> Okay thanks 23:33 < ffmdr> btw it would be cool to have packet length header in 1.7 so you can skip it without implementing every packet Dinnerbone 23:34 < dexter0> oh not this again 23:34 < ffmdr> not what? :D 23:34 < dx> lol 23:34 < dexter0> packet length headers 23:34 < ffmdr> what's wrong with them? 23:34 < dx> "again"? we never asked dinnerbro about it :D 23:35 < dx> just kidding, i don't really expect a different opinion. 23:35 <+sadimusi> I think at this point asking for length headers counts as harassing mojang employees :P 23:35 < ffmdr> haha 23:36 < ffmdr> for example BungeeCord is using special skip tables to skip packets it doesn't care about D: 23:38 < ffmdr> dexter0: is it a common wish? 23:38 < Dinnerbone> 1.6 and the dozens of different crashes we're getting from "I joined a server (that just so happened to be modded and 1.5) in 1.6 and it broke pls fix mojang" is a perfect example of why you guys shouldn't be screwing with the protocol if you can't parse it 23:40 < mbaxter> Why do you crash the client on bad packet instead of disconnect from server? 23:41 < Dinnerbone> Not easy to do 23:41 < mbaxter> Good reason, thanks. 23:41 < dexter0> because it's not really their problem to code defensively 23:41 < Dinnerbone> ^ this too 23:41 < Dinnerbone> We'd have to go out of our way a lot 23:41 < Dinnerbone> There's so many ways you can crash clients it's unbelievable 23:41 < Dinnerbone> And not all of them are fixable 23:42 < ffmdr> the number of ways you can crash the client is over 9000 23:42 < mbaxter> You mean pokemon catching doesn't solve everything? :P 23:42 < Dinnerbone> Spam client bunch of "allocate 10GB of memory for this big byte array" 23:42 < Dinnerbone> Crash and we can't trace it back 23:43 < Dinnerbone> I'd much rather that servers don't claim to support x when they actually can't support x 23:43 < Dinnerbone> But apparently that's too much :( 23:43 < mbaxter> Far too much :P 23:43 < ffmdr> yeah can't it be solved like "received string length longer than maximum allowed"? :P 23:45 < dx> dammit i'm stuck playing some browser game called "a dark room" 23:45 < dx> i feel that i have someone to blame who is here, but i'm not sure who it is 23:46 < Dinnerbone> ffmdr, no not at all 23:46 < Dinnerbone> Our protocol changes, we explicitly make it stop things that don't support the protocol from talking to eachother 23:46 < Dinnerbone> Meanwhile they go out of their way to ignore this and use an old protocol, old versions of packets the client doesn't understand 23:46 < Dinnerbone> And bam crash 23:47 < Dinnerbone> Take chat packet from 1.5->1.6 23:47 < Dinnerbone> Server->client it changed 23:47 < dx> Dinnerbone: and you think that letting packets validate their definition against the length is going to make things worse? 23:47 < Dinnerbone> If you ignored all packets other than this 23:47 < Dinnerbone> Based on length or magic or anything 23:48 < Dinnerbone> You're still going to bloody crash because you're sending the wrong format of data! 23:48 < dx> of course 23:48 < ffmdr> ok let's just write "skip tables" like md_5 23:48 < dx> it's not going to prevent people from doing stupid stuff, but i don't see why it would make it worse 23:49 < Dinnerbone> It isn't going to make it worse but it also isn't going to make it better 23:49 < dx> i think we said the same thing 23:50 < dx> well, different emphasis, of course 23:50 < mbaxter> "Let's make our data output negligibly larger to help people who can't be bothered to support our protocol!" 23:50 < mbaxter> Total win win 23:51 < dx> it's not about not being bothered to code it, it's about making the protocol less expensive to parse when reading 99% of the traffic isn't needed 23:53 < Dinnerbone> It doesn't give us any gain, it possibly gives you guys some gain, it gives us drawbacks and it possibly gives you drawbacks 23:53 < Dinnerbone> It just isn't worth adding at this point 23:53 < dx> i'm aware that it gives you no gain, but i'm interested in hearing these drawbacks for you 23:53 < Dinnerbone> Not to mention our networking code would have to be rewritten to figure out how to support this but that's besides the point 23:55 < dx> i'd love to say that it's just 10 lines like some diff showed, but i'd rather not make that kind of comment without having tested that code extensively myself 23:56 < Dinnerbone> We could of course write to a buffer and then length + copy back over 23:57 < dx> yep that's exactly what the diff did 23:57 < Dinnerbone> But that's just expensive 23:57 < dx> is it? 23:57 < Dinnerbone> Considering how bloody verbose the protocol is, yes it is 23:57 < mbaxter> Dinnerbone: Your implementation could just skip the length header :D 23:57 < Dinnerbone> mbaxter, this would be to send the length header 23:58 < mbaxter> oh 23:58 < ffmdr> it would be cool seeing minecraft using Netty some time in the future...not suggesting anything 23:58 < mbaxter> riiiiight. to receive you have to send :P 23:58 < dx> ffmdr: yeah don't suggest netty (yet) 23:58 < Dinnerbone> For every packet, write packet to a buffer and then send the length of this buffer and then the contents of the buffer and rewind the buffer for next use 23:58 < ffmdr> dx: that's why I added "not suggesting anything" at end of the message! :P 23:58 < dx> ffmdr: :D 23:59 < clonejo1> btw, why JSON and not msgpack? 23:59 < ffmdr> json here and json there 23:59 * Dinnerbone groans and goes to sleep 23:59 < dx> any "why JSON and not X" can be answered as "we already have json, it works, and we don't need to write extensive unit tests for it" 23:59 < dexter0> lol 23:59 < dx> Dinnerbone: don't worry, covered this one for you --- Day changed jeu. juil. 04 2013 00:00 < iBotPeaches> i do love json, once nested colors work, it'll be pretty neat 00:00 < clonejo1> msgpack is pretty much JSON, but binary -> smaller 00:00 < dx> i dislike json but i'm at the 'resignation' stage 00:01 < Dinnerbone> Binary structure would be good if we were sending binary data 00:01 < Dinnerbone> We're sending plain text, the relative size of the json syntax is very minor 00:02 < Dinnerbone> If we cared to compress it, we'd probably get smaller with json+plaintext than with binary+plaintext 00:02 < Dinnerbone> But that's just a guess 00:02 < dav1d> utf-8! 00:02 < ffmdr> utf-16 00:02 < clonejo1> in case someone is interested: http://msgpack.org/ 00:02 < dx> utf-128 00:02 < iBotPeaches> xml 00:02 < Dinnerbone> xml it is, done. 00:02 < Dinnerbone> 1.6.2 00:03 < ffmdr> not sure if a joke 00:03 < Dinnerbone> We'll also send schema every 5 seconds for validation 00:03 < iBotPeaches> :) 00:03 < Dinnerbone> :D 00:03 < Dinnerbone> Ok sleeps for real 00:03 * Dinnerbone waddles off 00:03 < ffmdr> 1.6.2 diff: added new packet 0x6c ValidateXMLSchema send every 5 seconds 00:34 < barneygale> Hey Dinnerbone, do you have time to answer one more question about json chat? What is going to happen/has happened to coloured text on signs, motds, and player names? 00:34 < barneygale> Apologies if that's already been answered elsewhere 00:37 <+md_5> btw with Netty (or any non blocking IO) length headers is trivial 00:37 <+md_5> to say the least 00:41 < ffmdr> yeah they are but isn't that one more buffer on the way? not saying it would significantly decrease performance but D: @md_5 00:42 <+md_5> ffmdr not really, you can just start writing 4 bytes into the buffer 00:42 <+md_5> and then set the first 4 bytes based on how many bytes you wrote in 00:43 <+md_5> thats literally 4 byte sets and 2 integer comparions 00:43 <+md_5> ie: NOTHING 00:44 <+md_5> soo in other news, just got a profile from some guy: com.sun.crypto.provider.CipherFeedback.encrypt(byte[], int, int, byte[], int) is using 16% of all Bungee's CPU time at approx 1k players 00:44 <+md_5> and I'm only encrypting client<->bungee traffic 00:45 < ffmdr> considering that bungee is only passing packets thats not much of a % 00:45 <+md_5> I might see if bouncycastle fares any better 00:45 < ffmdr> no bouncy again D: 00:46 < ffmdr> I secretly hope it won't 00:47 <+md_5> ffmdr you do realise 15% is like most of a cpu core? 00:47 < barneygale> isn't encryption optional? 00:47 <+md_5> barneygale in offline mode 00:47 < barneygale> ah 00:47 <+md_5> and when not using Minecraftforge 00:48 < ffmdr> md_5: ok and it is using 84% for passing packets 00:48 <+sadimusi> barneygale: all those things are not officially supported and gr*m mentioned they might get removed 00:49 <+md_5> it does more than parse packets :c 00:49 <+md_5> also he used the profiler wrong so that added 50% cpu usage :c 00:49 < ffmdr> :C 00:50 < ffmdr> it would be funny to see bungee impl in node.js and its performance 00:50 <+md_5> ffmdr 3% of bungee is packet parsing in this snapshot 00:50 <+md_5> ffmdr uh it would suck balls 00:50 < ffmdr> md_5: maybe 00:51 < ffmdr> md_5: what is exactly packet parsing...do you mean readByte calls and storing them in class? 00:51 <+md_5> combination of skipping bytes and reading results into packet classes 00:52 < ffmdr> md_5: better look at remaining 81% 00:52 <+md_5> ffmdr its literally nothing, and 52% of it was profiler overhead :c 00:53 < barneygale> sadimusi: I've heard that. I was just wondering if that would be confirmed. MOTDs I can live without, but coloured signs and player names are in wide use. Usually mojang wouldn't remove a well-used bug without reintroducing it as an actual feature (e.g. booster rails) 00:53 <+md_5> disabling the resource leak detector will help a bit thougj 00:54 < barneygale> Obviously it's not the end of the world if they're removed, I was just wondering if Dinnerbone knew one way or the other yet 00:55 < ffmdr> eeh every minecraft release it is same story...render rewrites, render optimizations but it is not playable without optifine :C 00:55 < dexter0> uh, rewriting the renderer is a very long process 00:56 < ffmdr> yeah yeah yeah 01:29 < Drainedsoul> "because it's not really their problem to code defensively" I'm pretty sure coding best practices dictate that you always treat everything off the wire as though it's liable to be total garbage 01:33 < dexter0> perhaps, but why should they care that their client crashed because a server they not control sent bogus data? 01:42 < Drainedsoul> because when a program crashes the first thing most people do is blame the people who made the program. An informative error message like "the server sent us bullshit data" and a disconnect would be a lot better 01:43 < Drainedsoul> Programs shouldn't crash parsing data. That's what sanity checking is for. 01:43 < dexter0> And they have decided that is not a significant enough motivator for them to add said sanity checking. 01:44 < Drainedsoul> which is their prerogative, obviously, but that doesn't make it good practice or redeeming at all. 01:44 < Drainedsoul> The fact that the sanity checking would have to be added is damning enough 01:46 < dexter0> The protocol version is supposed to prevent all this in the first place and it does unless ppl screw around with their clients and servers. 01:46 < Drainedsoul> that doesn't matter. It comes off the wire, it can be anything. If Chrome crashed on invalid HTTP headers, would you consider that a bug in Chrome or not? 01:47 < dexter0> very very different situation. Web browsers are designed to accept arbitrary data and make the best sense of it they can 01:47 < dexter0> Minecraft is not a web browser. 01:47 < Drainedsoul> no, web browsers are designed to accept HTTP responses 01:50 < dexter0> sure, but they must be able to deal with servers sending back bogus data because the user could navigate to a website hosted on a web server that likes to send back bogus data instead of http responses. 01:50 < dexter0> Minecraft has the luxury of controlling both the client & server 01:50 < Drainedsoul> unless it's an internal network you can never assume you have that luxury 01:51 < dexter0> it is designed with that assumption, which is perfectly reasonable 01:51 < dexter0> the assumption being it controls the client & server 01:52 < dexter0> Remember, Mojang does not support modding officially. 01:52 < Drainedsoul> that's not that reasonable because it violates the principle of least astonishment. 01:53 < Drainedsoul> you have to remember that the user does not necessarily control or know anything about the server. SO if they're unknowingly connecting to a bogus, modded server that crashes their client, what are they supposed to think, not being technical? 01:53 < dexter0> of course they think it is Mojang's fault 01:53 < Drainedsoul> given that they've been conditioned to believe that server problems just cause errors. Web browsers, all well-designed network protocol agents do this 01:53 < Drainedsoul> there you go 01:53 < Drainedsoul> violation of the principle of least astonishment 01:56 < barneygale> Drainedsoul: you're conflating web browsers with minecraft 01:57 < barneygale> When you're writing an http client or server, you need to be complaint as possible, because the data you've received can come from a huge array of different software 01:57 < barneygale> But with minecraft there is only one official client, and one official server 01:58 < barneygale> So a big driving factor for being forgiving with data is removed 02:03 < Drainedsoul> handling malformed data isn't a matter of compliance 02:03 < Drainedsoul> the HTTP protocol is well-defined 02:03 < Drainedsoul> but that doesn't mean that Chrome crashes when it receives garbage 02:03 < dexter0> because Chrome was designed with that use case. 02:03 < barneygale> Yeah 02:04 < Drainedsoul> because it's a properly designed network protocol user agent 02:04 < barneygale> That's exactly my point 02:05 < barneygale> I haven't really given a shit about documenting the protocol mark2 uses to talk between client and wrapper, because it's only used internally - it's not meant to be seen or used by anyone 02:05 < barneygale> Though a better API is on the way.. 02:13 <+md_5> the MC client has sanity checking 02:13 <+md_5> but it crashes itself when a check fails 08:32 <+md_5> why is Minecraft using an outdated gson from 2012 when the newest one is from this may? 08:32 <+md_5> same with guava and basically everything :| 08:35 < SpaceManiac> stability, I guess 08:37 < dx> you should check if they are the versions used in the last release of RHEL 08:37 < dx> that's THE definition of stability 08:38 <+sadimusi> the last few updates of gson were just bug fixes, so stability is not an argument 08:38 <+sadimusi> e.g. "Fixes for possible DoS attack due to poor String hashing" 08:38 < dx> ...well interesting 08:39 <+sadimusi> md_5: what is the exact version? 08:39 <+md_5> sadimusi I'm making a maven pom with comments about each version now, 08:40 <+md_5> eg gson 2.2.2 as opposed to 2.2.4 08:40 <+md_5> argo is like 10 releases behind :| 08:40 <+md_5> 2..25 -> 3.7 08:40 <+md_5> I cant find the commons-io version they are using in maven central 08:40 <+sadimusi> that's one of the things I dislike about the java ecosystem 08:41 <+md_5> ah got it, maven central and its buggy version comparator 08:42 <+md_5> now just to find paulscode sound system somewhere 08:42 <+sadimusi> in python (and every other language with a half-decent packet manager) you can update all your libraries and every package will use it, which can of course lead to incompatibilities... 08:43 <+md_5> yeah, java has that, its called amven 08:43 <+md_5> maven 08:43 <+sadimusi> that's not really targeted at users... 08:44 <+md_5> users arent supposed to touch depends 08:44 <+md_5> imo 08:44 <+sadimusi> well, bundling the libraries with your code is at least not half as bad as bundling a jre as apple suggests 08:52 <+md_5> might poke one of the mojangstas and see if they have an internal maven repo later, this is the pom I have so far and it basically works (the old 1.5 pom was easy since everything was in the ar) 08:52 <+md_5> http://paste.md-5.net/pafimijovo.xml 08:59 <+md_5> so 08:59 <+md_5> Minecraft has 78 occurances of new Random() 09:00 * md_5 thinks singleton threadlocal would be a good idea 09:00 <+sadimusi> really Random() or Random(some kind of seed) ? 09:02 <+md_5> sadimusi no, empty random, no special seed 09:02 <+md_5> new Random() as is 09:02 <+sadimusi> then I completely agree 09:02 <+md_5> there are 42 randoms that take a seed sadimusi 09:02 <+md_5> and 78 which dont 09:50 < Grum> <+md_5> [10:52:31] might poke one of the mojangstas and see if they have an internal maven repo later, this is the pom I have so far and it basically works (the old 1.5 pom was easy since everything was in the ar) <-- to do what? 09:50 < Grum> also we do not have an internal maven repo we use 09:53 <+md_5> Grum where do you get paulscode from? 09:53 <+md_5> its not *anywhere* 09:53 < Grum> indeed, custom build 09:53 < Grum> i tried to get the author to make the artifacts, i offered to do it for him, he didn't give a rats ass 09:54 <+md_5> Grum also see that pastebin, 4 out of the 10 depends are outdated :3 09:54 < Grum> is there any problem with them being outdated? 09:54 <+ammar2> Grum: I think he's kinda annoyed at you guys :D http://www.paulscode.com/forum/index.php?topic=34.0 09:55 < Grum> LOL 09:55 < Grum> you know what the fun part is 09:55 < Grum> HE spits that shit to stdout 09:55 < Grum> on every load/shutdown of his fucking system 09:55 < Grum> which btw is .... horrible 09:56 < Grum> he just randomly sleep()'s at places 09:56 <+md_5> because your amazing new launcher loves showing stdout to the world 09:56 < Grum> its good for dev, not for consumers 09:56 < Grum> but in either case, working first, pretty later 09:57 <+sadimusi> Grum: "Fixes for possible DoS attack due to poor String hashing" sounds like a reason to update gson ;) 09:57 < Grum> sadimusi: not really, we use nothing that depends on that 09:58 <+sadimusi> since the server never has to parse json I guess you're right 09:58 <+sadimusi> there's still no reason _not_ to update though 09:58 < Grum> we parse it by hand 09:59 < Grum> other than forcing people to download stuff? 09:59 < Grum> there is no reason to do the update you mean 09:59 <+sadimusi> afaik the launcher doesn't download gson separately 10:00 < Grum> yes it does 10:00 <+sadimusi> ok, I guess you save everyone a few seconds then 10:00 < Grum> and a hundreds of gb of data 10:01 < Grum> -"a " 10:02 <+sadimusi> not really, even if everybody who bought minecraft downloads it you're only at a few gb 10:02 <+sadimusi> nope, you were right 10:02 <+ammar2> may as well do it when you push out a minecraft update, since they're already downloading stuff then anyway 10:02 <+sadimusi> (miscounted a few zeros) 10:03 <+sadimusi> the new launcher makes small modifications really a pita :/ 10:03 < Grum> why? 10:04 <+sadimusi> it always overwrites the jar with the contents of the lzdm thingy and refuses to start without it 10:04 <+sadimusi> I guess writing a little jar to start launch.jar directly wouldn't be that hard though 10:05 < Grum> 189kb * 11million = 2TB of data. 10:05 < Grum> you need to learn how to math sir 10:05 <+sadimusi> like I said, forgot to add a few zeros 10:05 < Grum> yeah just 'so we have the latest version' 10:06 < Grum> i'm not really sure what the problem is? 10:06 < Grum> what do you want to change? 10:06 <+sadimusi> it doesn't really matter but 2TB also isn't that much data 10:06 < Grum> what would you even *WANT* to change? 10:06 < Grum> sure, dat is 100% free 10:06 <+md_5> thats like 130 bucks 10:06 < Grum> 130 bucks saved 10:06 < Grum> i can work for another 2hours! 10:06 <+md_5> ._. 10:06 <+ammar2> md_5: they're an indie company remember, every dollar counts. 10:06 <+md_5> oh yes 10:07 <+md_5> each and everyone one of those hundreds of millions 10:07 < Grum> md_5: billions in sweden man 10:07 <+sadimusi> I really couldn't handle the swedish currency when I was over there 10:08 < Grum> its not that complex O.o 10:08 <+sadimusi> the conversion is just too weird 10:08 <+sadimusi> it's like 1:7 for me 10:08 < Grum> 1:8.5 for euros 10:08 < Grum> trivial enough 10:09 < Grum> 'roughly *10 + 10%' 10:09 <+sadimusi> so you calculate with 1:10 and everything appears cheaper than it is :P 10:09 < Grum> and also is ~15% more expensive here anyways :) 10:10 < Grum> though WAY less taxes 10:10 <+sadimusi> really? I always thought sweden had extremely high taxes 10:10 < Grum> not compared to the netherlands for example 10:10 <+md_5> I have really bad packet loss at this time, and due to all of Minecrafts packets im being killed in Dup acks' 10:10 <+md_5> :( 10:10 < Grum> and you get jack shit for it in the netherlands :p 10:10 <+md_5> 46.5% here 10:10 <+md_5> come at me 10:11 < Grum> md_5: so if you earn 100k you pay 46.5k taxes? 10:11 < Grum> because you are really forgetting the tax-scale/bands 10:11 <+md_5> Grum well no, when you earn over 170k or whatever 10:11 <+md_5> you pay that 10:11 < Grum> yeah 10:11 < Grum> .... 10:11 < Grum> so that number is utter bs 10:11 < Grum> the highest bracket here is 60% 10:11 <+sadimusi> how about vat? 10:11 < Grum> in netherlands 55% 10:12 < Grum> 25% VAT @ sweden; 21% nl iric 10:12 < Grum> *iirc 10:12 <+sadimusi> o.O 10:12 <+sadimusi> 8% here :) 10:12 <+sadimusi> 2.5% for food 10:12 < Grum> 25/6% iirc here 10:12 < Grum> i dont care 10:12 <+md_5> $80,001 – $180,000 $17,547 plus 37c for each $1 over $80,000 21.9 – 30.3% 10:12 < Grum> yeah 10:12 < Grum> so you pay less than 30% when you earn 80k 10:13 <+md_5> yeah but then the next one 10:13 <+md_5> $180,001 and over $58,118 plus 45c for each $1 over $180,000 10:13 < Grum> and probably until you earn ~120k you pay less than 30% over the total amount 10:13 <+md_5> which basically means a tad under 45% 10:13 < Grum> yes, for the amount *OVER* ... 10:13 < Grum> you still pay the low taxes for the rest of the amount 10:15 < dx> so i was reading the conversation about updating gson, and suddenly you guys start talking about this currency thing 10:15 < dx> i wat'd 10:16 < Grum> updating gson, would be ~25TB worth of useless download 10:16 < Grum> totally worth it! 10:17 < dx> no comment. 10:17 < AlphaBlend> wow -_- 10:17 < AlphaBlend> git 1.8.3 had a stupid bug 10:17 < Grum> anyhow, md_5: 10:17 < Grum> repositories { maven { url "http://s3.amazonaws.com/Minecraft.Download/libraries" 10:17 < Grum> there is damned good reason we're using the structure we're using in the launcher :p 10:18 < AlphaBlend> Grum: wat 10:18 < Grum> md_5: should solve your problems not? 10:19 < SinZ> isn't forge going to use their own maven server through the launcher 10:19 < Grum> ofcourse, they should; we even added support for that 10:24 <+md_5> Grum thanks 17:56 < ellisvlad> Hmm 17:57 < ellisvlad> What is the best way of calculating how long a block should take to break? 18:04 < Yoshi2> ellisvlad: I'm not sure if there is a good way of calculating the time for breaking a block, you might need one or several tables so you can look the values up 18:10 < ellisvlad> kk thx 18:11 < Yoshi2> ah, each block in minecraft seems to have some sort of "hardness" value attached to it 18:11 < Yoshi2> www.minecraftwiki.net/wiki/Hardness 18:13 < Yoshi2> if there is some sort of consistency between the hardness value of the block and the time it takes to break that block with a specific tool, you could calculate the time without having to store everything 18:24 < ellisvlad> Yeah, I've found it now thanks 18:24 < ellisvlad> http://www.minecraftwiki.net/wiki/Digging 19:28 < TkTech> sadimusi: Not really a problem with python except for absolute beginners. virtualenv. 19:29 < TkTech> sadimusi: And with py3k it's built into CPython. 19:30 < TkTech> Grum: Can't believe I pay more tax than a socialist Euro country. 19:30 <+sadimusi> it was never a problem for me, the authors of most libraries are aware of how the system works and don't break compatibility 20:48 < vemacs> Uh, hello, I have a simple question about the server list ping packet 20:48 < vemacs> Basically, I have this packet (byte[] to hex string): 20:48 < vemacs> FF002300A7003100000037003300000031002E0036002E00310000004800410050005000590020004D005500520049004300410020004400410059000000340032003000000031003300330037 20:49 < vemacs> It should display 420/1337 players, but it displays as 420/13 in the client, and several server list ping tools I tested 20:49 < vemacs> does anybody see anything wrong? 20:49 < vemacs> it does end with "3100330033003700", so that does look correct... 20:57 * vemacs facepalms 20:57 < vemacs> never. mind. 21:29 < Grum> TkTech: you do not? 21:29 < TkTech> Grum: hm? 21:39 < Grum> pay more taxes 21:39 < Grum> TkTech: ;) 21:40 < TkTech> I pay 47% on 98k 22:56 < Grum> TkTech: 47% over the whole amount or just 'when i earn one more dollar $.47 is taken as tax' 23:12 < Drainedsoul> uhh I'm pretty sure those are the same? 97000*0.47 == 97000*(1*0.47) --- Day changed ven. juil. 05 2013 00:10 < TkTech> Grum: It's 43.5% on taxable income, but works out to 47% after EI and other deductions. 00:10 < TkTech> Grum: The good thing in Canada is that only 50% of capital gains (stocks/ETFs) are taxed, and you can deduct your losses from that. 00:27 <+md_5> btw guys, I know mojang loves backwards compat and all 00:27 <+md_5> but 1.6 -> 1.5 will not work, since the worlds are incompatible 01:10 <+md_5> so 01:11 <+md_5> session.minecraft.net is giving me NOT YET as a response 01:11 <+md_5> halp 01:11 <+md_5> (I changed to a homebrewed http client, thats obviously doing something wrong) 01:20 < Drainedsoul_2> why would you use a homebrewed HTTP client when cURL exists 01:20 < Drainedsoul_2> also: do you have HTTP session transcripts where it's giving this response? 01:23 <+md_5> Drainedsoul_2 been using asynchttpclient for a while, but I need to move off it 01:23 <+md_5> its literally, a HTTP 1.1 GET, with only the host header set 01:25 <+md_5> http://session.minecraft.net/game/checkserver.jsp 01:25 <+md_5> hm 01:25 <+md_5> that says NOT YET