19:33 <+SirCmpwn> I am in a rather large number of channels but I keep them mostly detached 19:33 < Aragas> so, can I play Doom on your calculator OS? 19:33 <+SirCmpwn> ZNC? /quote detach #mcdevs 19:33 <+SirCmpwn> then you can /join it later 19:33 <+SirCmpwn> Aragas: not yet :< 19:33 < Aragas> nah, who need it then 19:34 < Aragas> :DD 19:34 < dx> the detach feature would be neat if buffer handling wasn't so dumb. 19:34 <+SirCmpwn> how is buffer handling dumb? 19:34 <+SirCmpwn> I always attach and am greeted with a nice scrollback 19:34 < dx> auto clear buffer = the buffer is always empty. no auto clear buffer = the buffer is always full. 19:35 * SirCmpwn shrugs 19:35 <+SirCmpwn> I'm in 112 channels on freenode alone and I've never had an issue 19:35 < dx> i suspect it's better in newer versions of znc, but i've got no control over that sadly. 19:35 < TkTech> Haven't really had an issue there either, just got silly eventually. 19:36 < TkTech> I join channels all the time for notifico support 19:36 <+SirCmpwn> TkTech: anyway, knightos has been this far along for a while now, it's just that recently the userspace was fleshed out some more to show it off 19:36 < dx> SirCmpwn: actually, i think 'auto clear buffer' is good for detach, but terrible for ping timeouts 19:36 < TkTech> SirCmpwn: Do you have psuedo MMU or is it all single space? 19:37 <+SirCmpwn> it's all single space but we're exploring some options 19:37 < Aragas> and i'm just sitting here, with my 2 channels 19:37 <+SirCmpwn> we'll never be able to prevent a rogue program from taking over 19:37 <+SirCmpwn> but we can probably make it a little less error prone 19:38 <+SirCmpwn> afk for a little while 19:38 < TkTech> Possible to go the Singularity approach? Single address space but with early verification (post-compile, pre-load?) and runtime verification? 19:38 < TkTech> The runtime verification would probably be too heavy for a TI84 19:38 < TkTech> SirCmpwn: ^- marker for when you come back. 20:11 <+SirCmpwn> back 20:11 <+SirCmpwn> TkTech: that would indeed probably be too heavy 20:11 <+SirCmpwn> and you've probaby heard that old unix quote 20:11 <+SirCmpwn> "Unix doesn't prevent you from doing stupid things, as that would also prevent you from doing clever things" 21:44 <+sadimusi> do any of you python guys know of a downside of using ord() instead of struct.unpack("B")? 21:52 <+sadimusi> I'll take that as a no 22:09 < HisShadow> sadimusi: don't see the point of using stuct thing, since it's just one byte, it's unaffected by endianness 22:53 < LambdaSix> HisShadow: Endianness is the ordering of bits in a byte.. 22:55 < merlish> that's not correct 22:55 < merlish> at least, that is not how the term is used today 22:55 < yawkat> you dont even touch the bytes anymore 22:55 < LambdaSix> Maybe you don't. 22:55 < yawkat> its about byte order in that case --- Day changed mer. juil. 23 2014 03:25 < Not-29be> [Glowstone] SpaceManiac pushed 1 commit [+1/-0/±3] http://git.io/Dxh7fQ 03:28 < Not-29be> [Glowstone] SpaceManiac deleted branch books 12:27 < vik> hello 12:28 < vik> is there any hardware test but cli-side for servers for example ? 15:30 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+0/-0/±108] http://git.io/saWduQ 15:30 < Not-29be> [mcprotocol] thinkofdeath 0e2ad4f - 14w30a 15:46 < WizardCM> mmmm, not bad http://wizrd.tk/ygenbm 15:47 < WizardCM> i do love that fast chunk loading 15:47 < WizardCM> though i came across a strange issue 15:47 < WizardCM> where the game world lagged like hell 15:47 < WizardCM> including chat 15:47 < WizardCM> [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 46666ms behind, skipping 933 tick(s) 15:47 < WizardCM> (single player) - that's fun 15:48 < WizardCM> just thought i'd mention it in case anyone else comes across it 15:48 < WizardCM> knowing you guys... :P 15:49 < yawkat> 46 seconds 15:49 < yawkat> lol 15:50 < WizardCM> going back to the main menu and re-loading the world fixed the issue 15:50 < WizardCM> it was just really weird 15:53 < WizardCM> i wish the faces had more padding like the signal bars http://wizrd.tk/8vynap :( 16:38 < Aragas> There is no singleplayer as a thing if i remember correctly. It's now a local server and a network client, right? 16:40 < WizardCM> correct 16:41 < Aragas> thanks 19:34 < Mathuin> How many blocks wide is a region file? 32x16? 19:34 < Mathuin> "Each region is 32x1x32 columns, each column is 1x16x1 chunks, and each chunk is 16x16x16 blocks." is a little confusing. 19:35 < Mathuin> So it *looks* like (32x1x16)*(1x16x16)*(32x1x16) but I'm not sure. 19:36 <+sadimusi> that's correct 19:45 < tyteen4a03> anybody using the nbt library by twollie: How am I supposed to initate a TAG_Byte_Array with default values? 19:47 < Mathuin> Region file names include the region coordinates, if I understand correctly. Would "r.-1.0.mcr" hold all the blocks from (-512,0,0) to (-1,255,511)? 20:17 < Mathuin> Ugh. Started Minecraft 1.7.10 on a Windows box, created a world, zipped it up and copied it to a Linux system, and the region file is not coming up as a compressed NBT file. Meh! 20:19 < yawkat> Mathuin: dont think there are any portability issues 20:20 < Mathuin> I think it might be me. Not sure how to create a world without OpenGL installed -- ooh, I can spin up an instance of the server to generate a world. 20:23 < tyteen4a03> Mathuin, can't you just import the world generation code? I don't know what you're doing but you should never need to spin up the game itself just to generate a world 20:38 < morfin> hello 23:08 < Mathuin> tyteen4a03: my goal at this time is to generate a sample world for analysis. in production I will not be using the server. :-) 23:16 < techkid6> iCup Technician..... Coffee Guy 23:16 < techkid6> wrrrrong channelllll 23:16 * techkid6 sobs and runs away 23:17 < Mathuin> eula.txt? Huh. 23:21 < techkid6> eula.txt is Mojang's way of getting server's on the EULA 23:22 < Mathuin> And their EULA is absolutely reasonable, to be honest. 23:22 < Mathuin> I just didn't have to do that for 1.7.2 which is the last time I downloaded the server. 23:23 <+SpaceManiac> Yeah, it's new in 1.7.10. There's been some kerfuffling over it 23:26 < Mathuin> Well, just generated more region files with 1.7.10, and those aren't gzip files either. 23:27 <+SpaceManiac> The region file as a whole isn't gzipped, the individual chunks are 23:29 < Mathuin> When I try to load the region file with pymclevel's nbt module, I get the following: pymclevel.nbt.NBTFormatError: Not an NBT file with a root TAG_Compound (file starts with "" (0x00000000) 23:29 < Mathuin> Am I missing something about region files? 23:30 <+SpaceManiac> They're not NBT format. 23:30 <+SpaceManiac> (the individual chunks are) 23:30 < Mathuin> Ah! I thought the indivudal chunks were compressed but the whoel file was NBT. 23:30 < Mathuin> Thank you. I will reread Sprenger120's page. 23:31 <+SpaceManiac> http://minecraft.gamepedia.com/Region_file_format and related pages are a good reference --- Day changed jeu. juil. 24 2014 01:46 < Mathuin> SpaceManiac: thank you for the pointer, I've bookmarked it and will use it later. 04:16 < benbaptist> Thinkofdeath, when you say line 70, do you mean line 7 of that gist? I think I have it in the right order. It's the compressed packet length first, and then the length of the uncompressed packet (which is sending zero if it's uncompressed), right? 11:50 < Thinkofdeath> benbaptist: oh right, I miss-read it 13:54 < Fenhl> anyone know what old-style ID banners have as blocks? 13:54 < Fenhl> is it 425 like the item? 15:26 < Aragas> I have a bad idea that i wanna to do. What was the name of that plugin for minecraft that combined multiple voxel games? 15:27 < Aragas> It started with 'S' if i remember correctly 15:27 <+sadimusi> spout? 15:27 < Aragas> yes. Thanks 15:33 < Aragas> Strange. Didn't see which games are supported by spout. They are now a bukkit clone? That's sad. 15:37 <+sadimusi> I think their idea was to build a generic voxel game engine and then implement minecraft as a plugin for that engine. they never supported any other games 15:39 < Aragas> I throught they have done plugins for other games 15:40 <+sadimusi> their wiki no longer exists, so it's hard to find any information about the project 15:41 <+sadimusi> it looks like the whole project was abandoned in favor of their bukkit plugin / client mod combo 15:42 < Aragas> Yep. They are focusing on minecraft realization 15:44 <+sadimusi> even that looks abandoned now, it's not even updated to 1.7 yet 15:44 < Aragas> Hm. They makin' Spout for Forge? 15:45 < Aragas> Lookin on their forum. They are still alive 15:45 < Aragas> http://spoutcraft.org/ 15:48 < Aragas> See here a new project 15:49 < Aragas> http://obsidianbox.org/threads/introducing-the-obsidian-project.11/ 15:49 <+sadimusi> they say obsidian is replacing spout, but I so far the site looks pretty empty 15:51 < Aragas> Yep. Two weeks have passed since they announced it. 15:52 < Aragas> I think they aren't opensource 15:53 <+sadimusi> to me it sounds like "we know we're behind schedule with spoutcraft for 1.7 for a couple of months now, so instead of actually updating it we made an empty clone of our website with a different name for you to enjoy" 15:53 <+sadimusi> If i was using spout I'd be pretty pissed 15:54 < Aragas> Re-branding it or something? 15:54 <+sadimusi> "Obsidian isn't related to Spoutcraft, though it was inspired by it." 15:54 <+sadimusi> apparently "There wouldn't be much point continuing Spoutcraft since Obsidian is already superior to it" 15:55 <+sadimusi> but "Obsidian is currently not ready for production use" 15:55 < Aragas> lol. And nobody saw it superior power just yet 15:55 * sadimusi oh, it is open source https://github.com/ObsidianBox/Obsidian 15:55 <+sadimusi> s/\/me // 15:55 < Aragas> oh, nice 15:59 < Aragas> same contributors 16:28 < Welite> Hello, I have a quetion about the packets, I understand how to send packet and everything around but I am facing a problem with how to interact with a sign for example ? What kind of packet should I send from my client ? 16:30 <+sadimusi> Welite: http://wiki.vg/Protocol#Update_Sign_2 16:31 < Welite> No I dont want to update sign I want to interact with sign (right click on a sign) 16:33 < Welite> sadimusi ^ 16:33 <+sadimusi> then use this one http://wiki.vg/Protocol#Player_Block_Placement 16:35 < Welite> sadimusi, ok so if I undestand it well I send normal block place packet on the position where the sign is and it will just right click on a sign ok ? Thanks! 16:36 <+sadimusi> exactly 16:36 < Welite> Nice thank you. 17:59 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+0/-0/±46] http://git.io/t0kjjw 17:59 < Not-29be> [mcprotocol] thinkofdeath c93efe4 - 14w30c 20:27 < Welite> Hello, sorry for maybe stupid question but I cant get my packet working, I am just trying to test this packet with non-variable values, could someone look at my code and tell me what I am doing wrongly please ? http://hastebin.com/repayayuco.avrasm 20:35 < Welite> Anyone please ? 20:39 <+SpaceManiac> Welite: what errors or problems are you actually having? 20:40 < Welite> SpaceManiac, I am having a Socket write exception 20:40 < Welite> It gives me the try block 20:40 < Welite> this exception 20:41 < Welite> exception java.net.SocketException: Connection reset by peer: socket write error 20:44 <+SpaceManiac> Welite: I guess make sure the connection is still open at various points, or try to figure out how far it's gotten? 20:44 <+SpaceManiac> Have you had success writing other things? 20:45 < Welite> Yes my client succesfully connects to the server (handshake, login) also send a test message packet everything works 20:45 < Welite> But this gives me error 20:46 <+SpaceManiac> the byte 0x04 is really a varint but it encodes the same way so I don't think that's the problem 20:48 < Welite> I am sending all packet ids as byte and I dont have problems with it 21:09 <+SpaceManiac> Welite: oh, you have encryption disabled, right? 21:09 < Welite> Yes I have 21:13 < Welite> SpaceManiac is makes difference ? 21:13 <+SpaceManiac> if the server expects encryption to be on it won't accept unencrypted data 21:18 < Welite> SpaceManiac, but I have my server in offline mode 21:19 <+SpaceManiac> Should be fine then 21:19 < Welite> So it should not expect any encryption 21:19 <+SpaceManiac> Right 21:20 < Welite> So where is the problem ? I really dont understand why it does not work 21:25 < Welite> Or should I try packet 0x06 ? 21:26 <+SpaceManiac> Worth a shot. I can't see why you'd just be getting disconnected 21:27 <+SpaceManiac> Are you paying attention to the data the server is sending back? 21:36 < Welite> SpaceManiac, I am just reading packets from server when I login and then I am just sending keep alive packet to the server 21:52 < Aragasas> Welite: which protocol version do you use? 21:54 < Aragasas> You are sending a strange packet. You packets seems like Plyer Position and Look, but it isn't 0x04 21:54 < Aragasas> it is 0x08 21:54 <+SpaceManiac> He left already, and was writing a client 21:54 < Aragasas> o, ops 21:55 < Aragasas> forgot about exit messages 21:56 < Aragasas> anyway, that was a rush. He should stay for one more couple of tea 22:18 < Welite> SpaceManiac, I have tried to read what server sends to the client but I received only a couple of random numbers --- Day changed ven. juil. 25 2014 00:31 < ArsenicShark> Marios 02:31 < benbaptist> Thinkofdeath, ah, okay. do you know if there was anything else wrong, or is something weird happening? (also, apologies for the super late response :P ) 03:30 <+Amaranth> The name is tainted and confusing because two completely different things use it, they want to get away from it 03:30 <+Amaranth> Whoa scrolled up 03:33 < benbaptist> oh heh 06:00 < ParaPenguin> Anybody here willing to help me with creating packets for a project I'm working on? I'm new to working on packets, and after looking at 3 different packet systems I'm even more confused than I was before I looked 06:08 < Drainedsoul> what do you mean "packet systems"? 06:13 < ParaPenguin> For example errr. https://github.com/DarkStorm652/DarkBot/blob/master/src/main/java/org/darkstorm/darkbot/minecraftbot/protocol/AbstractPacketX.java 06:20 < Drainedsoul> okay, what's confusing you? 06:23 < ParaPenguin> Most of it, however I'm fiddling around with some code I already have and I think I have a fairly basic understanding. 06:28 < Drainedsoul> umm 06:28 < Drainedsoul> alright 06:33 < ParaPenguin> Turns out looking at something for an extra 5 minutes when you've already been looking at it for an hour can really help 17:33 < Aragas> https://gist.github.com/thinkofdeath/6927216 is this still in use? I mean, "description": {"text":"Hello world"}, doesn't have "text": value. 17:34 < Aragas> It is now "description":"Hello world", 17:35 < Dinnerbone> {"text": "hello world"} can be shortened to "hello world" 17:35 < Dinnerbone> As it's just text, no thrills 17:36 < Aragas> oh, didn't know that 17:38 < Dinnerbone> They'll both work, one just saves a few bytes. 17:39 < Aragas> I don't know how serializers would react to that. Hope they know this stuff too 17:39 < Dinnerbone> The vanilla game does this, so I quite hope that 3rd party ones support it too. 17:40 < Mathuin> I imagine they follow Postel's Law and are liberal in what they accept while conservative in what they send. 17:40 < Aragas> vanilla returns it with "text": ? 17:40 < TobiX> Mathuin: Ahahahahahahahaha :( 17:40 < Mathuin> TobiX: a dev can dream! 17:41 < Dinnerbone> Vanilla returns it as "hello world" if it's just text and nothing else, but reading will accept either "hello world" or {"text":"hello world"} 17:42 < Aragas> Okay 17:42 < Aragas> Wait, description can store not only text? 17:43 < Dinnerbone> It can store anything it likes, it's a standard text component used elsewhere in the game for formatting or translations 17:43 < Dinnerbone> http://wiki.vg/Chat 17:44 < Aragas> understood 17:48 < Thinkofdeath> I used {"text":"Hello world"} so people wouldn't just assume it only accepted strings and use the old color code system 17:49 < Thinkofdeath> Aragas: also that gist is now updated at http://wiki.vg/Server_List_Ping#Ping_Process 17:51 < Aragas> I see. Thanks. About Ping packet. Is it important to send valid current-time value? Or I can send any value? 17:52 < Thinkofdeath> depends, are you the client or server? 17:52 < Aragas> Client 17:52 < Thinkofdeath> anything then, the server just echos it back 17:52 < Dinnerbone> The server will just respond with whatever you send, for you to calculate ping time on 17:52 < Aragas> Okay. Thanks 17:53 < Thinkofdeath> (which can kinda be exploited by the server adjusting the time by a few ms) 17:58 < Aragas> Why not send (from client) valid current-time value to server and receive from server adjusted value? I mean, we can calculate ping from that, no? The problem is that the client can have not properly synchronized current time? 18:11 < Dakado> Hello, could someone help me with Player Position packet please ? I cant get it working, I sent Handshake, login, keep-alive and chat packets without any problem but this packet gives me Socket write exception, my code: http://hastebin.com/jutoxuziqo.avrasm 18:14 < Aragas> Welite? 0x04 isn't Player Position packet. Which protocol version do you use? 18:15 < Dakado> Aragas - here: http://wiki.vg/Protocol#Player_Position 18:15 < Dakado> I use protocol version 5 18:16 < Aragas> You are client, right? 18:16 < Dakado> Yes 18:20 < Aragas> That's confusing. Maybe you should better send packet id as a varint, not byte. 18:22 < Dakado> Maybe but I am not sure if it helps because I send all packet ids like Byte and it works pretty well 18:23 < Aragas> Maybe because their id are small values. I mean, smaller than Player Position 18:26 < Dakado> 0x00, 0x01 are probably smaller :D 18:28 < Dakado> Ok I will try it with that varint 18:28 < Dakado> Thanks for tip 18:29 < Aragas> You're welcome 18:49 < Dakado> Aragas thank you very much, it worked --- Day changed sam. juil. 26 2014 01:36 < Mathuin> According to the Gamepedia page, the entries in the chunk timestamp table are "individual four-byte big-endian integers, representing the last modification time of a chunk". Are those time_t (i.e., seconds since the epoch) values or something else? 01:42 < Mathuin> ls 01:42 < Mathuin> bah sorry :-( 01:49 <+SpaceManiac> Mathuin: seconds since epoch, I'm fairly certain 01:53 < Mathuin> SpaceManiac: awesome. 01:59 < yawkat> for mojang I'd guess millis 02:33 < Drainedsoul> assuming you mean "Unix epoch" by "epoch", time_t isn't guaranteed to be that 02:36 < Mathuin> Really? Since when? 02:36 < Mathuin> I have always thought of time_t as seconds since Jan 1 1970 midnight UTC 02:36 < Drainedsoul> afaik it's never been guaranteed to be that 02:36 < Drainedsoul> POSIX might make that guarantee, but C/C++ don't 02:38 < Mathuin> Yeah, with regard to "guarantee" I was definitely thinking POSIX. 11:45 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+117/-108/±0] http://git.io/dnzVKw 11:45 < Not-29be> [mcprotocol] thinkofdeath c47823b - Improve mappings 11:49 < Drainedsoul> What's the high level overview of protocol changes in the snapshot(s)? 11:51 < Thinkofdeath> the major things are, allowed any packet to be compress, removed compression from packets that did it themselves. Moved the skin blobs from spawn player to player list item 11:51 < Thinkofdeath> s/compress/compressed 11:52 < Aragas> oh, i missed some interesting discuss 11:56 < Drainedsoul> so nothing really super major? 11:56 < Drainedsoul> so are NBT fields still independently compressed? 11:57 < Thinkofdeath> nope 11:58 < Thinkofdeath> oh theres a new position type (x/y/z packed into a long) but for most that shouldn't be an issue 11:59 < Thinkofdeath> but yeah nothing too major 12:00 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+0/-0/±1] http://git.io/jQMkbg 12:00 < Not-29be> [mcprotocol] thinkofdeath 3f04042 - Name the enum fields of Protocols 12:01 * Thinkofdeath really hopes his new system doesn't break the next snapshot 12:04 * Dinnerbone rewrites everything 12:04 * Thinkofdeath bursts into tears 12:05 < Dinnerbone> Gotta keep you busy somehow! 12:05 < Dinnerbone> I'm only doing this for your wellbeing! 12:06 < Thinkofdeath> <3 12:06 < Drainedsoul> which new system is that? 12:06 < Thinkofdeath> the mcprotocol thingy, its auto-magic 12:06 < Aragas> i'm already scared 12:06 < Thinkofdeath> (and breaks very easily) 12:08 < Drainedsoul> how is it "auto-magic"? 12:08 < Aragas> i think something related to hell 12:09 < Thinkofdeath> goes through the byte code looking for patterns it recognizes and remaps the classes based on that information, hopefully no manual work required 12:09 < Thinkofdeath> its like the old b.wiki.vg but worse 12:10 < Aragas> sounds interesting 12:10 < Thinkofdeath> this was meant to be a temporary thing until that was fixed... 12:10 < Drainedsoul> is there ever going to be a time when the protocol actually uses fully consistent data types 12:11 <+SpaceManiac> It's been getting closer! 12:12 < Drainedsoul> "While position 2 accepts json formatting it will not display, old style formatting works" 12:12 < Drainedsoul> you can't make this stuff up 12:12 < Thinkofdeath> which packet? 12:12 < Drainedsoul> Clientbound Chat Message 12:12 < Thinkofdeath> oh yeah 12:13 < Thinkofdeath> never checked to see if that got fixed 12:13 < Dinnerbone> How would you solve this inconsistency? 12:13 < Dinnerbone> It uses most of the features from the chat component but not all 12:13 < Dinnerbone> We could change the data type of the first field only for the second one, as you were complaining about the data types 12:14 < Dinnerbone> But then that doesn't really feel more consistent or useful in any way to me 12:14 < Drainedsoul> well old style formatting in general is just awful 12:14 < Drainedsoul> if for no other reason than the fact that -- as far as I know -- its control character isn't actually representable as a literal 12:14 < Thinkofdeath> so is the fact it accepts the old style formatting a bug the json chat not working intended? 12:15 < Dinnerbone> Yes I agree, it is unintended behaviour that it is accepted 12:15 < Thinkofdeath> *and the json chat 12:16 < Thinkofdeath> might want to strip the colors in that case, before people get used to it accepting colours 12:17 < Thinkofdeath> otherwise people are going to throw fit when the old system is finally removed and their feature stops working 12:17 < Dinnerbone> They're gonna throw fits anyway, but yeah it should either strip old or accept new 12:20 < Drainedsoul> when is Set Compression sent during Login? 12:21 < Dinnerbone> At any time you like 12:21 < Dinnerbone> (Or during play, too) 12:24 < Aragas> So, compression will be in the game options, yes? 12:24 < Thinkofdeath> in server.properties 12:25 < Aragas> I thought client can enable/disable it too 12:25 < Thinkofdeath> nope 12:26 < Thinkofdeath> well they can send uncompressed packets but they can't disable the server's compression 12:26 < Thinkofdeath> and if they compress packets it must use the same threshold as the server 12:27 < Aragas> oh, then that's okay 14:28 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+7/-0/±108] http://git.io/v3l3yw 14:28 < Not-29be> [mcprotocol] thinkofdeath b878064 - Map packet handlers 22:03 < Aragas> I really like the concept that server calculate all that stuff now. Clients just visualize that. I mean, even in "single player" mode. No more hardcore stuff implementing like redstone. Wait. How the server sends redstone stuff to client? Don't say that i need to implement redstone on my client 22:05 < Thinkofdeath> Aragas: redstone is server side 22:06 < Thinkofdeath> however you'll need to implement lighting updates as the server doesn't send them 22:06 < dexter0> Doesn't the client still simulate redstone for latency compensation? 22:06 < Aragas> I'm a bit confused. Which packets send redstone data? 22:06 < Thinkofdeath> dexter0: don't think so 22:06 < Thinkofdeath> Aragas: just the change block packets 22:07 < Aragas> Oh, that makes sense. Pardon. --- Day changed dim. juil. 27 2014 06:00 < Drainedsoul> so is -1 still like 06:01 < Drainedsoul> 7 billion bytes long in Varint encoding in the protocol 06:01 < Drainedsoul> or did they switch to zig zag 08:19 < Drainedsoul> anyone around with experience with the protocol compression? 09:39 < Grum> Drainedsoul: sup? :P 10:03 < Drainedsoul> "If compressed, the data's length must be equal to or over the threshold set in the Set Compression packet, otherwise the client/server will disconnect." <= I was just wondering what happens when a packet longer than the compression threshold is sent, but is uncompressed 10:47 < Fenhl> Drainedsoul: from what I've read that's perfectly fine 10:47 < Drainedsoul> okay, thanks 11:06 < Drainedsoul> Does the packet length include the data length header, or exclude it? @_@ 12:07 < shoghicp> Drainedsoul: excludes it 12:14 < Drainedsoul> I should've known. It was the option that seemed least likely/most nonsensical 12:17 < Drainedsoul> thanks 12:49 < eddyb> "Ported over the visibility culling code from MCPE to avoid rendering invisible stuff" does anyone know the specifics of this? 12:49 < shoghicp> in PC? 12:50 < shoghicp> it removes things that are not in the direct line of view 12:50 < shoghicp> like underground caves 12:50 < shoghicp> so they are not rendered 12:50 < eddyb> does it do it by chunk, block or face basis? 12:53 < eddyb> and how does it compute "direct line of view"? I can think of a dozen ways to do this that are costlier than any benefit you could possibly get :) 12:57 < shoghicp> eddyb: from this: https://twitter.com/_tomcc/status/423461446102417408 12:57 < shoghicp> to this: https://twitter.com/_tomcc/status/424216955839447040 12:57 < Thinkofdeath> eddyb: http://www.reddit.com/r/Minecraft/comments/2ba783/themogminer_tweeted_a_pic_about_recent/cj3v7g7 12:57 < shoghicp> https://twitter.com/_tomcc/status/424210895921614848 12:57 < eddyb> let's hope it's not vague :) 12:59 < Thinkofdeath> i've had a go at implementing it, so far it seems to work well 12:59 < eddyb> Thinkofdeath: oh wow that's the same thing I thought of 13:03 < eddyb> yeah, my optimization seems like "wasting time reimplementing the official algorithm". such an odd coincidence 21:07 < TobiX> eddyb: There are many articles around the 'net about different techniques of visibility culling... Of course, it's all harder with Minecraft, since there are probably millions (blocks) of "objects" in your view at any given time, so it's probably optimizing which rendering calls to send to the 3D-pipeline in the first place 21:08 < TobiX> I can kinda understand how this comes from PE, since mobile graphics hardware is all kinda crappy ;) 21:08 < eddyb> TobiX: it's chunk-based, and quite close (though smarter) than my own idea 21:11 < TobiX> Ah, the description on reddit sounds quite clever :) 21:12 < TobiX> Interesting side effect: X-Ray-Cheating doesn't work anymore ;) 21:13 < shoghicp> well, people can disable the algorithm 21:13 < shoghicp> or use other means to do that :S 21:18 < TobiX> Well, as long as the client gets all the chunks, cheating is easy ;) 21:19 < shoghicp> yep 21:19 < TobiX> You can still build server addons that "hide" resources until someone comes near, but I don't know how resource-intensive that would be... --- Day changed lun. juil. 28 2014 01:58 < Drainedsoul> What is "Reduced Debug Info" in Join Game? 01:59 < redstonehelper> it hides stuff like coordinates on the f3 screen 01:59 < redstonehelper> 99% sure 01:59 < Drainedsoul> so it's a suggestion 01:59 < redstonehelper> heh, yeah 02:14 < yawkat> Is it just me or does the client not send all rotation changes? 03:28 < Drainedsoul> does the Block Change packet not have a metadata field in 1.8? 03:57 < Xor_> the only thing used to sign skin blobs is Yggdrasil's key, right? 03:57 < Xor_> aka signature is UUID-independant 06:31 < Drainedsoul> "Length depends on particle. ICON_CRACK, BLOCK_CRACK, and BLOCK_DUST have lengths of 2, the rest have 0." okay I give up, how do we know what those are? 06:52 < benbaptist> Is the data-length contained within the payload length? 07:02 < Drainedsoul> no 07:07 < benbaptist> Hmm. I'm really confused at this point. 07:08 < benbaptist> It almost seemed like reading the payload length (the first varint) and then reading the data length within that actually solved my issue. 07:08 < benbaptist> at least I'm receiving data correctly. but I'm still having issues with sending. 07:10 < Drainedsoul> Is NBT data still independently compressed or no? 07:10 < benbaptist> I don't think it is anymore. 07:10 < Drainedsoul> how are you having issues sending 07:11 < Drainedsoul> if you can receive but not send, then you can just "send" data and test receiving it 07:11 < Drainedsoul> to figure out where the problem is 07:12 < benbaptist> that sounds like a good idea. I'm not really sure in all honesty. I'm thinking there's a race condition somewhere - if I sleep for a second or so after receiving the set compression threshold packet, I'm able to connect and receive without issues. but if I try going instantly, it seems to error out with not being able to read all of the zlib'd data (truncated) 07:13 < Drainedsoul> you could probably benefit from proper testing 07:17 < Drainedsoul> stop trying to test against an actual server, so you cut out all the networking code 07:17 < Drainedsoul> and just test your serialization/deserialization mechanisms 07:22 < benbaptist> hmm, I just parsed my own packet successfully. However, I actually did a little tweaking to the sending beforehand and it actually successfully sent the packet to the server as well. I think I might've figured it out. :P 07:22 < Drainedsoul> *shakes head* 07:23 < benbaptist> fine 08:04 <+SirCmpwn> TkTech: whatever happened to your Java bytecode Python projects 08:30 < benbaptist> Drainedsoul, I almost 100% guarantee you that the data length for compressed packets is contained within the overall packet length. That's how I'm treating it and it's great now 08:30 < benbaptist> i.e. the data length field's own length is contained within the length of the packet's whole payload. 08:43 < Drainedsoul> [03:06] Drainedsoul: excludes it <= I'm just repeating what I've been told 08:47 < Drainedsoul> just finished implementing the new Player List Item packet. It's pretty tedious/painful 08:48 < benbaptist> strange. 08:49 < benbaptist> oh crap. that packet looks downright awful. 08:50 < Drainedsoul> http://git.rleahy.ca/MCPP/commit/37ea2a38c75335f4bee44663b300ac9beb36c8b4 08:50 < Drainedsoul> I think I have the most code devoted to it of all the packets 08:50 < Drainedsoul> probably by a factor of 2 08:51 < benbaptist> actually, that doesn't seem too bad now that I think about it. At first sight, the article's documentation on that packet looked frightening and hard to add, but now that I actually read it, it would be easy to implement with the way I wrote packet parsing. 08:52 < benbaptist> I keep seeing UUID and Chat used as field types - aren't they just strings? 08:52 < Drainedsoul> UUID is sometimes a string, sometimes a 128-bit integer 08:52 < Drainedsoul> I think in this case it's a 128-bit int? 08:52 < Drainedsoul> its type is given as "UUID", not "String", so 08:52 < benbaptist> ah, okay. I'll have to figure out how to parse 128-bit integers in Python. 08:53 < Drainedsoul> aren't Python's integers arbitrarily wide 08:54 < benbaptist> yeah 08:54 < Drainedsoul> doesn't seem problematic then 08:55 < benbaptist> when I say parse, I mean turning the integer into a regular, readable UUID. Or are UUIDs literally just hexified bytes? 08:55 < Drainedsoul> wut 08:55 < benbaptist> string representations of the byte values 09:11 < Drainedsoul> does the C->S Keep Alive really use a different data type than the S->C one now? 09:11 < Drainedsoul> or is that an omission in the wiki 09:12 < benbaptist> It might. If that's the case, that's why I'm having so many issues with keepalive right now. 09:13 < benbaptist> perhaps the client still uses int instead of varint. 09:16 < Drainedsoul> It would simultaneously be hilarious and awful if that was the case 09:16 < benbaptist> yeah 09:16 < benbaptist> Instead of reading the client's response as a varint, I'm reading it as an integer now. So far so good. 09:16 < benbaptist> The crashes I was having were random though, but I was getting them pretty often and so far it's stable. 09:17 < Drainedsoul> sounds like a pretty bad alternative to actual testing 09:18 < benbaptist> sounds like you have an aversion towards just trying it out 09:20 < benbaptist> not even sure what actual testing would be in this case. I just did it, and so far it's worked. 09:25 < benbaptist> Yup, I'm pretty certain that the client sends int but the server sends varint. I've had no issues with the connection since. :P 09:29 < Thinkofdeath> Drainedsoul: yes in the snapshot its different each way 09:30 < Drainedsoul> That's hilarious 09:30 < benbaptist> yeah :P 09:31 < Drainedsoul> can't even keep our data types straight in packets that are literally carbon copies of each other 09:31 < benbaptist> I suppose the wiki should be edited to clarify that the client's packet has essentially not changed. 09:31 < Drainedsoul> why? The pre-release protocol page is basically a protocol diff 09:32 < Drainedsoul> Thinkofdeath: While you're around (?), is it accurate that http://wiki.vg/Pre-release_protocol#Update_Block_Entity still has its own gzip compression? 09:32 < Thinkofdeath> nope thats out of date 09:32 < benbaptist> yeah, and by default, you'd assume that the keep alive packet changed for the client too. You don't have to add another entry - just change the description of the keepalive packet. 09:33 < Drainedsoul> Thinkofdeath: Thanks 16:37 < TkTech> SirCmpwn: They still exist, but they've been made private to get them out of search results. There are better alternatives now. 16:37 <+sadimusi> such as? 16:38 < TkTech> SirCmpwn: https://github.com/Storyyeller/Krakatau 16:39 < TkTech> I don't like its API or coding style nearly as much, but it's easily won the popularity game. 16:42 < TkTech> SirCmpwn: Working on something? 17:04 <+SirCmpwn> TkTech: no, someone asked me about that sort of thing and I said you had some relevant projects 17:05 <+SirCmpwn> but then I ate my words when it turns out you didn't :x 17:07 < TkTech> SirCmpwn: Oh, sorry about that ;-( 17:09 <+SirCmpwn> TkTech: it's alright, I didn't even know the dude :) 17:51 < JonasOSDever> Is there any maven repository for Mojang's Accounts client? 17:58 < LambdaSix> Just make one locally? :P 17:58 < LambdaSix> (No, not as far as I've seen) 18:09 < yawkat> Thinkofdeath: about http://wiki.vg/Chat#Font , is there special treatment for spaces and such? 18:10 < Thinkofdeath> Space is just hardcoded to 3 wide i remember right? 18:10 < yawkat> yea, thought so 18:10 < yawkat> also, is there any padding between chars? 18:11 < Thinkofdeath> yep 1 between each character 18:11 < yawkat> alright, thanks 18:53 < yawkat> Thinkofdeath: what is the default chat width? 19:04 < Thinkofdeath> yawkat: not sure 19:04 < yawkat> alright, I'll make a screenshot and check 19:05 < yawkat> looks like 324 22:08 < TkTech> SirCmpwn: Front page is kid of shitty, the black/purple isn't very readable either 22:09 <+SirCmpwn> TkTech: front page of what 22:09 < TkTech> SirCmpwn: Terraform 22:10 < TkTech> SirCmpwn: Re your HN comment 22:10 <+SirCmpwn> ah 22:10 <+SirCmpwn> additional context is required when moving a conversation between mediums 22:11 <+SirCmpwn> I personally do not mind the purple/black 22:55 <+Amaranth> yawkat: Are you trying to do server side text wrapping or are you implementing a client? 22:55 <+Amaranth> If the former give up now, if the latter you can do it however 22:55 < yawkat> Amaranth: I had some text wrapping stuff internally for centering text 22:55 < yawkat> i decided to improve it 22:56 <+Amaranth> I feel like we've had this conversation before 22:57 <+Amaranth> Not only can users now change their chat width which completely ruins any kind of server side wrapping/padding, they can also still install resource packs with custom fonts 22:58 < Mathuin> The server should do as little as possible to chat. 22:58 < Mathuin> The server's job is to pass that data from client to client IMHO. Anything more is fraught with peril. 23:09 < yawkat> Amaranth: chat width is true, but I dont think RPs can influence character width 23:09 < yawkat> and people leave it at default width anyway 23:09 < yawkat> I know it's not really a good idea but I don't see any better alternative 23:09 <+Amaranth> One of the things you need to provide a custom font is a binary file that describes the widths of your characters 23:10 < yawkat> Amaranth: I think our art guy tried that but its loaded on mc start 23:10 < yawkat> so it doesnt work for server RPs for example 23:11 < yawkat> but yea, while I get why its not nice to do it, there's simply no better way of padding dynamic messages to appear centered 23:15 < Mathuin> Out of curiosity, what is the reason to center dynamic chat messages? 23:16 < yawkat> looks 23:16 < yawkat> centering a top player message 23:18 < Mathuin> Huh, okay. 23:18 < Mathuin> Personally I'd find that annoying, but to each their own. :-) 23:19 < yawkat> I'm not the one making the chat messages :P 23:30 < MegaAlex> Heya! Are there any requirements before sending 04-06 (movement packets), cannot seem to move this damn guy. And when exactly should 03(PacketPlayInFlying) be sent? --- Day changed mar. juil. 29 2014 00:12 < Mathuin> Thinkofdeath: I can see why you never finished the NBT module in NetherrackDev. :-) 00:12 * Thinkofdeath walks away slowly 00:13 < Mathuin> "Oh, there's only one test that doesn't pass, hmm, this nested compound tag thing looks a little complicated... hrm, well, what about ... no, that doesn't work..." 02:35 < praiseit> can anyone help me out real quick 02:36 < praiseit> bukkit related 02:36 <+sadimusi> then you might be better off in #bukkit on esper 02:36 < praiseit> esper? 02:37 <+sadimusi> https://www.esper.net 02:37 < praiseit> ok, thanks! 04:21 < benbaptist> wow are skins even sent to the client? I'm totally clueless to this part, and pre-release protocol's article doesn't appear to have documentation on this. 04:21 < benbaptist> s/wow/how :P 09:54 < shoghicp> benbaptist: via the data on the spawn packet 09:54 < shoghicp> when looking for the player auth, you get the skin data 09:54 < shoghicp> or checking the session 11:03 <+Amaranth> benbaptist: The skin blob is sent as a part of the player list packet now instead of the player spawn packet 11:04 <+Amaranth> That way the server only has to send it to the client once instead of once every time that player comes in to view 11:04 < benbaptist> Ah, okay. Thanks Amaranth and shogchips 11:05 <+Amaranth> It's not actually the skin though, it's a signed json structure that includes a URL to the skin --- Day changed mer. juil. 30 2014 10:04 <+md_5> Dinnerbone another protocol request is to merge the login/respawn packets into one, they are pretty much identical. Plus being able to change entity id on respawn would be a godsend 10:04 < Dinnerbone> I will take a peek later. 10:05 < Dinnerbone> You should be aware that the custom payload packet will change structure in the next snapshot, the "length" field for the byte array is being removed 10:05 < Dinnerbone> Will break stuff that isn't expecting it. 10:06 < Dinnerbone> (As the packet already tells its total size, it's pointless to provide the "amount of bytes remaining" when it's already known) 10:08 <+md_5> Dinnerbone since your changing it can you please add it to the login protocol? 10:08 <+md_5> *youre 10:08 <+md_5> That way we can provide IP/uuid forwarding whilst being compatible with vanilla 10:08 < Dinnerbone> You would have to guarantee that the packet can only come from your proxy, and not from clients 10:09 <+md_5> yeah we already do that 10:09 <+md_5> we just need a packet vanilla will ignore 10:09 <+md_5> at the moment we have to modify the protocol since Grum removed the packet from login in 1.7 10:10 <+md_5> that breaks using vanilla+modded+ipfowarding at the same time, since modded+ipforwarding will work but vanilla will choke 10:11 < Dinnerbone> This will also be a little concerning for possible attacks; right now during login there is very little data the client can send to the server, without the server immediately saying no 10:11 < Dinnerbone> If we allow arbitrary blobs it may not be the case anymore 10:11 <+md_5> well you did allow it between 1.0-1.6 :p the vanilla server doesnt have to handle them, it can just NOP 10:12 < Dinnerbone> Sure it doesn't have to handle them but it does have to allocate a bunch of resources to it 10:13 < Thinkofdeath> no more than the byte arrays in the encryption part of the protocol, no length checks done there 10:13 <+md_5> ^^ was about to say 10:14 < Dinnerbone> True, but that's post-auth. You can't do that as much as you like. 10:14 < Dinnerbone> I'm fine with that. 10:14 < Dinnerbone> But immediately after saying "hello!"? 10:15 <+md_5> its not post auth 10:15 <+md_5> this is the packet where the client sends its sessionserver shared secret and verify token 10:15 <+md_5> the server can only auth after it knows the shared secret :p 10:15 < Dinnerbone> I'm fine with adding custom packets to login, I wanted to add it a while ago but Grum didn't. I can look into it again later and see if it's easy and won't clash with protocolswitchiness 10:16 <+md_5> literally a case of just adding an ID mapping to the existing packet for the login subprotocol and making sure its a NOP 18:02 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+2/-0/±58] http://git.io/GIGkkQ 18:02 < Not-29be> [mcprotocol] thinkofdeath 3099c05 - 14w31a 18:36 < Thinkofdeath> So there seems to be some new downloading packets in the protocol, i'm guessing its resource packs? 18:37 < Dinnerbone> Yup 18:37 < Thinkofdeath> \o/ I guess right 18:37 < Dinnerbone> Client tells server how the server-resource-pack is going. Previously you'd be unable to tell if the client even accepted it 18:37 < Dinnerbone> Which was a big issue for servers that rely on it 18:38 < Thinkofdeath> since its named by its hash does that mean multiple then? 18:38 < Dinnerbone> Not right now. 18:38 < Thinkofdeath> naw :( 18:38 < Dinnerbone> I plan to add that but I don't know how to easily yet 18:39 < Dinnerbone> The server->client "use resource pack" also includes the hash field. If it's not a 40 character hexadecimal string, the client will not use it for hash verification and likely waste bandwidth - but it will still treat it as a unique id 18:39 < Dinnerbone> (Because I can't enforce that everybody sends a hash over) 18:41 < Thinkofdeath> added to the page :) 18:44 < Dinnerbone> Don't glance over the world border packet changes 18:44 < Dinnerbone> New datatype 18:44 < Xor_> is that what the wonderful new varlong is for? 18:45 < Dinnerbone> Yeah 18:45 < Xor_> kek 18:46 < Xor_> I was reading over the bugs you guys did this week, sad there was no two-digit bug this time. did all the two-digit ID bugs finally get resolved? =( 18:48 < Dinnerbone> Not likely 18:48 < Dinnerbone> We're not done yet :p 18:48 < Xor_> well there's only 89 18:48 < Xor_> like you guys have anything better to do *cough*featurecreep*cough* 18:49 < TkTech> There's only 4 single or double digit tickets left 18:49 < Xor_> lied, threaded AI sounds fun 18:49 < TkTech> https://bugs.mojang.com/issues/?jql=project%20%3D%20MC%20and%20status%20in%20(Open%2C%20%22To%20Do%22)%20ORDER%20BY%20createdDate%20ASC 18:50 < Xor_> only the anvil one looks non-trivial. 18:50 * Xor_ takes a step back 18:51 < Mathuin> TkTech: I went with 'id' instead of 'createDate' but a similar search. 18:51 < Mathuin> two one-digit, two two-digit, looks like. 18:52 < Xor_> three of those are < 20 18:53 < Mathuin> Folks are checking them in latest snapshots it seems. 18:53 < Dinnerbone> four of those are < 90 18:53 < Dinnerbone> This must be a sign! 18:53 < Xor_> well, let's see #4 get fixed 18:53 < Xor_> seems like a fun way to waste a week 18:54 < TkTech> https://bugs.mojang.com/issues/?jql=project%20%3D%20MC%20and%20status%20in%20(Open%2C%20%22To%20Do%22)%20ORDER%20BY%20updatedDate%20ASC 18:54 < Xor_> "32a: we didn't get anything bug but we fixed the oldest active bug =D" 18:54 < TkTech> That's actually fairly impressive, looks like every ticket still open has at least been updated 18:54 < Xor_> s/bug/done 18:54 < TkTech> Oh, that's cheating, one of the mods bulk-modified all the old tickets. 18:55 < TkTech> Previously they've been untouched for two years. 18:55 < Mathuin> I saw what looks like a mass posting by a mod asking if tickets were "still a concern in the latest Minecraft version ". 18:56 < Xor_> will the RP system ever support a "queue" of server-side packs, to allow different components without having to update a single master pack manually? 18:59 < Xor_> from MC-4: "will eventually be taken care of once the client stops having a mind of its own." given, comment is from last year, but that just sounds horrible for the client on high latency. 18:59 < Xor_> digging up old bug comments is probably as bad as digging up graves 19:00 < TkTech> Hey now, at least old graves sometimes have a rare snowglobe, or even a plasma blaster. 19:01 < Xor_> how do I get directions to this graveyard 19:04 < Thinkofdeath> Dinnerbone: sorry forgot about the world border, added 19:09 < TkTech> Xor_: Few years after a nuclear apocolypse. Ask the chipper robot for directions. 19:09 < Xor_> PluginMessage no longer has a length? 19:09 < Xor_> unlimited length plugin messages!? 19:10 < Mathuin> ... what could go wrong? 19:10 < Thinkofdeath> nah it just uses the length of the packet 19:11 < Xor_> is the length unlimited though? 19:11 * Xor_ gets ready to abuse unlimited plugin messages 19:14 < Not-29be> [mcprotocol] thinkofdeath pushed 1 commit to master [+2/-2/±5] http://git.io/QL5QfQ 19:14 < Not-29be> [mcprotocol] thinkofdeath 2021de2 - Added mappings for the new packets and data types 19:15 < Xor_> ohai Thinkofdeath's bot 19:15 < Thinkofdeath> o.O not my bot 19:15 < Xor_> well, same name as the one back on your channel 19:15 < Xor_> wait no nvm 19:16 < Xor_> damn postfix numbers 19:24 < Thinkofdeath> keep alive got fixed \o/ 19:26 < Xor_> Thinkofdeath how was is broken? 19:26 < Thinkofdeath> VarInt one way, Int the other 19:27 < Xor_> hot. 20:19 <+Amaranth> Xor_: The only other way to fix MC-4 is to rewrite the physics and collision handling to be consistent on every platform 20:19 <+Amaranth> Which basically means turn on strictfp and watch performance fall off a cliff 20:19 * Xor_ pushes Amaranth off a cliff 20:21 < Xor_> a universal gravitational constant would be nice too. 20:21 < Xor_> and drag that can be reliably calculated 20:21 < Mathuin> is gravity different in the nether, or in the end? 20:21 < Xor_> per entity type 20:21 <+Amaranth> I'm surprised it happens on the 360 version too though, they have the exact same hardware and software versions of everything 20:21 <+Amaranth> That's probably a different bug 20:21 < Mathuin> Ah, pre-Galileo science. 20:22 < Xor_> Amaranth according to Mircosoft 20:22 < Xor_> andd you know what happened last time we trusted Microsoft. 20:23 <+Amaranth> The only significant change in the hardware was switching to 28nm and they actually put in work to make sure the latencies for everything were the same for CPU<->GPU communication 20:24 < Xor_> shhh --- Day changed jeu. juil. 31 2014 14:09 < Thinkofdeath> TkTech: seems like the spammers are actually creating pages now http://wiki.vg/Special:Contributions/PilarDouglas 15:00 < WizardCM> lawl 15:01 < WizardCM> page-creating spammers 15:01 < WizardCM> wonder what they get out of it 15:38 < TkTech> Womp womp. 15:39 < TkTech> They're SEO spammers, pay them half a penny and they get your link on sites with a decent amount of traffic. 15:39 < TkTech> NUKING TIME BABY 15:43 < TkTech> Boom, headshot. 15:46 < Thinkofdeath> :D 20:20 < Not-29be> [fCraft] fragmer * r2341 2 files : Fixed exporting in D3 .map file format (thanks umby24) 21:51 < NeverCast> Does anyone know of any projects to provide MC Protocol information in a computer consumable format? JSON, XML or something of the like? 21:54 < NeverCast> No one know of one? 22:10 < Not-29be> [fCraft] fragmer * r2342 6 files : Added import support for D3Folder map format (folder-based map format used by newer D3 servers) 22:14 < Thinkofdeath> NeverCast: There used to be one but it isn't updated to 1.7+ 22:21 < NeverCast> Thinkofdeath: I'm throwing something together now 22:22 < NeverCast> I'll probably make it an IRC bot so the community can maintain it, I don't have the time 22:22 < Thinkofdeath> How are you doing it, scraping the wiki for info? 22:28 < NeverCast> I couldn't be sure that the wiki was perfectly accurate, I could scrape I guess and do some tests to ensure integrity. I was going to enter it manually to begin with and then have it maintained there-in --- Day changed ven. août 01 2014 10:50 < Drainedsoul> what is "lerp", from the World Border packet? 12:30 < Drainedsoul> What happened to the Animation packet (Play, Serverbound)? On the pre-release protocol page, it has no fields? 13:19 < Thinkofdeath> Drainedsoul: its just sent when swinging your arm now 14:22 < M4GNV5> Hey i know the coordinates of a commandblock (from the bukkit api) but i need to get the commandblock as a vanilla ICommandListener... is there a way to do that? :) 15:47 < Test123> hey how long is the RSA key the minecraft server sends me 15:47 < Test123> I'm getting a 162 long key with a 4 long token but I might be doing something wrong 16:24 < Test123> nvm I was sending back the wrong stuff lol 18:08 < Not-29be> [fCraft] fragmer * r2343 2 files : Added support for exporting maps in D3Folder format. 18:14 < morfin> hello 18:15 < morfin> can anybody explain what's 0x80 i receive when client does not receive answer from server? 18:17 <+sadimusi> who receives it? the client or the server? 18:18 < morfin> server 18:18 <+sadimusi> and you receive it after the handshake? 18:18 < morfin> yes 18:19 <+sadimusi> are you sure the 0x80 isn't part of the handshake packet? 18:24 < morfin> i think i should receive that because: 11 00 04 0b 31 39 32 2e 31 36 38 2e 30 2e 31 88 |....192.168.0.1.| 18:24 < morfin> 00000010 dc 01 01 00 18:25 < morfin> oops 18:25 < morfin> that's 00 probably after 01 00 18:28 < Not-29be> [fCraft] fragmer * r2344 3 files : Fixed performance issue while saving large maps in D3Folder format. Fixed MapConverter not prompting to overwrite existing directories. 18:30 <+sadimusi> morfin: and the 0x80 comes after that? so far it looks like an ordinary ping + status request 18:31 <+sadimusi> sorry, no ping, that's just the length 18:31 < morfin> hm 19:05 < morfin> there is ping 19:12 < morfin> 00 04 0b 31 39 32 2e 31 36 38 2e 30 2e 31 88 dc 01 is my payload: packet_id - 0, protocol - 4, ip - 192.168.0.1, port - 35036 and finally next state - 1 19:13 < morfin> oh nevermind 20:16 < morfin> wtf 20:17 < Mathuin> TkTech: do you have anything like PyNBT that can disassemble region files? 20:17 < morfin> M.C.|.P.i.n.g.H.o.s.t......1.9.2...1.6 20:17 < morfin> is that like server querying? hm 20:28 < dx> looks like the plugin message channel 20:29 < Mathuin> "As of 1.7 strings are now UTF-8 (prefixed with a VarInt giving the string's length in bytes) instead of UTF-16". So that's 1.7, the one before 1.7.1 ? 20:38 < dx> Mathuin: that's all the 1.7.x (and even some snapshots before it) 20:39 < dx> honestly that warning is silly - the whole damn protocol changed, not just UTF-8 strings 20:40 < Thinkofdeath> It was put there because you would have to look at the data types page to work out it changed (and no-one reads that page) 20:42 < dx> heh, true, but now it's transcluded into the main protocol page, so the issue that nobody reads it should be "fixed" 21:01 < Drainedsoul> So does anyone know what "lerp" actually means, from the world border packet? 21:21 < dx> Drainedsoul: "linear interpolation", but not really sure what that means in this context. 21:22 < dx> i just keep hearing serious gamedevs talk about lerps with that meaning, so it must be that :D 21:29 < Drainedsoul> is that what's used to make the world border move over time? 21:41 <+SpaceManiac> having no idea what the actual context is, my best guess is the interpolation done on entity movement 22:09 < Dinnerbone> Lerp is implicit moving between two points. The world border lerps from a to b over a specified period of time. 22:27 < dx> ah i see 22:28 < dx> so it's a way to specify sub-block movement of the border --- Day changed sam. août 02 2014 00:46 < Mathuin> I am looking for a tool that will disassemble a region file and tell me everything that's inside. Something like TkTech's PyNBT but for regions and chunks and such. Any recommended tools? 01:09 < shoghicp> hmm, I made classes for Region handling 01:10 < shoghicp> oh 01:10 < shoghicp> https://github.com/NathanWilliams/anvil-clj 01:11 < Mathuin> This language looks very lispy. 01:12 < Mathuin> Ah, you are reading files, I will be writing them. Hmm. 01:13 <+SpaceManiac> I think NBTExplorer supports region files. 01:13 < shoghicp> yep 01:13 < shoghicp> it does 01:14 < shoghicp> Mathuin: that is not mine, but something that I found. Mine is R/W, both for McRegiopn + Anvil (with chunk editing) 01:14 < Mathuin> I'm installing wine so I can testdrive NBTExplorer. That looks like it's written in some variant of C. 01:14 < shoghicp> but is embedded into PocketMine 01:14 < Mathuin> Neat. 01:14 < shoghicp> you could easily make it standalone, but it's in PHP 01:15 < Mathuin> Alas, I'm writing a terrain generator in Go. :-) 01:15 <+SpaceManiac> NBTExplorer is C#, compatible with Mono according to the readme 01:15 < Mathuin> SpaceManiac: that's what made me think it was worth installing wine. :-) 01:16 <+SpaceManiac> Mono is supposed to let you not require Wine 01:16 < Mathuin> And wine gave me a "bad exe format" anyway. 01:18 < Mathuin> installing mono-complete now! 01:23 < Mathuin> And that didn't help. Ah well. 02:21 <+SirCmpwn> Mathuin: mono --version 02:21 <+SirCmpwn> debian and its derivatives are ridiculously bad at packaging mono 02:21 <+SirCmpwn> you will probably have to compile it yourself 06:56 < Mathuin> SirCmpwn: I think I got what I needed out of it already. I've extracted what *looks* like a tag for the chunk, but it's not parsing. TkTech's PyNBT looks like it might have support for debugging regions, but the scripts didn't install. 06:57 <+SirCmpwn> you might gain something from the craft.net code, which has fairly mature mcregion support 06:57 <+SirCmpwn> good luck 06:57 < Mathuin> Thanks for the pointer. 06:58 < Mathuin> Right now I'm running into stuff like a TAG_List of TAG_Ends which I thought was impossible. 06:58 <+SirCmpwn> it *is* impossible, your code is probably broken 06:58 < Mathuin> Possible! Just because it can read biglist.nbt doesn't mean it's perfect. 06:58 <+SirCmpwn> well, I dunno if it's impossible but I've certainly never seen it in my rather in-depth examination of minecraft 06:59 < Mathuin> That's why I wanted to run pynbt against the NBT tags I've extracted. 06:59 <+SirCmpwn> I never used the example nbt files 06:59 <+SirCmpwn> I just tested against actual NBT 06:59 < Mathuin> When I do, I get "AttributeError: 'NoneType' object has no attribute 'read'", which could be due to me making a bad extraction,b ut I don't think so based on what I'm seeing elsewhere. 07:00 <+SirCmpwn> I do not know anything about PyNBT 07:00 <+SirCmpwn> what is the source for the NBT data? Regions? 07:00 <+SirCmpwn> perhaps your code for extracting NBT from regions is broken 07:02 < Mathuin> [broken] It's brand new, so I have zero confidence that it is correct, thus my search for external validation. 07:05 < Mathuin> And all I know about PyNBT is that it works pretty well on uncompressed and compressed NBT files. 07:06 < Mathuin> The problem tag is Entities. 07:07 < Mathuin> The gamepedia wiki claims "If this list is empty it will be a list of Byte tags." with regard to Entities. 07:27 < Mathuin> Ah. TAG_End is the byte code, zero is the length. That's a shitty way to show an empty list. 07:27 < Mathuin> And it's in apparent violation of what I just cited. 07:35 < morfin> guys 07:36 < morfin> that request packet is not using varints etc? 07:36 < Mathuin> And now it's better. Lame. Not completely done, yet. 07:37 < morfin> i mean packet 0xfe 10:47 < TkTech> Mathuin: Sorry, is PyNBT breaking on a file? Could you send said file to me or create a ticket? 14:10 < morfin> hmmm 14:10 < morfin> how many space minecraft allocate for entities and such things? 14:10 < morfin> in NBT 18:46 < morfin> guys: can you tell me why 1.7.2 client can send packet FE? 18:55 < Grum> because of magic! 18:55 < Grum> iirc its part of the pinging 18:57 < morfin> i guess i should just send response 21:13 < Test123> I need help with making a custom client authentificate 21:13 < Test123> I get a valid response sending my stuff to https://sessionserver.mojang.com/session/minecraft/join, but when I send the other stuff to https://sessionserver.mojang.com/session/minecraft/join, I get a 204 response code 21:14 < Test123> waitI typed the same link twice 21:14 < Test123> anyway I can authentificate but the session server sends me back a 204, which should mean a success 21:14 < Test123> but then nothing else happens and the servers delogs me 21:14 < Test123> with the error "Took too long to log in" 21:25 < Not-29be> [fCraft] fragmer * r2345 5 files : Added support for saving/loading MCF map files (used by MCForge-Redux) 21:25 < Not-29be> [fCraft] fragmer * r2346 13 files : Marked all IMapConverter implementations as internal (no need to publicize them) 21:34 < Not-29be> [fCraft] fragmer * r2347 3 files : Added new file formats to ConfigGUI's "Load map" dialog. 21:40 < Mathuin> SirCmpwn: turns out the problem I had was really simple. I saw a number of bytes and a compression type, and I read that number of bytes from the output of the decompressor. Whoops. Once I read that number of bytes directly from the file, then sent it through the decompressor, suddenly everything worked. 21:42 < Mathuin> Now I can hoover in an entire region file. Next step is writing one. Once I can write region files, I can combine that with my ability to write level files and move past the Minecraft part of the project. Woo! --- Day changed dim. août 03 2014 01:49 < eddyb> were the block states renamed some time ago? there are no more log and log2 with various variants, only *_log 01:50 < eddyb> now to decompile the classes without making a mess 02:49 < Test123> anyone here good with the minecraft server protocol, I'm doing something wrong 02:50 < shoghicp> hmm, what is the problem? 02:51 < Test123> I'm still at the "making a client connect" part 02:51 < Test123> no trouble doing it in offline mode 02:51 < Test123> in online mode, I can authentificate successfully but the server never does anything with my encryption response packets 02:52 < Test123> it eventually drops me with the "took too long to log in" error 02:54 < shoghicp> maybe the data sent was incorrect? 02:54 < shoghicp> hmm, do you have packet dumps? 02:55 < Test123> sounds fancy, do you mean like the data in my packet? 02:55 < shoghicp> well, the network stream 03:03 < Test123> this is basically how I build my encryption response packet http://i.imgur.com/1tW0kiQ.png 03:03 < Test123> it's pretty bootleg cause I'm not sure how to use the varint library I found 03:04 < Test123> I built my handshake packet the same way and it worked 03:04 < shoghicp> hmm, it lacks the length 03:04 < shoghicp> of the key 03:04 < shoghicp> oh no 03:04 < shoghicp> but it is a short 03:04 < shoghicp> (in 1.7.10) 03:05 < shoghicp> not a varint 03:05 < Test123> oh I'm doing it on the snapshots 03:05 < Test123> lol 03:05 < Test123> maybe that's a bad idea 03:05 < shoghicp> the snapshots changed a few things :) 03:05 < Test123> I'll try doing a simple short 03:05 <+sadimusi> you still need a server id in the snapshots 03:05 < Test123> ah I think I didn't include it 03:06 <+sadimusi> it can be an empty string 03:06 <+sadimusi> so just a null byte 03:11 < Test123> hmm yeah I still can't get a response 03:12 < Test123> it's weird cause when I manually set the packet length to something incorrect nothing happens 03:13 < Test123> I'm thinking it's my varint that might be failing, as the two first bytes of my packet are 140, 4 03:13 < Test123> I'm afraid the server might think it's a 140 long id 4 packet and ignore it cause there's no id 4 in the login process 03:16 < Test123> ooh I changed the way I write numbers varints bigger than 256 to sinz' way and it seems to be working 03:17 < Test123> instead of using my doubtful varint class I use message2.AddRange(BitConverter.GetBytes(IPAddress.HostToNetworkOrder(message.Length))); 03:18 < Test123> wait no it's not working haha 03:23 < Test123> yeah I think because my packet is bigger than 256, I have to encode its length as a varint and I'm failing that part 07:27 < Not-29be> [fCraft] fragmer * r2348 5 files : Updated fNbt to v0.6.1 (fixes CW map file loading). 07:34 < SinZ> wait what 08:38 < eddyb> sadimusi: hehe I just went in blind into decompiled and obfuscated snapshot code and made a dumper for what I need :D 09:30 < eddyb> I probably shouldn't bug Dinnerbuns... but I'm curious what's with the blockstates that don't have a "path" - like water, lava, end_portal, ender_chest, etc. 09:30 < eddyb> are they handled specially? 09:31 < eddyb> (actually, all chests are, not only ender chests) 09:48 < SinZ> dinnerbuns, thats a new name 10:04 < Thinkofdeath> eddyb: Well I assume water and lava don't have models because of the way they join together and chests are entities according to the texture location 10:04 < eddyb> SinZ: new? pfffft 10:05 < eddyb> Thinkofdeath: hmm 10:05 < Thinkofdeath> i guess them being entities makes sense because of the opening animation 10:05 < eddyb> water and lava can have models, with the enhanced block states 10:17 < SinZ> eddyb: I'm used to him being called dinnerbro 11:02 < Not-29be> [fCraft] fragmer * r2349 2 files : ConfigGUI: Fixed an occasional crash in "Edit World" dialog if the [Cancel] button is pressed while rendering a map preview. 15:50 < barneygale> Yo. Could someone explain the "Properties" data type in the pre-release Player List Item packet? Is the varint "length" the length in bytes, or the number of k, v pairs? 15:50 < barneygale> http://wiki.vg/Pre-release_protocol#Player_List_Item 15:54 <+Amaranthus> barneygale: Considering "The follow fields are repeated length times" I'd have to go with number of... actually that is pretty confusing 15:56 < barneygale> Yah 15:57 < barneygale> Also I'm guessing UUID is a string 15:57 < barneygale> wait 15:57 < barneygale> hm 15:57 < barneygale> 128-bit int? 15:57 < Thinkofdeath> whoops I forgot to go back and clean that one up 15:57 < Thinkofdeath> yeah its a 128-bit 15:57 < barneygale> fun 15:57 < Thinkofdeath> new UUID(readLong(), readLong()) 15:58 < Thinkofdeath> or something like that 15:58 < barneygale> fair 15:58 < barneygale> I might just store them as strings internally =D 16:06 < barneygale> I'm working on a proxy that connects a 1.8 client to a 1.7 server, if anyone's interested in helping 16:08 < Thinkofdeath> http://wiki.vg/Pre-release_protocol#Player_List_Item Cleaned up (I hate mediawiki tables) 16:09 <+Amaranthus> Ok, I get it now 16:09 <+Amaranth> It's because they made it so the packet can have multiple players in it 16:10 < barneygale> yeah 16:10 < barneygale> the old one was pretty derpy tbh 16:10 < barneygale> easy to pack/unpack though! ;D 16:12 < Thinkofdeath> I would do another indent to make it clearer that every field is repeated but tables are painful :/ 16:47 < barneygale> Thinkofdeath: it would be nice if we could maintain the protocol in a parseable format 16:47 < barneygale> and then generate human-readable documentation from that 16:47 < barneygale> rather than mucking around in tables 16:48 < Thinkofdeath> Could be doable 17:06 <+Amaranth> I'm not sure you could express the MC protocol using a grammar 17:17 < barneygale> It's doable but you need backreferences etc 17:27 < kamcio96> hi, where i can found info about MC|BSign payload packet? 17:30 < kamcio96> nevermind 18:53 < barneygale> Yo, what UUID does the server send in Login Success when in offline mode? Looks like it might be a stable hash of the username, as it doesn't match up with the account's UUID 19:01 < Grum> yes, type2 iirc 19:02 < barneygale> thanks Grum 19:05 < Thinkofdeath> I thought it was 3? 19:05 < Grum> not 100% sure, should be easy to find :) 19:06 < Thinkofdeath> UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + getName() ).getBytes( Charsets.UTF_8 ) ); 19:06 * Thinkofdeath looks at javadocs 19:06 < Thinkofdeath> "Static factory to retrieve a type 3 (name based) UUID based on the specified byte array." 19:07 < Grum> iirc just hashes it and uses that as the sha and then marking the 'version bit' 19:10 < Thinkofdeath> oh since you are around, is the username/uuid checks for skins reenabled yet? Its either not enabled or i've done everything correctly and haven't triggered it this time :P 19:11 * Thinkofdeath doesn't want a repeat of 1.7.6/7/8/9 19:15 < johan_____> Any idea why I'm receiving Packet 88 (0x58)? It's not listed on wiki.vg/Protocol. https://s3.amazonaws.com/f.cl.ly/items/2j2e1H2c2b322K3x2A45/Screen%20Shot%202014-08-03%20at%2018.13.02.png 19:47 < Aragas> nah. Why they sit here for only 15 minutes 19:48 < Aragas> So rude 23:07 < Drainedsoul> barneygale: Why would you store a UUID as a string :| 23:32 < barneygale> Everything i interact with needs it as a string currently 23:33 < barneygale> which is only two things admittedly (auth server, login success packet) 23:55 < eddyb> Thinkofdeath: this is what I got, btw :) https://gist.github.com/eddyb/d619764a364d9b6b59c8 23:55 < eddyb> the output is contrived to save on space 23:56 < eddyb> and provide O(1) lookup 23:59 < Drainedsoul> That method looks like a good candidate for refactoring into several smaller methods 23:59 < Drainedsoul> ;) --- Day changed lun. août 04 2014 00:07 < ParaPenguin> Any idea why I keep receiving Packet #88? 00:09 < ParaPenguin> It appears to be reading all previous packets fine (the data inside them seems legitimate) then suddenly I'll get that #88 Packet and I attempt to ignore it based on the length sent previously, every packet after that one is then broken. The data is miles of what it was before, x/y/z locations are in the billions, etc 00:17 < Drainedsoul> decimal number 88? Or hexadecimal number 88? 00:17 < Drainedsoul> what state? 00:17 < Drainedsoul> which direction? 00:18 < ParaPenguin> decimal number 88, heading towards the client 00:18 < ParaPenguin> State... play? 00:19 < Drainedsoul> which packet are you reading immediately before? 00:19 < Drainedsoul> which version of the client are you working with? 00:19 < Drainedsoul> (or server, as the case may be) 00:20 < ParaPenguin> It's a command line client, protocol 4, immediately read before is a keep alive packet from the server 00:22 < Drainedsoul> how many bytes do you consume for the keep alive, 6? 1 length, 1 ID, 4 for the integer? 00:23 < ParaPenguin> Hold on, I'll check 00:24 < ParaPenguin> 28. Yeah, that's clearly wrong 00:37 < ParaPenguin> Thanks for your help 00:37 < ParaPenguin> Now it's just a case of finding out what went wrong and fixing it --- Log closed lun. août 04 11:21:34 2014 --- Log opened lun. août 04 11:21:41 2014 11:21 -!- Irssi: #mcdevs: Total of 149 nicks [1 ops, 0 halfops, 10 voices, 138 normal] 11:24 -!- Irssi: Join to #mcdevs was synced in 156 secs 18:43 < Not-29be> [fCraft] fragmer * r2350 2 files : Improved support for D3 maps, now including format versions 1000 through 1040 (thanks Yoshi2) 20:22 < morfin> hello 20:22 < morfin> so how many space is being pre-allocated in NBT for entities? 20:23 < morfin> in default implementation 21:14 < ParaPenguin> According to wiki.vg/Protocol, The disconnect packet 0x40 (Clientbound, play) is supposed to receive a JSON String, http://cloud.parapengu.in/Wt5k I received a plain String when I tested it. 21:15 < ParaPenguin> Is this because it's unformatted, or because the wiki is wrong, just wondering if I should catch JSONException and print the message if it's not valid JSON 21:22 < Aragas> Clients often just write 'Disconnected' or something like this 21:23 < ParaPenguin> I was testing, if you look at the image it shows "You logged in from another location" 21:24 < Dinnerbone> Are you receiving a protocol string (length, text) or a protocol string containing a json string (length, text of: "hello world" with quotes) 21:26 < ParaPenguin> protocol string with quotes 21:26 < ParaPenguin> The wiki says it's meant to be JSON though 21:26 < Dinnerbone> That is JSON 21:27 < Dinnerbone> json_to_some_object("\"Hello World\"") == "Hello World" 21:27 < Dinnerbone> The root object in JSON doesn't have to be an object. It can be a string, if there's only text to convey. 21:28 < ParaPenguin> I didn't realise a quoted String would be classed as JSON, thanks for the help! 21:28 < Komp> According to http://wiki.vg/Protocol#Update_Sign, "y" is a short and the lines are strings, however when I was testing with ProtocolLib, "y" was an int and the lines were a string array. Is this a mistake? 21:28 < Dinnerbone> The thing sent in this packet is the same component system used in chat and elsewhere, it may be a simple string which should be displayed as such, or it may be a more advanced object (such as a translation or formatted text) 21:28 < Dinnerbone> http://wiki.vg/Chat 21:29 < ParaPenguin> I've not quite got to parsing chat messages yet, so that's probably why I didn't realise 21:31 < Thinkofdeath> Komp: its a short, protocollib sometimes treats things as slightly different data types than they actually are 21:31 < Komp> Aha, so I'm guessing ProtocolLib attempts to simplify it? 21:31 < Komp> Well, that didn't go well .-. 30 minutes trying to figure out why the sign wasn't updatig 21:32 < Komp> updating* 22:44 < eddyb> Thinkofdeath: are entity models described in JSON yet? 23:50 < Thinkofdeath> eddyb: don't think so 23:53 < eddyb> Thinkofdeath: I wonder what issues there are with "just doing it" 23:53 < eddyb> I bet there are many hardcoded joints and whatnot 23:53 < Thinkofdeath> yeah --- Day changed mar. août 05 2014 14:52 < MrARM-PC> Hi 14:53 < Drainedsoul> hello 15:07 < morfin> hmm 15:07 < morfin> if i am properly understanding NBT it will relocate chunk when requred_space>allocated_space(copy to the end of file and change pointer) 15:30 < morfin> leaving whole old chunk somewhere(until cleanup removes it) 16:46 < eddyb> morfin: what has that got to do with NBT? 16:46 < eddyb> you sound like you're describing region files for which, yes, that is a sensible thing to do, especially when you're memory-mapping the entire thing 18:03 < morfin> but what's initial region size? 18:03 < morfin> i want to avoid unnesessary copying of chunks/regions 19:20 < Mathuin> A region can contain as little as one chunk. 19:20 < Mathuin> And as many as 1024. 20:08 < ajf> Aha, great to be here once again 20:08 < ajf> Also great to see people finally made some extensions for the classic protocol 20:10 < ajf> I see the classic client is as stable as ever… 20:18 < umby24> ajf: See classicube 20:19 < ajf> umby24: Yes 20:19 < ajf> That’s what I was referring to 20:19 < ajf> :) 20:19 < umby24> aic 20:19 < ajf> I’m going to write a JavaScript Minecraft Classic client because screw this Java sucks 20:20 < umby24> lmao, well best of luck and we look forward to having another client :) 20:20 < ajf> I’ll start simple and just have an isometric view 20:21 < ajf> Hahaha 20:22 < ajf> The beacon doesn’t even work right any more 20:22 < ajf> 19:20:27 To connect directly to this server, surf to: 20:24 < umby24> lol 20:30 < ajf> I already decided on a name: manic.js 20:30 < ajf> A reference to ManicDigger :) 20:48 < umby24> nice nice :P 20:50 < Aragas> JS minecraft. Nice 20:55 < ajf> Dear god the W3C can’t add basic APIs can they 20:56 < ajf> This is how to copy 1024 bytes from an ArrayBuffer to an ArrayBuffer: (new Uint8Array(buf, pos, 1024)).set(new Uint8Array(args[i])); 21:02 < morfin> JS minecraft? 21:02 < morfin> btw JS Minecraft is possible not on every platform 21:03 < morfin> if use WebGL of course 21:04 < ajf> morfin: Are you saying it’s *not* possible on every platform, or that it is? 21:04 * morfin failed to force my shitty Huawei smartphone to enable WebGL in chrome 21:04 < morfin> not possible 21:05 < morfin> also IE users will suck 21:05 < Mathuin> So will folks using lynx. 21:05 < morfin> lol 21:05 < Thinkofdeath> WebGL support is getting more common 21:05 < morfin> i was thinking about ASCII client 21:06 < morfin> :D:D 21:06 < Thinkofdeath> also newer IE versions support webgl 21:06 < Mathuin> However, I imagine folks using modern tools on modern platforms will be pleasantly surprised by how well it works. 21:07 < morfin> like let's play Minecraft in server console using only ncurses maybe 21:11 < morfin> (new Uint8Array(buf, pos, 1024)).set(new Uint8Array(args[i])); is not that slow? 21:12 < Thinkofdeath> not really 21:13 < morfin> i did not use that kind of stuff in JS 21:13 < ajf> morfin: I don’t care about speed, I care that you can’t copy a byte array into a byte array 21:13 < ajf> dumb 21:15 < TkTech> ajf: It isn't supposed to be basic, it's supposed to be comprehensive. 21:15 < TkTech> They expect others to write convience libraries on top of it. 21:15 < Thinkofdeath> its really not too bad, most of the time you wouldn't be keeping things as arraybuffers just the arraybufferviews 21:15 < Thinkofdeath> buf.set(otherbuf.slice(0, 1024) or seomthing 21:16 < ajf> TkTech: Even so, this can’t be good performance-wise 21:16 < ajf> Meh 21:17 < morfin> ok ok benchmarks says that's fast 21:17 < Thinkofdeath> getting minecraft running in the browser at a good speed shouldn't be to much of an issue 21:18 < ajf> Hey so 21:18 < ajf> Did Minecraft Classic pad strings with null bytes or spaces? I forgot. 21:18 < morfin> he-he unless you want to use lights like old Minecraft(1.2.5) had) 21:18 < ajf> Oh, spaces. I’m dumb. 21:18 < morfin> in Nether 21:18 < Thinkofdeath> what was different in 1.2.5? 21:19 < morfin> it was lagging as hell 21:19 < Thinkofdeath> (plus he seems to be doing classic which is even easier) 21:19 < morfin> yeah 21:19 < morfin> i remember something like that: each block was calculated separately so lots of light blocks was lagging in Hell 21:19 < morfin> *Nether 21:20 < Thinkofdeath> I've been working on a modern-like mapviewer in webgl and so far it seems to work well http://thinkmap.thinkofdeath.co.uk/dev/ 21:20 < Thinkofdeath> so classic should be simple :) 21:20 < morfin> aaaah that pink and black squares reminds me Source) 21:21 < Thinkofdeath> :P 21:21 < Thinkofdeath> (textures should load quickly) 21:21 < morfin> your water is solid) 21:21 < Thinkofdeath> its on the todo list :P 21:22 < morfin> what you'll do about doors etc? 21:22 < Thinkofdeath> they all should work fine 21:23 < Thinkofdeath> i'll switch the map quickly 21:23 < morfin> idk why but i think full client of Minecraft(i mean non-classic) more complicated than server 21:23 < morfin> because of rendering etc hmm 21:23 < Thinkofdeath> ok reload :) 21:24 < morfin> furnace door? 21:24 < morfin> :D 21:24 < Thinkofdeath> o.O 21:24 < morfin> lawl 21:24 < Aragas> ASCII 3 dimension. That's the spirit. 21:24 < morfin> half door half furnace 21:25 < morfin> anyway i guess it's impossible to render stuff quickly in console 21:25 < morfin> on remote server .. 21:25 < Thinkofdeath> hmm I guess you have a weird gpu :/ 21:25 < Thinkofdeath> works fine here 21:25 < Mathuin> My work computer has a crappy video card, so no webgl for me! 21:25 < Thinkofdeath> \o/ 21:26 < Thinkofdeath> Chrome has a software version of it if you feel like running at 2 fps :P 21:26 < Aragas> thinkmap is a bit laggy. But it works. And this is cool. 21:26 < morfin> what a heck 21:27 < morfin> i've found some strange redstone stuff 21:27 < Aragas> Software version for old nokia's 21:27 < Thinkofdeath> morfin: its a hypixel adventure map 21:27 < Aragas> Available games: Snake, Bounce and Minecraft 21:27 < morfin> ow 21:28 < TkTech> Thinkofdeath: Same thing here. 21:28 < morfin> not weird GPU 21:28 < Thinkofdeath> .-. I guess the texture changes I did broke something 21:28 < TkTech> Half of the door is overlayed by a furnance, and most textures are switching rapidly between the correct textures and a purple/black test pattern 21:28 < morfin> maybe you screwed coords 21:28 < morfin> :D