12:33 <+Thinkofdeath> the first packet after a handshake for status is http://wiki.vg/Protocol#Request with an id of 0x00 and no fields 12:34 < Emile_> so the req is { 0 } 12:34 < Emile_> in raw array 12:34 < Emile_> and its not { 0 , 0 } 12:34 <+Thinkofdeath> er yes 12:38 < Emile_> hmm this is real odd 12:38 < Emile_> im getting the hand shake 12:38 < Emile_> then i just get a byte[] thats lenght is 0 12:38 < Emile_> and the it asks for old ping stuff 12:43 < Emile_> here is a raw dump of every packet i get 12:43 < Emile_> http://imgur.com/5Soc90S 12:46 < Emile_> The reson im developing this server is becuse, i wrote an comprestion algorithem 2 weeks ago and i realized i can make it work with minecraft chunck loading wiht a bit of pageing i can get the ram usage down to 50 mb for chunck loading 12:46 < Emile_> and if the server is in c# 12:46 < Emile_> i can use the windows iot core 12:46 < Emile_> and compile the project for rasber pi 2 12:47 < Emile_> this way the server can run as if it was an a fast vps on a simple small pi 13:21 < Not-f7bb> [SpockBot] nickelpro pushed 1 commit to master [+0/-0/±1] http://git.io/vZZqc 13:21 < Not-f7bb> [SpockBot] nickelpro dd60038 - Fix jumping and falling 16:07 < Not-f7bb> [SpockBot] gamingrobot pushed 1 commit to master [+0/-0/±1] http://git.io/vZnkT 16:07 < Not-f7bb> [SpockBot] gamingrobot 76b8127 - Update CONTRIBUTING.rst 16:22 < Not-f7bb> [SpockBot] gamingrobot pushed 2 commits to master [+0/-0/±2] http://git.io/vZnY2 16:22 < Not-f7bb> [SpockBot] gamingrobot 1e77fe1 - Update example to use vector methods 16:22 < Not-f7bb> [SpockBot] gamingrobot 9fab1eb - Merge pull request #121 from gamingrobot/update-example 18:29 < Emile_> Hello need some help, http://wiki.vg/SMP_Map_Format#Implementations 18:30 < Emile_> im trying to do 0x26 18:30 < Emile_> i need to wright the chang array 18:30 < Emile_> chunck 18:30 < Emile_> the "Chunk Data Array of Chunk" 18:30 < Emile_> part 18:31 < Emile_> but i dont fully get the Chunk layout in the final bytes that get sent 19:06 < Not-f7bb> [SpockBot] nickelpro pushed 1 commit to master [+0/-0/±1] http://git.io/vZcCl 19:06 < Not-f7bb> [SpockBot] nickelpro e22b807 - Clarify naming to make implementation clearer 19:19 < morfin> hm 19:27 < Emile_> ? 19:30 < Emile_> o i think i get it 19:41 < Emile_> never mind still stuck 21:55 < Doxin> so I'm trying to convert an int to a VarInt, but I'm doing something wrong. can someone have a look at it: http://paste.pound-python.org/show/HEKKKuTXsa4YrKoZgens/ ? 22:25 < Doxin> so according to http://wiki.vg/Server_List_Ping once my server replies to the handshake, the client should send a ping packet. what I'm seeing instead is nothing, and then after a bit the client closes the connection. 22:25 < Doxin> am I misinterpreting something here? 22:37 < Fenhl> Doxin: client sends Handshake, then immediately follows up with Request 22:37 < Doxin> yes, 22:37 < Fenhl> server should first send Response 22:37 < Doxin> yes 22:37 < Fenhl> then client will send Ping 22:38 < Fenhl> at which point is something unexpected happening for you? 22:38 < Doxin> the client doesnt seem to send ping 22:38 < Doxin> but I'm sure I'm just parsing stuff wrong 22:42 < Doxin> yeah, comparing the packet captures it does /send/ the ping, I'm just not receiving it somehow 23:40 < Not-2be> [Charge] Wallbraker pushed 1 commit to master [+1/-0/±0] http://git.io/vZCde 23:40 < Not-2be> [Charge] Wallbraker 78fae80 - charge: Add Makefile for windows --- Day changed jeu. sept. 10 2015 00:20 <+Thinkofdeath> o.O 00:27 < dx> dav1d: you're in that organization. i'm blaming you for that ^ 00:28 < dx> actually, so is Prf_Jakob 00:28 < dx> yeah, Wallbraker == Prf_Jakob 00:28 < dx> nick mappings are hard 00:52 <+Prf_Jakob> Thats my bad. 00:56 < Doxin> so I'm getting a packet [0, 5, 68, 111, 120, 105, 110] , but I'm having trouble getting it parsed. seems like it'd be a 0x00 Handshake, but then the protocol version is 5, and there's a string of length 68 that can't be. what gives? 01:18 < dx> dav1d: are you a client or a server? what state are you in? 01:19 < dx> ... 01:19 < dx> i suck at irc 01:19 < dx> dav1d: nevermind 01:19 < dx> Doxin: are you a client or a server? what state are you in? 01:37 < Doxin> dx: I'm a server, I just switched to login 01:39 < dx> Doxin: if you're in login, 0 doesn't mean handshake, it means login start 01:39 < dx> 5 is a string length, the other 5 bytes are Doxin 01:39 < Doxin> oh 01:39 < Doxin> OH 01:39 < Doxin> oops 02:55 < Not-f7bb> [minecraft-data] rom1504 pushed 5 commits to 1.8 [+0/-0/±6] http://git.io/vZWVe 02:55 < Not-f7bb> [minecraft-data] roblabla 6118cd1 - Add bitfields, use it to define position and entityMetadata 02:55 < Not-f7bb> [minecraft-data] roblabla b260d7d - Protocol schema, implemented bitfield, anon struct, entityMetadata 02:55 < Not-f7bb> [minecraft-data] rom1504 05bbc0d - simplify the schema a bit by using oneOf instead of not and anyOf 02:55 < Not-f7bb> [minecraft-data] ... and 2 more commits. 03:21 < gamingrobot> Hi server I'm client 03:21 <+ammar2> :getout: 03:21 < gamingrobot> hehehe 03:31 < gurun> i don't feel comfortable opening an MC client .. and it starts a server, configure portfowarding in my router .. and let the world in. 03:35 < gamingrobot> gurun: disable upnp then? 03:36 < gamingrobot> wait does minecraft even deal with upnp? 03:36 < gurun> W10 seems to do it 03:36 < gurun> i'm still trying to figure this out. 03:37 < gurun> i just started the client .. because i was testing the server (MiNET) .. and people started to poor in. 03:37 < gurun> so i have a new record .. full server on W10 :-) 03:37 < gurun> 5 players 40% CPU ... lol 03:41 < Not-f7bb> [SpockBot] gamingrobot pushed 1 commit to master [+0/-0/±1] http://git.io/vZWPf 03:41 < Not-f7bb> [SpockBot] gamingrobot 3dc9808 - move -> movement fixed 03:54 < Doxin> in 0x00 Encryption Request, what is the verify token? it's not mentioned anywhere else. 03:56 <+Amaranth> gurun: It's really not all that efficient compared to the desktop version 03:56 <+Amaranth> They just turned things down/off and have a much better renderer 03:57 < gurun> it is pretty ok really 03:57 < Doxin> the snapshots have a way more efficient renderer than latest stable too 03:57 < Doxin> it's crazy 03:58 <+Amaranth> gurun: PE is apparently 1.2 ported to C++ then with a new renderer and things turned off 03:58 <+Amaranth> So it probably still has the same issues with mob AI performance 03:58 < gurun> things turned off? 03:58 <+Amaranth> Yeah like the nether, caves, etc (not anymore but you get the idea) 03:59 <+Amaranth> And they don't tick as large of a radius 03:59 < gurun> is that fact? 03:59 < gurun> it's really not the impression i have 03:59 < jython234[away]> gurun: MCW10 upnp! 03:59 < jython234[away]> thats scary! 04:00 <+Amaranth> gurun: Didn't sound right to me either but it's what I was told 04:00 < gurun> yeah .. well .. it just looks like it. Just can't really really know for sure. 04:00 < jython234[away]> thats scary 04:01 < jython234[away]> anyway i'm still confused with the new "network rewrite" for PE 04:24 < Doxin> in 0x00 Encryption Request, what is the verify token? it's not mentioned anywhere else. 05:17 < gamingrobot> Doxin: uh 0x01 is Encryption Request 05:17 < Doxin> oh 05:17 < Doxin> duh 05:18 < Doxin> that's what I ment 05:18 < Doxin> gamingrobot: still, what's the token for? 05:19 < Doxin> the client isn't sending me the encryption response if it's wrong it seems 05:19 < gamingrobot> I think its accessToken but double checking now 05:26 < gamingrobot> nvm 05:27 < gamingrobot> Doxin: it just seems to be the verify_token sent by the server encrypted with the public key https://github.com/SpockBotMC/SpockBot/blob/master/spock/plugins/core/auth.py#L145 05:27 < Doxin> gamingrobot: I'm writing the server. what should I set verify token to? 05:31 < gamingrobot> it looks like it can be just random bytes as long as you store it and verify when you receive encryption response 05:32 < Doxin> right 05:32 < Doxin> then there's some other reason I'm not getting a response :D 05:35 < gamingrobot> Doxin: its a random 4 bytes 05:35 < Doxin> let's try "poop" 05:35 < gamingrobot> well it should be random for every person 05:35 < Doxin> well sure 05:35 < Doxin> for now this'll do 05:35 < Doxin> still no responser 05:35 < Doxin> *response 05:36 < gamingrobot> and your sending a valid public key? 05:36 < Doxin> I sure hope so 05:36 < Doxin> might not be 05:36 < Doxin> the packet I send looks like this http://paste.pound-python.org/show/UKQopLkx2sz3Pyb3AXUD/ 05:36 < Doxin> the RSA library I use is a bit undocumented 05:37 < Doxin> or at least: I couldn't find the relevant docs 05:38 < Doxin> keypair generation looks like this http://paste.pound-python.org/show/SkwAoJKZqGHo6LLi2eo1/ 05:42 < gamingrobot> what language is this? 05:44 < gamingrobot> oh its c++ the writeln threw me off 05:44 < Doxin> it's very much not c++ 05:44 < Doxin> it's in D 05:44 < Doxin> one of the pubkeys it generates is (hex encoded) MIGJAoGBAPCNpoi6UnKj16M4xMe9QsF8vAAPq3lVFCnYkAWKAtzIwtLMItrWyM4fMK746LIBrJ9khQ4kfuf0vsU9rTpu0k7Z4n7/hXGrNLBItwBSrIwnXTyRbYnQVf+O2rZ6m4j5X5QNGB0EB7P7thKTf+5xAsNtXmUnwPugpRSAwfH3E+nVAgMBAAE= 05:44 < Doxin> no idea if that's valid though 05:46 < gamingrobot> darn I knew it looked weird 05:46 < Doxin> :P 05:47 < Doxin> gamingrobot: so any clue where I cocked up? 05:53 < gamingrobot> so you send the request but never get a response? 05:55 < Doxin> yep 05:55 < Doxin> it just times out 05:59 < Doxin> gamingrobot: the log looks like this: http://paste.pound-python.org/show/deNVzfnph2MbfYMkTiXC/ 06:02 < gamingrobot> Doxin: if I am reading your output correctly it seems you have a packet id as the first byte for the receiving packets but not outgoing 06:02 < gamingrobot> its been awhile since I did stuff with network code 06:02 < gamingrobot> minecraft network code* 06:02 < Doxin> gamingrobot: well the stuff breaks a bit oddly 06:03 < Doxin> gamingrobot: all packets come prefixed with length, but on incomming it first reads one byte, before reading the rest 06:03 < Doxin> >>> [15] >>> [0, 47, 9, 108, 111, 99, 97, 108, 104, 111, 115, 116, 99, 221, 2] is one packet 06:04 < gamingrobot> yea 06:04 < gamingrobot> I got that, I ment for outgoing 06:04 < Doxin> outgoing is the same, but it prints it in one chunk 06:04 < Doxin> so it goes [129, 21, 1, 0, 129...., where the first two bytes are the length 06:05 < gamingrobot> ah ok now I see how its layed out 06:06 < gamingrobot> Doxin: do you want me to connect with spock and the echo packet plugin enabled to see what breaks / what it tries to decode? 06:06 < Doxin> that'd be good, let me throw open a port 06:07 < gamingrobot> yea and you can pm me the address 06:07 < Doxin> my address isn't exactly secret :P 06:07 < Doxin> gimme a sec 06:08 < Doxin> gamingrobot: should be up on superdoxin.com:25565 06:09 < Doxin> gamingrobot: I got the login packet and it replied 06:10 < gamingrobot> I never got the response 06:10 < Doxin> really? 06:10 < Doxin> huh 06:10 < Doxin> lemme try explicitly flushing the socket 06:11 < gamingrobot> yea I sent login start and then spock didnt decode anything else 06:11 < Doxin> flushing doesn't change anything 06:11 < Doxin> I am most *definitely* writing stuff here :P 06:12 < Doxin> time to break out wireshark 06:14 < Doxin> gamingrobot: wireshark tells me it does send stuff. can you try it again? 06:14 < gamingrobot> yea lemee do some more debug info 06:18 < Doxin> gamingrobot: 200% sure I sent a response there :P 06:18 < gamingrobot> Doxin: https://gist.github.com/gamingrobot/a67c87e33b0f2693c332 06:18 < gamingrobot> yea I got it 06:19 < Doxin> okay so how am I formatting my packet wrong 06:21 < gamingrobot> Doxin: updated gist with what a spigot server spits at me 06:22 < Doxin> I can't really compare them is the thing, the pubkey is different, the token is different 06:22 < Doxin> I'd have done that otherwise 06:22 < gamingrobot> refresh again I added the public key 06:22 < gamingrobot> so you can eliminate that 06:28 < Doxin> what the heck 06:28 < Doxin> gamingrobot: I can't find the pubkey anywhere 06:28 < Doxin> as in 06:28 < Doxin> I convert the hex to a c literal 06:28 < Doxin> and it's just not in there 06:28 < Doxin> the base64 into a literal 06:30 < Doxin> oh the converter is being funny 06:30 < Doxin> ech 06:30 < Doxin> well then I dunno how to eliminate it 06:33 < Doxin> gamingrobot: I cannot get this figured out/ 06:36 < Doxin> gamingrobot: I need help ;_; 06:36 < gamingrobot> ah I see 06:36 < gamingrobot> I get a buffer underflow exception. 06:36 < Doxin> oh 06:36 < Doxin> is a count messed up somewhere? 06:36 < gamingrobot> that means you didnt send as many bytes as you have packet length 06:37 < Doxin> let me actually try and get my own decoder ran over it 06:38 < Doxin> ah! 06:38 < Doxin> gamingrobot: I get underflow too 06:40 < Doxin> which is odd, considering the parser and serializer are generated from the same data 06:41 < Doxin> oh god I bet I know what's going on here 06:42 < Doxin> actually no I dont 06:42 < Doxin> gamingrobot: so I suspect writeBytes is broken, but I don't see it. mind having a look: http://paste.pound-python.org/show/GDjwEpkmNQOGLxLLfpfM/ ? 06:46 < Doxin> I'm just stumped 06:49 < Doxin> > parsing string of length 2689 06:49 < Doxin> that can't be right 07:49 < Doxin> gamingrobot: in case you're still there: my varint implementation is broken :D 07:49 < gamingrobot> ah ok 07:51 < Doxin> now to figure out what I did wrong :P 07:52 < Doxin> gamingrobot: the thing is that it works for numbers 0= so it took me a while to catch it 08:15 < Doxin> does someone have a varint implementation I can have a look at? this is driving me crazy 08:19 < yawkat> Bungee has one 08:19 < yawkat> Also note that negative numbers are fubar in protocol varints 08:25 < Doxin> oh? 08:32 < gamingrobot> Doxin: https://github.com/SpockBotMC/SpockBot/blob/master/spock/mcp/datautils.py#L31 08:32 < Doxin> gamingrobot: I'm looking at googles implementation right now :P 08:33 < gamingrobot> Doxin: be aware I did not write that varint code 09:55 < Not-f7bb> [SpockBot] gamingrobot pushed 2 commits to master [+0/-0/±4] http://git.io/vZl96 09:55 < Not-f7bb> [SpockBot] gamingrobot 61977ff - Update readme to include features 09:55 < Not-f7bb> [SpockBot] gamingrobot 8fdab93 - Merge pull request #130 from gamingrobot/readme-update 09:58 < Not-f7bb> [SpockBot] gamingrobot pushed 1 commit to master [+0/-0/±1] http://git.io/vZlHZ 09:58 < Not-f7bb> [SpockBot] gamingrobot 2346001 - Fix slight editing oops 14:50 < Not-f7bb> [SpockBot] gamingrobot pushed 2 commits to master [+0/-0/±2] http://git.io/vZ8dA 14:50 < Not-f7bb> [SpockBot] luken 92bf8d6 - Don't send player position packets till connected to the server. On 14:50 < Not-f7bb> [SpockBot] gamingrobot 5cdece1 - Merge pull request #129 from luken/bug-connect_reliability 17:10 <+Thinkofdeath> So what broke this snapshot? :) 17:12 < gamingrobot> Thinkofdeath: cuddling 17:13 < gamingrobot> thats what broke 17:13 <+Thinkofdeath> Nooooo! 17:13 < XorBoole> do we still have huggling though 17:14 <+XorBoole> why, dear god, does freenode nickserv hate me 17:15 <+Thinkofdeath> XorBoole: because you apparently can't set up your bouncer correctly? :) 17:15 <+XorBoole> shhh 18:24 < dav1d> dx: I have an incomplete backlog 18:25 < dav1d> [00:27:19] dav1d: you're in that organization. i'm blaming you for that ^ 18:27 < TkTech> There may be temporary resolution errors (few minutes) for wiki.vg as the domain transfers to a new registrar. 18:27 < TkTech> Also, "I'm planning a large-scale wiki for everything video-game related, and was planning on naming it wiki.vg. 18:27 < TkTech> Are you willing to consider a different domain for your Minecraft wiki?" 18:27 < TkTech> ~_~ 18:37 < TobiX> TkTech: You don't want to donate your domain to such a noble cause? ;) 18:38 < TkTech> Terrible, I know. Looked him up and it's nothing but turnkey sites and rehosting stolen material. 18:39 < TobiX> Isn't there .wiki as a new toplevel domain now? 18:43 < TkTech> Considering all the new random TLDs I'd be really surprised if there wasn't 18:43 < TkTech> I should get vg.wiki for shits'n'giggles 18:44 < TkTech> Not available :( 18:44 < TkTech> Domain Status: BANNED https://icann.org/epp#BANNED 18:59 <+ammar2> TkTech: so the topic says the channel is publicly logged, do these public logs actually exist? 19:00 < TkTech> Yes/no, more a disclaimer than anything else at the moment 19:00 < TkTech> They exist, just aren't public (yet?) 19:00 < TkTech> The not bot at various times has had experimental logging 19:07 <+XorBoole> logs confirmed for nonexistance 19:07 < dx> dav1d: disregard that, Prf_Jakob accidentally configured notifico to send unrelated commits here and i didn't recognize his github name right away 19:08 <+ammar2> TkTech: I'll put in a botbot.me request, their logging is really pretty 19:08 <+ammar2> https://botbot.me/freenode/readthedocs/ 19:08 <+ammar2> mmm 19:08 <+Prf_Jakob> dx: It is a port of this http://charged-miners.com/ 19:08 <+Prf_Jakob> dx: So technically its not unrelated. 19:10 < dx> Prf_Jakob: oh, fancy 19:11 <+Prf_Jakob> But both projects are pretty, well not moving. 19:13 < dx> the name blends in well with the rest of the electricity puns 19:14 <+Prf_Jakob> Indeed :) 19:52 < shoghicp> botbot! 20:35 < Gjum> there isn't even an .api TLD :P 21:38 < Aikar> Dinnerbone / Grum - with all your work to use 8 on client, can you bump server requirement to 8 for 1.9 so everything can finally make some progress in utilizing 8 :P then you can start utilizing 8's benefits for the code itself while your doing all this rewriting 21:39 < Aikar> hell even netty 5 is considering making 8 required... 21:40 < Aikar> (see: https://github.com/netty/netty/issues/3534 ) 21:46 < yawkat> ++ 21:46 < rom15041> (*java8) 22:04 < gurun> So PC envy .. this is a new PE exlusive block (cobble-bush) http://prntscr.com/8evjv3 22:16 <+Dinnerbone> Aikar, not for 1.9 sorry 22:16 < yawkat> It looks like a leaf texture with broken biome 22:16 <+XorBoole> Dinnerbone ofc, you're going to use java 9 22:16 * XorBoole runs 22:17 < gurun> yawkat with an embedded slab... 22:17 <+XorBoole> gurun I bet it's FallingSand 22:17 < shoghicp> gurun: I have more, and this time intended! 22:17 < shoghicp> https://imgur.com/a/xcLZv#0 22:17 < shoghicp> ^ and no falling sand 22:18 <+XorBoole> shoghicp what have you done 22:18 < morfin> wtf is that 22:18 < shoghicp> well, 0.12 supports snow blocks inside grass 22:18 < shoghicp> it's extra block on a block 22:18 < morfin> dead bush in glass? 22:19 <+XorBoole> it's extra block on a block 22:19 <+XorBoole> wat 22:19 < shoghicp> I just generalized it so it supports anything 22:19 < shoghicp> so you can send this kind of stuff 22:19 < morfin> but what for 22:19 <+XorBoole> does this mean that you can have multiple materials per grid location? 22:19 < shoghicp> or save it in the world 22:19 < gurun> ok, so the code for dual blocks is there, so maybe just a simple bug. I'll investigate what the world have in there. 22:19 < shoghicp> yep, but one of them is "fake" 22:19 <+XorBoole> define "fake" 22:19 < shoghicp> you won't collide 22:20 < shoghicp> and renders in an interesting way sometimes 22:20 < gurun> yeah, the bush is fake because the break action was on the slab. Breaking the slab, removed both. 22:20 <+XorBoole> hmm, interesting 22:20 <+XorBoole> how portable is this to PC? 22:20 < shoghicp> anyway, you can implement swapping so the fake one becomes the real one when you break it 22:20 < shoghicp> hmm, it's a hashmap per chunk 22:21 <+XorBoole> ew 22:21 < gurun> yeah well .. i have to investigate why this happens in this world. It is only that one block. 22:21 <+XorBoole> you can already do it in PC with fallingsand, sort-of 22:21 <+XorBoole> native support would be nice though 22:21 < shoghicp> I don't like it, but I just wanted to play with that code I found 22:21 < gurun> yeah, but it's cool with the snowlayer thing so 23:01 < Doxin> does http://paste.pound-python.org/show/QITeP8l8VB8Aevowl5FB/ look like a valid EncryptionRequest to you guys? sending that to the mc client makes it crash with a nullpointer exception. 23:21 <+Thinkofdeath> Doxin: empty server id, 140 byte public key and 4 byte verify token. Sound correct? 23:21 < Doxin> sounds right to me 23:21 < Doxin> minecraft seems to disagree 23:22 <+Thinkofdeath> openssl doesn't like your pub key 23:22 < Doxin> I see 23:22 < Doxin> well I haven't the foggiest how to get botan to produce me that damn key then 23:25 <+Thinkofdeath> how are you trying it now? 23:27 <+Thinkofdeath> Doxin: taking a quick look at the docs i'd guess 'RSA_PrivateKey (RandomNumberGenerator &rng, size_t bits, size_t exp=65537)' to generate it and 'x509_subject_public_key () const override' to encode it 23:27 <+Thinkofdeath> (complete guess) 23:29 < Doxin> Thinkofdeath: that's what I'm doing :P 23:29 < Doxin> Thinkofdeath: http://paste.pound-python.org/show/OFPPOwICYIkaeO9Cks8p/ 23:35 <+Thinkofdeath> Doxin: X509::BER_encode try that 23:36 < Doxin> Thinkofdeath: I'm using the D version of the library which is slightly different. let me see if I can find that function 23:38 <+Thinkofdeath> https://github.com/etcimon/botan/blob/master/source/botan/pubkey/x509_key.d#L40 23:38 < Doxin> I can call BER_encode directly on the pubkey, no x509 involved. 23:39 < Doxin> aaaand still getting a nullpointer exception 23:40 < Doxin> oh how about I send the pubkey and not the privkey :P 23:40 < Doxin> oh, BER_Encode isn't defined for pubkeys ._. 23:40 < Doxin> oh 23:41 < Doxin> nvm 23:44 < Doxin> Thinkofdeath: yeah that definitely doesn't work. 23:44 * Thinkofdeath shrugs 23:45 <+Thinkofdeath> out of ideas 23:45 < Doxin> crypto sucks :I 23:46 < Doxin> time to try something else than botan 23:47 < Doxin> Thinkofdeath: happen to know how to do it with openssl? 23:49 <+Thinkofdeath> I work on a client so I only know the decode method d2i_RSA_PUBKEY 23:49 < Doxin> drat 23:49 <+Thinkofdeath> i2d_RSA_PUBKEY seems like a safe bet :P --- Day changed ven. sept. 11 2015 00:08 < Doxin> how the toot do I even use that function 00:09 <+Amaranth> Grum: http://cube-drone.com/comics/c/the-singleton-fairy 00:10 < Doxin> Thinkofdeath: does 162 bytes sound like it'd be the right length for a pubkey? 00:11 < Doxin> and minecraft still gives me a nullpointer 00:11 <+Thinkofdeath> Doxin: yes 00:11 < Doxin> well it aint working 00:11 <+Thinkofdeath> got the dump of the packet again? 00:11 < Doxin> sure do 00:11 < Doxin> Thinkofdeath: http://paste.pound-python.org/show/9JIySoLhRWbS2XJgqvV2/ 00:11 < Doxin> this thing has logging up the wazoo 00:12 <+Thinkofdeath> Amaranth: they managed to get rid of MinecraftServer.getServer if that counts? :) 00:12 <+Amaranth> hehe 00:13 <+Thinkofdeath> Doxin: openssl doesn't like it still, got the crash report from the client too? 00:14 < Doxin> where do I find that again 00:14 < Doxin> also the client didn't actually crash 00:14 <+Thinkofdeath> the launcher has a log 00:14 <+Thinkofdeath> if you set it not to hide itself 00:14 < Doxin> well lets get another crash then I guess 00:15 <+Thinkofdeath> although it may not actually dump the stack trace for errors like that 00:15 < Doxin> hmm 00:16 < Doxin> > [00:15:40] [Netty Epoll Client IO #0/ERROR]: Public key reconstitute failed! 00:16 < Doxin> well that narrows it down to the pubkey /still/ being wrong. 00:20 < Doxin> ech 00:52 < Doxin> how I feel about this crypto mess: https://i.imgur.com/QmTvkwn.jpg 03:57 < nickelpro> Doxin: crypto is easy with the right libs 07:20 <+Grum> Amaranth: hah indeed, thanks ;D 07:20 <+Grum> we're slowly removing some of those singletons, i think we completely got rid of the serverinstance one 16:23 < roblabla> Is 15w37a the same protocol version ? 16:23 < roblabla> As 15w36d that is 16:45 < rom15041> That's unlikely 16:48 <+Amaranth> Dinnerbone said he changed chunk handling so that's probably a protocol change 16:49 <+Amaranth> Although it could just be reordering the chunk packets to make sure the closest ones are sent first 16:49 <+Amaranth> That would be kind of disappointing since CraftBukkit had that forever and even did a spiral pattern to ensure turning around didn't look weird 16:49 <+Amaranth> And I'm hoping to see something amazing 16:52 <+Dinnerbone> Amaranth: Minecraft has had the spiral thing since like a month after cb did :p 16:52 < Aikar> Dinnerbone, any thoughts on improving it to be coned in front of player to get the visible chunks loaded faster? something I remember people looking into in past 16:53 <+Dinnerbone> We only generate x closest chunks to players per tick, and send the ones that are closest incrementally when they're ready & generated 16:53 < Aikar> well, a mixture but 'favor' forward 16:55 < Aikar> Amaranth: they managed to get rid of MinecraftServer.getServer if that counts? :) 16:55 < Aikar> in favor of DI or static all the things? 16:55 <+Amaranth> Dinnerbone: You mean the spiral thing I wrote with the help of Wolvereness in 2012? 16:56 <+Amaranth> iirc the original chunk sorting in that file just sent the ones closest first, it didn't try to make a spiral 16:56 <+Thinkofdeath> Aikar: passing the instance around where required 16:58 < rom15041> That's DI (dependency injection) 17:00 < Aikar> and that comic is so stereotyping, not everyone codes on laptops 24/7! 17:00 < Aikar> >_> I enjoy my 5 monitor beast :P http://aikar.co/gibson.jpg 17:01 <+Amaranth> Yeah, only hipsters run around with laptops all the time 17:01 < Aikar> pic is old :3 desk is so clean in it .... lol 17:01 < Aikar> such a mess atm ._. 17:01 <+Amaranth> It's not like a MBP is my main computer or anything 17:01 <+Thinkofdeath> rom15041: psh, I don't follow all the terms 17:02 < Aikar> i pretty much stack up statements into a pile, then shred them when it gets too big 17:02 < rom15041> Lol, when do you switch to coding with a virtual reality helmet Aikar :p ? 17:02 < Aikar> rom15041, id love that :P 17:02 < rom15041> Or maybe a video projector 17:03 < Aikar> i dont think projector would help, its more about the pixels 17:03 < rom15041> Yeah 17:03 < Aikar> and would have to move head more for a projector 17:03 < Aikar> and strain eyes looking farther 17:03 < Aikar> and compromise posture 17:04 < Aikar> i did a lot of work into workplace posture, it improved my effeciency so much 17:04 < rom15041> Yeah I guess coding in virtual reality is better :p 17:04 < Aikar> keyboard tray vs keyboard on desk, wrist supports for kb and mouse, proper upright chair 17:04 < rom15041> You could even code Minecraft stuff *in* Minecraft 17:04 < Aikar> i need the monitors at day job elevated more than I have them 17:06 < rom15041> Hmm, looking at the 2 monitors on top seems distracting to me 17:07 < Aikar> those i use for monitoring and terminals 17:07 < Aikar> but... im tall, so i line up well with them 17:07 <+Dinnerbone> Amaranth: the one erik wrote before then. I didn't know you changed it. It spirals around the player sorting the chunks to send 17:08 <+Amaranth> iirc the original wasn't actually a spiral and would jump around from side to side and corner to corner while the new one was actually a spiral 17:09 < Aikar> http://imgur.com/cCmqTC8 is my dayjob setup 17:12 < Aikar> >_> just realized calendar was in pic, but nothing important on it :P 17:16 < Aikar> hmm that comic you linked Amaranth just informed me of something important to know.... https://www.jetbrains.com/toolbox/ 17:16 < Aikar> jetbrains having monthly subscriptions now 17:18 < Aikar> i guess i should get the all license since I already have IDEA and PHPStorm 17:18 <+Dinnerbone> They may be changing it again, as this significantly raises the prices for a lot of customers who aren't businesses 17:18 <+Dinnerbone> And there was a lot of uproar about that. 17:19 < Aikar> hm.. yeah that is a massive price increase 17:20 < Aikar> pretty much removes the half off renewal 17:25 < Aikar> i think they are wanting to do that cause they know their customers are going to stick with thier products, and they would get more money off renewals than they do currently :/ 17:28 < winny> Aikar: your desktop is sooo clean wow 17:28 < winny> do the gel rests help ? 17:29 < Doxin> is there anyone in here with a bit of knowledge of crypto? I'm having trouble getting my publickey formatted so the mc client accepts it. 17:30 < Aikar> dayjob work desk is cleanish yeah, cant trash it :P but yes the wrist supports def help prevent carpal 19:19 <+ammar2> Doxin: yeah, what format are you sending it in? 20:06 < Doxin> ammar2: oops, sorry for the slow reply 20:06 < Doxin> ammar2: well, supposedly x509 20:07 < Doxin> ammar2: but the openssl api is a bit odd so I'm probably doing it wrong 20:07 < Doxin> ammar2: all I know for sure is that netty is having troubles reconstuting the pubkey 20:07 < Doxin> *reconstituting 20:11 <+ammar2> Doxin: could you show your code 20:11 < Doxin> sure, gimme a sec 20:12 < Doxin> ammar2: at server start this runs: http://paste.pound-python.org/show/qE5hjbpoYZkLYkNqs3uB/ , encodedPublicKey then gets tossed into the encryptionRequest 20:31 < Doxin> ammar2: need anything else? 20:37 <+ammar2> Doxin: sorry, had to step away for a minute, looking now 20:38 < Doxin> np 20:41 <+ammar2> Doxin: you likely wanna take a look at i2d_X509 20:42 <+ammar2> instead of using i2d_RSA_PUBKEY 20:43 < Doxin> right 20:44 < Doxin> ammar2: I'll give that a go next time I work on it 21:15 < Aikar> Dinnerbone, mind a quick PM? 21:16 < shoghicp> ammar2: oh god don't remember me those D: 21:16 < shoghicp> just looking at i2d gave me headaches 21:16 <+ammar2> shoghicp: pls, openssl is the most beautiful api ever 21:17 < Aikar> ammar2, not as beautiful as you of course <3 21:17 < shoghicp> same API, and I need to do stuff in a different way every time 21:17 < shoghicp> some parts use a pre-allocated array 21:17 < shoghicp> others need a pointer that they allocate and you need to free later 21:18 < shoghicp> others do black magic and drop your const and modify it 21:18 <+ammar2> shoghicp: I have learned to accept it all 21:18 < shoghicp> some parts need you to hash the data before, others hash it themselves :P 21:18 <+ammar2> you need to accept openssl into your heart 21:19 < shoghicp> at least I made a nice interface and wrapper around it 21:19 < shoghicp> so I can swap it with another crypto library automagically :D 21:20 < shoghicp> this time we'll be using elliptic curves and ECDH :) 21:21 <+ammar2> sounds fancy 21:24 <+Thinkofdeath> ammar2: interestingly I use d2i_RSA_PUBKEY to decode the key on my client. You'd assume the reverse did... well the reverse 21:35 <+ammar2> Thinkofdeath: welcome to openssl 21:35 <+Thinkofdeath> .-. 21:39 <+ammar2> Thinkofdeath: actually yeah, that should work https://github.com/mkrautz/openssl-mirror/blob/beb1e1804912fac3f7818b922400031b35a81ff6/crypto/asn1/x_pubkey.c#L234 21:39 <+ammar2> beats me 21:39 <+ammar2> maybe Doxin made some other mistake 22:15 < Doxin> I probably did 23:52 < roblabla> While updating NMP and testing it on a server, it seems I tripped up an entityMetadata type 12 23:52 < roblabla> which isn't documented on wiki.vg 23:55 < roblabla> aha, it would seem Thinkofdeath already knows about it https://github.com/thinkofdeath/steven/blob/master/protocol/metadata.go#L115 :P --- Day changed sam. sept. 12 2015 00:08 * Thinkofdeath *whistles* 00:09 < rom1504> I just added that in the wiki, if you know more than 'VarInt' add it though ;) 00:11 <+Thinkofdeath> rom1504: its a block id in combined format 00:12 <+Thinkofdeath> I got lazy with the implementation just for a quick fix 00:16 < roblabla> Thinkofdeath, you mean (id << 4) | data ? 00:16 <+Thinkofdeath> yep 00:16 < roblabla> kk 00:16 < roblabla> I guess it makes sense. It was attached to an enderman --- Log closed sam. sept. 12 01:05:20 2015 --- Log opened sam. sept. 12 01:05:28 2015 01:05 -!- Irssi: #mcdevs: Total of 149 nicks [1 ops, 0 halfops, 15 voices, 133 normal] 01:08 -!- Irssi: Join to #mcdevs was synced in 204 secs 15:48 < Not-f7bb> [SpockBot] gamingrobot pushed 1 commit to master [+0/-0/±1] http://git.io/vZwXf 15:48 < Not-f7bb> [SpockBot] gamingrobot d768203 - Fix typo 18:53 < Not-f7bb> [SpockBot] gamingrobot pushed 2 commits to master [+0/-0/±4] http://git.io/vZrw5 18:53 < Not-f7bb> [SpockBot] gamingrobot 4883f12 - DefaultPlugins -> default_plugins 18:53 < Not-f7bb> [SpockBot] gamingrobot f89c031 - Merge pull request #136 from gamingrobot/default-plugins 21:21 < Aikar> http://www.hitbox.tv/aikar live streaming epic boss battle on difficulty 10 if anyone wants to watch :) 21:32 <+XorBoole> Aikar > not instakill 21:32 <+XorBoole> wait, when'd you add chat highlighting? I should add this 21:38 < Aikar> XorBoole: been a while, users can add custom alert words :P --- Day changed dim. sept. 13 2015 00:08 < Gjum> in 0x02 Chat Message, when is the Position set to 2 (above action bar)? I've never seen this 00:08 < Aikar> its a new mc feature that no api exists for yet 00:08 < Aikar> dunno why it doesnt have onem its so simple 00:09 < Aikar> >_> oh this isnt spigot channel lol 00:12 < Gjum> :) 00:13 < Gjum> so, does anyone know what Position = 2 is for? 00:18 <+Thinkofdeath> Gjum: locked chests 00:18 < Gjum> Thinkofdeath, thanks, that's a start :) 00:18 < angal> And custom servers :) 00:19 <+Thinkofdeath> Aikar: I'm still split on the api, most want to attach it to send message but it seems really out of place there 00:20 < Aikar> Thinkofdeath: I added a sep sendActionBar 00:20 < Gjum> Oooh, that's position 2! cool 00:20 <+Thinkofdeath> Aikar: that seems saner but i've yet to see anyone else agree :) 00:21 <+Thinkofdeath> Aikar: brightside, i'm trying to premptively add api for 1.9 so hopefully it wont be an issue with missing api like 1.8 01:10 * XorBoole looks at Thinkofdeath 01:10 * XorBoole looks at his villagers PR 21:54 < Doxin> I'm writing a mc server, and I'm having some trouble getting the client to accept the public key. I keep getting "[Netty Epoll Client IO #0/ERROR]: Public key reconstitute failed!". can someone have a look at the relevant code and tell me if I'm doing something obvious wrong? http://paste.pound-python.org/show/JSc67l0zTEzoRfvmsIvV/ 22:40 < rom1504> Doxin: did you think about looking how an implementation of mc protocol is done in the language you are using ? 22:45 < Doxin> rom1504: I don't think there are any. I did look. 22:45 < Doxin> rom1504: note it's D, not C(++) 22:50 < rom1504> okay 22:50 < rom1504> (I didn't know which language it was) 22:52 < Doxin> now you do :D 22:52 < Doxin> I compared my packet to the official minecraft client 22:52 < Doxin> and it seems the same except for the token and the pubkey 22:52 < Doxin> so my guess is I'm using openssl incorrectly. 23:41 < gamingrobot> how do I write in a book? 23:41 < gamingrobot> from a protocol standpoint 23:42 <+Amaranth> It's a plugin channel message because reasons 23:42 <+Amaranth> http://wiki.vg/Plugin_channel#MC.7CBEdit 23:51 <+AndrewPH> yolo , that's why 23:52 <+Thinkofdeath> I assume it was because they only had a max of 256 packets shared between all states in 1.6<. No reason not to change it now though --- Day changed lun. sept. 14 2015 00:04 < Doxin> Thinkofdeath: the reason of "don't touch it, it works." 00:08 < jast> protocol design 101: always change everything to make the structure look neater, especially if there's lots of software already using the protocol 00:09 <+ammar2> don't touch it, because everything is shit 00:09 <+ammar2> I think they've been refactoring for like a solid 2.5 years now 00:09 < Gjum> > don't touch shit 00:09 < Gjum> reasonable 01:28 < MonkeyJamboree> hey all. i have an idea for a simple application to intercept pings or status requests to my minecraft server, and send a startup request to the azure vm when it gets one if the vm isn't started, and otherwise to just pass requests through to the server. any thoughts on the plausibility of doing this from the minecraft network/protocol side of things? 01:32 <+ammar2> MonkeyJamboree: its possible, there are applications that do this already 01:32 <+ammar2> the easy way to do it is to disconnect the person when they log in 01:33 <+ammar2> with like a "please reconnect in a minute, server starting up" 01:33 <+ammar2> and then run a tcp proxy between the server and your "server" 01:33 <+ammar2> once its actually started up 01:34 < MonkeyJamboree> oh, i hadn't realized there were apps to do that 01:34 <+ammar2> off the top of my head I think mc my admin does it 01:34 <+ammar2> but the example was just to say that it is possible 01:34 < MonkeyJamboree> how would they log in if the vm isn't started yet though and thus won't show on their available status list 01:34 < MonkeyJamboree> ? 01:34 < MonkeyJamboree> oh alright 01:35 <+ammar2> well the proxy intercepts the status requests and the initial log in request 01:35 < MonkeyJamboree> ahah, i gotcha 01:35 <+ammar2> so like user <==(status)==> proxy <---> server 01:35 <+ammar2> and once the server is actually up 01:35 <+ammar2> it can just forward all the tcp packets through both ways 01:35 <+ammar2> and everything should work fine 01:35 < MonkeyJamboree> makes sense 01:37 < MonkeyJamboree> i've never done anything with proxies or much with network traffic outside of making http requests to APIs and such, so i'll have to look into that 21:48 < morfin> hello again 21:49 < nickelpro> Hello 21:49 < morfin> so returning to question with synchronization between worlds 21:49 < morfin> how critical if they would have small difference? 21:50 < nickelpro> Hugely critical if an entity collides with a block and the world's disagree on the physics response 21:51 < nickelpro> You're talking about sharing or something along those lines? Civcraft had been trying to make it work for awhile 21:51 < morfin> no not sharing 21:52 < nickelpro> sharding** autocorrect messed me up 21:52 < morfin> as example i have overworld and enderworld and netherworld(same server) but they have tiny difference because i can't 100% synchronize them 21:53 < nickelpro> What do you mean synchronize them? They are completely different dimensions, there is nothing to synchronize 21:54 <+ammar2> probably passing stuff between portals 21:57 < morfin> i assume physics, AI etc works when tick happen 21:57 < morfin> about sharding i am not sure it is even possible 21:58 < morfin> ammar2, what will happen if i run tick handlers of different worlds(on one server) with difference 21:59 < morfin> and drop something into portal(as example overworld=>enderworld) 21:59 <+ammar2> no idea lol, all I know is some redstone devices assume that the world ticking is synchronized 22:00 < morfin> hmm 22:00 < morfin> maybe i should have one global timer 22:24 < Not-2be> [mineflayer] rom1504 pushed 1 commit to master [+0/-1/±3] http://git.io/vZSlm 22:24 < Not-2be> [mineflayer] rom1504 deleted branch use_minecraft_wrap 22:27 < Not-2be> [mineflayer] rom1504 pushed 1 commit to master [+0/-0/±1] http://git.io/vZS8T 22:27 < Not-2be> [mineflayer] rom1504 366f494 - remove dependencies only used in minecraft-wrap and move minecraft-wrap to dev dependencies --- Day changed mar. sept. 15 2015 00:30 <+md_5> 7777777777777777777777777777777777777777777777777777777777777/clr 00:30 <+md_5> 7777777777777777777777777777777777777777777777777777777777777/clr 00:30 < Gjum> uh, hi? 00:31 < nickelpro> Everyone quiet, I think it's trying to communicate 00:31 <+md_5> oops 00:31 <+md_5> key must've got stuck 00:40 <+XorBoole> 10/10 would seven again 00:58 < dx> 7/7 01:04 < Not-f7bb> [minecraft-data] rom1504 pushed 1 commit to 1.8 [+2/-0/±2] http://git.io/vZ9fJ 01:04 < Not-f7bb> [minecraft-data] rom1504 5d86a19 - add version.json 01:49 < Aikar> lol 10:29 < johni0702> roblabla, what's the purpose of the 'anon' property in the protocol.json of minecraft-data? 10:30 < johni0702> it's only used once to create some sort of anonymous inner container. but then the question is what's the purpose of having that inner container? 14:19 < roblabla> johni0702, entityMetadata uses a special type of inner container, a bitfield 14:19 < roblabla> The point of anon is that it will take all the members of that inner container into itself 14:20 < roblabla> The point is that the new entityMetadata using bitfield is compatible with the old one field-wise (I don't have to suddenly to metadata.keyType.key, I can just use metadata.key 14:20 < roblabla> wow, that sentence wasn't english. 14:28 < roblabla> johni0702, another use-case off the top of my head, though I haven't used it yet, is to avoid having an inner container and/or repeating myself when using a switch. For instance, https://github.com/PrismarineJS/minecraft-data/blob/1.8/enums/protocol.json#L1566 I keep repeating the condition. 14:37 < johni0702> ah, thx that makes sense 16:42 * yawkat prods Grum 16:42 < yawkat> what's the server infinisleeper for? 16:43 < yawkat> it's a daemon thread that... sleeps 16:43 < yawkat> eternally 16:50 < Aikar> this is mojang, do you need more of an answer? 16:50 < Aikar> :P 16:50 < Aikar> (jk mojang!) 16:50 < Aikar> had to give the bandwagon answer >_> 16:51 < Aikar> but id assume there was some old quirk in an older jvm that that was a dirty hack to make up for 17:09 <+XorBoole> yawkat it's destined to some day rise up and destroy the world 17:10 <+XorBoole> beware the Infinisleeper, creature of the deep! 17:11 <+ammar2> yawkat: http://stackoverflow.com/a/824472 17:11 < yawkat> nice. 17:24 < Aikar> gotta love windows.... 17:25 < Aikar> interesting note on that about parkNanos 17:25 < Aikar> might play with using that on my fork 17:26 < Aikar> cause Thread.sleep inaccuracy causes so many ticks to under sleep, causing them to immediately re-enter another super short sleep, then that one of course oversleeps. I believe thats the cause of the server actually floating around 19.92~ tps 17:35 < roblabla> pfft 17:35 < roblabla> SO there's this bug, you have this hacky alternative, oh and btw, it triggers another bug 17:50 < Aikar> whats the other bug? i was reading on it seems it may randomly wake up. as i said "play with it" :P 17:51 < Aikar> ultimately aiming to make my catch up system fine tuned to ignore super small sleeps, as I already have the buffer rolling both ways, so if it under sleeps, itll just add onto the next sleep 18:35 <+Grum> yawkat: its an ancient bugfix for something, i think we might not need it anymore 18:36 < yawkat> ammar linked something 18:36 <+Grum> ah yeah that 18:57 < Aikar> Grum, in the realm of performance improvements, thoughts on moving Tile Entity to not be a world tick list, and schedule them to do work on the interval that they actually do work, like beacons etc? using the next tick list thing? 18:57 < Aikar> and please remove the need for chests to tick ._. 18:58 < Aikar> 1.8 removing sign ticking was a major improvement, just need chests removed now 18:59 <+Amaranth> Aikar: iirc chests need to tick on the client still 18:59 < Aikar> and my goal i want to do as a patch but would be awesome if you did it by default - move entity (and tile entity if it must stay this way) to be chunk based, so things like 'is chunk loaded' checks can be done once per patch instead of once per tile entity, and also to benefit from better cache hits working in the same chunk at a time 18:59 <+Amaranth> So even if they dropped their server tick logic (which they could easily do) they'd have to put in a "is this the server?" hack to stop them from ticking entirely 19:00 < Aikar> could have a separate client tick list? 19:01 < Aikar> i namely really want the chunk based ticking. with the getChunkAt cache I put back in, really reduced that hotspot, and that cache would be more effeciently used with a chunk based order for ticking 19:01 < Aikar> just need to maintain when the last time an entity ticked to prevent double ticking when moving between chunks 19:06 <+Grum> Aikar: nextticklist is absolutely utterly shit and i do not want to ever use it 19:06 < Aikar> i agree :P 19:07 < Aikar> but, some form of only tick when we know something is scheduled to tick 19:07 < Aikar> one thing I was working on was bucketing tile entities into their tick interval 19:07 < Aikar> so you only had to tick the bucket for TE's you know need to tick this tick, and to also spread them over multiple ticks 19:07 <+Amaranth> I mean, nextticklist itself might be awful but some sort of scheduler is needed 19:08 <+Amaranth> Aikar: btw I had an interesting idea I thought you might enjoy, an addition or alternative to your entity activation range stuff 19:08 < Aikar> i had it mostly working in 1.7 but didnt have time to figure out a few bugs 19:08 < Aikar> oh? 19:09 <+Amaranth> You always tick players and their mounts (recursively!) then sort the remaining entities by their distance from a player and tick them until you run out of time 19:09 <+Amaranth> You'd have to guess about running over because you can't measure time that often or you'll spend too much time doing that instead of ticking things 19:09 < Aikar> oh you mean measuring it like spigot currently is that I had to remove? lol 19:10 <+Amaranth> Eh? 19:10 <+Amaranth> I'm talking about doing a System.nanoTime every 1000 entities or something so you can see when you've gone longer than a tick can go 19:11 <+Amaranth> That way you're always doing as much work as possible, it's like a dynamic activation range 19:14 < Aikar> spigot added a tick limiter to cap time spent per tick on entities, but its measuring it near every entity (current bug, it meant 1 in 10 entities but reversed the check) 19:14 < Aikar> but problem with your idea is that entities would need to be last 19:14 <+Amaranth> Yeah 1 in 10 is still way too much 19:14 <+Amaranth> But hey maybe someone was listening after all :P 19:14 < Aikar> cause if you push it up to 50ms, theres more code after entities (and also, ticking multiple worlds), so itll go over 19:15 <+Amaranth> Right you have to define timeslices for everything 19:15 < Aikar> also that method runs risk of not ticking some entities for long periods of time, specially in high load scenarios 19:16 < Aikar> Grum, are you aware of my activation range stuff? 19:16 < Aikar> if mojang did it native, people might bitch but theyd get over it :P 19:17 < Aikar> just like everything else you guys do 19:17 * Amaranth still thinks it should be chunk based 19:18 < Aikar> as a vanilla level maybe, but I have my granularity at less than a chunk :P 19:18 <+Amaranth> You could combine it with some existing chunk checks that way 19:18 < Aikar> 8 to 16 for items can be a major reduction 19:18 <+Amaranth> If item drops are enough of a problem for you that you need to drop them from 16 to 8 you need to tell your players to pick up their trash 19:19 < Aikar> but yeah it would simplify some of the isActive checks 19:19 <+Amaranth> Or just start deleting drops to teach them 19:19 < Aikar> though the main slowness of isActive is the isChunkLoaded check 19:19 <+Amaranth> Which you don't need 19:19 <+Amaranth> How would you be ticking the entity if the chunk wasn't loaded? 19:19 < Aikar> i need to look at the code, i tried to remove it before but i remember it bing needed 19:20 < Aikar> maybe its neighbor check 19:20 <+Amaranth> Hell vanilla won't even tick them if chunks near them aren't loaded (which is expensive to check, btw) 19:20 <+Amaranth> Although I made that cheaper in CraftBukkit, was a pretty huge win 19:20 < Aikar> Chunk chunk = entity.world.getChunkIfLoaded( x >> 4, z >> 4 ); 19:20 < Aikar> if ( isActive && !( chunk != null && chunk.areNeighborsLoaded( 1 ) ) ) 19:21 <+Amaranth> Right the neighbors loaded thing, I made that fast 19:21 < Aikar> that getChunkIfLoaded, wouldnt be needed if entity had a ref to the chunk its currently added to.... 19:21 < Aikar> yep, its the getChunkIfLoaded portion thats hot 19:21 < Aikar> i need to extend my cache to that method too 19:21 <+Amaranth> Vanilla is already doing that check 19:21 < Aikar> where i placed it ended up not using the cache 19:21 <+Amaranth> Why are you doing it too? 19:21 < Aikar> right, this replaces vanillas check 19:21 < Aikar> i took vanillas out 19:22 < Aikar> so it doesnt even do that check if it fails the other checks 19:22 < Aikar> reduces the neighbor checks to only as a final 'ok, last check to determine active' 19:24 <+Amaranth> btw Grum wants to hide Chunk entirely so you only work with World 19:24 <+Amaranth> Opposite of what you're asking for :P 19:24 < Aikar> how do you hide the chunk class? 19:25 < Aikar> store chunksections in the world instead? 19:25 <+Amaranth> Well obviously he chunk loader and such would have to know about them 19:25 <+Amaranth> And so would World 19:25 <+Amaranth> But entities and blocks don't 19:25 <+Amaranth> And World wouldn't have any methods you can call to get a Chunk 19:26 < Aikar> well good thing were in a position to add needed things :P 19:26 < Aikar> if mc can access it, so can my patches! 19:26 <+Amaranth> Chunk, ChunkSection, these would be a hidden implementation detail 19:26 < Aikar> i didnt mean api wise 19:26 < Aikar> i meant instead of doing getChunkAt to find entities current chunk as it does in many places, just use the ref 19:27 <+Amaranth> Right but Entity wouldn't know Chunk exists 19:27 <+Amaranth> I'm not talking about an API either, except within the game itself 19:28 <+Amaranth> Anywhere that currently works with Chunk or ChunkSection imagine it working with World instead and thus doing repeated getChunkAt calls 19:34 < Aikar> Grum, thats a horrible idea! :P 19:34 < Aikar> need to be reducing those dang calls lol 19:35 < Aikar> its no concern for smaller servers, but larger ones that stuff becomes a big hot spot :/ 19:35 < Aikar> specially with 5k+ chunks 19:43 <+Grum> what is a hotspot? 19:43 <+Grum> getting a random chunk? 19:43 <+Grum> there are other ways of solving that 19:44 <+Grum> by having the thing that 'requests a chunk' become an 'owner of chunks' with a certain range 19:44 <+Grum> when they are owner, they would have an array of 'the chunks they own' (own as in usable) 19:44 <+Grum> and then you can for each of these questions just redirect it straight into those arrays 19:46 <+Grum> basically constant access times at the cost of rewritign everything and it wouldn't work for commands doing /setblock etc 19:53 < Aikar> Grum, the getChunkAt accessing the map to get a chunk. I added a cache that requesting same chunk multiple times in a row to skip the map lookup and greatly improved that (with busting the cache on unload / every tick) 19:53 <+Grum> i quite dislike that in all honesty 19:53 < Aikar> why? 19:53 < Aikar> all the blocks calling getType() results in so many getChunkAt calls 19:53 <+Grum> because when you solve a problem with a cache you now got another problem 19:54 < Aikar> well we know the cases a chunk can go invalid, and wipe out the cache the start of every tick to be safe anyways 19:54 <+Grum> and that is gross code to have 19:55 <+Grum> and its not enough 19:55 <+Grum> and if this ever bugs ..... impossible to find 19:55 < Aikar> well, could override the remove method in the chunk map to force remove there :P then never worry about missing lol 19:56 <+Grum> also 100% sure absolutely not threadsave in any remote way 19:56 <+Grum> s/v/f 19:56 < Aikar> its not safe to call getChunkAt async in first place.... 19:56 < Aikar> so thats moot 19:57 <+Grum> agreed --- Day changed mer. sept. 16 2015 19:47 < Aikar> Grum, Dinnerbone can you please fix signs for 1.9 to let users write past the visible render (at least 20~+ chars). People with different resource packs have different max limits per line of a sign :/ and people with 16 char names that use fatter characters cant even write full name even on vanilla RP 19:48 <+XorBoole> Aikar does the resource pack *actually* affect the number of chars on a sing 19:48 < Aikar> (fixing for 1.8 would be even more awesome) 19:48 <+XorBoole> that seems strange 19:48 < Aikar> XorBoole, yep 19:48 <+XorBoole> wat 19:48 <+XorBoole> dammit searge 19:48 < Aikar> had one user complain to me, then switching to vanilla let them write full name 19:48 < Aikar> cause the RP had bigger font 19:49 <+XorBoole> how is this behavior even sane 19:49 < Aikar> its not, is why im asking them to fix :P 19:49 <+XorBoole> did you open a bug report? 19:49 <+XorBoole> inb4 no because it's a feature 19:49 < Aikar> you know how bug reports work, if you cant report how its impacting gameplay behavior it gets closed >_> 19:50 < Aikar> "i need it for my custom server > closed 19:50 <+XorBoole> " people with 16 char names that use fatter characters cant even write full name even on vanilla RP" 19:50 <+XorBoole> is that not a sufficient case to make a report? 19:50 < Aikar> maybe 19:50 <+XorBoole> I agree that the mods are overly heavy-handed on mojira but I don't think that'd get thrown out 19:50 <+XorBoole> then again they made my client-crashing villager bug public and no one has commented on it... 19:51 <+XorBoole> for the record, send villager trades with a null result to crash the client 19:51 <+XorBoole> (it's public now, so I don't care) 19:52 < Aikar> https://bugs.mojang.com/browse/MC-76380?jql=text%20~%20%22resource%20pack%20sign%22 19:52 < Aikar> this doesnt give me hope 19:53 <+XorBoole> well, you could go find searge and make him fix it 19:53 <+XorBoole> it's his feature 19:56 < Aikar> https://bugs.mojang.com/browse/MC-88858 21:47 < morfin> i remember you said something about sharding 21:48 < morfin> which type you meant - sharding between worlds? 21:49 < morfin> or even more insane idea - split world to shards 21:54 < roblabla> Splitting a single world has already been done, not that insane ^^ 21:56 < roblabla> I remember lazertester showing off something similar to sharding a world 21:57 < morfin> it is because of redstone 21:58 < morfin> but it allows maintain world partially hmm 22:07 < morfin> wait tick is 1/20 of second right 22:07 < morfin> for redstone it's 1/10 - that's very big delay 22:10 < morfin> to compare i have latency 100ms to server in UK from Ural(it's almost 4000 kilometers), so if servers are close enought that means no problems? 22:12 < Aikar> XorBoole, and a mod closed it as duplicate to a ticket its not a duplicate of lol... 22:40 <+XorBoole> Aikar 10/10 22:40 <+XorBoole> would report again 22:40 <+XorBoole> who knows, one day I might be jadded enough to moderate mojira 22:46 <+ammar2> Aikar: I saw a duplicate loop the other day 22:46 <+ammar2> 3 tickets 22:46 <+ammar2> each marked as duplicates of each other 22:46 <+ammar2> with no root ticket 22:50 < angal> No ticket - no bug. Problem resolved. --- Day changed jeu. sept. 17 2015 00:04 < rom1504> duplicate loop, nice concept 06:02 < Not-f7bb> [SpockBot] gamingrobot pushed 3 commits to master [+2/-0/±3] http://git.io/vnes4 06:02 < Not-f7bb> [SpockBot] Gjum e4feb8d - Add chat plugin 06:03 < Not-f7bb> [SpockBot] Gjum cf8ab42 - Fix file not found error for Python 2.7 06:03 < Not-f7bb> [SpockBot] gamingrobot 471c8e9 - Merge pull request #137 from Gjum/chat 19:28 < Techdaan> Hey! I am wondering something 19:28 < Techdaan> Does anyone know something about the logging-in protocol, specifically when the client sends his username to the server after the client sent the handshake with state 2 19:29 < Techdaan> I cannot seem to receive this packet; I am training with networking, so I figured out I could try to do something like this, but this's really bugging me ":) 19:44 < gamingrobot> Techdaan: server or client? 19:53 < Techdaan> Client, it is 19:53 < Techdaan> Gamingrobot: The username should be sent after the state 2 handshake packet, but I cannot receive the username somehow. It simply doesn't send 19:57 < gamingrobot> what do you mean by receive the username somehow? 19:58 < Techdaan> Like 19:58 < rom1504> did you send http://wiki.vg/Protocol#Login_Start N 19:58 < rom1504> ? 19:58 < Techdaan> The client first sends the handshake packet with state 2 19:58 < Techdaan> That is the packet I have to receive :p 19:58 < Techdaan> But I do not receive it 19:58 < rom1504> no 19:58 < rom1504> that is the packet you have to send 19:59 < Techdaan> Then how am I going to receive the username of the user? 19:59 < rom1504> http://wiki.vg/Protocol#Login_Success 19:59 < Techdaan> I guess I have been completely confused 19:59 < gamingrobot> so you are writing a server? or a client? you said client but your talking about not receiving packets sent by the client, implying your writing a server. 20:00 < Techdaan> Oh crap 20:00 < Techdaan> I mis-typed that, sorry 20:00 < Techdaan> Writing a server 20:01 < gamingrobot> so you receive the handshake packet but not the login start, correct? 20:02 < Techdaan> Correct 20:03 < rom1504> are you parsing the handshake packet properly ? 20:03 < Techdaan> I am quite sure I am 20:03 < Techdaan> In fact, when the client sends handshake with state 2 there is no response 20:06 < rom1504> exactly, so it's likely the client send you the handshake packet and the login start packet "together" 20:07 < Techdaan> Hmm, I thought about that too 20:08 < Techdaan> And that may be true, if I read a string after everything I do read the username 20:08 < Techdaan> But there's a [] box and a tab before the name 20:08 < Techdaan> The [] box is like unknown UTF symbol 20:09 < Techdaan> Urgh, I have to go :( 20:10 < rom1504> people reinventing 1/100 of a mc protocol parser everytime ;) 20:12 < Aikar> Grum, can you reopen https://bugs.mojang.com/browse/MC-88858 20:12 < Aikar> i couldnt find any previous issue for it 20:14 < gamingrobot> rom1504: half this channel is asking how to implement the protocol :P 21:38 < morfin> why not 21:38 < morfin> of course i know NIH is bad but if another implementations is not fitting in your program design 21:52 < rom1504> yeah but most don't even look at other implementations (or know how about them) 22:07 < morfin> btw i do not know what's so special in protocol implementation 22:07 < morfin> NBT exist outside of protocol(with gzip), other things seems to be trivial 22:08 < rom1504> well if the protocol implementation is trivial, then the whole minecraft must be like trivial+trivial 22:09 < morfin> i think hmm there is lots of things harder than just protocol 22:10 < rom1504> a bit harder yes 22:10 < angal> Like explain client, what server wants from him by using this trivial protocol. 22:11 < morfin> client is waaay harder for me 22:15 < angal> Cause it doing lots of server staff... 22:18 < morfin> what do you mean 22:21 < morfin> client just display 22:22 < angal> Vanilla? 22:24 < angal> It should calculat physics for some entities. Calculate result of (mostly) all block interactions. 22:25 < angal> The whole creative is client-side. 22:26 < angal> Vanilla client is a slave server, which only send some data to real one to validate results and receive back accepts and some entities movements/world changes. 22:31 < morfin> what? 22:32 < morfin> what about server-side physics? 22:33 < angal> It used for most of entitity types (all living). 22:35 < angal> For players + some other (items, etc) used client side physics calculation. 22:35 < Gjum> items are on server I believe, but the client calculates them too, so they glitch 22:37 < angal> Vanilla server send updates for items once upon a while, so without client predication items will move... glitchy. 22:38 < Gjum> but the server still simulates the "official" item, and handles picking them up 22:39 < angal> Ou... And pickuping to handled by clients. Server only validates it. 23:07 < morfin> yes i know 23:08 < morfin> i meant it's just prediction which can be totaly wrong if i changd something on server side 23:10 < angal> It's not prediction. Protocol enforces you to implement this on client, or this willn't happent at all. (Except items movement) 23:12 < morfin> i mean things like falling send, flying tnt, arrows etc 23:13 < morfin> as example i changed something so tnt fly not like in vanilla(on server-side), but client will still predict wrong movement until synchronize to server 23:14 < morfin> that would be very glitchy i guess? 23:14 < angal> Yup. 23:14 < angal> And this willn't work on players. 23:15 < morfin> why 23:15 < angal> Cause you can't smothly move players, where server want without teleportation packet. 23:15 < morfin> sent by client? 23:17 < angal> Smoth movement for players only relative teleportation and velocity. But that can't gurantee, that clients receive it at point, when server want, nd couse of this might appear desync. 23:18 < morfin> shit 23:18 < angal> So the only packet to overide client player physics is absolute telepotation, which not lokk cool from player, and players willn't play on your server if you send it to often. 23:19 < morfin> so for players it's more than just prediction 23:20 < morfin> and without user sending moving/teleportation packet i can't do anythin 23:21 < angal> In vanilla client calculate physics and server only check if it not to far from origin and there no walls in path... 23:21 < morfin> lol 23:21 < morfin> so in theory i can fall trought wall if server say no walls 23:21 < morfin> :D 23:22 < morfin> well, i see now - client modifications required 23:22 < morfin> to be compatible with custom physics 23:22 < angal> Realy, if you create both server and client, you can bypass this in current protocol... But this willn't be compatible with vanilla client/server. 23:24 < angal> Yeah, 'someone' here was asking about fails in protocol. There ^ one which can be fixed without (big) changes to client/server. 23:29 < morfin> btw i was thinking how hard it will be implement walking on different surfaces 23:29 < morfin> :) 23:30 < angal> :) 23:32 < angal> If you do not want implement other living entitities, than player - you are not required to do this. 23:32 < morfin> do what? 23:33 < angal> Think about walking on surfaces. 23:33 < morfin> why? 23:34 < morfin> for other living entities prediction will do shit too right? 23:34 < angal> You are server? 23:34 < morfin> yes 23:35 < angal> You going to implement living entities? 23:35 < morfin> so i can implement on server side for living things but i will have to modify client anyway 23:36 < angal> Wor living you not need to modify client. 23:36 < angal> It can be handled fully serverside. 23:36 < morfin> hmmm 23:36 < morfin> ok then 23:37 < morfin> basically i still try to design something scalable 23:37 < angal> Thats fun :) 23:37 < morfin> was thinking to just implement server but in this case i would not be able modify without modifying original code 23:37 < morfin> which is bad 23:39 < angal> Maybe when our servers will be ready steven will be done and there will be some protocol tweaks :) 23:39 < morfin> what server? 23:40 < morfin> i was talking not just about protocol, but about something more like hmm 23:40 < morfin> custom behaviours, creating custom entities using scripting only(no recompiling required) etc 23:40 < morfin> of course for custom entities modification of client will be required(sadly) 23:41 < angal> I understand what you want... You want customise gamplay features serverside. 23:41 < angal> Yeah. 23:42 < morfin> basically i like idea how Gmod implemented that 23:43 < morfin> well, not just Gmod but Source engine too(you can precache resources in mod code too), Gmod just provides API to do that 23:44 < angal> Extending resourcepacks can solve this problem at some point. 23:44 < morfin> so you download stuff required for client when connect(models, sounds, textures, some client-side code) and then play 23:44 < angal> Maybe not in vanilla but only in modded... But possible. 23:45 < morfin> and code separated(mostly) to server-side and client-side 23:45 < morfin> not sure it's possible to do that properly 23:46 < morfin> all "models" are just code - only thing exist on client side are sounds and textures as i know 23:47 < morfin> but that design where models are just code allows creating custom animations in perspective 23:53 < angal> Sometimes we will have this in mc. --- Day changed ven. sept. 18 2015 00:00 < angal> But if the models will be code described, i don't think there will appear any new custom mc clients... Maybe only as plugin... 00:02 < davidjotta> Heya:) Could anyone recommend me a starting point to learning packets? I'm trying to understand how I could implement wiki.vg/Protocol in my own Java-based minecraft server, but I just can't find the right docs for it. (TL;DR, want to learn packets pls) 00:02 < morfin> wait what a heck 00:02 < morfin> chin.addBox(-1F, -2F, -3F, 2, 2, 2, 0.0F); 00:03 < morfin> body.addBox(-3F, -4F, -3F, 6, 8, 6, 0.0F); 00:03 < angal> Why not to use any existing library/server? 00:03 < morfin> boxes? 00:03 < morfin> ModelRenderer i assume is do all shit 00:03 < morfin> *doing 00:04 < davidjotta> Well, I found MCProtocolLib, but again no docs, so don't know where to start from 00:05 < angal> Are you sure you want to create your own server, not to join any existing project? 00:06 < davidjotta> I'm not really sure tbh. I would join an existing one, but I'm unsure because I don't know anyone, and I don't know if I have the enough skills to be helpful 00:06 < angal> :) 00:07 < angal> Have you expirience in programming/java? 00:07 < davidjotta> Yup 00:08 < angal> Hm... 00:08 < morfin> there is loooots of shit i should learn 00:08 < morfin> because i am trying to do C++ 00:09 < angal> davidjotta, may i pm you? 00:09 < davidjotta> Sure 00:10 < morfin> angal, what language you use? 00:10 < morfin> jsut interested 00:11 < angal> java... 00:12 < morfin> oh 00:12 < angal> :) 00:12 < angal> Why not? 00:17 < morfin> just asked 00:22 < angal> :) 00:23 < angal> At least it fast to write. Tons of easy to use libraries :) 00:27 < morfin> funny 00:27 < morfin> i know at least 3(!) libraries for event-based programming for C(not C++) 00:28 < morfin> libev, libuv, libevent 00:49 < angal> ping? 01:17 < nickelpro> davidjotta: what don't you understand about the protocol docs? 01:19 < davidjotta> I was talking about the implementation of those, I mean, how can I use all of that data to actually write a functional minecraft server. The part I'm lacking is packets, and I wanted you to recommend a great starting point to learn them 01:19 < nickelpro> The wiki documents the whole protocol, every packet 01:20 < nickelpro> Start with parsing data types and the packet header and work your way from there, that's how most do it 01:20 < nickelpro> Not that it's necessary, there are over a dozen protocol implementations spanning every common and many less-than-common languages 01:22 < davidjotta> Oki, thanks for that. I'll get into it and probably come back asking when I just don't know anymore what I'm doing :) 01:22 < nickelpro> The protocol structure is a little unusual for a game but its still very simple to grok 04:00 < Not-f7bb> [SpockBot] gamingrobot pushed 1 commit to master [+0/-0/±1] http://git.io/vnkZd 04:00 < Not-f7bb> [SpockBot] gamingrobot eaa39d1 - Fix docs badge 06:03 < Aikar> Amaranth: you alive 06:03 <+Amaranth> Yo 06:03 < Aikar> do you know why craftworld.loadChunk is loading neighbor chunks it looks like? 06:03 < Aikar> oh nvm thats vanilla 06:03 < Aikar> why o.o 06:04 < Aikar> this Chunk.loadNearby 06:05 <+Amaranth> *shrug* 06:06 <+Amaranth> Sounds like a 1.8 thing to me, I don't remember a method named that 07:32 < morfin> without proper design code can become mess 17:47 < ekaron> is crash landing still actively developed? 18:31 < Aikar> Dinnerbone, why you remove the bukkit plugin generator :( 18:34 < angal> Couse it's no longer required. Bukkit is get out. :( Users should switch to some other server. 18:52 * Thinkofdeath stabs vanilla 18:54 <+Thinkofdeath> Grum: if you want an easy bug fix: you reuse the chunk packet in the class you use to send them to clients (PlayerChunk for us) however the buffer is released after the first send causing all other clients to disconnect and netty to complain 18:58 <+SinZ> that sounds like a major bug 20:33 < Aikar> angal, much as 'other server devs' want that, its not going to happen. bukkit is here to stay 20:34 < Aikar> the glory of open source, you cant kill it 20:49 < angal> What protocol does minecraft use to share singleplayer server game on lan? 20:49 < angal> Which used to determine game port. 21:29 < Not-f7bb> [SpockBot] Gjum pushed 3 commits to master [+2/-0/±8] http://git.io/vnmN5 21:29 < Not-f7bb> [SpockBot] gamingrobot c670e68 - Fix #140 21:29 < Not-f7bb> [SpockBot] gamingrobot a0f4d19 - Update example 21:29 < Not-f7bb> [SpockBot] Gjum 722dcda - Merge pull request #141 from gamingrobot/chat-move 21:31 < Not-f7bb> [SpockBot] gamingrobot pushed 2 commits to master [+0/-0/±2] http://git.io/vnmAX 21:31 < Not-f7bb> [SpockBot] gamingrobot e7c462a - Add varint and varlong tests 21:31 < Not-f7bb> [SpockBot] gamingrobot 5955398 - Merge pull request #142 from gamingrobot/datautils-tests --- Day changed sam. sept. 19 2015 05:53 < Not-f7bb> [SpockBot] nickelpro pushed 2 commits to master [+0/-0/±2] http://git.io/vnO7e 05:53 < Not-f7bb> [SpockBot] Gjum 395e6ae - Add inv_ready event to signalize when the inventory can be used 05:53 < Not-f7bb> [SpockBot] nickelpro 5525f0d - Merge pull request #135 from Gjum/window-open-feedback 09:20 < DemiPixel> Hey, I was looking for some help on generation if anybody here knows anything... 16:44 < Jckf> Any neat scripts out there tha'll dump the content of a player data file for me? I have one for a player that suddenly was unable to connect, and removing the file solved the issue. Want to see what happened so that I can prevent it in the future 16:52 < Gjum> Jckf, http://wiki.vg/NBT#Libraries and utilities 17:04 < Jckf> Weird. NBT Explorer had no problems with the file. Renamed it to my own UUID, and I had no issues with my client either. Moved it back to his UUID, and the problem was gone. 17:04 < Jckf> He claims all connection attempts before that resulted in a kick with a message containing "DecodingException" --- Day changed dim. sept. 20 2015 02:49 < Not-f7bb> [SpockBot] nickelpro pushed 6 commits to master [+0/-0/±20] http://git.io/vnZ1E 02:49 < Not-f7bb> [SpockBot] gamingrobot e15c35d - Make event names more useful 02:49 < Not-f7bb> [SpockBot] gamingrobot 0328a84 - Fix find and replace blunder 02:49 < Not-f7bb> [SpockBot] gamingrobot ea0252c - Fix another find and replace blunder 02:49 < Not-f7bb> [SpockBot] ... and 3 more commits. 02:50 < Not-f7bb> [SpockBot] nickelpro pushed 3 commits to master [+0/-0/±5] http://git.io/vnZ1z 02:50 < Not-f7bb> [SpockBot] Gjum 65ee8ed - Rename all inv_* events to inventory_* 02:50 < Not-f7bb> [SpockBot] Gjum 02b6881 - Rename inventory_ready to inventory_synced 02:50 < Not-f7bb> [SpockBot] nickelpro fc66fdd - Merge pull request #146 from Gjum/event-names-inv-to-inventory 02:52 < Not-f7bb> [SpockBot] nickelpro pushed 2 commits to master [+0/-0/±2] http://git.io/vnZ1D 02:52 < Not-f7bb> [SpockBot] Gjum 7c18180 - Let interact.look use the improvements from smart_look_at 02:52 < Not-f7bb> [SpockBot] nickelpro ef6ffc6 - Merge pull request #144 from Gjum/smart-look_at 03:05 < Not-f7bb> [SpockBot] nickelpro pushed 3 commits to master [+0/-0/±4] http://git.io/vnZDv 03:05 < Not-f7bb> [SpockBot] Gjum 2e951a3 - Make entity metadata a dict 03:05 < Not-f7bb> [SpockBot] Gjum abf929d - Allow all entities to have metadata 03:05 < Not-f7bb> [SpockBot] nickelpro 9af0455 - Merge pull request #143 from Gjum/entitymeta-dict 03:09 < nickelpro> MERGE ALL THE PRs 08:11 < AlphaBlend> switching users on the game launcher should reset the session key 08:11 < AlphaBlend> ought to* 08:12 < AlphaBlend> even if you switch then go back to your account 08:12 < AlphaBlend> so many times sessions expire for me at certain times 08:12 < AlphaBlend> at the wrong times, rather 08:12 < AlphaBlend> like it should reset its TTL on connection to a minecraft server 08:35 < Jckf> Making the launcher fetch a new token would only make the problem worse. You should instead identify which application you use that causes your tokens to expire, and fix that. 08:35 < Jckf> IIRC you can have 3 active tokens. If they keep expiring, it's because something keeps fetching new ones 09:01 < AlphaBlend> Jckf: I wouldn't think other applications cause the minecraft launcher token to expire