02:13 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-minecraft-protocol-0.19.3 11:31 < Not-8b17> [Charge] Wallbraker pushed 4 commits to master [+0/-0/±9] https://git.io/v26gE 11:31 < Not-8b17> [Charge] Wallbraker 626b90d - gfx: Refactor target 11:31 < Not-8b17> [Charge] Wallbraker dabb50b - gfx: Refactor texture 11:31 < Not-8b17> [Charge] Wallbraker 3d13b24 - gfx: Add Framebuffer 11:31 < Not-8b17> [Charge] Wallbraker 1c4f5e6 - gfx: Add ortho setting function to target 12:18 < tktech> rom1504, On notifico under your hook settings there's an option called "Branches" 12:18 < tktech> rom1504, set it to "master" 12:23 < rom1504> tktech: it's already set to master :\ 12:23 < tktech> :| 12:27 < rom1504> should I open an issue there https://github.com/notifico/notifico/issues ? 12:27 < tktech> Yeah please, "Branch Deletion Notifications Not Respecting Branch Filter" 12:30 < rom1504> https://github.com/notifico/notifico/issues/145 12:30 < tktech> Thanks, I'll fix it later today once I've had my coffee 19:01 < Not-9c26> [wiki] Edit by Paulomart to Pre-release protocol -> http://tinyurl.com/hxlobdn 20:03 < Huherak987> What packet is sent from client to server, when dismounting a horse for example ? 20:06 < Huherak987> rom1504 ? 20:07 < rom1504> Attach Entity 20:07 < rom1504> "Vechicle's Entity ID. Set to -1 to detach" 20:07 < Huherak987> The detach is not working in 1.9 20:08 < Huherak987> Player has actually dismount but client still thinks that he is mounted 20:08 < Huherak987> but other players see him as dismounted standing on the ground 20:11 < Huherak987> rom1504 ? 20:13 < rom1504> trying to detach on the proxy and telling you ;) 20:18 < rom1504> Huherak987: client<-server: play.set_passengers :{"entityId":319,"passengers":[]} 20:22 < rom1504> I wonder why attach entity still exist though 20:22 < rom1504> more depreciated packets 23:05 < Not-8b17> [Charge] Wallbraker pushed 5 commits to master [+1/-0/±10] https://git.io/v2Xsf 23:05 < Not-8b17> [Charge] Wallbraker dd795a0 - sys: Use ~this instead of collect 23:05 < Not-8b17> [Charge] Wallbraker 28c5e55 - gfx: Whitespace 23:05 < Not-8b17> [Charge] Wallbraker c3ca3a2 - sys: Whitespace 23:05 < Not-8b17> [Charge] ... and 2 more commits. --- Day changed mer. mars 02 2016 05:45 < kashike> am I blind or is the metadata format section missing Player? 11:25 < rom1504> kashike: add it if it exists --- Log closed mer. mars 02 17:14:57 2016 --- Log opened mer. mars 02 17:15:06 2016 17:15 -!- Irssi: #mcdevs: Total of 155 nicks [1 ops, 0 halfops, 13 voices, 141 normal] 17:20 -!- Irssi: Join to #mcdevs was synced in 335 secs 19:29 < Not-8b17> [minecraft-data] rom1504 pushed 1 commit to master [+0/-0/±1] https://git.io/v2DKG 19:29 < Not-8b17> [minecraft-data] rom1504 e2ffa06 - 1.9 protocol : fix packet_spawn_entity_painting, missing an uuid field http://pokechu22.github.io/Burger/1.9.html#packets:play_clientbound_04 19:36 < Not-9c26> [wiki] Edit by Rom1504 to Pre-release protocol -> http://tinyurl.com/hd8lqny 19:37 < Not-9c26> [wiki] Edit by Rom1504 to Pre-release protocol -> http://tinyurl.com/hbh2j56 19:43 < Not-8b17> [mineflayer] rom1504 deleted branch greenkeeper-minecraft-data-1.2.5 19:45 < rom1504> more 1.9 protocol fix ^ 19:49 < Not-8b17> [mineflayer] rom1504 deleted branch greenkeeper-minecraft-protocol-0.19.4 19:49 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-minecraft-protocol-0.19.4 20:05 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-minecraft-data-1.2.5 20:06 < rom1504> waiting for https://github.com/notifico/notifico/issues/145 :) 23:06 < Not-9c26> [wiki] Edit by Zyuiop to Entities -> http://tinyurl.com/zohos8m 23:22 < Not-9c26> [wiki] Edit by Zyuiop to Entities -> http://tinyurl.com/z5tsy2q --- Day changed jeu. mars 03 2016 01:11 < javaprophet> Thinkofname, if you don't mind me asking, why did you stop maintaining steven when it was farther than any other non-Mojang client before it? 01:12 <+Thinkofname> I started my third year of Uni and between spigot and my uni work I ran out of time 01:13 <+Thinkofname> plus as it turns out Mojang does a lot of changes between snapshot versions and it isn't always easy to follow :P 01:13 < javaprophet> Okay, thanks. I'm currently writing a client in C as a hobby project myself. 01:13 < javaprophet> Since 1.9 just came out, it seems like a good time to start, so I don't have to worry about those for a while. :P 01:14 <+Thinkofname> neat, try not to rip your hair out at all the quirks :) 01:14 < javaprophet> :) 03:34 < Momo> Hey, I'm having an issue with sending a Server List Ping using a TCP byte array. These are the bytes I am sending, as well as the JSON response it contains. The problem is that neither the MOTD or the version is shown on the server list, although it does show "Pinging...". Do you think the issue is related to the packet byte load I created or the connection between the client and the server? 03:34 < Momo> This is the byte load: https://gist.github.com/MOMOTHEREAL/ca32ec06d9675a061fcc 03:35 < javaprophet> Are you creating a ping responder or a pinger? (ie client or server perspective) 03:36 < Momo> Not at the moment, but is it needed for the client to show server information? 03:37 < Momo> Oops, misread that. It's a server, so it receives a Handshake packet first, then responds with the byte load I sent 03:37 < javaprophet> The client doesn't need a successful ping to connect. From your Github link, it looks like it worked fine? 03:39 < javaprophet> http://wiki.vg/Protocol#Without_compression 03:39 < javaprophet> I think your sending the length as 0, one second. 03:40 < Momo> Ah, that must be it. I'll try some stuff and get back to you. 03:40 < javaprophet> A further thing to keep in mind, is that the client will send a ping Request. 03:41 < Momo> Yes indeed. Would that be related to the fact that a couple seconds after the SLP packet is sent to the client, the client sends a 0x1 packet? 03:41 < Momo> (Without the server sending the Pong packet just yet) 03:42 < javaprophet> When the client sends a 0x1, that is a ping, and you should reply with a pong. 03:42 < javaprophet> http://wiki.vg/Protocol#Status 03:42 < javaprophet> 0x0 is a "Request", which means that after that you can send a "Response" 03:42 < Momo> Alright, I'll try fixing the SLP packet first then actually making a Ping-Pong packet listener/sender. 04:16 < Momo> Does the server receive anything when the client aborts pinging the server? 04:26 < javaprophet> @Momo, the client doesn't usually abort pinging, however you MAY receive a TCP RST, closing the connection. I highly recommend adding timeouts to any connection. 06:18 < Momo> Apparently the client did not like having following zeros inside a VarInt, it just needed a byte for the size of the packet & the data. Good thing it works now, although I don't receive the Ping packet anymore... 08:58 < Momo> Hey, how does the server keep track of which client sends Hanshake and update the client's connection 'Next State'? Is the connection's IPv4 a viable solution for storing connection data? 09:04 <+Amaranth> Momo: The IP/port combo of the client is required to be unique 09:04 <+Amaranth> Otherwise the internet wouldn't work 09:05 < Hafydd> Amaranth: are you ammaraskar on GitHub? 09:06 <+Amaranth> ammar2: Stop being me! :P 09:06 < Hafydd> Oh. Is ammar2 ammaraskar on GitHub? 09:06 <+Amaranth> hehe, yeah 09:06 < Hafydd> I see. 09:07 < Hafydd> Have they been active recently? 09:07 <+Amaranth> Err, in here or in general? 09:07 < Hafydd> In here. 09:07 < Hafydd> I can see they have been active on GitHub. 09:08 <+Amaranth> I don't think he has talked in this channel in, well, at least days 09:10 < Hafydd> ammar2: do you have any immediate plans to update to 1.9 protocol versions? I can see that you have which indicates that perhaps you're doing something like that. If you are, perhaps I can be of assistance, because I have a project that uses pyCraft and needs to upgrade to 1.9. 09:31 <+ammar2> Hafydd: sorry I don't really have time to maintain that project regularly anymore 09:32 <+ammar2> if you wanna try updating it to 1.9 I'll be happy to look over your changes and help you 09:34 < Hafydd> ammar2: I see. Perhaps I will submit a pull report at some point, then. 09:34 < Hafydd> Er... a pull request, I mean. 15:59 < Not-8b17> [minecraft-data] rom1504 pushed 1 commit to master [+0/-0/±3] https://git.io/v2HUv 15:59 < Not-8b17> [minecraft-data] rom1504 c6c6ece - fix effects schema, use ajv instead of jsonschema because it's way faster and it's better at validating 17:35 < Not-9c26> [wiki] Edit by Pokechu22 to How to Write a Server -> http://tinyurl.com/zvwtr4x 18:04 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/zprcr9n 18:09 < Not-9c26> [wiki] Edit by Pokechu22 to Minecraft Forge Handshake -> http://tinyurl.com/zy55cem 18:46 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jzwyfcc 18:52 < NathanWolf_> I understand that there are plans to eventually have clients validate a resource pack versus the server-provided sha. I am wondering if there are plans to allow servers or resource packs to tell clients to skip that check? 18:53 < NathanWolf_> I am asking because I'd like to automate RP updates server-side using only HEAD requests and ETag, but that's usually an md5 not a sha- wondering if I need to actually download the whole RP and sha it to be safe. 20:58 < Not-9c26> [wiki] Edit by PunKeel to Pre-release protocol -> http://tinyurl.com/zkqds22 21:07 < Momo> How can I send a packet with a size of over 256 (S->C), so that the client understands that it must take the first two bytes as the length instead of only the first byte? 21:22 < rom1504> Momo: http://wiki.vg/Protocol#Packet_format 21:23 < rom1504> packets over 256 usually get compressed 21:23 < rom1504> except if you have a different compression threshold 21:55 < Not-9c26> [wiki] Edit by Pokechu22 to Minecraft Forge Handshake -> http://tinyurl.com/zrtoh7j 22:04 < Momo> But, how come the client expects a VarInt to be passed, but it only reads the first byte as length instead of the first 4 bytes? 22:08 <+Amaranth> Does it read all of it then complain you're sending too much uncompressed data? 22:08 < Momo> No, it just reads the first byte as length and the second as packet ID, instead of the first 4 being length and the fifth as Packet ID. 22:11 < Momo> Example, I have a packet of length of 648 (VarInt is 124 2 0 0), and the Packet ID is 1. This makes the first bytes of the packet: [124 2 0 0 1], but the client reads it as: size is 124, and packet Id is 2. 22:12 <+Fador> VarInt is variable number of bytes 22:12 <+Fador> the first bit of the byte tells if there's another byte included 22:12 <+Fador> and 7 bits is the data 22:17 <+Fador> ..so for length 648 and packet ID 1 it should be [136 5 1] 22:37 < Momo> So, would 639 be [250, 9]? (No idea if this is correct) 22:39 < Momo> Or would it be [251 4]... 22:42 <+Fador> close, [255 4] =) 22:42 <+Fador> https://github.com/Mineserver/mineserver.js/blob/master/lib/mcbuffer.js#L70 I do it like this 22:44 < Momo> So then what would be the value of [251 4]? 22:44 <+Fador> so, just take the lowest 7 bits, and if there's more bytes coming (the value is more than 127), add 128, setting the eight bit 22:45 <+Fador> 635 =) 22:49 < Momo> Right, so now that I got _that_ working... http://i.imgur.com/xYnqv0Y.png (Packet start is [252 4 1], length is 638) 22:50 < ecx86> anyone know the mcp irc channel 23:14 < rom15044> Momo: here are some varint test values https://github.com/roblabla/ProtoDef/blob/master/test/dataTypes/utils.json#L21 23:15 < rom15044> If you want to test your implementation 23:16 < Momo> Yeah, I think I messed up something with the VarInt limit... now the client crashes with "VarInt too big" 23:20 < Momo> What is the size of a RSA Public key (packet EncryptionRequest 0x1) in bytes? 23:32 < rom15044> Sum it up 23:33 < rom15044> Ah 23:33 < rom15044> It depends 23:34 < rom15044> Precisely the varint indicates the length --- Day changed ven. mars 04 2016 00:43 < Not-9c26> [wiki] Edit by Fenhl to Pre-release protocol -> http://tinyurl.com/za4xl2m 01:18 < Momo> I'm having an issue with the server receiving a response to a EncryptionRequest packet: https://gist.github.com/MOMOTHEREAL/5907d74752faa7b8e72c 01:25 < rom1504> Momo: what's your decoding code ? 01:26 < rom1504> is your objective to learn parsing/serialization ? 01:26 < rom1504> (if not there are libs for your language already) 01:28 < Momo> Yes, I am trying to make a basic server handler on Go. The way I decode the TCP packets is by receiving connections from the client, reading the first byte as the length and then parsing the rest of the packet acordingly. 01:29 < Momo> I am not entirely sure if a full-on library is needed for this, since Go is pretty straightforward for TCP reading, I just need to parse the byte array as I see fit (into Strings, VarInt, etc) 01:30 < Momo> I use the uncompressed packet format, so that the first VarInt is the length, the next byte is the Packet ID, and the rest is the data 01:58 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jxj4ja6 02:30 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/zu5jh8c 02:55 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/h2sla6p 03:11 < Not-9c26> [wiki] Edit by L3ctric to Server List -> http://tinyurl.com/zqamhuz 04:22 < Momo> Hey, does the server need to send any data to Mojang's servers when authing (when sending to https://sessionserver.mojang.com/session/minecraft/hasJoined?username=username&serverId=hash)? 05:36 < marvnfl> MC|BOpen was removed in 1.9? 07:12 < Momo> I would be very glad if someone could help me with this auth issue =) https://gist.github.com/MOMOTHEREAL/8da93660383dc8ed6d15 07:46 < Momo> Nevermind, fixed it. 09:17 < rom15044> Momo:https://github.com/Thinkofname/steven/tree/master/protocol 09:17 < rom15044> And yes you definitely should use/create a lib if you want to handle the whole Minecraft protocol 17:14 < Akaibu> anyone know if their is a minecraft rendering system in python already made? 17:15 < M4GNV5> according to http://wiki.vg/Client_List no 17:16 < Akaibu> been looking in the github area 17:16 < Akaibu> lot of stuff there tbh 17:16 < Akaibu> but can't find what i'm looking for 17:16 < Akaibu> yet 17:16 < Akaibu> i had already checked that list though, thanks M4GNV5 17:17 < Akaibu> wait,M4GNV5 aren't you the one that made that javascript/typescript to commandblock thing? or is that another person 17:27 <+ammar2> I made a renderer in python years ago, don't remember where the code is 17:27 <+ammar2> it didn't have lighting and ran really poorly though so probably wouldn't be much help 17:31 < rom1504> "javascript/typescript to commandblock" what's that 17:31 < rom1504> compiling js to minecraft commands ? 17:31 < rom1504> (what a terrible idea) 17:32 <+ammar2> there's js transpilers for everything 17:32 <+ammar2> what's another language 17:36 < Akaibu> https://github.com/M4GNV5?tab=repositories yea he did alot of X language to commandblock stuff that i haven't seen since i last saw it 17:42 < rom1504> I see 19:23 < M4GNV5> lol am i famous now? :O 19:24 < M4GNV5> didnt know my repos are known by anyone haha 19:31 < Sigfrid> Guys I recently bought a hosting for 1 year (big reseller package ) ... anybody needs hosting? free of course... I am not selling... Its just for take the best of the free resources.. (hentai and general porn is not allowed) 19:31 < rom1504> "Get 3 Sugar Cane, 4 Rabbit Hide, 2 Diamond, 4 Obsidian then craft in order 1 Leather, 3 Paper, 1 Book, 1 Enchantment Table" 19:31 < rom1504> http://rom1504.github.io/web-minecraft-crafter/ 19:32 < rom1504> recipe path finder :) 19:37 < M4GNV5> rom1504, it needs images ;) 19:40 < rom1504> definitely, that's what I'm doing next 19:41 < rom1504> going to display the recipes too 19:41 < rom1504> I have the recipes info, but I need images to display it nicely 19:43 < M4GNV5> prismarine-js 's minecraft-data doesnt include images? 19:43 < M4GNV5> maybe its the time for you to add it ;) 19:44 < rom1504> yeah we have an open issue about it, https://github.com/PrismarineJS/minecraft-data/issues/78 , I'm going to solve it now I think 19:44 < rom1504> (even if solving doesn't mean actually putting the images in the repo but just putting the mojang image file names or something) 19:57 < M4GNV5> hmmm yeah sounds reasonable, i guess otherwise you might get into legal trouble 19:59 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/hawt64b 20:16 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jfztaf3 20:17 < Not-9c26> [wiki] Edit by Fenhl to Pre-release protocol -> http://tinyurl.com/jm2axpv 20:21 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/zaypyh5 20:21 < Not-9c26> [wiki] Edit by Fenhl to Entities -> http://tinyurl.com/hc65q38 20:28 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jsmqmea 20:36 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/j9gz5wa 20:42 < Not-9c26> [wiki] Edit by Fenhl to Pre-release protocol -> http://tinyurl.com/hvjy72x 20:42 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/z8szksl 20:43 < Not-9c26> [wiki] Edit by Fenhl to Pre-release protocol -> http://tinyurl.com/h57t2a7 20:44 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/gogo8f6 20:45 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/jownqqn 20:52 < Not-9c26> [wiki] Edit by Fenhl to Template:See also -> http://tinyurl.com/hhmw36c 20:54 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jrfxczz 20:54 < Not-9c26> [wiki] Edit by Fenhl to Entities -> http://tinyurl.com/zxx9dv6 20:57 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jahwa3z 21:03 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/hclgcwv 21:08 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/hrkhny4 21:16 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/h94zdd3 21:23 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/gt8lfh3 21:30 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/hw8enye 21:32 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/zjwja74 21:35 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/z4de6mx 21:37 < Fenhl> edit spam \o/ 21:41 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jzn84ne 21:43 < rom1504> very edit much protocol 22:08 < Not-9c26> [wiki] Edit by Ingrim4 to File:Banner beta.png -> http://tinyurl.com/jj6pdha 22:09 < Not-9c26> [wiki] Edit by Ingrim4 to File:Banner beta.png -> http://tinyurl.com/jj6pdha 22:11 < Fenhl> that's a huge image :/ 22:14 < Not-9c26> [wiki] Edit by Ingrim4 to File:Banner beta.png -> http://tinyurl.com/zmmn32j 22:19 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/hrkrtlw 22:20 < Not-9c26> [wiki] Edit by Fenhl to File:Banner beta.png -> http://tinyurl.com/jj6pdha 22:21 < Fenhl> (if you're seeing a squished version of Ingrim4's image, clear your cache) 22:21 < Not-9c26> [wiki] Edit by Fenhl to File:Banner beta.png -> http://tinyurl.com/hoxy8fc 22:26 < Not-9c26> [wiki] Edit by Fenhl to Pre-release protocol -> http://tinyurl.com/jaek7pe 22:33 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/gsx2bnt 22:36 < Fenhl> wat 22:37 < Not-9c26> [wiki] Edit by Fenhl to Entities -> http://tinyurl.com/jdpheot 22:37 < tktech_> "Fight, fight fight!" 22:38 < rom1504> I'm not sure if he's aware we're talking about 1.9 22:39 < rom1504> well idk 22:39 < Fenhl> you know Ingrim4? 22:39 < rom1504> no 22:40 < rom1504> just saying his last edit to Entities look like he was trying to revert to 1.8 22:40 < rom1504> well, a little bit 22:42 < Fenhl> ah, I figured since you seem to know pronouns 22:51 < rom1504> I meant "wiki.vg" by "we" --- Day changed sam. mars 05 2016 01:58 < Not-8b17> [flying-squid] rom1504 pushed 1 commit to master [+0/-0/±1] https://git.io/v2bls 01:58 < Not-8b17> [flying-squid] rom1504 a17f47c - if the generation module is not on the array, try to require it : dynamic generation handling ! 02:21 < rom1504> https://download.rom1504.fr/minecraft/mc-voxel-worldgen-rust.png hansihe's rust voxel-worldgen is now used both in js and elixir :D 02:21 < hansihe> \o/ 02:40 < barneygale_> hold shit hans 02:55 < barneygale_> holy* even 02:56 < hansihe> that was almost an insult 02:56 < hansihe> :) 03:01 < Meeeh_> http://imgur.com/f9SKYxi nah, they broke animation of bow if used from off-hand 03:35 < pokechu22> BRB - running MCP and it's using up almost all of my RAM; I need to close this for the moment... 14:40 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/z8sqdzu 14:58 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/zun27dg 15:16 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/zxn85my 15:36 < Not-9c26> [wiki] Edit by Ingrim4 to Entities -> http://tinyurl.com/hdehhbk 17:25 < javaprophet> Does anyone know why the Set Passengers (0x40) packet doesn't have a count for it's array? 17:53 < Gjum> javaprophet: maybe it's always length 1 and when its not you know it from earlier packets, eg. the boat that can have 2 passengers has these 2 bool fields 17:53 <+Dinnerbone> It's a standard array type, which has a length. 17:54 < javaprophet> Yes, that could make sense. It could also be directly linked to the entity ID referenced. 17:54 < javaprophet> It's not noted on the wiki, http://wiki.vg/Pre-release_protocol#Set_Passengers 17:55 < rom1504> javaprophet: yes it is 17:55 < rom1504> "Only if Mode = 0 or 3 or 4. Number of players in the array" 17:55 < rom1504> http://wiki.vg/Protocol#Set_Passengers 17:55 <+Dinnerbone> You're looking at Teams. 17:55 < rom1504> ah right 17:55 < javaprophet> Yep 17:56 < rom1504> well anyway, it's just the count that is missing then 17:56 < rom1504> in the wiki I mean 17:56 < javaprophet> Alright, I'll add it in. 17:57 < javaprophet> Fenhl, I'm going to add a count to Set Passengers on Pre-Release Protocol 17:57 < Fenhl> okay, go ahead 18:00 < Not-9c26> [wiki] Edit by Javaprophet to Pre-release protocol -> http://tinyurl.com/gsxy8yn 18:01 < Not-9c26> [wiki] Edit by Javaprophet to Pre-release protocol -> http://tinyurl.com/gotu5en 18:08 < Fenhl> can anyone explain what the notes on Entity Relative Move are supposed to mean? 18:08 < Fenhl> it says Delta X is calculated as (currentX * 32 - prevX * 32) * 128 18:09 < javaprophet> I had an idea that they made the Fixed Point more precise, IE to get the actual value divide by 128*32. 18:09 < javaprophet> They also increased the size so it would make sense. 18:09 < rom1504> yes 18:09 < rom1504> and the change I made (4 -> 1024) is wrong 18:09 < Fenhl> but why write it like this? You could simply write it as (currentX - prevX) * 4096 18:09 < rom1504> I thought they increased the range of the move, but it's just for precision apparently 18:11 < rom1504> Fenhl: yeah I think that's the same thing 18:11 < Fenhl> someone please figure this out so I can merge a coherent packet documentation 18:39 <+Thinkofname> Grum: minor thing, the DataWatcher (or whatever you call it) writes the type of an entry as a varint and reads it as a byte. Not an issue in practice though 20:28 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/gq79jwx 20:32 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/z58ysvz 20:55 < rom1504> seems quite tedious to do that merging 21:16 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/jnkou5k 21:18 < Not-9c26> [wiki] Edit by Fenhl to Pre-release protocol -> http://tinyurl.com/h8yrvts 21:18 < web1509> Hello 21:19 < web1509> Is there a bundled archive of every page on the wiki available anywhere? 21:20 < Fenhl> you would have to ask tktech_ to provide one 21:23 < rom1504> web1509: you can do that https://www.mediawiki.org/wiki/Help:Export#Using_.27Special:Export.27 21:24 < Fenhl> huh 21:24 < Fenhl> TIL 21:24 < rom1504> http://wiki.vg/Special:AllPages + http://wiki.vg/Special:Export 21:25 < web1509> I knew MW allowed for something like that, thanks 23:02 < pokechu22> Ooh, new plugin channel in 1.9. "Mc|DebugPath". 23:03 < pokechu22> And MC|Struct, and MC|PickItem. --- Day changed dim. mars 06 2016 03:35 < Fenhl> pokechu22: looks like http://wiki.vg/Plugin_channel could use an update 03:36 < pokechu22> Yea, I'll do it once I get everything updated with WDL. 03:37 < Fenhl> awesome 04:51 < ecx86> so what's changed in the protocol? 04:51 < ecx86> also, elytra is client sided right? 04:59 < pokechu22> Everything for the first one, at least packet-id wise 05:00 < pokechu22> Here's a page with diffs: http://wiki.vg/index.php?title=Pre-release_protocol&oldid=7402 06:24 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/zd9xxx5 06:25 < pokechu22> MC|DebugPath is complicated. And I've got no clue exactly what it is doing... 07:25 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/zvl432u 07:29 < Not-9c26> [wiki] Edit by Pokechu22 to How to Write a Client -> http://tinyurl.com/he453v3 14:39 < rom1504> look at https://gist.github.com/rom1504/07bc62181014ef2514a8 if you are wondering what position datatype has not been used by mojang yet, so you can be innovative and create a new one ! 14:40 < rom1504> careful, mojang already has 7 position datatypes 16:28 < Not-9c26> [wiki] Edit by SirCmpwn to Client List -> http://tinyurl.com/zzymqf9 18:34 < ecx_> so Minecraft doesnt clamp angles. so then you can easily get to +/- 100,000 degrees if youre playing on hyperspeed for a while 18:34 < ecx_> then you get floating point imprecision and you only have like 1-2 decimal places of precision 18:34 < ecx_> great 18:40 < pokechu22> You can also look to NaN in some cases, though I think some custom servers prevent it... 18:41 < ecx86> dont even get me started 18:41 < ecx86> on how much shit 18:41 < ecx86> floating point imprecision has put me through in the last 5 days 18:45 < pokechu22> I remember the "good" old days where you could teleport boats to NaN (and also teleport yourself) 18:45 < pokechu22> https://www.youtube.com/watch?v=aI8uAnelfb8 and https://www.youtube.com/watch?v=COEPTD9OVd8 18:49 < pokechu22> Although, I thought the client _did_ clamp angles. It clamps them in F3, at least... 19:39 < javaprophet> Does anyone know if during logging in you still resend the Player Position And Look serverbound after the first clientbound in 1.9? I'm asking because of the new Teleport Confirm packet. 19:53 < pokechu22> Doesn't look like 1.9 changed the code for Join Game from 1.8. So I'm not sure. 19:54 < rom1504> pokechu22: btw, your http://pokechu22.github.io/Burger/1.9.html#packets:play_clientbound_40 is wrong 19:54 < rom1504> you are treating the array there as a varint 19:54 < rom1504> (it's http://wiki.vg/Pre-release_protocol#Set_Passengers ) 19:55 < rom1504> pokechu22: do you intend to PR your burger changes ? (or open the issues in your fork) 19:55 < rom1504> so I can report stuff somewhere else than in #mcdevs when you are there 19:55 < pokechu22> javaprophet: Actually, it looks like they still send the teleport confirm and then the PlayerPosLook packet. 19:55 < pokechu22> I do intend to open a PR with them eventually. Also, I _thought_ issues were open there; I'll go do that... 19:56 < javaprophet> Alright, Thanks. 19:56 < pokechu22> OK, issues are enabled - feel free to report stuff there. 19:57 < rom1504> https://github.com/Pokechu22/Burger/issues/1 19:57 < TobiX> pokechu22: Hahahaha, x: NaN :) 19:58 < pokechu22> That's interesting, 1.9 added writeIntArray and writeLongArray methods. I'll handle them. 20:10 < pokechu22> rom1504: Fixed 20:14 < rom1504> cool 20:15 < rom1504> pokechu22: what is missing before you consider it ready enough to PR it ? 20:16 < pokechu22> Recipies, blocks, and items all seem somewhat borked; I also need to verify that packets are set up right since issues like the one you've just seen are happening. 20:39 < javaprophet> Does anyone know why the 1.9 server wouldn't send a Player Pos and Look packet? 22:59 < Akaibu> just saw https://twitter.com/M46NV5/status/706102779266375680 although that guy isn't in here atm, isn't it because of copyright/legal reasons? 23:00 < Akaibu> because technically mcp is illegal, but mojang lets it slide due to the use of mods 23:00 < Akaibu> pretty sure thats right 23:04 < Gjum> Akaibu: as I understand it, mcp is legal beacuse it does not redistribute mojang stuff, and I think the mediafire link is just convenience 23:12 < pokechu22> MCP is open source, though, more or less... The entire runtime folder contains the code, and the other deobfuscators are open source. 23:12 < pokechu22> And IIRC mojang allows decompiling - the EULA says that you're allowed to mod and such and doesn't mention decompiling (unlike with some other games) 23:15 < nickelpro> Just because it's mediafire it's not OSS? lolwat 23:27 < ackpacket> Just took a look at the wiki.vg after having not done so for a year or more. It's come a long way, very organized! --- Day changed lun. mars 07 2016 02:24 < Not-8b17> [1.8-Models] drXor pushed 6 commits to 1.9 [+579/-72/±852] https://git.io/v2xam 02:24 < Not-8b17> [1.8-Models] drXor 0f25bfb - 1.9 update 02:24 < Not-8b17> [1.8-Models] drXor 84f38af - 1.9, first pass 02:24 < Not-8b17> [1.8-Models] drXor ccb03b8 - 1.9, second pass 02:24 < Not-8b17> [1.8-Models] ... and 3 more commits. 02:31 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+1/-1/±1] https://git.io/v2xar 02:31 < Not-8b17> [1.8-Models] drXor dd3c76b - Actually bump the version. 02:58 < Not-9c26> [wiki] Edit by Navid to Entities -> http://tinyurl.com/gv68mo2 03:31 < Aikar> Grum: are you at liberty to share what you guys broke in 1.9 with chunk changes? were trying to wrap our heads around it but so loss as to whats wrong. 03:32 < javaprophet> I think they did a Huffman-like compression in the protocol, not dont much research yet. 03:32 < Aikar> notably, on how making the FileIOThread sleep less and process its queue faster slows down chunk generation, but only bind between the thread and the main thread is the queue maps, so tried re-engineering that too but still didnt work 03:32 < Aikar> doesnt seem to be lock contention 03:32 < Aikar> and 1.8 didnt seem to have issue 03:32 < Aikar> but i cant see any difference between 1.8 and 1.9 on that 03:33 < Aikar> javaprophet: that would be on network threads, so shouldnt relate to chunk performance 03:33 < ughman> oh, is the 1.9 protocol not completely reversed? 03:33 < Aikar> talking about main thread performance 03:33 < Aikar> like md5 found https://bugs.mojang.com/browse/MC-98994 03:35 < ughman> wondering more about what javaprophet is talking about 03:36 < javaprophet> The chunk format was updated to use a palette which I think is like a lookup table that will allow you to "set block ids per chunk" for smaller chunk size. 03:36 < javaprophet> Just a guess, haven't implemented it yet in my client. 03:44 <+SinZ> I recall him mentioning something like that ages ago in here 03:45 <+SinZ> if a chunk was 100% dirt, you only need to mention dirt once 03:52 < ughman> perhaps something like a single-value palette of dirt and a data array length of zero? 03:53 < ughman> actually seems pretty smart to me 04:10 < rom1504> the 1.9 chunk format is documented in the wiki 04:10 < rom1504> has been for a while 04:13 < Hafydd> The topic says that the channel is "publicly logged." Where are the logs available? 04:16 < rom1504> Hafydd: https://logs.rom1504.fr/ 04:17 < Hafydd> rom1504: thank you. I suggest perhaps listing that somewhere, to make the "public" part true. 04:17 -!- Irssi: #mcdevs: Total of 156 nicks [1 ops, 0 halfops, 14 voices, 141 normal] 04:18 < rom1504> yeah, if an op can put that in the topic, Fenhl tktech_ ? 04:18 < Fenhl> I'm not an op 04:18 < rom1504> yeah I was wondering about that 04:18 < rom1504> ok 04:46 < ackpacket> Aikar: just curious, who's this grum, and what does he maintain? 04:46 < Aikar> not sure if your joking or just new lol 04:47 < ackpacket> New, left MC a couple of years ago to finish college and stopped fiddling with bots and such XD 04:47 < Aikar> hes one of the original bukkit devs that got hired by mojang 04:47 < ackpacket> gtfo, mojang brought him on staff? That's fantastic 04:47 < winny> how do i get back into minecraft? 04:47 < ackpacket> I wonder if they plant to open up their API, rendering bukkit unnecessary 04:47 < winny> I played the heck out of the snapshot and now it's released it's not new to me. 04:47 < Aikar> that was the goal 3 years ago 04:48 < Aikar> who knows when itll happen 04:50 < ackpacket> Last time I was working on mods, I tried to make everything work on the network level, which to be honest wasn't all that bad 04:50 < ackpacket> The gist of it was, allow all users to do whatever they want. Then at the network level implement anti-cheating 04:51 < ackpacket> aside from a few limits like forcibly moving mobs, it was a pretty nice setup 04:51 < ackpacket> ultimately though I think I was just making excuses to avoid dealing with bukkit 06:02 < ecx86> I hate the idea of an API. I would settle for nothing less than direct source access 06:05 < ackpacket> ecx86: You think that might cause some security issues all around? 06:05 < ecx86> that's what I've been in for 5 years... 06:05 < zml> because everyone loves classfile mods 06:05 < ecx86> I don't care about modding 06:06 < ecx86> currently, my primary job is Minecraft client/server RE 06:06 < ecx86> ie, the internals are critical to me 06:07 < ackpacket> you have a paid position working on a mc server? 06:07 < ecx86> not paid. 06:07 < zml> you're still like a very small portion of the population. because like 99.9% of people working with the source are trying to do mods 06:07 < zml> and a good api is the only way to go for that usecase 06:08 < ecx86> forge already is a good api 06:08 < zml> lol 06:08 < ecx86> and I'd rather have the option to control exactly what I do with the client... 06:08 < zml> you're funny 06:20 < Hafydd> Regarding the field of called "Tracking Position", if its only function is indeed to hide all of the markers on a map, it seems strange that the server would not just send an empty list of markers instead of setting it to false. Why would a new field be introduced, if that's the case? 06:21 < Hafydd> Does anybody know of a reproducible scenario in which the official 1.9 server sends a Map packet with that flag set to false? 07:53 <+Grum> I wonder if they plant to open up their API, rendering bukkit unnecessary <-- which API? Notch hardcoded every single thing 10:33 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-moment-2.12.0 12:02 < Not-8b17> [Charge] bhelyer pushed 1 commit to master [+0/-0/±1] https://git.io/v2p6S 12:02 < Not-8b17> [Charge] bhelyer 1205124 - sys: Fix file argument type on cFree. 13:30 < ughman> ouch 16:42 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+0/-0/±5] https://git.io/v2haf 16:42 < Not-8b17> [1.8-Models] drXor a43f5f9 - Fix the crafting table. Thanks Scruffy. 16:42 < ScruffyRules> You're welcome! 17:05 < Not-8b17> [Glowstone] mastercoms pushed 1 commit [+0/-0/±1] https://git.io/v2hPR 17:05 < Not-8b17> [Glowstone] mastercoms 7007143 - Change it to correct IRC channel 17:28 < Akaibu> Grum: at this point I don't think there is any code from notch still left in the game 17:32 <+Amaranth> lmao, ha 17:32 <+Amaranth> Akaibu: It's still mostly his work, I'd say 17:36 < pokechu22> Nah, I'm pretty sure furnace minecarts are unchanged :P 17:36 < pokechu22> Though I still like using them for the few cases where they make sense. 17:48 < barneygale> furnace minecarts make sense? :o 19:14 < ackpacket> Grum: which API? Notch hardcoded every single thing <--- well, any, I suppose. Even if that means creating one. It'd be nice to have the ability to let plugins work with a vanilla server 19:14 < ackpacket> Grum: I know a lot of servers that refuse to update because they have to wait on bukkit. 19:15 < pokechu22> There already is a spigot for 1.9, although it's kinda unstable. 19:27 < pokechu22> I suppose I should link this: https://redd.it/49buyn 19:27 < pokechu22> The guy there incorrectly assumes that it's mojang who's documenting packets, but it's still possibly something to consider. 19:32 < ackpacket> pokechu22: forgive me if I'm unfamiliar but does spigot serve the same purpose as bukkit? 19:33 < pokechu22> Spigot (http://spigotmc.org) is basically bukkit with performance improvements and without being DMCA'd. It's got the same API. 19:34 < ackpacket> if it's as simple as that I can't believe anyone would ever choose bukkit at all 19:35 < ughman> what are the practical effects of "without being DMCA'd" 19:46 <+AndrewPH> ughman: being available 19:46 <+AndrewPH> (probably) 19:46 <+Grum> ackpacket: for plugins to work that means being able to reach internals and change them ... 19:47 < ughman> oh so bukkit is actually dead? 19:47 <+ammar2> bukkit as in the api is fine 19:47 <+ammar2> well fine as in its not taken down 19:47 <+ammar2> but its not being updated 19:47 <+Grum> wolverness murdered bukkit for some unknown reasons 19:48 < pokechu22> Well, spigot and bukkit are the same, in a way. Spigot actually also comes with an updated craftbukkit. The thing is, you have to decompile and build it from scratch, though they have a script for that. 19:48 <+Grum> s/bu/craftbu/ 19:48 <+ammar2> craftbukkit, the main implementation of bukkit based on the vanilla server is highly dead though 19:49 < rom1504> "highly dead" :D 19:49 <+ammar2> well dead as in it was created with a license that wasn't really thought out to begin with, its just that no one really cared 19:49 <+ammar2> up until someone did 19:49 <+ammar2> and now its dead :^) 19:50 <+ammar2> but then again I doubt anyone who chose the license thought one of the own developers would take it down 19:50 <+ammar2> the only real "threat" at that time was mojang 19:50 <+Grum> until someone abused that to murder a community project and violating the license it tried to invoke >.> 19:50 <+ammar2> such is life 19:51 <+Grum> yup 20:06 < Not-9c26> [wiki] Edit by Pokechu22 to Pre-release protocol -> http://tinyurl.com/gq4bbub 20:09 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/hdmoacb 20:31 < Not-9c26> [wiki] Edit by Pokechu22 to Template:LoadPage -> http://tinyurl.com/zojl7aa 20:32 < Not-9c26> [wiki] Edit by Pokechu22 to Template:LoadPage -> http://tinyurl.com/zvez82z 20:37 < Not-8b17> [Charge] Wallbraker pushed 1 commit to master [+0/-0/±1] https://git.io/v2jws 20:37 < Not-8b17> [Charge] Wallbraker 7278e4f - power: Some test code 20:37 < pokechu22> OK, I'm guessing wiki.vg doesn't support load-page? I'm trying to create a collapsible section for a list of sounds. 20:41 < pokechu22> TkTech, can you delete http://wiki.vg/Template:LoadPage? It doesn't work and I don't think I should leave a broken template up. 21:52 < Akaibu> whats with the domain name you guys choose for minecraft protocol docs anyway? 21:54 < williammck> Akaibu: wiki.vg (vg = video game) 21:54 < williammck> at least that's how I've seen it explained 21:55 < Akaibu> well if that is the case, i say its really a waste of a domain 21:56 < williammck> to each their own 21:57 < Akaibu> kinda like how jesusfuck.me is a fail domain use 21:57 < williammck> ok 22:00 < pokechu22> .vg was originally for the virgin islands - https://en.wikipedia.org/wiki/.vg 22:00 < williammck> pokechu22: yup 22:00 < Pyker> is it now for videogames? 22:00 < williammck> still officially for the virgin islands 22:01 < pokechu22> Video games are the major use case, though officially it's for the virgin islands. 22:01 < williammck> ^ 22:10 < cookiemonsta> Anyone here? 22:12 < williammck> he only waited a minute and a half 22:12 < williammck> that's disappointing 22:59 < ackpacket> Anyone here familiar with turtle graphics? 22:59 < ackpacket> or Snap!, or Scratch 23:00 < ackpacket> (not an ask to ask, heh) 23:00 < ecx86> why do you ask? 23:00 < ackpacket> Just wondering how far it's reputation has gone 23:01 < ackpacket> Well I recognize that the purpose of something like turtle graphics is to teach someone to program, or at least start thinking like a programmer. I've been considering implementing something similar for minecraft, it might be much more engaging. 23:01 < ackpacket> Imagine how captivated people would be if they could write a program to automate something their character does 23:01 < ackpacket> It'd force them to learn some really useful concepts 23:02 < ecx86> i learned programming by writing cheats in minecraft a long time ago 23:04 < ackpacket> Think of how many more people might go on to become devs if only they were exposed to a richer first impression 23:08 < pokechu22> I think ComputerCraft has a turtle graphics mode now. 23:09 < pokechu22> I mean, a scratch-like mode. ComputerCraft has always had turtles :P 23:11 < pokechu22> Wait, it's a separate package related to MinecraftEDU: http://computercraftedu.com/ 23:29 < ecx86> the best way to learn programming is by programming 23:29 < ecx86> not in a videogame 23:29 < ecx86> thats my opinion --- Day changed mar. mars 08 2016 00:07 < Aikar> Grum what does this new "Navigation Listener" as md5 named it do? public void a(World world, BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) { 00:07 < Aikar> why does that need to be pinged every block physics 00:10 < Aikar> adding such slow code to a physics event wasnt good :( 00:14 < Aikar> where do you put server jar file for MCP? 00:14 < Aikar> or is that automatic now? 00:38 < pokechu22> IIRC you just put the server jar file in the jars folder. I haven't tried it though 01:07 <+Amaranth> Aikar: Got some fun for you: http://i.imgur.com/DeLyx8T.png 01:07 <+Amaranth> Collisions between every entity are checking for the scoreboard collision rule 01:16 < Aikar> ... 01:17 < javaprophet> Is scoreboard rule checking intensive? If so, I imagine that entities don't collide all that often to warrant micro-optimizations 01:17 < Aikar> Grum, can i contract for mojang to review ideas for changes like this to stop them before they get made >_>? 01:17 < Aikar> javaprophet, farms cause tons and tons of collisions 01:17 < Aikar> its a major source of lag 01:17 < Aikar> I wrote some code to cap max collisions per entity per tick 01:17 < Aikar> it helps a ton 01:17 < javaprophet> Very true. But is it intensive? 01:17 < Aikar> its hot 01:18 < Aikar> so adding stuff like that, look at amaranths screenshot 01:18 < Aikar> i run with 4000-8000 entities with just 30-50 players 01:18 < Gjum> "entities don't collide all that often" farms :P 01:19 < javaprophet> I don't play MC that much ironically. :P 01:19 < Aikar> ive made such major gains in performance in 1.8, now 1.9 undoes it all :( 01:19 < javaprophet> Despite writing my own client and bot. 01:19 <+ammar2> nice gains Aikar 01:19 < Gjum> caching might help? the entities dont change group that often I guess 01:19 < Aikar> sad that my hopper fix didnt make 1.9 01:19 < javaprophet> Aikar, if you want massive gains, I'm rewriting the whole game in C. 01:19 < Aikar> javaprophet, meh java isnt the issue, bad logical decisions are mostly the issue :P 01:20 <+ammar2> javaprophet: good luck 01:20 < Aikar> you can run into the same issues mojang has with java, in C, if you make the same mistakes 01:20 < javaprophet> Exactly, but doing a rewrite, I chose C rather than Java to A. run native for what that's worth, and B. avoid too much OO design. 01:20 < Gjum> isnt that what mojang does too with mcpe? 01:20 < Aikar> but those arent the problems the game has 01:20 < javaprophet> Couldn't be better said. 01:22 <+ammar2> the usual problem with rewriting the game is it has far too many features at this point 01:22 <+ammar2> getting to feature parity is hard as fuck 01:22 < Aikar> yeah.... 01:22 < Aikar> look at the 30 other rewrites 01:22 <+ammar2> especially if you're trying to copy the weird ass mechanics 1:1 01:22 < Aikar> none of them are complete 01:22 < javaprophet> I've found MC is deceptively simple, once you giver a good go. I wrote a bot in a week that did all kinds of nutty things with a full "Minecraft Model", just lacking rendering. 01:22 < Aikar> if your not trying to rebuild MC, sure 01:23 < Aikar> if your just looking to use it as a basis for another game type, that uses the mc client 01:23 < Aikar> then i guess you might get somewhere 01:23 < javaprophet> I'm doing my first rendering client, which already has networking and rendering, and I'm working on patching it all together. 01:23 <+ammar2> the rendering isn't too hard 01:23 <+ammar2> I'm talking about game features 01:23 < javaprophet> I'm aiming for a graphical and protocol-level compatibility. 01:23 <+ammar2> like inventory/items/enchancement/etc 01:23 < Aikar> if your also writing a client, you might as well consider it a separate game 01:23 < javaprophet> That's the easy part IMO. 01:23 < Aikar> and dont associate it with mc at all for legal reasons 01:24 <+ammar2> its "easy" but its a lot of work 01:24 < javaprophet> I so would, but I lack graphical/modelling resources. 01:24 < Aikar> opengameart 01:24 < javaprophet> So much so that it's easier for me to copy another games and make no money, because I can't afford a GFX designer in any way. 01:24 < rom1504> Gjum: mcpe official server for users is in php 01:24 < Aikar> (google it) 01:24 < javaprophet> EWW, PHP? 01:24 < Gjum> wth 01:24 < Aikar> yep... but its not that bad 01:24 < Aikar> its using async IO with the React framework 01:25 < javaprophet> Still, PHP is the slowest language I know. 01:25 < Aikar> I wrote my own Async IO framework 9 years ago >_> 01:25 < Aikar> for PHP 01:25 < ackpacket> javaprophet: are you rewriting a server or a client in c? 01:25 < javaprophet> I hope to god they atleast have HHVM. 01:25 < javaprophet> ackpacket, a client, then a server too. 01:25 < Aikar> i believe it does use hhvm? 01:25 < rom1504> at least that php code is opensource ! 01:25 < ackpacket> Aikar: are you a contributor to MC? What did you mean earlier when you talked about your fixes for 1.8? Just personal local optimizations? 01:26 < javaprophet> http://screencloud.net/v/7Fqc 01:26 < rom1504> apparently they also have a mcpe server in c++ but you can't get it, it's for internal usage for realms or something 01:26 < Aikar> ackpacket, Im one of the main people working in the Spigot community on performance improvements, and ive been passing them to Grum 01:26 < Aikar> though I work w/ Paper now mostly 01:26 < Aikar> few of my findings made it to 1.9 01:26 < ackpacket> Oh, nice. Like what? 01:26 < Aikar> just didnt find the fix to Hopper lag till too late 01:27 < Aikar> one was chunk writing to disk was spamming byte[1] allocations, massively ineffecient writing 01:27 < Aikar> grum said he knew it was happening, but didnt realize the fix was so easy lol 01:27 < ackpacket> er... what's the issue with things like that (oddly written code), isn't mojang hiring good devs? 01:27 < Aikar> and cant remember what the other one was 01:28 < Aikar> that wasnt really 'bad code' 01:28 < javaprophet> Aikar, I highly recommend tick regions if your server doesn't do it already. 01:28 < Aikar> just a bad pipeline for data streams 01:28 < javaprophet> I read about in Glowstone or something, and it sounds fascinating. 01:28 < Aikar> javaprophet, what? 01:28 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+25/-1/±0] https://git.io/vaeiq 01:28 < Not-8b17> [1.8-Models] drXor cf37e71 - 1.9 items! 01:28 < Aikar> javaprophet, note my specialty is entities, is why amaranth sent me that link :P 01:28 < javaprophet> Tick regions, separating out groups of chunks in a single thread. 01:28 < Aikar> thats very hard to do properly 01:28 < javaprophet> It allows much better MT I think. 01:29 < rom1504> XorBoole: 1.9 doesn't go in a 1.8 branch, fix it :p 01:29 < Aikar> yes, in vanilla sure 01:29 < Aikar> but we have to worry about API 01:29 < javaprophet> Glowstone did it, I'm certainly going to in my server. 01:29 <+ammar2> it also likely breaks a lot of vanilla mechanics 01:29 < Aikar> glowstone is a fresh rewrite 01:29 < Aikar> we work off patches to vanilla 01:29 < Gjum> rom1504: branch is 1.9, project name is 1.8 ;) 01:29 < rom1504> ah 01:29 < Aikar> so we have to keep the patches sane to apply 01:29 < rom1504> so it's the project name that is wrong 01:29 < Aikar> avoid changin too much 01:29 < rom1504> that's what to fix 01:29 < javaprophet> I know, but it would be amazing. 01:29 < ackpacket> Aikar: this might be a result of my experience with java, but, how do you make so many edits/optimizations to the game? Does java decompile into source that's actually readable/usable? 01:29 < javaprophet> And it' 01:30 < Aikar> ackpacket, bukkit started its own deobfuscation mappings 01:30 < Aikar> sadly they arent as good as MCP 01:30 < ackpacket> MCP? 01:30 < Gjum> coder pack 01:30 < Aikar> oh righ your that new guy 01:30 < ackpacket> -.- lol 01:30 < Gjum> "new" ^^ 01:30 < javaprophet> it's not gamebreaking if you do it right I think, I would seperate chunk areas with their own entity lists, etc, and then process, allow crossover w/o reload, etc. 01:30 < Aikar> Minecraft Coder Pack deobfuscates the server/client into readable code 01:31 < ackpacket> is that how folks are making their custom clients? 01:31 < javaprophet> Basically coordinate-synchronized multiworld, and with the ability to be partially in two. 01:31 < Aikar> ackpacket, sorry lol i just expect everyone in here to know that basic stuff so i was confused :P 01:31 < Aikar> yes 01:31 < Aikar> Bukkit community focuses on server only 01:31 < javaprophet> As in an entity in both "worlds", the same object in two lists, receives data from both regions 01:31 < ackpacket> Aikar: I see... and MCP does a pretty decent job of it? 01:31 < javaprophet> etc 01:31 < Aikar> yes, the Forge community rapidly updates mappings 01:32 < ackpacket> god bless community achievable goals 01:32 < Aikar> most of mc stuff happens over on Esper IRC net though 01:32 < Aikar> and spigot 01:32 < Aikar> this is the one oddball channel :P 01:32 < ackpacket> javaprophet: you're like, 1 of 50 people writing a new client they think will be faster btw XD 01:33 < ackpacket> Aikar: well, freenode has always had a little bit of everything 01:33 < javaprophet> I have no idea and don't care if mine is faster, I'm doing it for the experience. 01:33 < javaprophet> I would certainly like to try and make it faster to see if I can beat Mojang, literally at their own game. 01:33 < Aikar> ackpacket, basically in the spigot server, the script will download the server jar file, remap many methods/variables to readable names, then decompile 01:33 < ackpacket> javaprophet: I'd love to do that too but I'm right in the middle of interviews =\ 01:34 < ackpacket> Aikar: so then, if I wanted to, I could go look up the source right now? 01:34 < Aikar> then CraftBukkit is an old project that got abandoned by the Bukkit team due to legal drama, that took Vanilla, added the Bukkit API, but kept it very vanilla 01:34 < Aikar> CB applies patch files on top of the vanilla decompiled source 01:34 < Aikar> and yes 01:35 < Aikar> then Spigot applies furthur patches ontop of CB, applying performance improvements and other features that might skew vanilla 01:35 < javaprophet> I think that someone should recode the whole server in C to be better threaded and optimized and what not. Even master-master load balancing. 01:35 < javaprophet> As someone who's written five or so protocol daemons in both Java and C, C is much better for networking. 01:36 < ackpacket> javaprophet: Eh. Idk about that. What's the logic behind that? 01:36 < Aikar> Forge on the other hand, goes drastic 01:36 < Aikar> its capabilities greatly deviate from vanilla and usually requires client mods 01:36 < ackpacket> What really eats me back when I wrote a few plugins for fun, is that there are a wealth of events you'd like your plugin to respond to that just aren't available in bukkit 01:37 < javaprophet> In Java, one GET request for a static page took ~1 ms for a full featured Java HTTPD, and ~0.01 MS for one in C from a newbie C dev. 01:37 < ackpacket> though for the life of me, I can't remember what they were 01:37 < ackpacket> javaprophet: sounds very anecdotal 01:37 < Aikar> Then theres Sponge, started to resolve the legal drama that hit Bukkit 01:37 < rom1504> javaprophet: assembly is even better 01:37 < javaprophet> If you want, both projects are in my github, if you would like a link to try yourself. 01:37 < Aikar> its based on Forge but can run w/o client mods if you dont use forge mods 01:37 < rom1504> there's a classic server in assembly 01:37 < javaprophet> Assembler is not portable like C or Java though. 01:38 < ackpacket> javaprophet: if you can't explain why you're seeing what you're seeing, the data isn't much use 01:38 <+ammar2> rom1504: debatable 01:38 < javaprophet> I can, it's running natively. 01:38 < rom1504> yes and c is not as easy to write as anything else javaprophet 01:38 <+ammar2> at the amount of code you'd be writing, most optimizing compilers will easily beat your hand written assembly 01:38 < rom1504> ammar2: yes, I was kind of ironic 01:38 < ackpacket> javaprophet: I believe you that it happened, and that some odd GET request took longer. But it's a harder case to extend that logic to "therefore, all networking in java is slower than in c" 01:38 < javaprophet> As someone who has written a MC Bot in Java, and a Client in C, C is not harder once you get into it. 01:39 < rom1504> because you'll have to write ton of ugly code in c 01:39 < rom1504> versus most other languages 01:39 < javaprophet> Perfectly true, I love ugly code myself, but I get your point. 01:39 < Gjum> c is so old, people found ways around ugly code 01:39 < javaprophet> If yall don't believe me, that's fine. I'm not here to argue my point. 01:39 <+ammar2> I find c to be pretty readable 01:40 < Aikar> and then when you screw up your memory management, and spend tons of time debugging mem leaks :P 01:40 <+ammar2> meh 01:40 <+ammar2> don't make mistakes 01:40 < ackpacket> javaprophet: I would love to take a look at your sourcecode for the bot, see how it was architect-ed. Just for fun 01:40 < javaprophet> I'm stating my intention to at some point, write a very optimized server in C. 01:40 < rom1504> if you find c readable, go read the linux kernel a bit, and come back 01:40 < Gjum> sounds like you havent worked on uni homework projects in c yet 01:40 < javaprophet> ackpacket, my Java Bot is propietary, sorry. 01:41 < ackpacket> javaprophet: I've written one as well, tbh I'm only interested in comparing structural choices 01:41 < Aikar> ammar2, for simple things its easy not to, but what about that objct that needs to live long term, then deciding when it should die, and ensuring every ref to it is cleared up :P 01:41 <+ammar2> I've done both, linux kernel and uni homework in C, still like it and find it fairly readable 01:41 < ackpacket> javaprophet: but I understand 01:41 < Aikar> easy to mess up 01:41 < javaprophet> I've had some experience with memory corruuption, segfaults, my only response is valgrind and it's fixed in 15 seconds flat. 01:41 <+ammar2> Aikar: maybe if you're BAD 01:41 < Aikar> grums name is lit up but hes not giving us love :( 01:41 < Aikar> <3 you grum, plz talk?! 01:41 <+ammar2> he's probably asleep 01:41 < javaprophet> ackpacket, I more or less ended up with an architecture akin to MC 1.2.5 01:42 < Aikar> is his client faking 'not away'? lol 01:42 < rom1504> most client don't auto-away 01:42 < Aikar> what one doesnt based on inactivity? 01:42 <+ammar2> here's a better way 01:42 < Aikar> wtf hes using mIRC 01:42 <+ammar2> do a /whois Aikar Aikar 01:42 < Aikar> the 90's want their client back 01:42 <+ammar2> see idle time 01:42 < ackpacket> javaprophet: I don't know what MC 1.2.5 is like, sorry 01:43 < ackpacket> javaprophet: not from a code perspective 01:43 < javaprophet> I didn't over-object-orientate my code. 01:43 < javaprophet> I used static variables to define items, etc. 01:43 < Aikar> omg they are gonna lynch you 01:43 <+ammar2> but guys object orientation is a zero cost abstraction :P 01:43 < Gjum> i know people actively writing plugins for mirc right now 01:43 < Gjum> it's still very popular in windows world 01:43 < Aikar> alright time to go home 01:43 < javaprophet> IKR. Regardless of performance, I dislike extra abstaction. 01:43 < ackpacket> I used mirc when I first registered, 11.5 years ago XD 01:44 < javaprophet> In C, one uses OO when needed, but for the most part isn't. 01:44 < ackpacket> javaprophet: abstraction makes collaboration easier. When you build a large system it behooves you to "set aside" certain parts of knowledge that are only distracting 01:44 < javaprophet> Most Java devs hated me, because I naturally coded more like a C dev, hence I now do C. 01:45 < javaprophet> I abstract of course ackpacket, but I don't overdo it, to the degree that's good for me personally. 01:45 < Gjum> > cProphet 01:45 < javaprophet> It doesn't roll off the tongue as nice. :P 01:46 < ackpacket> Who lives in a compiler that's working on C 01:46 < Gjum> ja! va! pro! phet! 01:46 < ackpacket> Gjum: +1 01:46 < Gjum> C: 01:50 < javaprophet> I don't understand the joke, the compiler is the simplest part of C? 01:52 <+ammar2> spongebob 01:52 < javaprophet> I get that part. 02:12 < Aikar> i dont htink OO is a real issue in the mc code base. over engineering in some places, yes 02:13 < Aikar> like IWorldAccess until 1.9 only had 1 entry in the list, but used an array list and iterated it 02:13 < javaprophet> I can agree with that, MC is very overengineered. 02:13 <+ammar2> Aikar: you're the real issue in the mc code base 02:13 < Aikar> im in the mc code? 02:13 <+ammar2> yes 02:13 < Aikar> am i the snowman? 02:13 <+ammar2> no 02:14 <+ammar2> you're the tick method 02:14 <+ammar2> aka the hottest piece of code 02:14 < Aikar> you just called me fat, those be fighting words 02:14 < rom1504> mc has too many classes 02:14 < javaprophet> Aikar, since you seem to like optimizing a lot, once I prove the my Client will go to completion, let me know if your interested in participating. 02:14 < javaprophet> I'm fairly certain I'll make is OS. 02:14 < Aikar> i have way too much work to do lol 02:15 <+ammar2> rom1504: maybe its just very classy code 02:15 < Aikar> and no way id ever move my server to it :P java has too much going for it to let go 02:15 < Gjum> does the jvm optimize at runtime? eg inline class method code? 02:15 < __0x277F> Even if a C/C++ server was orders of magnitude higher performance 02:16 < Aikar> yes 02:16 < javaprophet> I understand. :) Is it true that MC sends chunks one-per-packet now? 02:16 < Aikar> in 1.9 yes 02:16 < __0x277F> I think so 02:16 < Gjum> yep, no chunk-bulk anymore 02:16 < javaprophet> I'm glad, seems cleaner, hopefully didn't degrade performance. I imagine the new palette thing is very effective. 02:17 <+ammar2> Gjum: java code is usually interpreted but if the jvm profiles code and finds hotspots it'll try to compile those hot pieces of code to native code with lots of optimizations 02:17 < rom1504> ammar2: it's definitely classy code :d 02:17 <+ammar2> unfortunately for minecraft I think a lot of methods are too complex to be JITd 02:18 < Gjum> btw has anyone reimplemented the new chunk format yet? because I am about to and like some inspiration 02:18 < javaprophet> I'm literally doing that right now Gjum. 02:18 < Gjum> c right? 02:18 < javaprophet> Yes. 02:18 <+Amaranth> ammar2: It always JITs now 02:18 <+Amaranth> Since 1.7 02:19 < rom1504> I think only closed-source implementation of the chunk format have been done 02:19 < rom1504> *1.9 chunk format 02:19 <+Amaranth> Turns out applying the fairly fast "client" JIT to everything means the code runs fast enough to get better profiling data from it to aim the "server" JIT 02:19 < Gjum> I heard mc for win ships its own jvm, does that help with jit'ing? 02:19 < javaprophet> My project is technically CS atm, but I have no intention of keeping it that way, I'm just to lazy to make a git. 02:20 < javaprophet> If I'm reading the wiki right, the new chunk format is x, z, y? 02:20 < rom1504> git init ; git add . ; git commit -m "so big commit" ; git remote add origin git@github.com:javaprophet/CClient.git ; git push -u origin master 02:20 < rom1504> done 02:20 <+ammar2> Amaranth: sorry I'm confusing it with inlining 02:20 <+ammar2> it'll only inline methods of a certain size 02:20 < javaprophet> I know, but I've been lazy with git :P 02:20 <+Amaranth> Aikar: btw I'm doing tracing now instead of sampling and the scoreboard lookup is only 3% CPU time there 02:21 <+Amaranth> And this is a collision stress test, I put enough sheep in a 1x1 to make the server run at less than 10 ticks per second to test walltime things 02:21 <+Amaranth> So I guess the sampler was just unluckily always landing in that method even after 20 minutes 02:22 <+Amaranth> Or tracing has deoptimized the rest enough that scoreboards aren't the slowest thing anymore, hard to say 02:24 < javaprophet> https://github.com/JavaProphet/MinecraftClone 02:25 < javaprophet> You'll find world stuff in world.c/h and the networking in well, network.c/h 02:25 < javaprophet> I've not finished, or really started worlds. 02:25 < Gjum> is it still 1.8 or just api atm? 02:25 < javaprophet> 1.9 02:26 < javaprophet> It's not an api, but a client. 02:26 < javaprophet> Excuse the massive functions and if statements. :) 02:26 < Gjum> well I meant the 1.9 stuff but incomplete, just the function names etc 02:26 < Gjum> which is kinda an api 02:26 < Aikar> Amaranth: inconsistencies like that is why i like timings :/ 02:26 < Gjum> alright, thanks, taking a look :) 02:26 < javaprophet> All of the reading/writing is 100% complete. 02:27 < javaprophet> And mildly tested. 02:27 < javaprophet> However, I pushed off serializing chunks into the ingame.c 02:27 < javaprophet> Which has two lines so far in chunk handling. 02:28 < javaprophet> I'll try to avoid acronyms in the variable names for you :) 02:28 < Gjum> heh, I don't care, as long as they're not aaa, aab 02:28 < javaprophet> Also be VERY warned, the entire read packet system is a big ol memory leak. 02:29 < javaprophet> I've not made a system to free packets in memory yet. 02:29 < rom1504> Gjum: ☃.a is the best 02:29 < Gjum> !! 02:30 < Gjum> oh, does c inline the } else if (pkt.id == PKT_PLAY_SERVER_EFFECT) { like it does with switch-case? 02:30 < Aikar> when you run reobfuscate.sh where does it output the jar? 02:30 < javaprophet> I think most C programmer do that, yes. 02:31 < javaprophet> I do that in Java and C. 02:31 < javaprophet> Or are you not referencing the brackets? 02:32 < Gjum> I heard the compiler converts the case values into a constant-time function + jmp 02:32 < Gjum> which is faster than checking all ifs after each other 02:32 < javaprophet> Ah yes, the C compiler does a lot of that kind of stuff. 02:32 < Gjum> so it does that too for elseif? 02:33 < javaprophet> I hope so, because I hate switches. 02:33 < javaprophet> Knowing GCC, probably. 02:33 < javaprophet> I'm not so concerned about network performance as long as minimal hanging. 02:33 < Gjum> yeah the overhead in your case is minimal 02:34 < javaprophet> However had that been in the render thread, benchmarks would be done. :P 02:34 < rom1504> have a function pointer array 02:34 <+ammar2> gcc does a shit ton of fancy optimizations 02:35 < Gjum> rom1504: wouldn't be much better than a const time jump 02:35 < Gjum> but maybe cleaner code... hmm 02:35 < javaprophet> And regardless, as Gjum said, it performance isn't a large concern there. 02:35 <+ammar2> for example if you do int sum = 0; for (int i = 0; i < 1000000000; i++) { sum += i; } it'll turn it into a constant time operation 02:35 <+ammar2> loop unrolling I think its called 02:36 < Gjum> functional languages live only because of that :D 02:36 < rom1504> Gjum: yeah it would just improve code a little bit. But it's C anyway, so let's not worry about it :p 02:36 <+ammar2> it'll substitute it out for the general formula n(n+1)/2 02:36 <+ammar2> which is quite amazing in my opinion 02:36 < Gjum> ammar2: is that formula hardcoded or does gcc generalize and figure it out itself? 02:36 < rom1504> oh really oO 02:37 <+ammar2> Gjum: its a generalization 02:37 < rom1504> does it do it for sum+=i*i; too ? 02:37 <+ammar2> maybe? 02:37 < javaprophet> Does anyone know if the palette length is in varints or bytes? 02:37 <+ammar2> http://blog.xebia.com/gcc-compiler-optimizations-dissection-of-a-benchmark/ 02:38 < Gjum> javaprophet: wiki says varint 02:38 < javaprophet> TY 02:38 < rom1504> http://wiki.vg/SMP_Map_Format 02:38 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+1/-0/±1] https://git.io/vae9u 02:38 < Not-8b17> [1.8-Models] drXor 149b41d - Fix iron bars. 02:38 < javaprophet> I'm on that page, but I didn't see nothin. 02:38 < Gjum> Palette Length Optional VarInt Length of the following array 02:39 < javaprophet> But length in varints or bytes? 02:39 < javaprophet> Not the type of it. 02:39 < Gjum> oh 02:39 < javaprophet> I'll assume varint and see if it works. :P 02:40 < Gjum> yeah I'd assume #varints 02:40 < rom1504> ammar2: interesting 02:45 < javaprophet> So, metadata in the palette, how does it work? 02:47 < Gjum> javaprophet: isnt the desc below enough? 02:47 < javaprophet> It explains it for 13 bits, but w/b 12? or 3? 02:47 < javaprophet> or 16? 02:48 < Gjum> well meta is always 4 I assume 02:48 < Gjum> or we would have colored_hardened_clay_stair 02:51 < Gjum> is there a quick way to get the len in bytes of a number when I varint-encode it? 02:52 < Gjum> ie. 123 -> 0, 999 -> 2 or so 02:52 < javaprophet> Check my writeVarInt (_stream) functions in network.c 02:52 < Gjum> ok 02:52 < javaprophet> It returns an int of how long it was to keep track of buffers and such. 02:53 < Gjum> umm, it's always 0 oO 02:53 < Gjum> ... for _stream 02:54 < javaprophet> Ah, yea, because once it's written to stream, it's not relevant. 02:54 < javaprophet> Look at the other, and if needed make it call write rather than write to the buffer. 02:54 < Gjum> right 02:55 < Gjum> so, it's about log2(input) / 7 02:55 < Gjum> right? 02:55 < javaprophet> I'm a bit shoddy on my logarithms, but probably. 02:55 < Gjum> well bits in input, divide into groups of 7 02:56 < Gjum> because 8th bit is final-flag 02:56 < javaprophet> Yea 02:59 <+ammar2> (log2(input) / 7) + 1 03:09 < Gjum> javaprophet: wanna share test data? (packet dump, result parts) 03:09 < javaprophet> Sure 03:09 < Gjum> also, does the pallette order seem random for you too? 03:10 < javaprophet> I haven't started testing yet, I'm taking a break atm. 03:10 < Gjum> ok :) 03:10 < javaprophet> I sent you a PM 03:21 < ackpacket> ammar2: loop unrolling would be if the compiler were to take each step of the loop and try to perform that step multiple times before doing any of the bookkeeping of the loop. This avoids overhead 03:22 < ackpacket> ammar2: in extreme cases it becomes "fully unrolled", and there is no actual loop. Just the operation you're doing, N times 03:22 <+ammar2> ackpacket: yeah sorry its variable induction I was thinking of 03:22 < ackpacket> ammar2: but what you're talking about is slightly different, it's where the compiler calculates what the result should be after the loop, and just assigns that value 03:22 <+ammar2> https://en.wikipedia.org/wiki/Induction_variable 03:22 < ackpacket> ammar2: I agree though overall we've come a long way and such things are pretty sweet :D 06:43 < walle303> Does this channel provide support for BungeeCord? I'd like to know if its possible to redirect older clients to a different backend 06:44 < javaprophet> This is more for the people writing things like Bungeecord, but you might be able to PM the creator if you know his name. 06:44 < javaprophet> He's likely here. 06:46 < walle303> Yeah, he is here, but has been idle for 122 hours 06:46 < javaprophet> Ping or PM him, he likely doesn't actively monitor it unless buzzed in some way. 06:46 < javaprophet> However, you may find an answer on forums somewhere too. 06:48 < walle303> I'm thinking its probably something a plugin will have to do 06:53 < dx> PMing the author of bungeecord sounds like terrible advice 06:53 < walle303> bungeecord is maintained by the spigot team 06:54 < dx> join #md_5 on irc.spi.gt 06:54 < walle303> ahh, more networks to add to my bouncer 06:54 < dx> yes but bothering a single person who already has a lot of things to worry about is not a good idea 06:55 <+ammar2> dx: hello do you have a moment to talk about bitlbee 06:55 < dx> ammar2: did you know i once started writing a minecraft plugin for bitlbee 06:55 < walle303> dx, +6697 or 6667? 06:56 < dx> walle303: uh, both? 06:56 < walle303> oh good 06:56 <+ammar2> +1337 06:57 < dx> i never finished that plugin because i ran out of fucks to give 06:57 < javaprophet> What is bitlbee? 06:57 < dx> a gateway from irc to instant messaging services 06:58 < javaprophet> Aah, I've contemplated writing a XMPP Server & IRC server & a bridge between them. 06:58 < dx> in this case the minecraft plugin would be a bot that connects to servers to stand still and chat and die of hunger 06:58 < javaprophet> Might get AFK kicked. 06:58 < dx> also that 06:58 < dx> it's a terrible idea in general, that's why i did it 06:59 < javaprophet> I think if you autorespawn and attempt to move around a wee bit you'll be fine. 06:59 < javaprophet> Best to do it in a server plugin tho. 06:59 < dx> but that wouldn't be a terrible idea 06:59 < javaprophet> :) 07:00 < dx> does 1.9 have anything that might catch my interest protocol-wise? 07:00 < javaprophet> Yes, they implemented a huffman-like "palette" thing to chunks. 07:00 < dx> fun 07:05 < ecx86> oh hello javaprophet 07:05 < javaprophet> Hey ecx 07:05 < javaprophet> Did you hear I'm writing a full MC client & server in C? 07:06 < ecx86> "full" 07:06 < ecx86> define full. 07:06 < javaprophet> Rendering, 1.9, protocol-compatible, all features impl, etc. 07:06 < ecx86> Have fun. See you in 2050 07:06 < walle303> lol 07:06 < javaprophet> I have rendering and networking done. 07:06 < ecx86> ahaha 07:06 < ecx86> i spent 07:06 < javaprophet> I'm doing the model atm. 07:06 < ecx86> 3 hours 07:06 < javaprophet> I expect to be ingame in 2-3 days. 07:06 < ecx86> wondering why my server wasnt getting right angles from client 07:06 < ecx86> turns out 07:07 < ecx86> client doesn't clamp angles, right? and thanks to floating point imprecision as you get your yaw into angles as high as 5000, 25000, etc there is really low precision 07:07 < javaprophet> Yes, my Java bot DOES wrap angles. 07:07 < ecx86> the upside is your bot is probably detected now 07:07 < ecx86> no, really. 07:07 < ecx86> along with all the other aimassists and aimbots 07:07 < ecx86> i cant disclose how. 07:07 < javaprophet> You can do that serverside and not tell the client, or do it serverside and reset the player rotation if too imprecise. 07:08 < ecx86> Yes. I was discussing with the head developer 07:08 < javaprophet> Man, IDC about that old thing, I'm going to write the C client and a server. 07:08 < javaprophet> And that C server will be epic, load balanced tick regions, etc 07:08 < ecx86> the 3 options were- manually wrap, only do check when in acceptable range, etc 07:08 < ecx86> Do make it open source :) 07:08 < javaprophet> You never hit me up on that reverse proxy thing, I assume your server AC went well? 07:09 < ecx86> What compiler? msvc or gcc 07:09 < javaprophet> I already did. 07:09 < javaprophet> GCC & GCC w/ MINGW 07:09 < ecx86> yeah. he told me that i can't do it. 07:09 < javaprophet> Woah, the AC or the proxy? 07:09 < javaprophet> https://github.com/JavaProphet/MinecraftClone 07:09 < ecx86> i'm not allowed to share the ac 07:09 < javaprophet> Ah, no worries, my server will absolutely decimate if it goes to plan ;) 07:10 < ecx86> or, i shouldn't. it technically belongs to me because i havent done any legal stuff but i respect him 07:10 < ecx86> and the server is coming along so...beta is soon 07:10 < javaprophet> Yeah, what's taking that server so long to develop? 07:10 < ecx86> all i can say is its a server implementation in python 07:10 < javaprophet> It's got to have been 6 months. 07:10 < ecx86> ground-up, clean room 07:10 < javaprophet> Aaah, I see. 07:11 < ecx86> welll...we kind of got distracted with planetside 2. then dota 07:11 < javaprophet> :P 07:11 < javaprophet> Once my client is satisfactory, I'll write a server in C too. Of course your invited :) 07:11 < ecx86> i shouldnt discuss the anticheat checks. they're completely new, or at least the combat ones are. just a bunch of stuff no one ever even thinks about 07:11 < ecx86> what are you using for your graphics? opengl or directx 07:11 < javaprophet> OpenGL ofc. 07:12 < javaprophet> I run linux, and client is cross compiled for Windows. 07:12 < javaprophet> No Game Engine ofc too. 07:12 < ecx86> i have a compiler phobia. whenever smoeone else builds a project from source it works. but it never works for me 07:12 < javaprophet> Aaah, you just need to get a feel for em. 07:12 < javaprophet> I managed to compile this opengl crap in mingw. 07:13 < ecx86> yeah. i understand msvc. gcc and make is arcane shit to me 07:13 < javaprophet> msvc is arcane to me, come to the dark side (linux). 07:13 < javaprophet> I use MINGW when I need to compile to winblows. 07:13 < javaprophet> windows* ;) 07:14 < javaprophet> GCC is so simple you don't really need to learn it. Eclipse will do makefiles and GCC for you. 07:14 < javaprophet> I get GCC pretty well, but I'm still a newbie to make myself, but I get the idea. 07:14 < ecx86> eww eclipse for C??? 07:14 < javaprophet> Yes, it's awesome. 07:14 < javaprophet> What else would you use? Sublime? 07:14 < ecx86> theres this great ide called visual studio. also clion if youre on linux 07:14 < javaprophet> VS is garb 07:14 < ecx86> disagree. its debugger is the shit 07:15 < javaprophet> Man, Eclipse uses GDB(I think), and it's the shit. 07:15 < javaprophet> I never heard of clion. 07:15 < ecx86> gdb is also something i never bothered to learn 07:15 < javaprophet> But it sounds like it's from Star Wars. 07:15 < ecx86> i know i should because im big into RE but 07:15 < javaprophet> I know very little of GDB, but Eclipse uses it. 07:16 < javaprophet> My only complaint is that if I leave my debugger is up to long in a OGL app, it seems to segfault my shitty propietary fglrx drivers. 07:17 < javaprophet> The nice thing is, when you code for linux, you code for Mac (kinda), and porting to Winblows... sorry Windows.... is radically easier than the reverse. 07:17 < ecx86> i think open source is just a meme 07:17 < ecx86> it's important for infrastructure and tools everyone uses. 07:17 < javaprophet> You get the only plus of Java(cross compatibility), with native performance, and a OO language(C++) if you like, but C > C++ 07:18 < ecx86> its not neccessary for other stuff. 07:18 < javaprophet> I do OS if I don't intend to sell. 07:18 < javaprophet> My first large OS project got me a Google recruiter :D 07:19 < ecx86> oh g 07:19 < ecx86> yea 07:19 < ecx86> i feel like the only reason i ever do OS stuff is to build portfolio 07:19 < javaprophet> Exactly, are you shooting for an awesome college? 07:19 < javaprophet> Or are you already in uni? I don't recall. 07:19 < ecx86> yeah, i have a 50/50 for CMU. why? 07:20 < ecx86> i remember you're in high school? 07:20 < javaprophet> You send them some crazy OS stuff that's PhD level before you even go to their college, they will gobble you up. 07:20 < javaprophet> Yes, and I'm aiming for MIT. 07:20 < ecx86> im working 07:20 < ecx86> on some deobfuscation / obfuscation identification stuff in java 07:20 < javaprophet> Are you full time for that server, or another job? 07:20 < javaprophet> I imagine not the server. 07:20 < ecx86> uh.....unpaid intern 07:21 < javaprophet> Sketchy, I got offered one and ended up turning it down. 07:21 < ecx86> idk why people ask me a lot if im getting paid. the servers not even running yet, why would i be getting paid for the ac work 07:21 < javaprophet> They started with "Paid" and then it said "Unpaid", and then I didn't come back.