11:19 < MrARM> Haha, look how far MCPE is from PC 11:47 < Paprikachu|work> i dunno, from what i've seen it's not that far behind 11:48 < Paprikachu|work> but i haven't bought it 11:48 < Paprikachu|work> and there's no reason for me to when i can play it on a pc 12:21 < Wuppie> Why if i receive a position (coordinates X, Y, Z) the y off by one :| 12:23 < Wuppie> well, with block placement atleast 12:23 < Paprikachu|work> maybe the clients sends the position and face of the block the cursor pointed to when the player clicked? 12:24 < Wuppie> hehe, thats true 12:24 < Paprikachu|work> just a guess 12:31 < Wuppie> Paprikachu|work, they say "Direction - The offset to use for block/item placement (see below)" but they never really give any info 12:31 < Paprikachu|work> well, what that means is probably that if direction is +X you take the block and add 1 to its X and similarly for all other directions 12:32 < Wuppie> How do i know if i have to add it to X, Y or Z? 12:32 < Wuppie> as it is a byte 12:32 < Paprikachu|work> could also be -X, -Y and -Z 12:33 < Paprikachu|work> and iirc it uses the values 0-5, but which one means what should be documented somewhere 12:34 < Paprikachu|work> http://wiki.vg/Protocol#Player_Digging 12:34 < Paprikachu|work> it says right there 12:34 < Wuppie> ah lol 12:34 < Wuppie> thnx 14:22 < gurun> One thing that hits you browsing code for all the various servers out there. The tremendous amount of code that tries to deal with cheating. 18:35 < SopaXorzTaker> shoghicp, hello 18:35 < SopaXorzTaker> how to handshake raknet style? 18:35 < shoghicp> use RakNet! 18:35 < shoghicp> or reverse-engineer the protocol 18:40 < SopaXorzTaker> but you've already 18:40 < SopaXorzTaker> can you explain just what i need to send 18:41 < SopaXorzTaker> *dirty testing style 18:41 < Grum> if you want to do that why not just listen in on the traffic? 18:41 < SopaXorzTaker> lazy 18:43 < Paprikachu> Grum: have you thought about using udp? 18:43 < Grum> yes and the answer is no(t for a long time) 18:43 < Paprikachu> ? 18:44 < Paprikachu> i'm sure theres some java udp libraries like raknet as well 18:44 < Paprikachu> why not use one of those 18:45 < Grum> besides them not being compatible with netty, requiring major overhaul and not a *huge* benefit -- we do not have time for that 18:47 < SopaXorzTaker> shoghicp, what is that 0x09 packet? 18:47 < SopaXorzTaker> 000005DA 84 00 00 00 40 00 90 00 00 00 09 00 00 00 00 77 ....@... .......w 18:47 < SopaXorzTaker> 000005EA 90 1f 01 00 00 00 00 00 00 79 bf 00 ........ .y.. 18:47 < Paprikachu> but tcp is tcp... :/ 18:48 < Grum> yes and 90% of our data (bruteforce guess) is tcp-style 18:48 < Paprikachu> what does that mean 18:49 < Grum> 'required to be in order and 100% guaranteed complete' 18:49 < Paprikachu> well, np 18:49 < Paprikachu> no 18:49 < Paprikachu> not exactly 18:49 < Paprikachu> if a movement packet gets lost, you dont really want to wait for that 18:50 < gurun> SopaXorzTaker, did you check the protocol specs on the wiki? 18:50 < SopaXorzTaker> yeah 18:50 < gurun> ok 18:50 < SopaXorzTaker> but that's a reserved one 18:50 < Paprikachu> you just don't want to process older packets that the latest one that has arrived 18:50 < SopaXorzTaker> raklib's internal 18:50 < gurun> yes of course 18:50 < gurun> but it is still documented. 18:50 < Grum> Paprikachu: good now read again what i said, 90% of the data which sits in 5% of the packets (numbers pulled from my ass but they should be close to thruth) are tcp-style 18:50 < gurun> what language are you working in? 18:51 * Xor_Boole sets the protocol on fire 18:51 * Xor_Boole walks away 18:51 < Paprikachu> Grum: but tcp is a issue for the other 95% of packets 18:51 < Grum> not really 18:51 < Paprikachu> uh, yes it is 18:51 < gurun> SopaXorzTaker, i mean, come on.. what do is your questions? 18:51 < Grum> Does it not work? 18:51 < Grum> Then it is no 'issue' 18:52 < Paprikachu> oh, your movement update didnt arrive? well heres a retransmition that introduces a 200 ms delay 18:52 < SopaXorzTaker> aha! 18:52 < SopaXorzTaker> https://github.com/PocketMine/RakLib/blob/1eba2267876ba8e9a00380f2ae9e05dff9eb0ec8/protocol/CLIENT_CONNECT_DataPacket.php 18:52 < Paprikachu> theres a reason games use udp based protocols 18:52 < Paprikachu> include mcpe 18:52 < Paprikachu> including 18:53 < Grum> yes and no game is like minecraft 18:53 < gurun> Paprikachu, can we not have one of these pointless performance, bash mojang, bash raknet, bash the world, discusions please. 18:53 < Paprikachu> Grum: think of connections with high packet loss 18:53 < Paprikachu> for example mobile connections that already have a bad ping 18:53 < Grum> they are extra happy with being able to see the world 18:54 < Paprikachu> wat 18:56 < Paprikachu> also tcp's stream orientedness is meh too, but that applies to pretty much any application anyways 18:57 < Grum> sure maybe eventually doing UDP might be an idea 18:57 < Grum> requires a lot of work though 18:57 < Paprikachu> that is true 18:57 < Grum> right now, not worth it 18:58 < Grum> and then we're back at what i said 10 mins ago 18:58 < Grum> < Grum> yes and the answer is no(t for a long time) 18:58 < Grum> < Grum> besides them not being compatible with netty, requiring major overhaul and not a *huge* benefit -- we do not have time for that 18:59 <+Amaranth> SCTP seems perfect for this (of course it seems perfect for most protocols, shame we don't use it) 19:00 < Paprikachu> sctp has its issues 19:00 < Paprikachu> the biggest one being lack of support in routers 19:00 < Paprikachu> and OSs 19:01 <+Amaranth> Yeah, you have to use SCTP over UDP which Java doesn't support 19:01 <+Amaranth> Java's SCTP support is for the native protocol which probably won't make it past your home router let alone the first hop out on the internet 19:01 < Paprikachu> there's not really a point in doing that when you can fix sctp's issues by using udp directly (or a lib on top of udp) 19:02 <+Amaranth> Because SCTP gets you TCP mechanics without head of line blocking which is what you really want 19:02 < Paprikachu> it has other issues 19:02 < Paprikachu> such as the completely idiotic way they implemented "optional acknowledgements" or whatever you call it 19:03 < Paprikachu> turns out, there is no mechanism for the receiver to differentiate between an acknowledged message and a non-acknowledged one, it's all sender side 19:04 < Paprikachu> which results in useless acknowledgements being sent that are gonna get ignored anyways 19:07 <+Amaranth> Yeah that's pretty goofy --- Day changed sam. janv. 24 2015 01:19 < Wuppie> it happens so often i don't receive a player dig packet 01:19 < Wuppie> :| 07:47 < Xor_Boole> Amaranth, who was it that wrote the LongHashSet in CB? 07:47 < Xor_Boole> found an interesting hang 07:49 < Xor_Boole> actually, it was you. I just made it blow up 08:40 <+Amaranthus> Xor_Boole: The one in CB is sort of me 08:40 <+Amaranthus> But more that I took one and modified it to use long keys instead of Object keys 12:59 < MrARM> update: MCPE also uses the GLM lib 13:00 < Paprikachu> heh 13:00 < Paprikachu> seems like mcpe is pretty decent c++ 13:00 < Paprikachu> also, thanks to the guy who updated map chunk bulk 13:06 < Fenhl> Paprikachu: more like updated all of [[Protocol]] 13:08 < MrARM> but seems like not the newest version of glm 13:11 < Paprikachu> Fenhl: well, thanks for your work. it's appreciated, at least my be :) 13:11 < Paprikachu> one thing though: are you sure it's one single array and not 2 arrays? 13:12 < Paprikachu> i.e. array followed by array as opposed to array 13:13 < Fenhl> no idea 13:13 < Paprikachu> well, that'd be important :p 13:13 < Fenhl> I've mainly just been using the info that was already there, asking here if something was too unclear 13:14 < Fenhl> so any errors in the documentation would still be present 13:14 < Paprikachu> well, it was different before 13:14 < Paprikachu> but i'm about to decompile bukkit to know for sure 13:14 < Fenhl> Bukkit isn't 1.8 though, is it? 13:15 < Paprikachu> i thought it was 13:16 < Paprikachu> wait, where do i even get a build of bukkit 13:17 < Fenhl> the whole dmca thing happened on the same day 1.8 was released 13:17 < Fenhl> or maybe the day after 13:17 < Fenhl> in either case, the last release was for 1.7.9 and the last dev build was for 1.7.10 13:17 < Paprikachu> mhh 13:17 < Paprikachu> i dont wanna have to decompile vanilla :| 13:20 < Paprikachu> https://github.com/GlowstoneMC/Glowstone/blob/master/src/main/java/net/glowstone/net/codec/play/game/ChunkBulkCodec.java 13:20 < Paprikachu> yup, 2 arrays 13:22 < Fenhl> ah ok, fixing 13:27 < Fenhl> Paprikachu: fixed 13:28 < Paprikachu> nice 13:28 < Paprikachu> looks good 14:03 < Paprikachu> so... does the client even use the light the server sends 14:03 < Paprikachu> or can i just send a bunch of 0xF's and be done with it 14:07 < shoghicp> it does 14:07 < shoghicp> but yeah, you can also send all light :P 14:25 < Grum> seems like mcpe is pretty decent c++ <-- it actually is mostly 'raw ported java to c++' 14:26 < Paprikachu> ew 14:26 < Paprikachu> Grum: why does the server send light? 14:26 < Grum> else it would be heavy 14:26 < Paprikachu> can't the client do the calculation to it 14:26 < Paprikachu> s/to it/itself 14:27 < Grum> no idea 14:27 < Sanqui> hello! 14:27 < Sanqui> has anybody looked into (re)generating minecraft maps from screenshots? 14:27 < Sanqui> I'm thinking you'd feed it a large number of screenshots, and it'd try to reproduce all of them, and connect them if it can 14:28 < Grum> Good luck! 14:28 < Paprikachu> i think it could be done 14:28 < Grum> should be able to figure out perspective using edge finding on the straight edges 14:29 < Paprikachu> you'd have to find out the seed from the screenshots 14:29 < Paprikachu> which has been done from parts of maps before 14:29 < Paprikachu> so... extract partial map data -> find seed -> win 14:30 < Sanqui> ohh, seed would help 14:30 < Sanqui> didn't even think of that 14:30 < Grum> yes and wouldn't get you anywhere close to whta is on the screen depending on what you look at 14:30 < Sanqui> wouldn't help in indoor areas though 14:30 < Sanqui> you'd also have to bruteforce the version 14:31 < Grum> when you figure out perspective you can 'read' textures and deform them back into something uniform 14:31 < Grum> then try to find similar ones and assign blocktypes to the different face-textures 14:32 < Grum> and then rebuild from there 14:34 < Sanqui> it'd still be really tough due to all the nonstandard blocks (even torches) 14:34 < Sanqui> and players/dust/particles 14:34 < Grum> those wont align to the grid so yuo can discard them initially 14:34 < gurun> Grum, do you work for Mojang or what? 14:35 < Grum> and Microsoft though just one I have a contract with :p 14:35 < gurun> or, hmm just just quoted Paprikachu, now i see. 14:36 < Sanqui> once you see far enough you'll only see a few pixels per block 14:36 < Sanqui> (per face) 14:36 < Grum> yes, so that is the part where it gets interesting :) 14:37 < Grum> gurun: you're confusing :) 14:39 < Sindriava> Mornin' ! 14:39 < Sanqui> I'm hoping one day it'll be easier to build something like this, and I'll be able to partially reproduce some of the maps I've played on but don't exist any more :) 14:40 < Sanqui> you could even let the user help, and present an interface where they can "fit" recovered chunks (literally) of the map relatively to each other 14:40 < Sindriava> Sanqui: It would be really nice, yeah. 14:43 < Sindriava> Sanqui: Glass could really mess it up, though. 14:44 < Grum> you'd just not see glass 14:44 < Grum> but yeah it might mess some stuff up 14:44 < Sanqui> Actually, I imagine transparent blocks wouldn't be that hard to identify 14:45 < Sanqui> Since you know what to look for 14:46 < Sindriava> Sanqui: Remember that only one layer of glass is visisble at a time. So a 2 block thick wall of glass followed by a cobblestone wall would be recognized as a 1 block thick wall of glass with the cobble one block closer 14:46 < Sindriava> Sanqui: Unless you check the textures for scale too 14:46 < Grum> which you would deduce from the perspective 14:47 < Sanqui> there will always be information you cannot deduce 14:47 < Grum> but enough to obtain so you can save time rebuilding it 14:48 < Wuppie> The time minecraft plays with your mind: Hmm, sending a spawn player packet. No error, but no player spawning either :/ 15:06 < Thinkofdeath> Wuppie: you need to send a Player List Item packet for that player first 15:06 < Wuppie> Player List Item? hmm ill look at it 15:07 < Wuppie> ah 15:07 < Wuppie> okay 15:07 < Wuppie> ill do that 15:07 < Wuppie> :) 15:07 < gurun> grum, i was just reacting to that someone can claim the MCPE to be well written C++ and a port of the Java code. 15:07 < Wuppie> oh hey Gurun 15:08 < Grum> parts are wellwritten and newer, many parts arent :) 15:09 < gurun> yeah, hence my question, do you work for Mojang (i have no idea) 15:10 < gurun> and then i read it again, and realized that it was perhaps a quote from Paprikachu. And then nothing suprises me anymore. 15:10 < gurun> forget it 15:12 < Grum> hehe k! but yes i do 15:13 < Sanqui> Oh, I just realized I have an old top-down (1bpp) render of the map as well 15:13 < Sanqui> That could help the screenshot stitching application too. 15:14 < gurun> Grum, ok. Because i find these remarks just as annoying as the remarks around "the coders can't code" unless of course, it is coming from the coders themselvs :) 15:34 < Grum> 1 bit per pixel? :D 16:27 < Paprikachu> http://i.imgur.com/QDFKtKD.png 16:27 < Paprikachu> while sending chunk bulk 16:27 < Paprikachu> wtf 16:28 < gamingrobot> inventory why are you a pain 16:42 < gamingrobot> what window is window_id -1 ? 16:42 < gamingrobot> PLAY gamingrobot I feel like that's well defined... 16:44 * Xor_Boole checks 16:44 < Paprikachu> -1 is the inventory afaik 16:44 < gamingrobot> wiki says 0 is the inventory 16:44 < gamingrobot> and from what I am getting that looks right 16:52 < gurun> in PE it is also 0 16:57 < Paprikachu> now i can even load a map 16:57 < Paprikachu> but i cant fucking move 16:57 < Paprikachu> what the 16:58 < gurun> Don't move! 16:58 < gurun> Paprikachu, are you aboce 100 lines yet? 16:58 < Paprikachu> :/ 16:58 < Paprikachu> neither does the client spawn where i tell it to 16:59 < Paprikachu> nor is it able to move 16:59 < Paprikachu> what the fuck? 16:59 < gamingrobot> you stuck in a block? 16:59 < gurun> look at Wuppie server. That is very vanilla 17:00 < Paprikachu> i even send data correctly, verified using wireshark 17:00 < Wuppie> hmm 17:01 < Wuppie> You don't spawn where you want your player to? 17:01 < Paprikachu> no, it spawns at 0,0,0 17:01 < Paprikachu> and it cant move 17:01 < Wuppie> hmm 17:01 < Wuppie> thats weird 17:01 < Paprikachu> i send the map, i see all the blocks the way i expect 17:02 < Paprikachu> http://i.imgur.com/z0l7FxY.png 17:02 < Paprikachu> confused af 17:03 < Wuppie> did 17:03 < Wuppie> did you send the correct fly speeds? 17:03 < Wuppie> if so 17:03 < Wuppie> try to fly out of that block 17:03 < Paprikachu> i tried fly speed 1 and 10 17:03 < Paprikachu> what am i supposed to send 17:04 < Paprikachu> http://ideone.com/uZMI8W 17:05 < gamingrobot> It looks like the server sends Window Items for the inventory then also sends set slot for everything in ones inventory 17:07 < gurun> did you send 50 chunks? 17:07 < Paprikachu> i dunno, but does it matter 17:08 < Paprikachu> maybe the speed values are really wrong 17:08 < Paprikachu> what are the correct ones? 17:09 < Wuppie> I only send 9 chunks, and it works fine 17:09 < Paprikachu> http://i.imgur.com/OITDMPf.png 17:09 < Wuppie> I send the amount of chunks my render distance is on 17:09 < Paprikachu> heres the entire thing from below 17:09 < Paprikachu> i can double tab space to end flymode 17:09 < Paprikachu> and then i just fall down 17:09 < Paprikachu> still cant move tho 17:10 <+SpaceManiac> defaults are flySpeed .05, walkSpeed .1 17:10 < Paprikachu> oh 17:10 <+SpaceManiac> maybe try moving yourself vertically up a little? 17:11 < Paprikachu> now my client froze 17:11 < Paprikachu> lol 17:11 < Paprikachu> set both values to 0.1 17:12 < Paprikachu> yeah, no moving freezes the client... 17:12 < Paprikachu> now 17:15 < Paprikachu> k i found out why 17:15 < Paprikachu> i didnt swap the bytes of floating point numbers during serialization 17:16 < Paprikachu> which apparently resulted in bs values being sent 17:17 < Paprikachu> http://i.imgur.com/hGeRuwx.png 17:17 < Paprikachu> yay 17:18 < gamingrobot> suddenly land! 17:19 < Paprikachu> ;) 17:21 < Grum> endless flatland ++ 17:22 < Paprikachu> :P 17:22 < Paprikachu> it's not even endless, loading chunks isn't implemented yet :D 17:22 < Paprikachu> but you can spawn o/ 17:22 < Wuppie> haha 17:22 < Wuppie> gratz 17:22 < Grum> all done then! 17:23 < Paprikachu> 3.5k loc 17:23 < Grum> now to host 10000 bots 17:23 < Wuppie> i have chunks loading implemented :) 17:25 < Bibl__> watching old avo video http://i.imgur.com/Tu3Kita.png 17:25 < gamingrobot> wow spock just passed 5k lines 17:25 < Grum> Bibl__: awww 17:25 < Bibl__> lol 17:25 < Grum> he made billions, bad code or not, i guess it was good enough 17:26 < Bibl__> i used to love being carefree and playing minecraft lol 17:26 < Bibl__> now i have insane amounts of work 17:26 < Grum> all of your own choice! 17:26 < Bibl__> i cant even keep up with these new game updates 17:26 < Grum> and yet everyone is complaining they are so slow ;D 17:26 < Bibl__> na, ive got 11 gcses 17:26 < Bibl__> to do 17:26 < Grum> gcses? 17:27 < Bibl__> http://www.cie.org.uk/programmes-and-qualifications/cambridge-secondary-2/cambridge-igcse/ 17:27 < Bibl__> actually igcses 17:27 < Bibl__> gcse stands for general certificate of secondary education 17:27 < Grum> oh 17:28 < Grum> enjoy :P 17:28 < Bibl__> haha 17:28 < Grum> oh wait, you were really young not? ~16ish? 17:28 < Bibl__> im 16 now 17:28 < Bibl__> 16 years and 3 days old 17:28 < Bibl__> got minecraft like 5 years or go 17:28 < Bibl__> ago* 17:28 < Grum> grats then ;) 17:28 < Bibl__> haha thanks 17:28 < Grum> school, best times ever :p 17:29 < Grum> such slacking, such complaining of the lack of slacktime >.> 17:29 < Bibl__> i feel the same way about primary school 17:29 < Bibl__> i help out at a primary school and i wish i could be there again lol 17:29 < Grum> hehe will just get worse over time :) 17:30 < Bibl__> so confused lol, we have to choose what we want to do for A level before we do gcses and i have no idea what i want to do in the future 17:31 < Grum> do something you think is fun 17:31 < Grum> and then make up your mind when you are old =) 17:31 < Bibl__> i chose maths, physics, chemistry and german 17:31 < Bibl__> i was unsure of whether to do chemistry or further maths 17:32 < Bibl__> i love maths but you need a chemistry a level if you want to do medicine and i want to keep that door open 17:32 < Grum> you can pick further maths instead of german ;D 17:32 < Bibl__> aber ich liebe Deutsch <3 17:32 < Bibl__> und Deutschland 17:33 < Grum> silly peoples1 17:33 < Bibl__> i read that i still have the opportunity to do engineering at uni if i dont do further maths 17:33 < Bibl__> 1/3 of cambridge engineering grads didnt do further maths at a level 17:34 < SinZ> but it means more work on first year 17:34 < Bibl__> ill worry about that when i get there lol 17:35 < SopaXorzTaker> Notch is (was? :/) a hobbyist, he likes(ed) creating games, and code didn't matter for him 17:35 < SopaXorzTaker> It Works (R) 17:36 < Bibl__> remember when stairs took ages to destroy 17:36 < Bibl__> why was that lol 17:36 < Grum> no idea, how it figures out the destroy rates is mostly magic 17:37 < Bibl__> so instead of making a wiki parser which didnt work becxause the wiki isnt standardised i made something to make it easier http://i.imgur.com/kRDnw3r.png 17:40 < Fenhl> it's a shame the wiki isn't a Semantic MediaWiki 17:41 < Fenhl> but yeah. Minecraft Wiki article layout is horribly inconsistent 17:42 < Fenhl> it's gotten a lot better over the last 2 years or so, but a lot of articles are still nowhere near what I'd consider acceptable 17:43 < Fenhl> I've helped with a lot of the style guidelines to make article layout more consistent, but I kinda got completely demotivated when the Microsoft deal was announced 17:43 < Fenhl> maybe I should reenable my watchlist notifications soonish 17:44 < Grum> Always wonder why Microsoft has to do with it 17:44 < Grum> err what :p 17:44 < Grum> mehenglishfailblehtoday 17:45 < Fenhl> in my experience, whenever Microsoft bought something it died a slow and painful death in the following year or two 17:45 < Fenhl> my experience is solely based on Skype though 17:45 < Grum> you've been part of multiple Microsoft takeovers then? 17:45 < Grum> How is Skype dead? :/ 17:45 < Grum> it really barely changed at all 17:45 < gamingrobot> Bibl__: https://github.com/nickelpro/spock/blob/master/spock/mcmap/mapdata.py :P 17:45 < Bibl__> oh new skype has auto download files enabled 17:46 < Fenhl> a lot of things changed for the worse 17:46 < Bibl__> and it looks worse imo 17:46 < Bibl__> gamingrobot: omg lol 17:46 < Grum> Fenhl: name something 17:46 < Fenhl> I haven't really used it at all in over a year so I can't comment on the current version 17:46 < Grum> that is not objective like looks 17:46 < Grum> sigh >.> 17:47 <+SpaceManiac> Skype was kind of really terrible for a while, but now it's at least usable again 17:47 < gamingrobot> Bibl__: I need to add slipperiness and drag to that file tho 17:47 * Thinkofdeath gives evil looks too the flash ads in skype 17:47 < Fenhl> they lowered the limit on participants for the free tier 17:47 < Grum> SpaceManiac: that is what i see too :/ 17:47 < Grum> Fenhl: 'limit on participants' ? :/ 17:47 < Fenhl> yeah 17:47 < Grum> no idea what you even mean 17:47 < Grum> you can voice-chat with less people? 17:47 < gamingrobot> it was probably the conversion from peer to peer to client server model 17:48 < Fenhl> text, voice chat, video chat 17:48 < Fenhl> all of them 17:48 < Grum> i've been in chats with 200+ people O.o 17:48 < Grum> how is that limited? 17:48 < Fenhl> they limited it to I 100? at some point 17:48 < Bibl__> i cant make 29 people calls anymore 17:49 < Bibl__> dunno why 17:49 < gamingrobot> If I move a item from one slot in a inventory to another do I send 2 Click Window packets? 17:49 <+SpaceManiac> gamingrobot: yes 17:49 < Fenhl> it hurt a community/group of friends which I was/am part of and who mainly used Skype really badly 17:50 < Grum> And you are complaining about a free service not performing as well as you hope? :) 17:50 < Grum> also a group of 'friends' that is 100+ people big, that smells like 'facebook friends' :) 17:50 < Fenhl> I'm not complaining 17:51 < Fenhl> it's their service and they can do whatever they want with it 17:51 <+SpaceManiac> "new skype has auto download files enabled" <- there has been an option for this for forever, just turn it off? 17:51 < Bibl__> remember minecraft chunkloading fails 17:51 < Bibl__> and invisible blocks 17:51 < Fenhl> I'm just saying it strongly affected my view of Microsoft as a whole and their ways of doing business 17:51 <+SpaceManiac> 1.8 has brought it back 17:51 < Bibl__> SpaceManiac: its enabled by default 17:52 <+SpaceManiac> that's dumb 17:52 < Bibl__> havent really played 1.8 17:52 < Fenhl> and it led to me stepping back from the Minecraft community for a while when I heard that you were going to be bought by Microsoft 17:52 <+SpaceManiac> writing Glowstone I keep running into what I believe are races in the new chunk culling 17:53 < Fenhl> *taking a step back, is the expression I was going for, I think 17:53 < Thinkofdeath> SpaceManiac: I haven't seen any issues with my stuff, got an example of what happens? 17:54 < Grum> there are issue with the culling algo 17:54 < Grum> not fixable sadly so hey, some freak areas under some angles will show some less chunks that expecte 17:55 <+SpaceManiac> Thinkofdeath: it's something like the chunks get sent too slowly and the culling info doesn't update to match 17:55 < Grum> That seems strange? 17:55 <+SpaceManiac> it could be something I'm doing wrong 17:56 < Grum> what happens when it happens? 17:56 < Bibl__> mc borked 17:56 < Bibl__> :( 17:56 <+SpaceManiac> essentially empty spaces where chunks you're looking at think they aren't visible 17:56 <+SpaceManiac> there's some other weird issues that arise e.g. with the client's view distance exceeding the server's 17:56 < Grum> if a chunk is missing it is considered 100% solid for visibility 17:57 < Bibl__> hehe 17:57 < Bibl__> 65k diamond blocks pls 17:57 < Grum> so this means that at that moment the client doesnt have data for the chunk 17:57 < Thinkofdeath> oh the view distance one happens a lot for us, weird block patterns in the distance. Pretty sure that is completely client-side 17:57 < Grum> I've seen that, not been able to reproduce 17:58 < Thinkofdeath> I've had quite a few reports, not happened to me personally yet 17:58 < Grum> there was an issue with certain videocards+drivers (iirc amd) and gl-lists that cause fuckups with that 17:58 <+SpaceManiac> also, I believe client view-distance has a southwest bug 17:58 < Grum> meaning? 17:58 <+SpaceManiac> IIRC in -X/-Z directions it renders one less chunk than +X/+Z 17:59 < Grum> could be 17:59 <+SpaceManiac> so no matter what the server sends there's clipping inside the fog 17:59 < Grum> quite minor though if that were the case 17:59 < Grum> the fog is supposed to cover always 17:59 <+SpaceManiac> it doesn't 17:59 <+SpaceManiac> this is a client bug for sure because it happens in single player 17:59 < Grum> that seems strange 17:59 < Grum> might be videoard depending 18:00 <+SpaceManiac> might be 18:01 < Grum> i see fog @ all sides clipping terrain 18:02 < Grum> also not when standing @ 0.5 100 0.5 18:02 < Grum> looking any direction 18:02 < Grum> lets try 15.5/0/15.5 18:03 <+SpaceManiac> http://puu.sh/eXNlz/fc386aeddb.png is what it looks like 18:04 <+SpaceManiac> when I'm at x=0 or z=0 in chunk it renders two chunks over fine, but any further away from the north/west side it doesn't render 18:04 < gurun> i wish the fog was a bit different in PE. So you don't see chunk loading so much 18:04 < gurun> it got better with the latest alpha though. 18:04 < Grum> looks perfect here :/ 18:04 <+Amaranthus> SpaceManiac: Wow that's a huge render distance you've got there :P 18:05 < Grum> and only 60 fps, clearly running on a toaster 18:05 <+SpaceManiac> Amaranthus: it's easier to demonstrate at min render distance 18:05 < Grum> cannot reproduce :/ 18:05 < Grum> oh wait! 18:05 < Grum> try pre4 :) 18:05 < Grum> i think there was a bug yeah 18:05 <+Amaranthus> Grum: It's a GTX 460 so yeah, I think that gets hot enough to toast things 18:06 < Grum> next version will show cpu info too 18:06 < Grum> going to be more fun screenshtos 18:06 < Grum> :p 18:06 < Grum> "ITS SO SLOW", Pentium 90 18:06 <+Amaranthus> It's really weird that you show GPU info then tack SSE2 on the end 18:06 < Grum> just what the videocard reports :/ 18:07 <+SpaceManiac> nope, still occurs in pre4 18:07 < Grum> and if you up the distance with +1 the chunk that is missing does get drawn? 18:07 <+Amaranthus> Oh, so that's nvidia trying to be helpful again by breaking the "rules" of how things should work 18:07 < Grum> probably, nvidia does that all the time 18:07 <+SpaceManiac> it does, but then the next chunk after that is missing 18:07 <+Amaranth> Fucking nvidia just follow the spec 18:08 < Grum> SpaceManiac: no idea, i cant reproduce 18:08 <+SpaceManiac> if I get time I'll post on mojira I suppose 18:09 <+Amaranth> btw did you know your GPU driver has a garbage collector in it? 18:09 < Grum> oh i can reproduce @ those coordinates 18:09 < Grum> it has to do with something negative 18:09 <+SpaceManiac> oh hm 18:09 <+Amaranth> Well AMD does at least, dunno if nvidia has one 18:09 < Grum> probably a fucked up (int) fractional somewhere 18:10 <+Amaranth> I'm working on a noise library and we've broken negative coordinates with things like that probably 4 times now since we started fleshing out and optimizing the library 18:11 < Grum> /tp -15 20 -15 135 40 <-- that shows it on two axis 18:12 < Grum> yeah failing to proper flooring/ceiling/rounding with negative values is a often done wrong thing 18:12 < Grum> god now i have to find WHERE it is going wrong 18:12 < Grum> can be 10 spots :p 18:13 < Grum> but hey, reprocase!!! 18:13 <+SpaceManiac> hmm I see it even in positive coords 18:14 < Grum> i wonder if this is renderer or server 18:14 < Grum> lets smash in some debug 18:14 < Grum> time to turn on the massive debug =) 18:25 < Grum> aaand this was the code that I marked with: // TODO: Get some wizards to explain this 18:26 < Grum> fuck ;D 18:26 < Bibl__> how much do wizards cost to hire? 18:26 < Grum> 7 18:26 < Bibl__> ic 18:26 < Bibl__> i guess i dont really need experience data for my bot 18:28 < Grum> this code is so bad ... 18:29 < Grum> not sure where to start, at least I've refactored it into a class already 18:29 < Bibl__> why is it bad 18:31 < gamingrobot> yay spock can now move stuff in the inventory 18:32 < Grum> ok i seem to understand a bit more wtf it is doing 18:32 < Grum> but it is taking the wrong coordinates for the camera for some reason 18:33 <+SpaceManiac> iirc it pulls from the player's head, not the actual camera 18:33 <+SpaceManiac> so the culling falls apart in third-person view 18:33 < Grum> no, it does some weird shit 18:34 < Grum> i've commented that it does a truncate somewhere 18:34 < Grum> and it does - Chunk.SIZE / 2 on the camera x/z 18:34 < Grum> so either can be the cause of this o.O 18:34 < Grum> so now i need some data to test :) 18:35 < Grum> typing to 40/10/40 should give me a grid with chunk 0,0 in the top corner ... if all goes ok 18:35 < Grum> tping even 18:37 < gurun> what version of the server is currently released? 18:40 < Grum> k so the area in memory @ client is correct, so this means we're just missing the data 18:41 < Grum> which means the server is not sending it, or we're purging it somehow 18:42 < MrARM> version -1.8.2gamma 18:46 < Wuppie> Basic entities working :-) 18:50 < Grum> SpaceManiac: fixed it, thanks :) 18:50 < Bibl__> What are all of the possible material types for blocks in mc? 18:51 <+SpaceManiac> Grum: awesome 18:58 < Grum> SpaceManiac: stupid bug using the wrong variable after i changed something :/ 18:58 < Grum> - RenderChunk renderChunkAt = getRelativeFrom(cameraPosition, currentChunk, direction); 18:58 < Grum> + RenderChunk renderChunkAt = getRelativeFrom(cameraChunkOrigin, currentChunk, direction); 18:58 < Grum> >.> 19:00 < SopaXorzTaker> fatal source code leak 19:01 < SopaXorzTaker> D: D: D: 19:02 < Grum> the called code expected a chunks origin to figure out if stuff was 'out of range' 19:04 < Grum> aaand that cause an off by one : 19:14 < Bibl__> rip 19:31 < TobiX> Amaranth: There is more stupid crap in GPU drivers. Example: Basically a complete C-style compiler infrastructure (for shaders) 19:32 < redstonehelper> the wiki lists 4 possible map colors per block, but I can only get 3 of them (in-game) - what are the 4 block configurations I need to build to get all 4 colors? 19:33 <+Amaranth> TobiX: That's expected, you're feeding it GLSL 19:41 < Grum> redstonehelper: iirc just height differences 19:43 < redstonehelper> grum: from my limited testing, it appears a block chooses its color only depending on the base color it gets and what height the block column directly to its north is - that column is either the same height, it's lower or it's higher. maybe the 4th color variation isn't used in vanilla? 19:43 < Dinnerbone> I do not believe it is. We populated it just for custom maps, it previously used to be base colour. 19:44 < Grum> silly stuffs to just skip something 19:45 < redstonehelper> I see, thanks 20:01 < Xor_Boole> 13:42 I do not believe it is. We populated it just for custom maps, it previously used to be base colour. 20:01 < Xor_Boole> you don't use the fourth color? 20:01 < Xor_Boole> huh 21:17 < gurun> why the hell is it different values for the facing on different blocks..? 21:18 < Grum> why not? would be less fun otherwise 21:19 < Bibl__> haha 21:21 < gurun> so no mystery logic, just history then? 21:41 < Grum> yes and all going away in the future 22:28 < Paprikachu> why does the server need to tell the client which chunks to unload? 22:28 < Paprikachu> is there any scenario where you wouldnt want to unload them once they are out of view distance? 22:29 < Thinkofdeath> Most likely to prevent races where the server thinks you have a chunk loaded but the client has unloaded it 22:29 < Paprikachu> mhh 22:33 < gurun> MCPE doesn't work like that. It unloads them. That means we resend stuff a lot where the client already have them. 22:33 < gurun> but i understand that might have changed now, and the clients starts caching everything, so no need to even resend. 22:33 < gurun> ..or unload. 22:33 < Paprikachu> can i use map chunk bulk to send chunks when the client moves? 22:34 < Paprikachu> or do i have to use the single chunk packet 22:34 < gurun> i think Wuppie did it with full columns 22:34 < gurun> just for simplicity in code. 22:37 < Paprikachu> and does a view distance of 15 (thats max right) refer to the radius or the diameter 22:38 < Paprikachu> in other words, what is the maximum number of chunks a client can have loaded at a time in vanilla? 22:42 < Thinkofdeath> How much memory have you got? :P (It doesn't cap you) 22:44 < Paprikachu> eh? 22:44 < Paprikachu> vanilla does have a cap. 22:52 < Paprikachu> 31^2, thanks minecraft wiki 22:58 < Sanqui> 1 bit per pixel? :D 22:58 < Sanqui> late but 22:58 < Sanqui> 1 block per pixel :P 22:58 < Sanqui> (should've been 1 pixel per block I suppose) 23:35 <+SpaceManiac> Paprikachu: radius. 23:36 < Paprikachu> already found out, but thanks :) --- Day changed dim. janv. 25 2015 00:19 < Wuppie> Hey 00:19 < Wuppie> for http://wiki.vg/Protocol#Window_Items 00:19 < Wuppie> they say Count 00:20 < Wuppie> does that mean, the amount of slots we are sending 00:20 < Wuppie> or the size of the slot array? 00:21 < Bibl> try both :D 00:21 < Bibl> ill check the source sec 00:22 <+SpaceManiac> I'm not sure I understand what you mean 00:22 <+SpaceManiac> the count is the number of item stacks that follow 00:22 < Wuppie> ah, ok thank you SpaceManiac 00:22 <+SpaceManiac> this will almost always be the same as the number of slots in the inventory 00:23 < Bibl> yeah its array length 00:26 < Wuppie> Now i'm confused, Bibl says length of the Array. Spacemaniac says number of slots... 00:26 <+SpaceManiac> what array is there but the array of slots 00:26 < Bibl> x[] array = new x[length]; 00:26 < Bibl> ergo length of arraty 00:26 < Bibl> array 00:28 < Fenhl> Wuppie: I changed the article to always say “length of the following array” to mean the number of items in it 00:28 < Fenhl> I didn't realize that this would be ambiguous 00:28 < Fenhl> do you have a suggestion for a better wording? 00:29 < Wuppie> Amount of items in the following array? 00:30 < Fenhl> Maybe number of elements? 00:31 < Wuppie> I guess 00:32 < Wuppie> That would be better then Length of array 00:32 < Wuppie> haha 00:33 * Fenhl opens the article 00:36 * Fenhl runs “find and replace all” 00:37 < Fenhl> done 00:37 < Wuppie> Haha cool :) 00:38 < Fenhl> if you find anything I missed with that, feel free to update it to the same wording 00:39 < Wuppie> Sure ;) 00:39 < Wuppie> You know the feeling of bugs, and searching for the problem for hours? 00:39 < Fenhl> yeah 00:39 < Fenhl> it's not just useful for find-and-replace scripts, but also for readers to understand that this is the same concept 00:41 < Fenhl> now that I've cleaned up the article a bit, the protocol seems way more consistent than I initially thought 00:42 < Fenhl> serverbound Player Look still seems wrong though 00:43 < Fenhl> but maybe it's just the use of π confusing me 00:44 < Fenhl> or maybe it's that the unit circle graphics were apparently drawn by someone looking straight up at the sky 00:44 < Fenhl> instead of straight down at the floor 01:12 < Bibl> oh god lol ive done a noth 01:12 < Bibl> notch* http://hastebin.com/enobawigaf.avrasm 01:14 < gurun> distance is .. good 01:15 < gurun> anything less than 5 chained calls is incest 01:17 < Bibl> haha 01:19 < Fenhl> how do I know which model a player's skin uses? 01:20 <+SpaceManiac> IIRC you have to go based on the skin's dimensions 01:20 < Bibl> wtf is i have: 01:20 < Bibl> Bibl> oh god lol ive done a noth 01:20 < Bibl> notch* http://hastebin.com/enobawigaf.avrasm 01:20 < Bibl> distance is .. good 01:20 < Bibl> anything less than 5 chained calls is incest 01:20 < Bibl> haha 01:20 < Bibl> oops 01:20 < Bibl> if i have: 01:20 < Bibl> extends EntityFactory 01:21 < Bibl> then the subclass cant have an int instead of Integer? 01:21 < Fenhl> SpaceManiac: but the dimensions are the same for both models, no? 01:21 <+SpaceManiac> Bibl: what do you mean? 01:22 <+SpaceManiac> you can't override T x() with int x(), no 01:22 < Bibl> damnit 01:22 < Fenhl> oh you thought I was talking about old 64×32 vs new 64×64 skins? 01:22 < Fenhl> I'm talking about Alex vs Steve 01:22 <+SpaceManiac> oh 01:22 < Bibl> SpaceManiac: will that slow down my code a lot? 01:22 <+SpaceManiac> I mean I knew that's what you meant 01:23 <+SpaceManiac> Bibl: uh, probably not 01:23 <+SpaceManiac> Fenhl: I thought they differed in size, seems I was mistaken 01:23 <+SpaceManiac> maybe it's pulled in the metadata surrounding the skin somehow 01:23 < Fenhl> I know how to find out whether someone without a custom skin is Alex or Steve 01:23 < Dinnerbone> With a custom skin, you inspect the skin payload 01:24 < Fenhl> ah I got it 01:24 < Dinnerbone> Without a custom skin, it's java's hashcode of a UUID & 1 == 1 01:24 < Fenhl> yeah I knew that part 01:25 < Fenhl> I also have code in both Python and PHP to calculate the java hash for a UUID 01:25 < Fenhl> :P 01:25 < Dinnerbone> Yeah it's just a little bit math 01:26 < Fenhl> a bit of bit math 01:26 < Fenhl> you could say 01:27 < Bibl> math, is that like 1 + 2 01:28 < Fenhl> I should be pregenerating chunks for a UHC tomorrow. Instead I'm digging up half a year old forks of mapcrafter-playermarkers now 01:30 < Fenhl> this commit message lol 01:30 < Fenhl> “Fix Alex having two right arms” 01:31 < Fenhl> totally forgot about that 01:38 < Bibl> i often dream of getting either a girlfriend or 2 right arms 01:38 < Bibl> about getting* 01:40 < gurun> i prefere two girlfriends on my one right arm 01:41 < gurun> and to me, both arms are right 01:43 < gurun> night guys 01:43 < Wuppie> Night 07:13 < ScruffyRules> What are block entities? 07:13 < ScruffyRules> And what are the difference between them and tile entities? 07:15 < gamingrobot> ScruffyRules: A block entity (previously named tile entity) 07:16 < gamingrobot> http://minecraft.gamepedia.com/Block_entity 07:18 < ScruffyRules> Okay 07:18 < ScruffyRules> Thanks 08:28 < Paprikachu> hmpf 08:29 < Paprikachu> im now running into the problem where netty's 21 bit varints are not long enough to send the entire region uncompressed 08:29 < Paprikachu> that sucks 08:32 < SinZ> Which is why compression was there in the first place.. 08:33 < Paprikachu> i don't plan to implement compression anytime soon 08:33 <+Amaranth> I guess you're making a server for LAN then? 08:34 < Paprikachu> it's not like you can't add it later 08:34 < Paprikachu> i just don't care enough right now 08:34 < Paprikachu> why do i even have to justify myself 08:35 < Paprikachu> and in fact, compression could theoretically result in the opposite effect, which is that the data actually gets more 08:35 < Paprikachu> so that doesn't solve anything 08:39 <+SpaceManiac> only if you compress really small packets 08:51 < Paprikachu> no actually, that applies to any data, no matter what size it is 08:51 < Paprikachu> if you have a world suboptimal enough, it will result in more data :) 08:51 < Paprikachu> but that's beside the point, i need to find a way to do chunk loading properly. 09:02 < Paprikachu> does 4gb of ram usage for a 31x31 chunk region sound unreasonable? :> 09:07 <+Amaranth> 31*31*16*16*256*3/1024/1024 ~= 180MB 09:07 <+Amaranth> So you've got quite some overhead there 09:07 < Paprikachu> not sure where 09:08 < Paprikachu> but: http://i.imgur.com/oPs0ESG.png 09:08 < Paprikachu> chunk loading crashed it :D 09:08 < Paprikachu> server currently at 16 gb 09:13 < Paprikachu> i'm confused 09:13 < Paprikachu> where tf is that memory going 09:16 < Paprikachu> k found it 09:17 < Paprikachu> network buffers o/ 09:17 < Paprikachu> allocating a 2mb buffer for every chunk is a bad idea when you're sending almost 1k chunks 09:39 < SopaXorzTaker> I guess I have found a social engineering flaw in Minecraft 09:40 < SopaXorzTaker> This isn't critical, so I will describe it there 09:40 < SopaXorzTaker> in JSON that tellraw, etc use, there are 'clickEvent' and 'hoverEvent' 09:41 < SopaXorzTaker> Command blocks can't execute some of op commands 09:41 < SopaXorzTaker> But why not then use something like this: /tellraw @p {text:"[ANTI-BOT] Click this to verify that aren't a bot", clickEvent:{action:run_command, value:"/debug start"}} 09:56 < Paprikachu> http://i.imgur.com/D7I8Gg9.png 09:56 < Paprikachu> i call it the tetris chunk loading algorithm 09:57 < SinZ> that bedrock layer is cute 10:00 < Paprikachu> :) 10:21 < Thinkofdeath> SopaXorzTaker: tellraw is an op command so somewhat pointless :P 10:21 < SopaXorzTaker> but command blocks execute it 10:21 < Grum> SopaXorzTaker: value:"/kill" ? :p 10:21 < SopaXorzTaker> xD 10:21 < SopaXorzTaker> but /kill is command-block-able 10:21 < Thinkofdeath> command blocks run most op commands and you (should) need op to edit them to set the command in the first place 10:22 < Thinkofdeath> Books on the overhand are a different story, creative players can spawn them with clickEvents and do it that way 10:22 < Grum> yes but when you have creative .. well ... 10:23 < Thinkofdeath> Creative is fun, root of 90% of issues 10:24 < Paprikachu> http://ideone.com/f8JgV1 10:24 < Thinkofdeath> Using creative to kill creative players also works 10:24 < Paprikachu> i'm too stupid 10:24 < Paprikachu> why does this not give me the chunks to load 10:24 < Thinkofdeath> z = center1.x() - radius; 10:24 < Paprikachu> center1 is the chunk you moved to, center2 is where you came from 10:25 < Paprikachu> oh my 10:25 < Paprikachu> face -> desk 10:27 < Paprikachu> needlessly to say, it's working now 10:27 < Paprikachu> thanks 10:28 < Thinkofdeath> :) 10:29 < Paprikachu> (╯°□°)╯︵ ┻━┻ 10:36 < Paprikachu> hm, is there any case where 'continuous' in the chunk data packet would be false? 10:36 < Paprikachu> i'm currently always setting it to true 10:37 < nickelpro> Paprikachu: If the chunk isn't continous, it will be false 10:37 < Paprikachu> ... when is a chunk ever not continuous? 10:37 < Paprikachu> i don't quite get it 10:37 < Paprikachu> either you send the chunk, or you don't 10:38 < nickelpro> When the server doesn't need to update an entire coloum, just a subsection 10:40 < Paprikachu> you can use chunkdata to update a chunk? 10:40 < Paprikachu> i thought that's what block change / multi block change is for 11:08 < Grum> that codestyle, lol :p 11:08 < Grum> such pain 11:09 < Paprikachu> if a minecraft dev says it, it must be true 11:13 < Grum> what is that code supposed to do? 11:14 < Grum> oh god, i just remembered that c++ has no 'arrays' :p 11:14 < Grum> and you get to pass around sizes and pointers for that 11:14 < Grum> so sad for a 'masterrace language' 11:15 < Paprikachu> i don't wanna copy arrays 11:15 < Paprikachu> and i dont want allocations either 11:15 < Paprikachu> so... 11:16 < Paprikachu> it's not like you're gonna die from touching a pointer 11:16 < Paprikachu> allthough java people like to think that 11:17 < Grum> Oh no, its just sad you have no arrays :D 11:18 < Grum> so what is the goal of that? because its insanely ineffective and wasteful that method 11:18 < Paprikachu> ok buddy 11:18 < Paprikachu> newsflash: we do have arrays, and they work as expected :) 11:18 < Grum> make radius 1000 and have the center1/2 spread apart by 2000 blocks, now you are doing millions of operations for no reason? 11:19 < gamingrobot> do mc bounding boxes use the center of the block? 11:19 < Paprikachu> you do realize 'radius' is always gonna be <= viewDistance? 11:19 < Bibl> gamingrobot: dont think so 11:19 < Grum> you keep re-calculating the static xa/xb/za/zb in the double-loop for no reason at all 11:19 < Paprikachu> *viewDistanceMax 11:19 < Paprikachu> err no, my compiler can optimize that :) 11:20 < Grum> ah so rather than writing correct code you are hoping the compiler does it for you? 11:20 < Paprikachu> stop making stupid comments pls, i know that you know better 11:20 < gamingrobot> bleh https://github.com/nickelpro/spock/blob/master/spock/plugins/helpers/physics.py#L128 11:20 < Grum> It's not a stupid comment, its a legit fuckup in that code :/ 11:20 < Paprikachu> not really 11:20 < Grum> no bounds checking, bad style, keeping calculating the same static thing over and over 11:21 < Paprikachu> i don't need bounds checking 11:21 < Grum> oh and the method name is wrong 11:21 < Paprikachu> ok buddy 11:21 < Grum> because it only returns things found in 'center1'-s area that are not in center2's area but nothing that is not in center2's area that doesn't overlap 11:21 < Paprikachu> instead of just talking bs, you could make suggestions for improvement, i'm open to that 11:21 < Paprikachu> otherwise that isn't really helpful 11:22 < Grum> your loop terminator is expensive 11:22 < nickelpro> Stop calculating a static value, that's helpful advice 11:22 < Grum> and no idea why you would use != .. + 1 there 11:22 < Grum> and not just < ... 11:22 < Paprikachu> you mean <= 11:23 < Grum> quite sure you can also just calculate the delta between center1 and 2 and then just compare the delta value to the radius rather than having 8 mentions of radius everywhere 11:24 < Grum> and then you can just for-loop from -radius .. <= radius 11:24 < Grum> which makes far more sense when you debug it later 11:25 < Paprikachu> step 1. better name? 11:25 < Grum> and if you really want to optimize it, you can just calculate the 3 possible areas of non-overlap and then make a method that expands those areas into 'out' 11:25 < Grum> hmm sorry, 2 areas 11:25 < Grum> 3 if you are lazy :p 11:26 < Paprikachu> i mean, optimizing that is probably not that important 11:26 < Paprikachu> but 11:26 < Grum> weren't you making something for 10000 players? 11:26 < Paprikachu> a better name is still appreciated :P 11:26 < Paprikachu> (im not happy with the name myself) 11:26 < Grum> to me that means every single bit should be slapped into position for optimal behavior 11:26 < Grum> also, why on earth would you use 'auto' 11:26 < Grum> when the outer loop has Int32's :/ 11:27 < Paprikachu> right, i should put auto there as well 11:27 < Grum> they are still going to be Int32s, might as well be consistent and either auto everything (hai scripting language lol) or Int32 it all 11:27 < SopaXorzTaker> Grum, yay, my *dirty and testing only* server made the client show the map! 11:28 < Grum> also failure of putting indentation for the first loop 11:28 < Paprikachu> auto is still static typing. 11:28 < Paprikachu> that lack of indentation is on purpose. 11:28 < Grum> aaand no {}'s 11:28 < Paprikachu> that's also on purpose. 11:28 < SopaXorzTaker> not 'Map', the level 11:28 < Grum> yeah and it is fail-sensitive-much 11:28 < Paprikachu> i don't really care, loops that iterate over multi-dimensional things are not indented. 11:28 < Grum> remember the osx ssh goto bug? that would have been non-existant if someone would have used {}'s on their ifs :P 11:29 < Paprikachu> you can diagree with that choice, i don't really care. 11:29 < Grum> I think you are setting yourself up for failure 11:29 < Grum> so good job! :D 11:30 < Paprikachu> http://ideone.com/atArka 11:30 < Paprikachu> i think that's good enough for now./ 11:31 < Grum> what, not even an 'auto count' ? 11:31 < Grum> or is c++ only limited it its type-finding tricks ? ;D 11:31 < Paprikachu> SizeT != int 11:31 < Grum> +in 11:31 < Grum> Int32 != int 11:31 < Paprikachu> i'm not using int anywhere 11:32 < Paprikachu> and actually, on this machine, Int32 == int 11:32 < Grum> you are gloriously missing what I intended 11:32 < Grum> you are using auto everywhere but not when you declare 'count' 11:32 < Paprikachu> exactly, and that's because i'm too lazy to define a SizeT literal operator 11:32 < Paprikachu> auto where you can, but not more is my rule 11:32 < Grum> Though that shouldn't be needed because the return-type defines the type so 'auto' should be able to pick up on that right? :D 11:33 < Paprikachu> can you stop being a condescending prick? 11:33 <+md_5> um 11:33 < Paprikachu> java doesn't even have auto 11:33 < Paprikachu> so go away 11:33 < Grum> it does, its called Object 11:33 < Paprikachu> HAHAHAHA 11:33 <+md_5> ............................... 11:33 < Grum> but using that turns your language into a scripting language 11:33 < Paprikachu> yes congrats 11:33 < Paprikachu> let's box everything! 11:33 <+md_5> "condescending prick" congrats you just summed up your own attitude 11:33 < Paprikachu> except auto isn't anything dynamic 11:33 < Grum> agreed, java suck with boxing, they should have fixed that eons ago and didn't for backwards compat 11:34 < Grum> Paprikachu: it makes it significantly harder for your IDE to handle things 11:34 < Paprikachu> my IDE handles it just fine 11:34 < Grum> which is why you have such utterly shit ides :) 11:34 < Paprikachu> maybe you should get a better IDE :) 11:34 < Grum> says the person using eclipse. lol 11:34 < Paprikachu> well, it's a fact that it can handle it 11:35 < Grum> obviously it can, obviously it is more painful than needed 11:35 < Grum> I think I am missing the huge benefit of 'auto's in general 11:35 < Paprikachu> actually it's no different than if i had declared the type 11:35 < Grum> so why use auto? :) 11:35 < Paprikachu> consistency 11:35 < Grum> so you use Int32 in 1 place, and auto in another, that is not consistent that is the opposite of that 11:36 < Paprikachu> it's consistent in that i use auto whenever i can, but not when the type is relevant 11:36 < Grum> types should always be relevant O.o 11:36 < Grum> or is this some generics on steroids orso? 11:36 < Paprikachu> relevant means that it triggers an implicit cast 11:37 < Grum> or are people really just doing this so you can 'save typing when you change the type of the thing you have' or is it more of a smart, 'now i can mirror the type and i do not need to know the type i am handling' ? 11:37 < Paprikachu> in that case auto would not cast it and it would mean something different. 11:37 < Paprikachu> thought i could write auto x = static_cast(x); but that's ugly 11:37 < Grum> that is c++ ;D 11:37 < Grum> ugly, almost devolved to the level of perl :D 11:37 < Paprikachu> it's also immune to changes 11:37 < Paprikachu> if you use auto 11:37 <+md_5> clearly c++ programmers are lazy and want the compiler to do all the work 11:38 <+md_5> thats why they use auto 11:38 < Grum> smells like it 11:38 < Paprikachu> that's what it's for right, to do the work 11:38 < Paprikachu> the redundant work 11:38 <+md_5> maybe you can help me with my assembly program 11:38 < Grum> dunno, i dont quite see the benefit of auto 11:38 <+md_5> Im having an issue passing argv into a syscall 11:38 < Grum> md_5: it stream-parses xml right? ;D 11:39 < Paprikachu> well, it comes in handy when you have types like container::iterator or something 11:39 < Paprikachu> nobody wants to type that 11:39 <+md_5> it seems to be corrupting what should be in rdx for no apparent reason 11:39 <+md_5> ( http://stackoverflow.com/questions/28135218/x86-64-assembly-execve-char-syscall ) 11:39 < Grum> Paprikachu: wouldnt your ide just use that? O.o 11:39 < Paprikachu> but 'auto by default' is a good rule 11:39 < Paprikachu> anyways, lunch time 11:39 < Grum> I mean, typing shit is something your ide does :p 11:39 <+md_5> except when it performs typecasts or dereferences/copies you werent expecting 11:41 <+md_5> I cant figure out why the hell strace would show something other than 0 for the 3rd argument (rax) 11:41 < Grum> lol md_5; why the fuck would you use asm? ;D 11:41 <+md_5> s/rax/rdx 11:41 <+md_5> I just wanna make this silly thing work :p 11:41 <+md_5> it seems so silly that I cant freaking get a command line argument 11:42 < Grum> make the tiniest c program, compile it with all the optimizations in the world and read wtf it is doing? :D 11:42 < Bibl> god i love based professor filthy frank <3 11:42 <+md_5> libc does its own stuff 11:43 <+md_5> I cant figure out why strace is showing stuff leaking into envp though.... 11:44 <+md_5> execve("./out", ["./out"], [/* 67 vars */]) = 0 11:44 <+md_5> clearly it should be 0, not 67 vars :\ 11:47 < Bibl> md_5: what lang is that? :/ 11:47 <+md_5> assembl 11:47 <+md_5> assembly 11:48 < Bibl> what flavour? 11:48 <+md_5> amd64 11:48 < Bibl> o ive never seen that before 11:49 < Bibl> i dabbled with x64 for like 10 minutes in visual studio 11:49 < Bibl> and did a bit of masm textboxing 11:50 <+md_5> I guess I shall await the gods of stackexchange 11:51 < Grum> hehe 11:51 < Grum> why not just compile something yourself and check what it does? 11:51 <+md_5> because libc does some weird shit to the args 11:51 <+md_5> that I want to avoid 11:52 < Grum> I really want to know wtf you are building :D 12:11 < gamingrobot> what the heck is in_wall 12:11 < gamingrobot> its on fence gates 12:12 < Fenhl> if a fence gate is in a cobble wall 12:12 < Fenhl> it will be lower iirc 12:12 < gamingrobot> ah 13:16 < Bibl> https://www.youtube.com/watch?v=vuQF4olulT4 14:43 < Paprikachu> so 14:44 < Paprikachu> chat message from the client is not json apparently? 14:47 < SinZ> json is only s->c 14:47 < Paprikachu> wiki is wrong then 14:47 < SinZ> or atleast it used to be s->c 16:57 < SopaXorzTaker> someone 16:57 < Bibl> yoyo 16:57 < SopaXorzTaker> need help with the Protocol (R) 16:57 < Weloxux> don´t ask to ask 16:57 < Weloxux> go ahead, tell us what you need help with 16:57 < SopaXorzTaker> in LoginSuccess, what is UUID 16:58 < SopaXorzTaker> UUID via Mojang's API 16:58 < SopaXorzTaker> or entity UUID 16:58 < Bibl> you making a client? 16:58 < SopaXorzTaker> a server 16:58 < SopaXorzTaker> in shit-codedpython 16:59 < Bibl> i think its the players uuid 16:59 < SopaXorzTaker> but they mismatch 16:59 < Bibl> like mojang api 16:59 < Bibl> let me print out what im getting on the client ened 16:59 < Bibl> end* 17:00 < SopaXorzTaker> mine's bc8adb26-b45c-30fa-8353-7a59b17a68ac 17:00 < SopaXorzTaker> and the vanilla sends another one 17:00 <+SpaceManiac> are the servers in differing online mode? 17:00 < SopaXorzTaker> wait 17:01 < SopaXorzTaker> no, they're offline 17:01 < SopaXorzTaker> and the parameter was one value 17:01 < SopaXorzTaker> as far I remember 17:01 < SopaXorzTaker> let me wireshark 17:01 < Bibl> ok i ran it 17:02 < Bibl> selectedProfile= {"id":"a03d22a7739246ea9b0bf41481baebbe","name":"drag0n0wnz09"} 17:02 <+SpaceManiac> bc8adb26b45c90fa03537a59b17a68ac is the correct offline-mode UUID for your username 17:02 < Bibl> name uuid 17:02 < Bibl> succ drag0n0wnz09 a03d22a7-7392-46ea-9b0b-f41481baebbe 17:02 < Bibl> im running in online mode 17:02 < Bibl> its the selected profile id 17:02 < Bibl> or the gameprofile for that account id 17:02 < Bibl> same thing 17:06 < SopaXorzTaker> and the Mojangstas return cdcacf2a9ac94002a8f953ee65dbf471 17:06 <+SpaceManiac> are you using the same username? 17:07 <+SpaceManiac> also, that is an online mode UUID 17:07 < SopaXorzTaker> yeah 17:07 < SopaXorzTaker> how do I enerate an offline-one 17:08 <+SpaceManiac> set the Vanilla server to offline mode 17:08 <+SpaceManiac> "mine's bc8adb26-b45c-30fa-8353-7a59b17a68ac" <- this is already correct for offline mode 17:08 < SopaXorzTaker> I know 17:09 < SopaXorzTaker> but how do I generate them? 17:09 <+SpaceManiac> oh, I see 17:09 < SopaXorzTaker> Gruм is on the way 17:13 <+SpaceManiac> if you're using the Python uuid library, uuid.uuid3(B, 'OfflinePlayer:' + name) where B is an object with 'bytes' member that's empty 17:13 <+SpaceManiac> e.g. class B: bytes = uuid.bytes_() 17:28 < shoghicp> SopaXorzTaker: read the docs 17:28 < shoghicp> there is something about hashing in offline mode 17:29 < shoghicp> SopaXorzTaker: https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_3_.28MD5_hash_.26_namespace.29 17:30 < shoghicp> "When in online-mode the UUIDs must be valid and have valid skin blobs, in offline-mode UUID v3 is used." 17:35 < SopaXorzTaker> I have 17:35 < SopaXorzTaker> but still didn't understand 17:37 < shoghicp> so I guess md5(username) and replace a few bytes 17:38 <+SpaceManiac> https://gist.github.com/SpaceManiac/db431467a6503bc866d5 the specific bytes replaced 20:34 < Bibl_> decided to do materials like http://hastebin.com/itapukeyut.avrasm 20:35 < Bibl_> then the BlockDataRegistry can get the material from that 20:50 < Grum> brrr 20:50 < Grum> expect that to vanish btw 22:03 < gamingrobot> https://github.com/nickelpro/spock/blob/master/spock/mcmap/mapdata.py bleh metadata 23:39 < Bibl> urm wtf 23:39 < Bibl> mc code says the blast res of stone is 10 but wiki says 30 23:40 < Bibl> oh it *3 under the hood nvm --- Day changed lun. janv. 26 2015 02:40 < gurun> great shit this setting players on fire. 02:41 < gurun> public void SendBurnMotherfucker(Player target) 04:37 < ScruffyRules> Does anyone know why Zombies sometimes have more health? 04:37 < ScruffyRules> Random amount. 04:37 < Aaron1011> ScruffyRules: I think it's an attribute 04:37 < ScruffyRules> Know why it happens? 04:38 < Aaron1011> ScruffyRules: See http://minecraft.gamepedia.com/Attribute 04:39 < Aaron1011> Scroll down to Leader Zombie Bonus 04:39 < ScruffyRules> Are they the ones that spawn reinforcements? 04:44 < nickelpro> I want to provide a pure python fallback for AES encryption for people who don't want to or can't install PyCrypto 04:46 < nickelpro> But I can't make heads or tails of how this implementation is supposed to work 04:46 < nickelpro> https://github.com/serprex/pythonaes 04:47 < Aaron1011> ScruffyRules: I believe so 04:47 < Aaron1011> but I'm no expert 04:47 < nickelpro> I'm very much a novice when it comes to crypto, any help would be appreciated. PyCrypto spoils me, this is AES right now https://github.com/nickelpro/spock/blob/master/spock/plugins/core/net.py#L16-L26 04:48 < dx> i was going to say i like the name "encryptifier" 04:48 < dx> ...then noticed "Name courtesy of dx" 04:49 * dx doesn't remember that happening 04:49 < dx> oh, 2013 04:49 < nickelpro> It used to be called encipher, that upset you 04:49 < dx> :D 04:51 < nickelpro> This is as far as I've gotten on coding the fallback, but it just spits out garbage then dies https://gist.github.com/nickelpro/370a4cc617b08d6d71ec 04:52 < nickelpro> I'm doing something very wrong, I think this implementation only wants to work on 16 bytes at a time. But I don't know enough crypto to really figure out what I'm doing wrong 05:02 < ScruffyRules> :O 05:02 < ScruffyRules> nickelpro, How's spock going? 05:03 < nickelpro> ScruffyRules: Pretty good, physics is coming along well. Inventories is the next big hurdle 05:03 < ScruffyRules> Sweeeeet. 05:03 < nickelpro> OpenCog has expressed a lot of interest in it for their embodiment stuff, that's how I got this nifty new contributor, gamingrobot 05:05 < nickelpro> We support Windows and Python 2.7 now, which hasn't been true for awhile. We've got blocks and bounding boxes and gravity and a lot of other cool stuff that puts us ahead of the handful of other clients. No hacks, no hardcoded movement. A lot of stuff stolen from Mineflayer :-P 05:05 < ScruffyRules> xD 05:42 < nickelpro> News aes implementation, still no idea why its broken and giving me garbage. God damn why cant these things be easy 05:44 < nickelpro> https://github.com/ricmoo/pyaes is what I'm using. This is my code: https://gist.github.com/nickelpro/370a4cc617b08d6d71ec 05:44 < nickelpro> No idea why its broken 06:23 < gamingrobot> nickelpro: I just figured out how I want to do inventories 06:24 < gamingrobot> *goes back to sleep* 09:18 < Paprikachu|work> i could need someone to help me test my server, i can't run minecraft here :x 12:40 < gamingrobot> { b = { a = 17809407, b = -22, c = 131072 }, c = 1, d = NULL, e = 0.0625, f = 0.0625, g = 0.0625, timestamp = 1422272237616 } oops 12:40 < gamingrobot> I am good at packing positions! 12:42 < q3hardcore> gamingrobot, where are you normally? :P 12:43 < gamingrobot> 11, 4, 3 12:43 < gamingrobot> this is for block place 12:44 < gamingrobot> wait is everyone from unstablesystems in here? 12:46 < gamingrobot> yay I was trying to pack a long as a double 12:48 < q3hardcore> gamingrobot, I came here because Fenhl told me about it :P 12:49 < Fenhl> there's a lot of people in here who I also know from elsewhere 12:50 < gamingrobot> https://www.irccloud.com/pastebin/6tBQAMza 12:50 < gamingrobot> huzzah 12:53 < q3hardcore> gamingrobot, what are you working on? 12:53 < gamingrobot> inventories for spock 12:54 < gamingrobot> https://github.com/nickelpro/spock 12:56 < q3hardcore> so, what will "spock" be able to do? 12:58 < gamingrobot> at the moment his has physics, world data, collision 12:58 < gamingrobot> and I am terrible at bitwise operations 13:00 < q3hardcore> so.. end goal you could have a player controlled by scripting? 13:02 < gamingrobot> my end goal is to use it for opencog simulation 13:03 < gamingrobot> spocks end goal I think it just to provide a easy framework to write autonomous clients 13:04 < q3hardcore> never heard of opencog, what is it?