09:11 < hansihe> Gjum, pokechu22: i wrote a srg file reader of sorts in python, you can look up things like class names, method names, field names 09:11 < hansihe> https://github.com/hansihe/Burglar/blob/master/srg_file.py 10:49 < Not-8b17> [mineflayer] rom1504 pushed 3 commits to master [+0/-0/±3] https://git.io/vaKtX 10:49 < Not-8b17> [mineflayer] jh1333 7324ff9 - Update inventory.js 10:49 < Not-8b17> [mineflayer] jh1333 6992532 - Merge pull request #1 from jh1333/jh1333-patch-1 Update inventory.js 10:49 < Not-8b17> [mineflayer] rom1504 289871a - Merge pull request #408 from jh1333/master Update inventory.js 10:51 < Not-8b17> [mineflayer] rom1504 pushed 1 commit to master [+0/-0/±1] https://git.io/vaKqk 10:51 < Not-8b17> [mineflayer] rom1504 73c9dc1 - update activateBlock doc 11:01 < Not-8b17> [mineflayer] rom1504 pushed 2 commits to master [+0/-0/±2] https://git.io/vaKmM 11:01 < Not-8b17> [mineflayer] G07cha 2031a6a - Add ArmorManager plugin https://github.com/G07cha/MineflayerArmorManager 11:01 < Not-8b17> [mineflayer] rom1504 2271019 - Merge pull request #398 from G07cha/patch-2 Add ArmorManager plugin 11:02 < Not-8b17> [mineflayer] rom1504 pushed 1 commit to master [+0/-0/±2] https://git.io/vaKmp 11:02 < Not-8b17> [mineflayer] rom1504 4b54ca3 - Release 1.7.3 11:02 < Not-8b17> [mineflayer] rom1504 tagged 4b54ca3 as 1.7.3 https://git.io/vaKmx 11:09 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-mineflayer-1.7.3 12:00 < morfin> hello 12:01 < morfin> Mojangson seems too be allowing keys/values without and with quotes? 12:01 < morfin> *seems to be 12:17 < rom1504> morfin: yes, have a look at https://github.com/rom1504/node-mojangson 12:42 < rom1504> tktech: here you go https://github.com/notifico/notifico/pull/148 12:52 < morfin> rom1504, that's done just to avoid extra typing 12:54 < rom1504> morfin: yes to avoid extra typing of a few players that would write this directly in the chat (and increase a lot the typing of all devs and more advanced players) 12:55 < rom1504> but there's no much point in arguing about it, it exists, node-mojangson explain how to parse it 13:56 < Not-8b17> [flying-squid] rom1504 pushed 1 commit to master [+0/-0/±1] https://git.io/vaKM5 13:56 < Not-8b17> [flying-squid] rom1504 308fc5c - limit the number of entities in initEntity 16:13 < morfin> i saw commands containing thousands of symbols) 16:14 < morfin> or maybe not even thousands idk but some nerds writes everything in one command block and when you activate it that command block generates machine with N command blocks and redstone 16:14 < tktech> rom1504, woohoo 16:15 < morfin> so commandblock can set other commandblock command? 16:18 < rom1504> morfin: "i saw commands containing thousands of symbols" : my point exactly, I bet people who do that don't do it completely manually, so at some point they need a tool that can parse/generate mojangson, and they need to write it because it's not json and it's not standard 16:44 < morfin> lol 16:45 < morfin> but is modifying other command block commands legit? 17:30 < Gjum> morfin: http://www.minecraftupdates.com/summon-command http://mrgarretto.com/commandvert there are tons of these 17:31 < Gjum> hansihe: thanks, taking a look 17:34 < barneygale> hansihe had too much to drink last night, I had to carry him home. I told him "You're incapable Hans!" 17:37 < rom1504> I need to get the block->block_state_name mapping hmm (stuff like "acacia_log") 17:38 < rom1504> I guess it's in the client code 17:38 < Gjum> rom1504: what is this block_state_name? 17:40 < Gjum> oh, because log is the block, but the meta makes it acacia 17:41 < Gjum> yes it's in the client code at net/minecraft/client/renderer/block/model/ModelBakery.java so burger could extract it 17:41 < rom1504> it's the stuff in assets/minecraft/blockstates , which I'm using to go to models, which themselves go to textures 17:41 < rom1504> blockstates are the closer ones to actual block names, but not 100% because of variations 17:42 < Gjum> so blockstates are a replacement for id:meta? 17:42 < rom1504> writing a mapping manually atm (there are like only 15 non-block-name so it's reasonable), but i'd better get it automatically 17:43 < rom1504> Gjum: kind of but mostly for the graphical part 17:43 < Gjum> rom1504: https://gist.github.com/Gjum/2439bc5a0ba54abaa24f 17:43 < rom1504> oh nice 17:44 < rom1504> that depends on mcp though hmm 17:44 < Gjum> not really, you just need to search for one of them in the decompiled source I guess 17:45 < rom1504> my script is currently fully automated, just give it the version and it gives you the texture dir + a name -> texture_name mapping (it downloads, unzip and all) 17:45 < rom1504> Gjum: one of what ? 17:45 < rom1504> I need to search for the block name 17:46 < rom1504> ah yeah I could first figure out the class_name<->block_name mapping from the code 17:46 < rom1504> then use that 17:47 < rom1504> well I guess I'll try that later, I'm going to finish the manual mapping first 17:47 < rom1504> some stuff don't have textures though 17:47 < rom1504> like water and lava 17:48 < rom1504> and for some reason, a chest 17:48 < rom1504> so I guess the mcwiki generated these images with some tool 18:19 < rom1504> Fenhl: how did you get these "3d" images https://github.com/wurstmineberg/assets.wurstmineberg.de/blob/master/img/grid/birchwoodstairs.png ? 18:19 < rom1504> generate them with something ? 18:19 <+Fenhl> rom1504: from the wiki :P 18:21 <+Fenhl> they're mostly generated by Majr using Blender iirc 18:21 <+Fenhl> I'm planning to generate them from the Minecraft client assets though, similar to what Mapcrafter does 18:26 < rom1504> ok 18:26 < rom1504> I finally published https://github.com/rom1504/minecraft-assets/blob/master/data/1.8.8/blocks_textures.json 18:27 < rom1504> it should be helpful 18:27 < rom1504> mapping between name and texture 18:27 < rom1504> completely generated by https://github.com/PrismarineJS/minecraft-jar-extractor/blob/master/image_names.js 19:46 < rom1504> alright it works ok data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVUlEQVR42mNgGAXYwSOB/ySJo4PMDRb/STYcGeg58/zHZzheC9BtACl2KVL5j2w4PgvgBqyB2kJYAw7biNaE7ncMjUheArkqH8k7JLmIZO+QpWFoAgAY9DgM7ldwswAAAABJRU5ErkJggg== 20:51 < _GLaD0S> Hey :) 20:55 <+Fenhl> hello 20:58 < _GLaD0S> Anyone here into Packets? 21:03 < rom15044> Yes 21:04 < _GLaD0S> I can't get my player move. I try sending a Position Packet: {X=48,Y=66,Z=252}, but i recieve a Position + Rotation Packet: {X=48,Y=67,Z=252,YAW=0.0,PITCH=0.0}. 21:05 < _GLaD0S> I'm answering on the Pos + Rot Packet with an teleport accept packet, but it ignores it 21:07 < Gjum> _GLaD0S: what kind of server 21:07 < Gjum> *? 21:07 < _GLaD0S> 1.9 21:07 < _GLaD0S> Spigot 21:08 < rom15044> Is teleport accept the only thing needed now ? Answering back with a position packet used to be needed 21:09 < rom15044> Also, are you sending position packet fast enough? 21:09 < rom15044> (20tps) 21:09 < _GLaD0S> first the tp accept, then the position packet? 21:09 < rom15044> No idea about to accept, it's new 21:09 < rom15044> *tp accept 21:10 < _GLaD0S> sending a position packet after that doesn't work 21:16 < _GLaD0S> Anyone got an idea? 21:17 < rom15044> A position packet with the same coordinates ? 21:17 < rom15044> Do you send position packets every 50ms ? 21:22 < _GLaD0S> Yes 21:54 < Not-8b17> [flying-squid] mhsjlw pushed 1 commit to master [+0/-0/±1] https://git.io/vaizm 21:54 < Not-8b17> [flying-squid] mhsjlw 1ef8f61 - add node-voxel-worldgen plugin to plugin list 22:01 < Not-8b17> [flying-squid] rom1504 pushed 1 commit to master [+0/-0/±1] https://git.io/vaigz 22:01 < Not-8b17> [flying-squid] rom1504 fa8f94c - node-voxel-worldgen is a world generation, not a plugin --- Day changed sam. mars 19 2016 02:04 < rom1504> very base64 https://github.com/rom1504/minecraft-assets/blob/master/data/1.8.8/texture_content.json 02:56 < rom1504> http://rom1504.github.io/web-minecraft-crafter/ here we go, some images 02:57 < javaprophet> Nice, you should do 3D animations if your doing it for fun. 02:57 < javaprophet> I've been excited to try some WebGL myself. 02:57 < ughman> not sure what I'm supposed to see here 02:57 < rom1504> type some item name in the bar 02:58 < ughman> like minecraft:stone or what 02:58 < rom1504> (I'm aware the ui is not 100% intuitive yet :d) 02:58 < rom1504> just stone 02:59 < ughman> 405 Not Allowed 03:00 < ughman> hmm 03:00 < ughman> SyntaxError: let is a reserved identifier 03:00 < ughman> let text = ""; 03:00 < rom1504> bah, use some recent browser :p 03:00 < ughman> oh well heh 03:01 < rom1504> but yeah I guess I should be compiling my es6 03:01 < rom1504> javaprophet: yeah voxeljs has nice stuff for more complete minecraft graphic stuff 03:01 < ughman> oh looks like the latest version of this browser might not even support es6 03:02 < rom1504> javaprophet: but I'm just using some images to display recipes and all, like the mcwiki 03:02 < rom1504> ughman: safari ? 03:02 < ughman> palemoon 03:03 < javaprophet> Yea 03:03 < rom1504> well you're looking for it ughman :p 03:06 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+5/-0/±0] https://git.io/vaPOd 03:06 < Not-8b17> [1.8-Models] drXor e080da3 - Lighters! Burn! 03:07 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+0/-0/±1] https://git.io/vaPOj 03:07 < Not-8b17> [1.8-Models] drXor 48f6e3d - Correct ground display for lighter. 03:21 < Not-8b17> [1.8-Models] drXor pushed 1 commit to 1.9 [+0/-0/±1] https://git.io/vaPsY 03:21 < Not-8b17> [1.8-Models] drXor 11ccb7d - Fix record fixed display. 05:49 < Aikar> D: where did grum go 12:31 <+Fenhl> Aikar: my logs don't say but he probably got disconnected during freenode's hiccups last Friday, and hasn't noticed yet because of GDC 16:22 < Not-8b17> [flying-squid] rom1504 pushed 1 commit to master [+0/-0/±2] https://git.io/vaPpG 16:22 < Not-8b17> [flying-squid] rom1504 6b36594 - unhandledRejection in app.js 16:55 < Juju17ification> Hello 16:56 < Juju17ification> Do someone know if encryption works as a stream, or by packets ? Id the encryption only on a part of the packets ? Do we have to encrypt + compress or compress + encrypt ? 16:57 < Juju17ification> thanks 17:12 < rom1504> Juju17ification: the encryption works as a stream and it's on the whole packets 17:12 < rom1504> you have to compress first 17:12 < Juju17ification> ok, thanks a lot :) 17:12 <+Fenhl> compression is per packet 17:12 < rom1504> it's not really possible to encrypt and then compress, because encryption remove some of the repetition needed for compression 17:13 < rom1504> (in general) 17:15 <+ammar2> its possible, its just that you're basically trying to compress random noise 17:15 <+ammar2> usually results in terrible ratios 17:16 < rom1504> yeah 20:00 < Aikar> Grum has returned. I see the navigation stuff got reverted? the bug was because you used iterator instead of the for (;;) I had. the for (;;) was to avoid the CME. new additions would just get tacked on end, and from the way I read that code, it should be fine for a new entry to also get pinged. but even if not, you can simply grab size() before iterating for the for(;;), and removals wont modify the list as they are queued. 20:00 < Aikar> https://github.com/PaperMC/Paper/blob/master/Spigot-Server-Patches/0077-Optimize-Navigation-Listener.patch is patch again for ref 21:30 < Gjum> hansihe: is elixir_mc_protocol 1.9 yet? 21:33 < hansihe> Gjum: nope, been working on and off on a protodef compiler so I can use minecraft-data 21:33 < Gjum> that's even better I suppose :) 21:35 < hansihe> have some spare time the next week so I should be able to work on it 21:36 < Gjum> I decided to learn elixir, and I think that project would be ideal for me to practice a bit 21:43 < hansihe> awesome! it's a really interesting language 21:44 < hansihe> feel free to ask me if you have any questions, I'm no expert by any means, but I might be able to answer basic stuff 21:45 < Gjum> sure, thanks :) I'll do that in #elixir-lang though 21:46 < hansihe> yep --- Day changed dim. mars 20 2016 03:05 < Paprikachu> how many events usually occur on a server per tick? 03:05 < Paprikachu> rough estimate? 03:09 < rom1504> at least n with n the number of players because they send the position every tick, then you have the block change by tick (redstone, water, trees,...) 03:10 < rom1504> well, that's the stuff that happen every tick, what do you mean by event exactly ? 03:10 < Paprikachu> hm actually, i guess it doesn't matter that much 03:11 < Paprikachu> nevermind 20:10 < GreenBeard> Could someone point me in the right direction for the documentation of setting FallingBlocks block data (like redsand vs sand not gravel vs sand) 20:11 < rom1504> GreenBeard: http://wiki.vg/Entities#FallingBlock 20:12 < rom1504> hmm 20:12 < rom1504> not sure if that's up to date, that looks weird 20:13 < GreenBeard> yeah I could find how to set its id but not the data 20:13 < rom1504> ah it's there http://wiki.vg/Object_Data#Falling_Block_.28id_70.29 20:13 < rom1504> http://wiki.vg/Protocol#Spawn_Object + ^ 20:15 < GreenBeard> the field "Block type" just shows gravel vs sand and the likes not the data like red sand vs sand 20:24 < rom1504> GreenBeard: are you quite sure ? 20:24 < rom1504> "Metadata << 0x10" 20:24 < GreenBeard> oh i didn't see that 20:24 < GreenBeard> thank you 21:38 < GreenBeard> rom1504 I am sorry to bug you but I can't seem to get it work for the life of me. Should it be id | data << 16. Because it still won't show red sand (I double checked and the data is 1 for red sand) 21:39 < Gjum> GreenBeard: try shifting 1 and look for stone 21:39 < Gjum> you could also use a proxy, drop sand and gravel, and look for the difference in packets 22:11 < GreenBeard> Gjum how would you recommend looking at the packets? 22:11 < rom1504> https://github.com/PrismarineJS/node-minecraft-protocol/blob/master/examples/proxy/proxy.js is a proxy that can display the packets 22:12 < javaprophet> Also, if your familar with wireshark, you can dump an offline mode connection & decompress what you like with gzip. 22:12 < javaprophet> An inflater* 23:12 < Xerxes1> Hey guys, do you have any idea what the hell happened here? 23:12 < Xerxes1> http://prntscr.com/ahtccl 23:17 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-node-promise-es6-0.3.2 23:18 < rom1504> ^ that can be fixed when https://github.com/notifico/notifico/pull/148 is merged, it's out of my hands 23:18 < rom1504> Xerxes1: your client is dreaming wildly 23:32 < Gjum> my client was all derpy recently, had the wrong drivers installed 23:33 < Xerxes1> i did 23:57 < GreenBeard> How do I edit the wiki 23:57 < Gjum> GreenBeard: make an account http://wiki.vg/index.php?title=Special:UserLogin&type=signup 23:59 < GreenBeard> Okay well Falling Block data shift amount has been corrected --- Day changed lun. mars 21 2016 00:00 < Gjum> that's a weird value, all other usages are (blockid << 4) | meta 00:01 < GreenBeard> idk why it's weird 00:01 < Gjum> they changed chunk transmission, so this was probably affected by that 00:03 < rom1504> seems pretty consistent with the rest of the inconsistencies 00:03 < Gjum> :P 00:03 < GreenBeard> It took me forever to figure out why it wasn't working because I am not used to bit operators or wireshark but I eventually did it 01:21 < jenius> 01:21 < jenius> exit 05:12 < javaprophet> http://screencloud.net/v/s3rM 13:00 < MasterGberry> Hey. I've had a bunch of complaints about hit detection changes in 1.9 that were not present in 1.8 (or if they were very minor) and even worse than 1.7 hit detection. The problem specifically has to do with hitboxes/angles of attack 13:01 < MasterGberry> e.g. attacking from low ground you have less range now in 1.9 than you did in earlier versions 13:01 < MasterGberry> I was scanning the source code on the server jar's, but couldn't really seem to find anything hinting to changes from 1.7 -> 1.9 13:01 < MasterGberry> Were there client side changes in this regard? 13:55 < lq> http://linkcash.co/2Zn 13:57 < rom1504> "Please disable your AdBlock and refresh the page!" nope 15:20 < Aikar> i love how wash times i think it is, makes you disable adblock in order to continue to the "ad lite" site 15:20 < Aikar> I just whitelist that single interstitial page 15:21 < Aikar> Grum, something we cant really do reliably third party w/o major risks ... can yall consider refactoring saved structures so they save in the region files they are associated with instead of loading them for the entire world and unloaded chunks? many people have huge worlds w/ chunks that were just simply passed through, loading villages etc to never be used again. 18:01 < TronMC> Would https://api.mojang.com/user/profile//skin (Change skin of profile with uuid ) belong on the Authentication page since it uses an accessToken or should it go on the Mojang API page? 18:06 <+ammar2> API I think 19:00 < tktech> API 19:01 < tktech> Authentication should only cover aquiring and managing tokens, not using them outside an example. 19:02 < TronMC> Ok, thanks. 19:07 <+Dinnerbone> Haha, how did you find that route TronMC? 19:08 <+Dinnerbone> I didn't know we made that public yet. 19:08 < TronMC> It's on the beta.minecraft.net site 19:08 <+Dinnerbone> Aha! 19:08 < TronMC> It's quite a useful call 19:09 <+Dinnerbone> :D 19:09 <+Dinnerbone> It's used in the new launcher 19:09 < TronMC> Nice 19:09 < TronMC> So you can change the skin from the new launcher? 19:09 <+Dinnerbone> Yep 19:23 < barneygale> aww i'll miss the derpy old site 19:23 < TronMC> I won't 19:24 < barneygale> i never had any issues navigating it but then I never needed to use it for very much 19:25 < TronMC> Yeah most of the time it works pretty good but it can get annoying at times. 19:38 < Aikar> oh my, new mc.net site 19:41 < Aikar> Dinnerbone, please pass on feedback: icons in the top menu should be clickable, and hexagon icons would feel more minecrafty if it had feint lines to give a block appearence vs hexagon. not high contrast lines, just subtle to make it look like a block. 19:41 < Aikar> top expanded menu* 19:44 <+Fenhl> yeah, the entire column should be clickable instead of just the tiny arrow 22:29 < jenius> hello? 22:31 < rom1504> jenius: hello. --- Day changed mar. mars 22 2016 00:39 < pokechu22> ... zipfile.namelist() seems to be missing entries. 00:39 < pokechu22> It's not getting aju.class with the 1.9 jar, at least. 00:46 < rom1504> http://rom1504.github.io/web-minecraft-crafter/#name=diamond_pickaxe improved my recipe path finder, now displaying recipes :) 01:17 < Xerxes1> rom1504, that would be useful for modpack items 01:23 < ScruffyRules> rom1504, Looks good, disliking the amount a bit 01:27 < rom1504> ah yeah I guess the amount could look at bit better 02:08 <+SinZ> not a fan of the new mc site, I don't want to have mobile based menus on a desktop 02:52 < pokechu22> https://github.com/mcdevs/Burger/pull/13 02:53 < pokechu22> Also, rom1504, you might find some of the rendering code that vitrine uses useful. https://github.com/sadimusi/BurgerVitrine/tree/master/resources - there's some fonts and a tooltip script 16:26 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-minecraft-data-1.3.0 16:27 < Not-8b17> [flying-squid] rom1504 pushed 2 commits to master [+0/-0/±2] https://git.io/vaQt5 16:27 < Not-8b17> [flying-squid] rom1504 c9c77d9 - Merge pull request #228 from PrismarineJS/greenkeeper-minecraft-data-1.3.1 Update minecraft-data to version 1.3.1 🚀 16:27 < Not-8b17> [flying-squid] rom1504 deleted branch greenkeeper-minecraft-data-1.3.1 16:27 < Not-8b17> [mineflayer] rom1504 deleted branch greenkeeper-minecraft-data-1.3.0 16:38 < rom1504> I guess that notifico instance isn't updated yet tktech ^ ? 16:39 < tktech> Correct, they won't autorestart until thursday 16:39 < Not-8b17> [mineflayer] rom1504 pushed 2 commits to master [+0/-0/±2] https://git.io/vaQYd 16:39 < Not-8b17> [mineflayer] rom1504 ae7b67b - Merge pull request #410 from PrismarineJS/greenkeeper-minecraft-data-1.3.1 Update minecraft-data to version 1.3.1 🚀 16:39 < Not-8b17> [mineflayer] rom1504 deleted branch greenkeeper-minecraft-data-1.3.1 16:39 < tktech> I'll give it a kick tonight 17:28 < Not-9c26> [wiki] Edit by TheShark34 to Library List -> http://tinyurl.com/hfd2ktd 17:29 < Not-9c26> [wiki] Edit by TheShark34 to Library List -> http://tinyurl.com/j6g9ahw 18:47 < Freax13> Does anybody now how to manually join on a mc cracked server (with tcp-sockets)? 18:49 < rom1504> Freax13: same way you do on a non cracked one 18:49 < rom1504> (whatever "cracked mc server" means) 18:49 < Paprikachu> offline mode presumably :P 18:50 < Freax13> I want to write a bot which joins on a server and write messages 18:50 < Freax13> But without the minecraft client 18:51 < rom1504> Freax13: any language preference ? do you want to use/contribute to something existing or create everything from scratch ? 18:52 < Freax13> I want to code with java and I want to create everything myself (or with your help) 18:52 < rom1504> ok then read http://wiki.vg/Protocol and implement the protocol. Then you can implement a client 18:53 < Freax13> I tried, but when I run the code nothing happens... 18:54 < rom1504> if you actually want to code a bot and not code network stuff, you might use a lib such as http://github.com/Steveice10/MCProtocolLib or contribute to a bot such as https://github.com/DarkStorm652/DarkBot 18:54 < rom1504> Freax13: "nothing happens" is not the best description of a problem 18:54 < rom1504> but anyway, implementing the protocol is not especially fast to do, in particular if you didn't implement that kind of protocol before 18:55 < rom1504> it is interesting, but you won't code a bot soon that way 18:57 < rom1504> there's also tons of existing stuff in http://wiki.vg/Client_List and http://wiki.vg/Library_List 18:58 < Freax13> thx! darkstorms bot is still on version 1.7.2 but I will still help me 19:01 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/zhusywf 19:08 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/jdya4ka 19:30 < Not-8b17> [minecraft-data] rom1504 pushed 2 commits to master [+0/-0/±2] https://git.io/vaQAe 19:30 < Not-8b17> [minecraft-data] Gjum 98f709a - popped_chorus_fruit -> chorus_fruit_popped decompiled 1.9 source: adl.java:747: a(433, (String)"chorus_fruit_popped", (new adl()).c("chorusFruitPopped").a(acn.l)); 19:30 < Not-8b17> [minecraft-data] rom1504 122e07a - Merge pull request #127 from Gjum/patch-1 popped_chorus_fruit -> chorus_fruit_popped 19:32 < Not-8b17> [minecraft-data] rom1504 pushed 1 commit to master [+0/-0/±2] https://git.io/vaQAi 19:32 < Not-8b17> [minecraft-data] rom1504 2b0bac7 - update blocks and recipes 1.9 (at revision <= 2016-03-23T00:00:00Z) 20:02 < hansihe> rom1504: got decoder code generation working i think 20:03 < hansihe> still some things to do, like handling integers properly in switch statements, but it's mostly working 20:06 < rom1504> nice :) 20:07 < rom1504> I guess the encoder code shouldn't be too hard to write now that you wrote the decoder code ? 20:08 < Not-8b17> [minecraft-data] rom1504 pushed 1 commit to master [+0/-0/±1] https://git.io/va7Ud 20:08 < Not-8b17> [minecraft-data] rom1504 194cc01 - fix structural block drops 20:08 < hansihe> yeah, most of the work was in resolving field references, that's done 20:08 < hansihe> encoder should be relatively easy 20:09 < hansihe> https://gist.github.com/hansihe/b5b1754e2447c50680fc 20:09 < hansihe> thats an example of generated code 20:11 < Gjum> what's with all the `with() do`? 20:11 < hansihe> with just introduces an inner scope 20:12 < rom1504> any clue how fast it is hansihe ? (compared to manually writing the code) 20:12 < hansihe> you mean in decoding? 20:12 < rom1504> yeah 20:12 < hansihe> no clue 20:12 < hansihe> it should be comparable to manually written i think 20:13 < rom1504> ok good 20:13 < hansihe> the code it generates is obviously a bit rigid, but it shouldn't be doing that much extra work 20:14 < rom1504> (that's the point of compiling, by compiling I manage to get about 100x in the small test case I did, compared to the current protodef that is fully runtime) 20:14 < hansihe> Gjum: doing 'with() do' is the same as doing 'with do' which is the same as doing 'with(do: (things))' 20:14 < hansihe> with is just a macro actually 20:15 < Gjum> yeah but couldn't you put the declarations after the `do` between `with` and `do`? 20:15 < hansihe> yeah, that's the way you would usually do it 20:16 < Gjum> well I assume for the compiler it's the same 20:16 < hansihe> yeah, i believe it's more or less the same 20:17 < hansihe> as i said, i just use it to make the generated code a bit easier to reason about, it should work without them 20:17 < hansihe> actually, i didn't say that 20:17 < hansihe> now i did 20:18 < Gjum> regarding performance, testing hot/large packets like movement or chunks should be enough, no real need to optimize the settings packet 20:18 < hansihe> yep 20:18 < hansihe> rom1504: are you working on a compiler as well? 20:19 < rom1504> yeah, but I just started, you're much more advanced on this 20:21 < rom1504> I'm talking about that there https://github.com/roblabla/ProtoDef/pull/65#issuecomment-196383026 but it's just a beginning 20:21 < rom1504> I mean, I only did container and numeric types, no handling of type recursion and all 20:21 < rom1504> more of a POC at this point 20:21 < hansihe> right 20:22 < hansihe> i designed mine to deal with type recursion and that kinda stuff, not implemented yet though 20:22 < rom1504> but then it's kind of needed, because people are using node-minecraft-protocol for a proxy, which has 20 regular players apparently, and it's starting to have a little too much cpu usage 20:23 < hansihe> i see 20:23 < hansihe> yeah 20:23 < rom1504> by "type recursion" I mostly meant "a container with fields that are array of container of ..." 20:24 < rom1504> which happens quite a few times in mc protocol 20:24 < hansihe> oh, i thought you meant a type referring to itself 20:24 < hansihe> yeah, what you are talking about i already finished 20:26 < rom1504> Gjum: I just plan on optimizing the protodef types, and then the consequence should be that packets will be faster to encode/decode 20:26 < hansihe> i might be able to generate js with my compiler, there is something called elixirscript 20:26 < hansihe> it's obviously not optimal though 20:26 < rom1504> but basically just changing of approach (all runtime vs compiling) can just do it I think 20:27 < rom1504> oh yeah that's an interesting idea. It's definitely possible to not have the compiler written in the produced code 20:27 < Gjum> sure, what I said referred to manually implementing packets for comparison 20:28 < rom1504> but then that means depending on elixir which isn't that convenient idk ^^ 20:28 < rom1504> well dev-depending anyway 20:29 < rom1504> I'll write a protodef compiler anyway I think 20:32 < hansihe> rom1504: https://gist.github.com/hansihe/83ee39e8fa8de0dde93f 20:32 < hansihe> that's the naive way of doing it 20:33 < hansihe> probably bad performance because of all the runtime things 20:35 < rom1504> hard to predict js perf by looking at the code, but yeah probably 20:36 < hansihe> there is a jstree library for elixir, the thing i used to generate that uses it 20:36 < hansihe> that would be a better way of doing it 20:36 < rom1504> what I'm trying to do is generate the same kind of thing I would write manually (with the buffer api) 20:36 < hansihe> ah 20:39 < hansihe> elixir has immutable values, so i need to reassign the data variable to the rest after every operation 20:39 < hansihe> which i would guess is the main reason the automatically generated js version would be slow 20:40 < rom1504> not necessarily 20:40 < rom1504> what make js slow is stuff that is not optimizable by v8 20:41 < rom1504> well 20:41 < rom1504> that's one thing anyway 20:41 < rom1504> but creating lot of objects and array could be slow too I guess 20:41 < hansihe> yeah 20:43 < hansihe> just a quick question, can $arguments in user defined types contain anything or just types? 20:43 < hansihe> i would guess anything 20:45 < hansihe> in that case i would have to monomorphize, if it's just types, i could do it dynamically 20:49 < rom1504> hmm 20:50 < rom1504> protodef current implementation assume anything 20:51 < hansihe> right 20:51 < rom1504> https://github.com/PrismarineJS/minecraft-data/blob/master/data/1.9/protocol.json#L93 it can be a field name 20:51 < rom1504> is that really the only place we use that oO 20:52 < hansihe> huh 20:52 < rom1504> https://github.com/PrismarineJS/prismarine-nbt/blob/master/nbt.json#L70 same kind of usage there 20:52 < rom1504> anyway, it's not used a lot 20:53 < rom1504> it does seem useful though 20:53 < rom1504> does that cause difficulties ? 20:53 < rom1504> what does "monomorphize" mean ? 20:53 < hansihe> ah, it means that i would generate a separate function for each set of arguments 20:54 < rom1504> yes that's probably better 20:54 < hansihe> that means it would be usable from other types just fine, would not be usable manually unless you explicitly generate the one you want 20:55 < hansihe> but yeah, it definitely does make things harder 20:55 < hansihe> might be able to take some shortcuts though 20:58 < Not-8b17> [minecraft-data] rom1504 pushed 1 commit to master [+0/-1/±2] https://git.io/va73N 20:58 < Not-8b17> [minecraft-data] rom1504 a13abc7 - move burger_extractor to its own repo 20:59 < hansihe> i think for now i would just require types with arguments to be written manually, there is not that many uses 20:59 < hansihe> focus on making everything else work 21:01 < rom1504> okay --- Day changed mer. mars 23 2016 06:50 < Not-8b17> [SpockBot] nickelpro pushed 2 commits to master [+0/-0/±2] https://git.io/va52k 06:50 < Not-8b17> [SpockBot] smilechaser 92149bb - Fix for #219 06:50 < Not-8b17> [SpockBot] nickelpro 2cbebd1 - Merge pull request #220 from smilechaser/feature-login_disconnect 13:48 < Not-9c26> [wiki] Edit by UnknownShadow200 to Classic Protocol Extension/History -> http://tinyurl.com/hv85wxg --- Log closed mer. mars 23 15:10:43 2016 --- Log opened mer. mars 23 15:16:54 2016 15:16 -!- Irssi: #mcdevs: Total of 153 nicks [1 ops, 0 halfops, 16 voices, 136 normal] 15:22 -!- Irssi: Join to #mcdevs was synced in 340 secs 17:56 <+Thinkofname> Grum: so (what we call) RegionFileCache closes every region file in its cache when it reaches the limit of the number of region files in its cache. Thoughts? :) --- Day changed jeu. mars 24 2016 00:12 < Gjum> hansihe: what would the interface be for en/decoding chunk data packets? just <> ? 00:44 < pokechu22> I just did some more looking at plugin channels, and there was a subtle change... MC|AdvCdm is now MC|AdvCmd. Interesting. 00:57 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/hjhls7w 01:00 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/jsmqkqw 01:01 < pokechu22> So... who wants to update http://wiki.vg/Protocol_History to 1.9? 01:02 < Not-9c26> [wiki] Edit by Pokechu22 to Plugin channel -> http://tinyurl.com/h756tve 01:22 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol History -> http://tinyurl.com/huy6dse 02:23 < Akaibu> ok, so just saw this https://minecraftchat.net/, and got me thinking, why don't they have it so you can whitelist ip and or ISP's so that crap like this can be prevented 02:24 < pokechu22> Spammy redirect_ 02:24 < pokechu22> *? 02:24 < Akaibu> Grum Dinnerbone, what is the feasibility of this being done on the mojang servers, or is there some massive oversight i'm looking over? 02:24 < pokechu22> NVM; thought it was one of those advertizement redirects. 02:27 < pokechu22> What might work well is some kind of oauth-like thing, but I have no clue how feasible that is. Like letting a custom client connect on your behalf, but without giving it your password. 02:27 < pokechu22> Dunno how that would be implemented, though. 02:30 < Akaibu> pokechu22: session tokens, like how pre-1.9 crash reports would do, was also how hackers were able to temporarly sign into others account by checking pastebin/social engineering 02:42 < pokechu22> IIRC oauth gives a different token for each application. Still wouldn't be ideal, but it makes sense. (Also... session tokens still are used. They just aren't logged anywhere anymore, which is good). 02:44 < pokechu22> Oh, and you can revoke oauth grants on a per-app basis. 05:52 < AlphaBlend> is there a way i can remove a bounding box for a water temple? it's in a spot i really don't want it to be. I saw earlier you could use an NBT editor to edit monuments.dat, and the person suggested moving the bounding box, but is it possible to remove it? 06:29 < Akaibu> AlphaBlend: you mean you want it to not spawn the guardians basically' right? 06:34 < AlphaBlend> Akaibu: yeah correct 06:35 < Akaibu> so why not either 1. delete the file, or 2. change the fucking see 06:36 < Akaibu> seed* 10:14 < hansihe> Gjum: The <<>> syntax does pattern matching on binaries, http://elixir-lang.org/docs/v1.2/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1 10:18 < hansihe> You could do <), rest::binary>> = data to get a certain part of a binary with that syntax 15:46 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/hcmlnwe 15:47 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/htlq394 16:14 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/hlrpnj9 16:14 < Not-9c26> [wiki] Edit by Fenhl to Data types -> http://tinyurl.com/htxofbd 16:17 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/h3snfxn 16:33 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/h8sj8wt 16:37 < rom1504> I disagree with that change ^ 16:37 < rom1504> if anything it's the opposite change that should be made 16:38 < rom1504> i.e. sure you can put fields together, it's all a big byte array, but it's more interesting to put them separately in the wiki 16:39 < rom1504> I guess keeping x and z together as previously makes some sense 16:40 <+Fenhl> “the opposite change”? 16:40 <+Fenhl> but yeah, having those fields merged does not make any sense 16:41 < rom1504> fields are 1. x with size of 4 bits 2. z with size of 4 bits 3. y with size of 8 bits 16:41 < rom1504> but since the rest of the wiki talk in byte, keeping 1 and 2 together make more sense 16:43 <+Fenhl> yeah, I'm reverting it 16:43 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/h9txzt7 17:00 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/j8dvgsq 17:12 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/z67kqze 18:27 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/h28x3js 18:46 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/jppnbpd 18:58 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/j654woj 19:01 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol -> http://tinyurl.com/hlt4khy 20:01 < woder> did all the packet ids change? 20:03 < rom1504> yes 20:05 < woder> that would explain it 20:06 < Not-9c26> [wiki] Edit by Fenhl to Protocol -> http://tinyurl.com/z45dotg --- Log closed jeu. mars 24 22:36:10 2016 --- Log opened jeu. mars 24 22:37:48 2016 22:37 -!- Irssi: #mcdevs: Total of 148 nicks [1 ops, 0 halfops, 16 voices, 131 normal] 22:43 -!- Irssi: Join to #mcdevs was synced in 332 secs --- Day changed ven. mars 25 2016 03:04 < Gjum> hansihe: suggestions? also, would that be compatible with your protocol impl? https://github.com/Gjum/chunk-ex 09:17 < hansihe> Gjum: That looks pretty good! There are a couple of things I spotted immediately 09:18 < hansihe> In a project like that you should probably define all your modules under a top module, in this case it would probably be McChunk 09:19 < hansihe> So McChunk.Palette instead of just Palette 09:22 < hansihe> If you want to keep your own copy of McProtocol.DataTypes you should probably rename it, put it under McChunk instead, as is one of them would redefine the other 09:23 < hansihe> Either that or put mc_protocol as a dependency 14:17 < Gjum> hansihe: right, I thought the module encapsulation would happen automatically like in python, changing that 14:18 < Gjum> and DataTypes should be imported, still have to figure out how that works :D 14:19 < Gjum> is the chunk storage is done completely in Rust right now? would it make sense to do that in Elixir? 14:20 < hansihe> Gemme a sec, I'll be at a computer in a few minutes 14:21 < Gjum> sure 14:24 < hansihe> Gjum: Chunk storage is done in rust at the moment, yes 14:24 < hansihe> Doing it in elixir could work, i was just a bit concerned about performance 14:25 < Gjum> yeah same, is there even any array-like thing in elixir/erlang? 14:25 < hansihe> Lists are linked lists, so they are bad 14:25 < hansihe> Tuples are more like traditional arrays 14:26 < Gjum> constant random read+write is really necessary for chunks 14:26 < hansihe> yep 14:26 < hansihe> erlang has no real mutable data structures 14:26 < Gjum> so the vm would have to optimize any data structure to that 14:26 < hansihe> well, there is the ets 14:26 < hansihe> it might do optimizations, not sure 14:27 < Gjum> is that for updating too? 14:27 < hansihe> http://erlang.org/doc/man/ets.html 14:27 < Gjum> yup 14:28 < hansihe> but yeah, i think a rust module is the best solution in this case 14:29 < Gjum> ets has update_element, that could work 14:29 < Gjum> would be cool to have a purely elixir solution 14:30 < hansihe> it would, yeah 14:31 < Gjum> gonna try that out http://elixir-lang.org/getting-started/mix-otp/ets.html 14:31 < hansihe> number one priority for me right now is finishing the protodef compiler, then i can polish up mc_protocol and completely convert mc_ex to it 14:31 < Gjum> protodef doesn't do chunk un/packing though :) 14:32 < hansihe> it doesn't :) 14:32 < Gjum> so you gonna implement palettes and bitarrays in rust then? 14:33 < hansihe> not sure 14:33 < hansihe> that kinda stuff is much easier to do in elixir 14:34 < hansihe> so if there is some kind of hybrid approach, that would be nice 14:34 < hansihe> i have not looked all that much into the new chunk format though 14:35 < Gjum> well the only thing I'm concerned about atm is bitarray updating, so maybe if I get ets working it can be fully elixir 14:44 < hansihe> just to be clear, I would be very interested in using your module 14:53 < Gjum> hansihe: clonejo had the exact problem: https://stackoverflow.com/questions/7071783/large-mutable-byte-array-in-erlang 14:54 < hansihe> yeah, I think I came across that a while ago 15:14 < hansihe> Gjum: you could also have a look at this http://erlang.org/doc/man/array.html 15:15 < Gjum> will do, thanks 16:13 < hanshenrik_> does the connect protocol have some redirect command? 16:14 < hanshenrik_> when the client connect, can i tell it to go connect to some other ip:port instead? 16:14 < hanshenrik_> kinda like a HTTP 302: Moved Temporarily~ ? 16:15 < Gjum> hanshenrik_: this says no http://wiki.vg/Protocol_FAQ#What.27s_the_normal_login_sequence_for_a_client.3F 16:16 < Gjum> as far as the protocol goes, there is no redirect functionality 16:16 < hanshenrik_> damit 16:16 < hanshenrik_> k thanks 17:04 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol History -> http://tinyurl.com/gm4bo9n 17:11 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol History -> http://tinyurl.com/hj7s2x4 17:55 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol version numbers -> http://tinyurl.com/zlzel7a 18:20 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol version numbers -> http://tinyurl.com/za5lx8f 18:31 < Not-9c26> [wiki] Edit by Pokechu22 to Protocol version numbers -> http://tinyurl.com/zpbt28g 18:55 < Gjum> hansihe: /buffer #elixir-lang 18:55 < Gjum> oops 18:56 < Gjum> while you're here, what about https://github.com/hashd/bitmap-elixir ? 19:06 < hansihe> Gjum: you might be able to use that method, but I wouldn't use that implementation 19:06 < hansihe> it doesn't seem to fit what you are trying to do very well, and it's also very simple to do the same thing yourself 19:27 < rom1504> hanshenrik_: you can run a proxy which would "redirect" people, but it's not quite the same thing as an http redirection 19:28 < rom1504> I guess a mod might do it 19:28 < rom1504> maybe forge has something for that ? 19:35 < hanshenrik_> rom1504, yeah im working on it now 19:36 < hanshenrik_> i would prefer vanilla client compat, so... no mod for me 19:36 < hanshenrik_> luckily i just need to parse that initial connect packet, then make an internal pipe 19:36 < hanshenrik_> as long as they run on the same ip 19:38 < rom1504> okay 21:26 < SkylordRedstone> hulloo 21:27 < SkylordRedstone> can anyone help me with a particle question 21:33 < Gjum> if you ask, probably someone 21:34 < SkylordRedstone> any ideas how to change the color of spell particles? 21:34 < SkylordRedstone> im using ProtocolLib to construct particle packets 21:37 < hansihe> Gjum: I make a channel a while ago, #mcex 21:37 < hansihe> maybe it would be a nice place to talk about stuff specific to minecraft in elixir 21:50 < SkylordRedstone> nvm worked it out after a bit :3 --- Day changed sam. mars 26 2016 15:56 < woder> for the chunk packet, lets say the server sends a 4 bit palette, what does that then mean for the longs? (I know if its 13 its suppose to be 9 bits for id and 4 bits for damage) 16:11 < Gjum> woder: 4 bits means the palette can have <=16 entries, and the data array has not the id<<4+meta, but instead the index of the palette array, at which the idmeta is stored 16:13 < Gjum> only for 0 bit palette, the idmeta is in the data array, at 13 bit each 16:23 < woder> so the data array just references the palette array? 16:23 < woder> so for any given chunk, all block information is in the palette? 16:25 < Gjum> exactly 16:26 < Gjum> this way it's compressed both in the protocol as well as in memory 16:26 < Gjum> and barely any chunk uses more than 6 or 7 bit 16:27 < Gjum> also keep in mind that java is big endian and you may need to reverse the bytes of the longs for bit shifting to work 16:28 < woder> my code is also java so it shouldn't matter (right?) 16:28 < Gjum> yup 16:28 < Gjum> as long as you interpret it as a long array 16:29 < woder> yep, its being read in as an array of longs 16:29 < woder> but how are the indexes encoded? like one byte per index or 4 bits? 16:29 < Gjum> it's an array of varints 16:30 < Gjum> so if the long array has its first entry set to 4, you read the 5th palette entry to get the block idmeta 16:31 < Gjum> or do you mean encoded in the long array? 16:32 < woder> thats sort of what I meant yeah, so the first long in the array is just a bunch of varints which then get indexed into the palette to know what their data is 16:32 < Gjum> no, the palette is varints 16:32 < Gjum> the long array is actually a bit array where a palette key is for example 7 bit long 16:33 < woder> okay, and what defines the length of the key? 16:33 < Gjum> the first byte in the chunk data packet buffer :) 16:33 < Gjum> "Bits Per Block" on http://wiki.vg/SMP_Map_Format 16:33 < woder> oh! Okay that makes sense, and so in this case it would be 4 16:34 < Gjum> vanilla accesses it like this https://gist.github.com/Gjum/63b7afc74492b0e187e1 16:48 < woder> so just to make completely sure I understand, this being a sample of data "0001000100010001000100010001000100010001000100010001000100010001" I would just go down it 4 bits at a time indexing the palette array 16:48 < Gjum> yes 16:49 < Gjum> so you always have the 2nd block in this case 16:54 < woder> yeah, so probably dirt or something :P 16:58 < Gjum> it could be diamond if your palette was [air, diamond] 16:58 < Gjum> well, and at least 7 more entries to need 4 bits 17:00 < woder> is it possible that the palette has 3 things in it even though the bit size is 4? 17:00 < Gjum> yes 17:01 < Gjum> well, the protocol allows it 17:01 < Gjum> in vanilla, you would need at least 9 entries for it to use 4 bit, as 8 would fit into 3 bit 17:02 < Gjum> so any defensive implementation would allow 12bit for a palette of 2 blocks 17:12 < woder> Gjum: could you see if this makes sense? http://pastebin.com/XH40BXex something seems off to me 17:15 < Gjum> that's 1 layer of 112, which is 0111 0000, or 7:0, or bedrock; 2 layers of 48, or 0011 0000, or 3:0, or dirt, and 1 layer of gras ... ye olde flatlands! 17:18 < woder> ah! okay, now I think I understand the format completely, thanks! 23:19 < javaprophet> http://screencloud.net/v/xX1q 23:21 < Gjum> nom 23:21 < Gjum> javaprophet: crafting too? 23:22 < javaprophet> If you could pick up items, then yes, I think so. 23:22 < Gjum> ah, just displaying, no interaction, ok 23:22 < javaprophet> I'm shooting for some more interaction today, and I'm starting with inventories to get to tools and such. 23:27 < hansihe> ooh, it's starting to look really nice 23:28 < javaprophet> :)