17:16 < shoghicp> (those don't happen in MCPE :D) 17:26 < nickelpro> SinZ: One word: latency 17:26 < SinZ> isn't mobile just lan multiplayer 17:35 < shoghicp> SinZ: nope 17:35 < shoghicp> Go to Play -> Edit -> External 17:35 < shoghicp> they put it a bit hidden, but well, that works for external servers :) 17:36 < shoghicp> PocketMine fault :P 21:07 < Bibl> http://λ.pw/hef lol 21:10 < kamcio96> http://scr.hu/1s1h/xvq3a ;) 21:11 < SinZ> Bibl: your domain is annoying 21:11 < Bibl> why 21:11 < Bibl> not mine 21:11 < SinZ> breaking my irc clients link detector 21:11 < Bibl> same 21:11 < Bibl> hexchat sux 21:11 < Bibl> is the conclusion you should have came to 21:11 < SinZ> nah, tot's the domains fault --- Day changed sam. janv. 03 2015 20:50 < SopaXorzTaker> Tried devekoping for forge 1710 20:50 < SopaXorzTaker> co 20:50 < SopaXorzTaker> ol 20:55 < Bibl_> is there a way to scrape 1.8 block and item data? 20:56 < Bibl_> i'm making a gamepedia parser but it means it has to connect to like 300 links 21:02 < nickelpro> Bibl_: It's not everything but a hell of a lot of block data is here https://raw.githubusercontent.com/nickelpro/spock/master/spock/mcmap/mapdata.py Anything that isn't there is probably bouncing around in Mineflayer somewhere, but it probably needs to be updated 21:20 < Grum> Bibl_: what do you need to scrap? 21:21 < Grum> +e; probably easier to so a small mod that prints the data from the game? 21:32 < Bibl> sorry my computer crashed 21:33 < Bibl> grum: basically need block and item data, so ids, metadata, hardness, tools that can break the blocks, block sizes etc 21:34 < Grum> haha i wouldnt even know where to find that in the code >.> 21:38 < Xor_Boole> dammit Grum what did you break 21:46 < nickelpro> Bibl: All of those things are in here sorta, easier than scraping anyway https://raw.githubusercontent.com/nickelpro/spock/master/spock/mcmap/mapdata.py 21:47 < Bibl> nickel how did you get those? 21:48 < Bibl> nickelpro: 21:49 < nickelpro> Stole em from Mineflayer mostly 21:49 < Bibl> i thought it didnt have new block stuff? 21:50 < nickelpro> Doesn't, but its easier to update that than figure out scraping 'pedias 21:52 < Bibl> need all the data tho 21:52 < Bibl> i'll just do the scraper 21:52 < Bibl> like all the data 22:11 < Bibl> grum: was 1.8.1 a big update from 1.8? 22:11 < Bibl> like were items and blocks added? 22:32 < Dinnerbone> Nothing was added 22:33 < Dinnerbone> If two versions are protocol compatible (you can see on wiki.vg, the protocol didn't change at all and the numbers are the same) then nothing was added 22:34 < Dinnerbone> (You could also check on the minecraft wiki or a quick google and you'd find out in seconds :p) 22:34 < Grum> well we could add blocks that do nothing but being blocks :p 23:24 < Xor_Boole> well we could add blocks that do nothing but being blocks :p 23:24 < Xor_Boole> you could please the people that are screaming blood for multipart-type stuff 23:25 < Grum> nah multipart is evil 23:25 < Grum> fun but very very evil 23:25 < Xor_Boole> agreed 23:25 < Xor_Boole> I'm sad the chickenbones' multipart is an ugly scala dialect 23:25 < Xor_Boole> hardly functional 23:26 < Xor_Boole> tbh, a good system for modularizing stairs and slabs would be good though 23:27 < Grum> nah those things become tile-entities 23:27 < Xor_Boole> tile entities is the wrong way to do it 23:27 < Xor_Boole> you should be making stairs a single material and putting it all in blockstates 23:27 < Grum> they have to be something 'not normal' 23:27 < Grum> yes that is the plan 23:28 < Grum> a single stair-block just used multiple times with another texture 23:28 < Xor_Boole> also you guys should get on vertical slabs, I get to hear people scream murder about it every day 23:28 < Grum> nope 23:28 < Xor_Boole> lel 23:28 < Xor_Boole> typical 23:28 < Grum> never vertical slabs 23:28 < Xor_Boole> idc myself 23:28 < Grum> there is no way that feels good to do them 23:29 < Grum> because once you start with vertical slabs, you need to add rotated stairs (on their side so 3/4 columns), and single-column ones 23:29 < Xor_Boole> is it because of the whole "notch doesn't like slabs" thing or just because there's no good way to implement them that isn't a multipart clusterfuck? 23:29 < Xor_Boole> yep, exactly 23:29 < Grum> and then we have to go about the user experience 23:29 < Xor_Boole> I made a post exactly like this on reddit about a week ago, people asking for vertical slabs 23:30 < Xor_Boole> if you guys cave to the vertical-slab people, then they'll just ask for more 23:30 < Sanqui> just upsize the whole world 23:30 < Sanqui> ×2 23:30 < Grum> just pretend we did 23:31 < Xor_Boole> I wonder, has stuff changed enough that hitboxes are not the clusterfuck they used to be? 23:31 < Grum> not yet, they will be though 23:31 < Xor_Boole> I remember a friend suggesting to you arbitrary mob resizes, you said something about hitboxes being a mess 23:32 < Xor_Boole> for fuck's sake nintendo, how am I not able to get a trade partner? 23:33 < Xor_Boole> oh, and has ryan started poking entity models with a ten-foot pole yet? 23:34 < Grum> yes 23:34 < Grum> slow going though 23:34 < xehbit> MC is totally in control of microsoft now right ? 23:34 < Xor_Boole> is he still sane? 23:35 < Xor_Boole> xehbit who cares? 23:35 < Grum> xehbit: yes the next windows will be windows11 23:35 < Grum> sorry, winbanana11 23:35 < Grum> i just changed my mind 23:35 < Xor_Boole> unless they set us modding people on fire I give no shits 23:35 < xehbit> winbanana haha :P 23:35 < Grum> and it will be free to click 23:35 < Grum> but you pay per mousemeter 23:35 < Xor_Boole> oh yea how's 1.banana coming along? 23:36 < Grum> we put our best coder on it, Marc! 23:36 < Xor_Boole> oh god 23:37 < xehbit> indeed, still hope MS allows us to mod the game 23:37 < Xor_Boole> well, if they block off modding, idc. grum is still fun to shout at 23:37 < Grum> xehbit: why would MS want to change that? 23:38 < xehbit> I dont know, i see MS as a stupid company, but that is more a personal thing :) 23:38 < xehbit> Just scared that they will fuckup the game 23:38 < Xor_Boole> Grum probably microsoft's history of assertiveness in copyright makes everyone scared 23:38 < xehbit> Xor_Boole: that indeed 23:38 < Xor_Boole> xehbit to "fuck up" the game they need to fuck up realms 23:38 < Xor_Boole> and they're not doing to do something stupid like that 23:38 < Grum> what has realms to do with this? :/ 23:39 < Xor_Boole> perspective 23:39 < Xor_Boole> *shrug* 23:39 < Xor_Boole> realms is an income vector, modding is not 23:39 < Grum> also xehbit: you are about 2 months late with the doomsday scenarios 23:39 < Grum> no, modding is an income vector bigger than realms 23:39 < Xor_Boole> I don't think microsoft is stupid enough to kill a community 23:40 < Xor_Boole> Grum oh, really? 23:40 < Grum> because modding == community == sales 23:40 < xehbit> Grum: hehheh, had a busy time last 6 months, so not realy much time for modding and stuff :P 23:40 < Xor_Boole> I don't have any stats you might have, so I can only speculate 23:40 < Grum> i speculate too 23:40 < xehbit> The thing i see MS do is, ingame items for real cash 23:40 < Xor_Boole> I really don't think ms is that stupid 23:41 < Grum> how would you even do that xehbit? 23:41 < Xor_Boole> they maybe the Evil Empire but they're very shrewd. they paid good money for mojang and p2w is the easiest way to scare people off 23:41 < Grum> buy pickaxes you can just /give ? :/ 23:41 < Xor_Boole> seriously nintendo 23:42 < xehbit> Hehheh idk, mayby they are going to kill the dedicated server stuff 23:42 < xehbit> and make it a party system 23:42 < Xor_Boole> Grum tell whomever's in charge to sell mollstam to nintendo, they need better server infrastructure 23:42 < Grum> xehbit: how would they do that when we keep providing the server software? 23:42 < Grum> mollstam doesn't work at Mojang anymore 23:42 < Xor_Boole> oh? when'd he leave? 23:42 < Grum> after the merge 23:42 < xehbit> Oh, so the old mojang guys are still on MC but for MS now ? 23:42 < Grum> takeover meh 23:43 < Xor_Boole> really? huh, I didn't notice. that makes me sad 23:43 < Grum> xehbit: no? we work for Mojang 23:43 < xehbit> Mojang is a sub-company of MS ? 23:43 < Xor_Boole> Mojang is Microsoft's 23:44 < Grum> we're just a studio owned by Microsoft 23:45 < xehbit> Ah, i see! 23:45 < Xor_Boole> can we get back to ranting about how bad the codebase is? this microsoft conspiracy is boring 23:45 < xehbit> Xor_Boole: i agree :) 23:45 < xehbit> Got it now, thanks for the intel ^_^ 23:51 < Xor_Boole> why does maxie look like such an idiot in this game --- Day changed dim. janv. 04 2015 16:51 < pcfreak30> Is there a packet that needs to be sent to get a Join Game packet? Im using a networking library in node, and logging all incoming packets and no Join Game packet comes in. 16:53 < pcfreak30> after a login success, i only http://pastie.org/private/rdmxkjy83x7qxoahg9w7q with the states logged but theres nothing related to joining a game.. 17:12 < gamingrobot> pcfreak30: https://gist.github.com/gamingrobot/e371c0be0f630fcd7018 17:35 < pcfreak30> gamingrobot: thats, turns out the events werent being related from client object to bot object. 17:35 < pcfreak30> relayed 17:41 < gamingrobot> ah 21:49 < Paprikachu> how does the server get the players name? 21:51 < Paprikachu> nvm --- Day changed lun. janv. 05 2015 22:19 < Not-f18a> [Glowstone] SpaceManiac pushed 4 commits [+2/-0/±23] http://git.io/jVxSDQ 22:19 < Not-f18a> [Glowstone] SpaceManiac 5ebf0fe - Basic item drop entity support (closes #4)! 22:19 < Not-f18a> [Glowstone] SpaceManiac 957e6e3 - Updated shadow plugin to 1.2.0 for Gradle 2 and up. 22:20 < Not-f18a> [Glowstone] SpaceManiac deleted branch items 23:42 < c1yd3i> anyone fimilar with the mc protocol? 23:43 < c1yd3i> trying to figure out what packet might be sent with a player dies 23:43 < c1yd3i> er, the client 23:43 < c1yd3i> 0x06 (update health) didn't change when the client died for me --- Day changed mar. janv. 06 2015 00:00 <+SpaceManiac> c1yd3i: I don't think it's anything else than that 00:00 <+SpaceManiac> you might find a death animation packet, but that doesn't cause the "you died!" screen 00:01 < c1yd3i> alright, it must be a different problem 00:01 < c1yd3i> thanks 00:05 < c1yd3i> hmm this is too bizzare, i'm really not sure what's causing it 00:06 < c1yd3i> im listening for the health to change, i kill myself but nothing is being sent to the client 00:06 < c1yd3i> must be the server's fault, i'm not sure 00:06 <+SpaceManiac> are you getting just nothing? 00:07 < c1yd3i> correct 00:07 < c1yd3i> im not getting anything at all 00:07 < c1yd3i> no feedback 00:14 < c1yd3i> is there another packet that could be potentially sent 00:14 < c1yd3i> if the client dies? 00:16 <+SpaceManiac> *possibly* EntityMetadata with health=0? I don't think so, though 00:19 < c1yd3i> my guess is update_health just isn't called on a suicide so im just working around that 00:19 < c1yd3i> because it doesnt seem to be called on respawn either 00:19 < c1yd3i> but im pretty sure on an individual injury it is called 00:19 < nickelpro> You're not updating your position 00:19 < c1yd3i> I need to update my position? 00:19 < nickelpro> you need to be sending position updates 20 tps in order for the server to dean you worthy of health updates 00:20 < c1yd3i> Can I sent a position update to my current position? 00:21 < c1yd3i> Er let me rephrase that 00:21 < c1yd3i> Er nevermind I was just thinking out loud 00:23 < nickelpro> Spock does it here: https://github.com/nickelpro/spock/blob/master/spock/plugins/helpers/move.py and here https://github.com/nickelpro/spock/blob/master/spock/plugins/helpers/respawn.py for respawn, uses the actual packet names so should be pretty self explanatory 00:35 < c1yd3i> so i'm updating my position but 00:35 < c1yd3i> update_health is only sent after respawn 00:36 < c1yd3i> when i kill myself it doesn't say my health is 0 00:36 < c1yd3i> i dont know if it's good practice or if it could have any affect but the position updates are at 50ms intervals and im sending back the same position the server sent me earlier 00:54 < btilm305> anyone have a link to an implementation of gravity and block heights? 05:29 < btilm305> anyone have a java example of getting blocks from raw chunk data? 05:50 <+SpaceManiac> btilm305: gravity is just acceleration; you can't really treat blocks as just heights because they have lots of bounding box shapes 05:51 < btilm305> yeah ignore that, I've got that 05:51 < btilm305> Just having trouble with the offset in packetmapchunkbulk 05:51 < btilm305> never can read the 2nd chunk correctly -.- 05:54 <+SpaceManiac> Here's how Glowstone writes the chunks, maybe you can reverse it to read them: https://github.com/GlowstoneMC/Glowstone/blob/c41bf0e34473d25d1c70440f8debd5bf98c7f973/src/main/java/net/glowstone/GlowChunk.java#L683 06:12 < Xor_Boole> nightmare material: notch originally writting minecraft using very poor scala macro skills 06:12 * Xor_Boole shudders 15:24 < Wuppie> Any .net developer here? (C#) 15:24 < Wuppie> Willing to join a new project? 15:54 < rom1504> Wuppie: probably not, people don't join project with no information 16:08 < Wuppie> rom1504 That is true. I'll provide some information later on , if i actually decide to do it. as it a lot of work 19:35 < xehbit> tell us what the project is about :p 20:27 < Wuppie> xehbit: Drew (SirCmpwn) is already doing basically the same thing. So it is not really important. 20:27 < Wuppie> i also have a question. How does kicking a client with a reason work? 20:27 < Wuppie> i don't see it any where in the protocol specification ATM, or i looked over it 20:47 < gamingrobot> Wuppie: why dont you just maintain his project? 20:48 < gamingrobot> or contribute depending on the status of said project 20:48 < Wuppie> gamingrobot: i was gonna, but he doesn't want me to as it is a clean room project. And i have looked at minecraft source code once 20:49 < gamingrobot> is it his craft.net project? 20:49 < Wuppie> nope, http://truecraft.io/ 20:49 < gamingrobot> ah 20:49 < gamingrobot> oh hey he lives in the same city as me 20:49 < Wuppie> haha lol 20:50 < Wuppie> i loved the project, so i pushed a new command handler, he liked it. but didn't accept it as i looked at MC source code once 20:50 < Wuppie> but oh well 21:45 < nickelpro> Wuppie: http://wiki.vg/Protocol#Disconnect 21:45 < nickelpro> That'show you disconnect with a reason 21:45 < Wuppie> A thnx man! Didn't see that! 21:46 < nickelpro> I know the protocol to well, feel free to shoot me question about packets/file formats/client behavior 21:46 < nickelpro> I wish I had spent this time on something productive, but well, here we are --- Day changed mer. janv. 07 2015 01:46 < Nasuno> Can I get a dialog with someone capable of WatchService with Thread Pools? 02:04 < Nasuno> Or rather interested in answering some questions on the subject would be less rude. My people skills are on par with my java skills 07:22 < btilm305> anyone know the velocity when you jump? --- Log closed mer. janv. 07 07:49:21 2015 --- Log opened mer. janv. 07 07:55:09 2015 07:55 -!- Irssi: #mcdevs: Total of 159 nicks [1 ops, 0 halfops, 10 voices, 148 normal] 07:58 -!- Irssi: Join to #mcdevs was synced in 216 secs 17:13 < nickelpro> Can anyone explain how drag works in Minecraft? The wiki just says "there is a drag force proportional to velocity" and gives constants with the unit 1/tick that I'm not sure how to interpret 17:15 < nickelpro> Oh I'm retarded, nvm 17:34 < nickelpro> Anyone know the max ground speed of a walking client? A sprinting one? And if strafing is different that walking/sprinting? 18:06 < gamingrobot> nickelpro: doesnt the client send that information? 18:07 < gamingrobot> nickelpro: http://wiki.vg/Protocol#Player_Abilities ? 18:08 < nickelpro> I don't know if those values are blocks/tick which is what I really need 18:17 < Xor_Boole> the client orders names in the tab list case-sentive-lexicographically 18:18 < Xor_Boole> this bothers me 18:18 < Xor_Boole> is there a reason the oreder isn't case insensitive =< 18:32 < nickelpro> Ah, so the wiki has speeds in m/s, should be able to use that. Anyone know where the minecraft wiki speed measurements come from? Code or just measurement? 18:33 < Bibl> code probably 18:33 < Bibl> Element 18:34 < Bibl> http://minecraft.gamepedia.com/Transportation * 18:35 < nickelpro> I'm on that page right now but a lot of the value later on say "From experiment" which confuses me. Especially since the entity page gives its value in blocks/tick http://minecraft.gamepedia.com/Entity#Motion_of_entities --- Day changed jeu. janv. 08 2015 05:17 < Fenhl> Minecraft Wiki's values are usually from experiment 07:45 < Not-f18a> [Glowstone] SpaceManiac pushed 1 commit [+0/-0/±3] http://git.io/4l5Y6g 07:46 < Not-f18a> [Glowstone] BigxMac aaa3e8a - Added damage due to cactus blocks. --- Day changed ven. janv. 09 2015 05:23 < Not-f18a> [Glowstone] SpaceManiac pushed 1 commit [+1/-0/±5] http://git.io/zXsm6Q 05:23 < Not-f18a> [Glowstone] turt2live 39ca0ab - Added support for melee attacks by players. 20:20 < Xor_Boole> someone apparently asked for a snooper data API and got downvoted into oblivion. this makes me sad. 20:25 < Xor_Boole> I wonder what havoc I could wreck with suck an API... 20:30 < Dinnerbone> Not as much as you think, considering what little information is in snooper 20:30 < Dinnerbone> No personal info so you can't track users between sessions 20:30 < Dinnerbone> You can see average hardware specs, that's about it 20:30 < Dinnerbone> And I've tweeted some of those 20:31 < Dinnerbone> The interesting ones at least 20:34 <+Amaranth> Dinnerbone: Now that you have currently playing stats you should put them on minecraft.net/stats :) 20:34 < Dinnerbone> That decision would have to bubble up 20:36 < Xor_Boole> Dinnerbone tell your web people to make some nice visualization at least =p 20:36 < Dinnerbone> We can absolutely do it I just mean that's not a decision I have the authority to make 20:36 < Xor_Boole> like that java version pie chart you had a while ago 20:37 < Xor_Boole> naturally 20:37 < Dinnerbone> Grafana has nice visualisations, have you seen the other snooper data I've tweeted? 20:37 < Xor_Boole> some of it 20:37 < Xor_Boole> I'd just be nice if you could take a sharp marlinspike and aim it at the correct peoples' sides for encouragement 20:37 < Xor_Boole> I mean, it works with Thinkofdeath 20:37 < Dinnerbone> http://media.dinnerbone.com/uploads/2014-12/screenshots/05_17-11-31_qhmCvhEgDS.png 20:38 < Xor_Boole> oh I think I might have seen that one 20:39 < Dinnerbone> http://media.dinnerbone.com/uploads/2014-12/screenshots/04_18-02-19_eInpCvR0YG.png is the pie chart one you're talking about, that was just done in google spreadsheets :p 20:39 < Dinnerbone> (Also the percentage of java 8 went up *a lot*) 20:39 < Dinnerbone> (Our launcher helped with that :D) 20:39 < Xor_Boole> because of the new launcher right? 20:39 <+Amaranth> lol OpenPandora 20:39 < Xor_Boole> still the most horrible and great idea I have heard in a long time 20:39 < Xor_Boole> > bundle your own java 20:39 < Dinnerbone> Horrible? 20:40 < Dinnerbone> What's horrible about that? 20:40 < Dinnerbone> Almost every serious application does it, I actually strugle to think of one that doesn't 20:40 < Xor_Boole> meh, extra copies floating around 20:40 < Dinnerbone> (Which uses java) 20:40 < Xor_Boole> *shrug* 20:40 < Xor_Boole> it's not like I would know 20:41 < Xor_Boole> blame other people puting ideas in my head 20:41 < Xor_Boole> a better question is when the launcher will equal the scrolls launcher in sexiness 20:41 < Dinnerbone> Do you have a java IDE? 20:42 < Xor_Boole> Dinnerbone intellij, yes. I know it comes with java 20:42 < Wuppie> Dinnerbone: what java IDE do you use if i may ask? 20:42 < Dinnerbone> :p 20:42 < Xor_Boole> intellij iirc ^ 20:42 < Xor_Boole> only real ide 20:42 < Dinnerbone> Yeah intellij 20:42 < Xor_Boole> except he uses this ugly white theme which means he's not a Real Hacker 20:42 * Xor_Boole runs 20:43 < Wuppie> haha 20:43 < Dinnerbone> I tried darkula, it makes me feel ill 20:43 < Xor_Boole> it's grown on me 20:43 < Dinnerbone> (I'm not saying "it's so ugly omg it makes me sick thinking about it", it actually does make me feel ill. Looks darn cool though.) 20:43 < Dinnerbone> I like it, I just can't use it. 20:44 < Xor_Boole> oh, fucks with your eyes? 20:44 < Dinnerbone> Yeah 20:44 < Xor_Boole> that's too bad, it is a sexy theme =< 20:44 < Dinnerbone> Besides leet haxors have more green. 20:44 < Xor_Boole> that said intellij hates me now because I do a lot of scala on it 20:45 < Xor_Boole> Dinnerbone am I leet then? http://puu.sh/ei9U1/a4a80f1fa9.png 20:45 < Xor_Boole> my intellij colors are also very green =p 20:45 < Dinnerbone> A++ 20:45 * Dinnerbone waddles off to do laundry 20:45 < Xor_Boole> you off to- oh wait fucking timezones 20:46 * Xor_Boole shakes fist at the sun 21:22 < ScruffyRules> Xor_Boole, Shouldn't you be shaking your fist at the Earth since it is the one going around the Sun? :P 21:22 * Xor_Boole sheds on ScruffyRules's lap 21:22 < Xor_Boole> go away 21:22 < ScruffyRules> :P 22:16 < Darker> Hello, just a quick question 22:16 < Wuppie> Sure! just ask :P 22:16 < Darker> Last time I was asking here, somebody told me that there's a working API for minecraft protocol in C++ 22:17 < Darker> I disregarded that and implemented it by myself 22:17 < Darker> It was lot of pain 22:17 < Darker> A friend of mine is trying to do similar thing 22:18 < Darker> So is there updated C++/java implementation of protocol? 22:18 < Darker> Ideally providing API for a simple AI that already queries for pathfinding etc? 22:18 < Darker> He's surelly make use of it 22:24 < Darker> I take that for "no" :( 22:28 <+SpaceManiac> Glowstone has a server-oriented protocol implementation in Java, but no pathfinding or anything 22:28 <+SpaceManiac> Maybe you want to look at node-minecraft-protocol (JS)? I think there's bots for that 22:28 < MrARM> Implementing path finding is quite simple though 22:29 < MrARM> I did that once for a test client but failed to code sending the movement correctly. 22:44 < nickelpro> MrARM: Client-correct MC physics is the hard part IMHO 22:46 < MrARM> Yeah, that's not too simple 22:47 < nickelpro> I've got jumping working :D https://github.com/nickelpro/spock/blob/master/spock/plugins/helpers/physics.py 22:48 < MrARM> :o 22:48 < MrARM> nice! 22:48 < Darker> I think the box colission calculation for pathfinder won't be that easy 22:49 < nickelpro> I'm ignoring the collision problem for now 22:49 < MrARM> I meant a simpler one, with all blocks being assumed as full ones 22:49 < nickelpro> ^ 22:50 < MrARM> that's quite easy and enough for most of the stuff 22:50 < Darker> That's OK until you encounter slabs or stairs... 22:50 < Darker> Btw does bukkit server check for collision with fences? I mean the extra 1/2 block of them 22:50 < nickelpro> Easy enough to code a special case in for when the algorithm encounters those blocks 22:51 < MrARM> Even then, pathfinder itself shouldn't really care about it, rather the moving part of ot 22:51 < MrARM> *it 22:53 < Darker> Well it should. If the server checks for fence collision, pathfinder mustn't plan the rote ouver fence (jumping on it) 22:53 < Darker> While it can plan path over other types of blocks. 22:54 < MrARM> Ah, yeah, that's still quite easy to make an special case for 22:54 < nickelpro> Vanilla server doesn't check jump height, just hop over it :-P 22:54 < Darker> Funny thing I encountered when testing my C++ bot is, that walking over water is not considered flying, as water is also block 22:54 < Darker> I wonder if this was fixed or not 22:55 < nickelpro> When I was trying out jump accelerations, my bot did superman-style leaps into the stratosphere without being kicked 22:55 < nickelpro> Also leaving on_ground=False all the time negates fall damage 22:55 < nickelpro> And yes, walking on any block other than air is always valid 22:55 < nickelpro> So lava/water/plants all good 22:55 < MrARM> To be kicked you need to be in air by minimum 5 seconds I guess 22:56 <+SpaceManiac> did you have allow-flight enabled in the server options? 22:56 < MrARM> Vanilla anti-hacks aren't too good 22:56 < nickelpro> Nope 22:56 < Darker> I was talking about bukkit 22:56 < shoghicp> craftbukkit without plugins ~ vanilla 22:56 < nickelpro> Vanilla only checks in every 5-10 seconds and asks if you've obeyed the laws of physics lately 23:03 < Darker> Well, thanks for chat, bye 23:23 < powerstrip> hm 23:24 < powerstrip> does anyone have a simple minecraft query tool? 23:29 <+SpaceManiac> will this suffice: https://dinnerbone.com/minecraft/tools/status/ or do you mean the query protocol 23:29 < gamingrobot> for pathfinding cant you just assume fences are two blocks tall? 23:30 < Dinnerbone> That does the query protocol too 23:30 <+md_5> > http://media.dinnerbone.com/uploads/2014-12/screenshots/04_18-02-19_eInpCvR0YG.png 23:30 <+md_5> > OpenBSD 23:30 <+md_5> Can we spoof versions on that? 23:30 < Dinnerbone> Yes, you are asked not to. :p 23:31 * md_5 installs on dragonflybsd instead 23:31 < shoghicp> Is there a way to set the port on your tool? 23:31 <+md_5> host:port ? 23:31 < gamingrobot> wait what windows 95 23:31 < Dinnerbone> Type it in as you would in the game 23:31 < shoghicp> MCPE servers default to port 19132 and having query on 23:31 < shoghicp> did not work D: 23:31 <+md_5> is the query the same? 23:32 < shoghicp> it is 23:32 < shoghicp> works with other tools 23:32 < Dinnerbone> (Hi shoghicp!) 23:32 < shoghicp> o/ 23:32 < Dinnerbone> MCPE servers do not have query protocol to my knowledge? 23:32 < shoghicp> PocketMine has it :P 23:32 < Dinnerbone> You'd know more than me in that area though 23:32 < shoghicp> anyway 23:32 < shoghicp> sg.lbsg.net:19132 23:32 < Thinkofdeath> I think he is talking about the udp query? 23:32 < shoghicp> works in other tools 23:32 < shoghicp> yep 23:33 < Dinnerbone> Thinkofdeath, my tool supports that. 23:33 < Thinkofdeath> oh 23:33 < Dinnerbone> shoghicp, fork the code and try to run it - see if you get any errors. :D 23:33 < shoghicp> alright, got a free night :D 23:33 <+md_5> we could install Minecraft on Solaris 23:34 < Dinnerbone> It can be either that I ignore port for udp query because barely anyone used it, my library may have a bug that wasn't caught until now, or your implementation may not match the official one close enough 23:35 * Dinnerbone installs Minecraft on md_5's toaster 23:35 < shoghicp> it did work before 23:36 < shoghicp> and yeah, it uses UDP Query 23:36 <+md_5> I swear one of these days Im gonna make a raspberrypi toaster 23:36 <+md_5> http://www.embeddedarm.com/software/arm-netbsd-toaster.php 23:37 < jython234> xD 23:37 < Dinnerbone> My website is just a frontend to https://github.com/Dinnerbone/mcstatus - mcstatus supports query (udp) or ping (tcp), do MinecraftServer.lookup("example.org:1234").query() 23:38 < shoghicp> :o, timeout 23:40 < Dinnerbone> It's entirely possible that I relied on too much "untested behaviour" from vanillas Query that it may not work in a decent environment 23:41 < Dinnerbone> (Our query sucks and I hate it so much. In my defense, it far predates me and I haven't had a reason to touch that code yet. Mostly out of fear.) 23:41 < shoghicp> alright, I'll do a PR once I find a fix 23:42 < Thinkofdeath> Dinnerbone: just quietly remove it one update and see if anyone notices 23:42 < Dinnerbone> It has been on the agenda to make it obsolete with something better for a while, just no time 23:43 < shoghicp> heh 23:43 < shoghicp> now it works 23:43 < Dinnerbone> Huh 23:43 < dx> something better implementing the same protocol, or something completely different? 23:43 < Dinnerbone> Curious 23:43 < Dinnerbone> Diff protocol 23:43 < Dinnerbone> A sane one. :p 23:43 < dx> heh 23:47 < shoghicp> https://github.com/shoghicp/mcstatus/commit/4c4239e6f88c1dd447de39c198b5133576ed885e 23:47 < shoghicp> that broke it 23:47 < Dinnerbone> So you take more than 3 seconds to start responding 23:47 < shoghicp> seems like some servers struggle to reply under 3s 23:47 < shoghicp> it's instant on my server 23:47 < Dinnerbone> That's a really long time. :D 23:47 < shoghicp> but hta guy has a setup that contacts a global server 23:47 < shoghicp> that* 23:47 < shoghicp> let me switch server :s 23:50 < shoghicp> it replies me in half a second, takes more with the lib 23:51 < Dinnerbone> Huh 23:51 < shoghicp> it might be the server location 23:52 < shoghicp> 127.0.0.1 at least works fine :) 23:53 < shoghicp> oh, this might be it 23:53 < shoghicp> DNS resolution times 23:55 < shoghicp> yep, resolves DNS each time a packet is sent 23:55 < shoghicp> and that server uses DNS as a way to load-balance 23:59 < Dinnerbone> I see --- Day changed sam. janv. 10 2015 00:04 < shoghicp> https://github.com/Dinnerbone/mcstatus/pull/26 00:06 < shoghicp> hmm 00:06 < shoghicp> tests 00:28 < shoghicp> alright, tests passing and ready to be merged if you like it 00:30 < Dinnerbone> <3 will take a look when I get some time, probably this weekend 00:32 < shoghicp> nice! 00:33 < shoghicp> lots of people ask for a way to check if they port forwarded correctly, I used to give them that tool 02:09 < Xor_Boole> I think the microsoft paranoia has reached a point where it is just an amusing distraction, similar to the eula drama. makes me giggle. 02:09 < Xor_Boole> I am a twisted man 06:30 < nickelpro> My bot can now walk and sprint reasonably correctly 06:30 < nickelpro> To celebrate, he took a quick jog across the ocean 06:31 < nickelpro> Next, we teach him about liquids 08:02 < Not-f18a> [Glowstone] SpaceManiac pushed 1 commit [+0/-0/±1] http://git.io/6q9o3Q 08:02 < Not-f18a> [Glowstone] SpaceManiac 80ee09c - Added void damage, dealt to entities with y < -64 (thanks @BigxMac). 08:26 < gamingrobot> nickelpro: or maybe gravity 08:27 < nickelpro> gamingrobot: He knows about gravity naively 08:27 < gamingrobot> he just assumes water is solid 08:27 < nickelpro> Someone just needs to fix his "floor detection" which only searches for "not air" atm 08:28 < nickelpro> https://github.com/nickelpro/spock/blob/master/spock/plugins/helpers/world.py#L25-L35 08:28 < nickelpro> "Someone" will probably be me 08:28 < gamingrobot> "Someone" will probably be me 08:28 <+Amaranth> Unfortunately such data is not in the model files so you'll have to hard code it same as MC does 08:28 < nickelpro> I'd appreciate that :D 08:29 < nickelpro> Amaranth: I know, I actually have most of the data already. Just not using it 08:29 <+Amaranth> It'd be really nice if it was in the model files 08:30 < gamingrobot> new mc model format 08:30 < gamingrobot> its the mc models with the bounding box appended to the end 08:30 < gamingrobot> err collision box 08:31 < nickelpro> Anyway physics is basically done, we walk, sprint, jump, and fall reasonably correctly. Enough to implement a rudimentary pathfinding algorithm at least 08:32 < nickelpro> It needs a huge amount of polish, and the Nice-to-Have list is a mile long 08:32 < nickelpro> but hey it works 08:34 < gamingrobot> have we updated the Todo file? 08:34 < gamingrobot> or should github issues really be what the todo file is 08:35 < nickelpro> My ToDo file is just "big concepts so I can't claim I have nothing to work on" its motivational more than anything else 08:35 < gamingrobot> gotcha 08:35 < nickelpro> Github issues is where it should really live, go ahead and create issues and assign them as you see fit if you're looking for work that isn't coding 08:36 < nickelpro> The nice thing about issues is they let you cross-reference and micro manage feature development and polish. But that is way too much professionalism for me to implement personally, much like documentation and a stable API 08:38 < gamingrobot> A stable API would be nice 08:38 < gamingrobot> I am off to bed now tho 08:38 < nickelpro> cya, I should go too 14:12 < barneygale_> are mojang not releasing weeklies anymore? 14:13 < shoghicp> they will start soon, jeb said around January 14:13 < shoghicp> (saw that in reddit yesterday) 15:47 < Fenhl> weekly snapshots tend to stop for a while after a release 16:29 < Paprikachu> im a little bit confused about how minecraft stores/transmits block data 16:29 < Paprikachu> has metadata been removed yet? 16:30 < Paprikachu> i remember an announcement that jeb wanted to make block ids 2 bytes and remove the concept of metadata 16:54 < Bibl> blocks still have metadata atm 16:57 < Bibl> Paprikachu this is how i receive and parse it 16:57 < Bibl> id = in.readVarInt() >> 4; 16:57 < Bibl> metadata = id & ((1 << 4) - 1); 16:58 < Paprikachu> ah, i see 16:58 < Paprikachu> thanks 17:12 < nickelpro> Bibl: That's a completely incorrect metadata decoder 17:12 < Bibl> lol 17:12 < Bibl> are you sure? 17:12 < nickelpro> data = in.readVarInt() 17:12 < nickelpro> id = data >> 4 17:12 < nickelpro> metadata = data&0x0F 17:12 < Bibl> i tested this a while ago and the last 4 bits is the metadata 17:13 < nickelpro> Bibl: yes, but you're deriving the metadata from id, which you already shifted the last 4 bits out of 17:13 < nickelpro> metadata = id & ((1 << 4) - 1); 17:13 < Bibl> o crap 18:18 < SopaXorzTaker> for(a;;){while();} 18:38 <+SpaceManiac> The wiki lists 'F' and 'O' items in the debug menu as information regarding chunks, but I don't see them. Am I missing something or is the wiki just outdated? 18:38 < nickelpro> SpaceManiac: link? 18:38 <+SpaceManiac> http://minecraft.gamepedia.com/Debug#Legend 18:40 < nickelpro> Probably outdated wiki 18:54 <+SpaceManiac> mm, that's unfortunate 18:54 <+SpaceManiac> I keep running into issues where the client doesn't render enough chunks under various circumstances and can't pinpoint the cause 19:10 < MrARM> So I've tried to make an MC client in c++ today 19:11 < MrARM> Got server ping to work (my current sample code for that: " http://pastebin.com/MjwEKSZY") 19:12 < nickelpro> I did something with a similar structure to yours, looks good so far 19:15 <+SpaceManiac> random C++ tip: avoid manual pointer things where possible 19:16 <+SpaceManiac> you could avoid the manual new/delete by putting 'handshake' and 'statusReq' on the stack and passing '&handshake' to writePacket 19:28 < MrARM> hmm 19:28 < MrARM> k, thanks 22:04 <+SpaceManiac> okay, I can eliminate one class of rendering problems as a client bug because it happens in singleplayer 23:50 < gurun> Is it typical or not for a MCPC server to do culling of player positions based on LoS? --- Day changed dim. janv. 11 2015 03:31 < gamingrobot> https://db.tt/Sv5kGXKo hehehe 03:58 < nickelpro> move entity function deals fire damage and plays sound 03:58 < nickelpro> https://gist.github.com/gamingrobot/c9bc30a7f39e2a21de57 03:58 < nickelpro> I'm done, Minecraft is dumb 08:44 < Not-f18a> [Glowstone] SpaceManiac pushed 1 commit [+0/-0/±5] http://git.io/tGUAIg 08:44 < Not-f18a> [Glowstone] SpaceManiac a1a7fc7 - Added actual height map storage to improve performance. 10:58 < MrARM> hmm, almost got logging in working 10:58 < MrARM> however for unknown reason I get this as the return data: [username: Test\377, uuid: 444cf323-978c-3e83-9288-612345bfec67\377] 10:58 < MrARM> Any ideas why? 10:59 < MrARM> (I meant that \377 part of that, I don’t know why it is there) 11:00 < MrARM> nvm 13:38 < MrARM> what compression level does MCPC use? 16:22 < MrARM> lol, you can sneak and sprint at same time 16:24 < jython234[ping]> xD 17:23 <+Amaranth> MrARM: You can also move at any speed you want while sneaking, walking, sprinting or some combination 17:23 <+Amaranth> At 0,0 and want to get to 1000000,1000000 to get away from everyone else? Just send a packet saying that's where you are 17:24 <+Amaranth> Combine with /msg letting you triangulate where people are and you have full client side /tp 17:24 < shoghicp> msg to triangulate? 17:25 <+Amaranth> shoghicp: Command block syntax 17:25 < shoghicp> and I think there is a limit of 100 blocks per tick hardcoded in the check 17:25 < shoghicp> ah, right 17:25 <+Amaranth> That check was broken in 1.5 17:25 <+Amaranth> It only triggers if the server tries to move you more than 10 blocks a tick which is exactly when it shouldn't 17:26 <+Amaranth> Well, assuming the server tried to move you that much and you agreed 17:26 < shoghicp> at least I implemented it right :D 17:26 <+Amaranth> It does Math.max(serverVelocity, clientVelocity) and serverVelocity is what the server wants you to move not what it thinks you're moving based on packets 17:26 <+Amaranth> Err, Math.min rather 17:27 <+Amaranth> For a quick fix I changed it to Math.max in CraftBukkit which breaks huge TNT explosions and ender dragon knockback 17:27 <+Amaranth> And huge Knockback enchant levels but you can't get those normally 17:28 < shoghicp> or disregard the client velocity and just force the server velocity 17:28 <+Amaranth> That really doesn't even help 17:28 <+Amaranth> You can just spam movement packets that are under the distance check anyway 17:28 <+Amaranth> I was just trying to make it a little harder 17:29 <+Amaranth> Server won't let you move more than 10 blocks at once? Just tell it you moved 9 blocks 10000 times in a single tick 17:29 < shoghicp> haha 17:29 < shoghicp> hmm, my server checks for the 100 block distance once per tick 17:30 < shoghicp> reverts it if more 17:30 < shoghicp> so I guess that works fine 17:30 <+Amaranth> That would take more diff than I was willing to commit to 17:30 <+Amaranth> Also it's not supposed to be 100 17:30 < shoghicp> 10 squared? 17:30 <+Amaranth> Vanilla is comparing distance squared to 100 to avoid a sqrt 17:31 < shoghicp> alright, patching :D 17:31 < shoghicp> I'm checking against 100 squared, 10000 D: 17:31 <+Amaranth> Always better to square the other side than have a sqrt, common optimization 17:32 < shoghicp> yep 17:33 < shoghicp> I check against squared distance on most of the cases 17:41 < shoghicp> 10 blocks per tick is still 200 blocks per second D: 17:48 <+Amaranth> Yeah but an explosion (or ender dragon knockback) could do it to you 17:48 <+Amaranth> Do you allow them to go over the limit if the server thinks they should be? 17:48 < shoghicp> yep 18:06 < MrARM> Amaranth: by sprint+sneak combo i meant the sprinting particles while the player is sneaking rather than the speed itself 18:32 < MrARM> I have a problem with chat reading :/ 18:33 < MrARM> I can read strings I think (as I can read the LoginSuccess username/uuid fine) 18:34 < MrARM> but chat gets cut/I have empty string 18:34 < MrARM> {"translate":"chat.type.text","with": 18:34 < MrARM> ^ is all i get when I join 18:36 < MrARM> my string reading code: http://pastebin.com/9D28e0kk 18:37 < MrARM> I checked and the length is fine 18:41 < MrARM> hmmm 18:41 < MrARM> I know what’s wrong now 19:03 < MrARM> or maybe I do not 19:09 < MrARM> so it's an buffer overflow, but idk why 19:11 < shoghicp> MrARM: strings are UTF-8 19:11 < shoghicp> they can contain null bytes 19:12 < MrARM> I fixed that 19:12 < MrARM> but 19:12 < MrARM> it's an buffer overflow 19:12 < MrARM> as 19:12 < MrARM> I typed same message in chat a few times 19:12 <+SpaceManiac> what does readCharArray look like? 19:12 < MrARM> the output bytes were changing 19:13 < MrARM> readCharArray here memcopy's the a part of an byte array 19:14 <+SpaceManiac> sure but what's the implementation? (also the updated readString) 19:14 < MrARM> k 19:16 < MrARM> http://pastebin.com/B2fM1tjs 19:16 < MrARM> ^ all stuff that may be revelant 19:18 <+SpaceManiac> hmm, nothing obviously amiss 19:18 <+SpaceManiac> you're sure 'len' is being read correctly? 19:19 < shoghicp> MrARM: what is your readVarInt implementation? 19:21 < MrARM> shoghicp: that's fine, I did a std::cout << len; and it gives correct values 19:21 < shoghicp> do you have the raw packet? 19:21 < shoghicp> that would be useful to have, as maybe it's an off-by-one bug? 19:22 < shoghicp> you pasted here some username names before, they had extra data at the end 19:23 < MrARM> shoghicp: I fixed it, it works fine 19:23 < MrARM> I can read username and uuid just fine right now 19:25 < MrARM> and what's weird it displays first part of the join message 19:25 < MrARM> but when I chat, it displays nothing 19:25 < MrARM> (not nothing, I meant it displays junk) 19:27 < MrARM> weird, it may be something with encoding, idk 19:27 < shoghicp> utf-8? 19:27 < shoghicp> that's why I'm asking for the raw packet :) 19:28 < MrARM> will run tcpdump as I get back to PC 19:28 < shoghicp> are you running on an encrypted stream? 19:28 < shoghicp> or online mode is of? 19:28 < shoghicp> off* 19:29 < MrARM> online mode is off 19:30 < shoghicp> alright then, that works :) 19:30 < shoghicp> otherwise tcpdump would only get encrypted data 19:49 < MrARM> aww 19:49 < MrARM> what params to use? 19:50 < MrARM> it captures everything else except the things on the port I specified 19:50 < MrARM> I tried: 19:50 < MrARM> sudo tcpdump -X -F /Users/Mac/Documents/tcpdump.txt 'port 25565' 19:50 < shoghicp> use wireshark 19:51 < MrARM> can’t I do that with just tcpdump? 19:52 < MrARM> but k, dl’ing it 19:53 < shoghicp> helps a lot in MCPE, we made a dissector there :D 19:54 < MrARM> anyway what did I do wrong with the command? 19:55 < shoghicp> I used tcpdump long ago, try the man pages 20:03 < MrARM> idk what I do wrong with tcpdump 20:03 < MrARM> anyway 20:04 < MrARM> it’s not a problem with encoding 20:04 < MrARM> if I’m having random bytes as output 20:04 < MrARM> (when message is same) 20:09 < shoghicp> maybe it is and you just stop parsing there :D 20:09 < shoghicp> it could be unitialized memory 20:10 < shoghicp> or you reading past the value due to not saving everything 20:11 < nickelpro> So GamingRobot looked through the MCP/decompiled client code and pulled out everything he thought was relevant to client-side physics. Now I'm more confused than ever. Client seems to have random values all over the place related to movement 20:12 < nickelpro> A lot in MoveEntity, some in LivingEntityBase, and handful in the block/material data 20:12 < shoghicp> that would be server-side physics :s 20:12 < nickelpro> There are no server side physics 20:12 < shoghicp> for example, dealing fire damage in movement code 20:12 < nickelpro> Ya, that through me for a loop 20:12 < MrARM> uh 20:12 < nickelpro> threw* 20:12 < shoghicp> no server-side physics? 20:13 < MrARM> just ran my old java-based test client 20:13 < shoghicp> server runs physics too 20:13 < nickelpro> For mobs, not clients 20:13 < MrARM> it crashed with OutOfMemoryError 20:13 < shoghicp> ah, right. The moveEntity() part is also used by players in the server 20:14 < shoghicp> to go from a position to another 20:14 < shoghicp> or at least, I made it use it 20:14 < shoghicp> and works fine :D 20:15 < nickelpro> Anyway, I'm close to giving up on perfectly mirroring Minecraft physics. A close facsimile seems to keep anti-cheat plugins happy enough 20:21 <+Amaranth> Most of the movement and physics code in the server is short circuited by the player subclass and then various bits of it are called in response to a movement packet 20:22 <+Amaranth> Way too many things only happen if the player moves 20:22 < shoghicp> I saw that, and I decided to tick players as normal entities 20:22 <+Amaranth> Normally that's not a problem because the client runs the same code so sees the condition and moves but if you take that out or have your own client... oops 20:22 < shoghicp> now movement only updates movement 20:23 <+Amaranth> Things like potion ticking, air when underwater, etc 20:23 <+Amaranth> Used to be a lot more 20:25 < MrARM> so my java client doesn't even get chat packets... wtf --- Day changed lun. janv. 12 2015 07:58 < gamingrobot> wow chat is not easy to parse 14:11 < techkid6> hey, wiki.vg is down (assuming you didn't know) 14:15 < shoghicp> TkTech: Unknown MySQL server host 'db1.int.tkte.ch' 14:16 < shoghicp> tkte.ch gives a DNS error 14:17 < techkid6> shoghicp: right-o 14:18 < techkid6> on mob so can't really type much, also nust woke up 14:18 < techkid6> also, achievements, is that a packet sent to the client or? 15:48 < TkTech> shoghicp: Idiots at SWITCH allowed some fuckers to transfer my domain. It's back under my control and is currently locked. 15:48 < TkTech> Everything will be back up within 24-48 hours. All servers are still running. 16:05 < techkid6> .transfer... your... domain, despite you owning it? 16:38 < MrARM> yeah, how could it happen? 16:44 < MrARM> techkid6: you can use the cached version from Google if you need 16:51 < TkTech> By convicing the registrar support they were me and getting a transfer code. 16:56 < Weloxux> What registrar? Doesn´t sound like a very good one, if anyone can just pretend to be you. They are supposed to prevent this kinda stuff. 16:59 < TkTech> SWITCH. And no kidding. 17:07 < techkid6> Well, we've seen how registrars have fucked up in the past (ie @N) so this surprises me none 17:08 < MrARM> TkTech: can’t you make it use direct IPs instead? 17:08 < jast> sounds like a good argument for a... SWITCH of registrars 17:15 < Weloxux> ayyyyyyyyyyy, I see what you did there 17:15 < techkid6> jast: no, bad. 17:15 < techkid6> but how the hell are achievements even happening! 17:16 < techkid6> name changes 17:16 < techkid6> Feb 4 17:24 < TkTech> Just to be clear (I was just PM'd) - *ALL* servers and services are up, but my personal DNS is down. 17:24 < TkTech> Wiki.vg will be fixed up in a moment. 17:25 < techkid6> <3 17:27 < TkTech> Annnnnd she's up. 17:27 < TkTech> Sorry for the downtime. 17:28 < techkid6> awesome, thanks so much :P working on a suggestion and i need to know current status quo for it xD 17:38 < MrARM> k, so about that string reading thing 17:38 < MrARM> i had yesterday 17:38 < MrARM> it reads some the text actually, it just has junk between it, idk what it comes from though 17:39 < MrARM> *some of 17:44 < shoghicp> TkTech: great! 17:44 < MrARM> debugging it further 17:45 < MrARM> made it put all the output into a file 17:45 < MrARM> I can see the string fine there 17:45 < MrARM> so problem is somewhere else 17:46 < MrARM> either my byte array input stream is wrong 17:46 < techkid6> how are achievements even sent to the client, huh 17:46 < MrARM> or my char array reader 17:46 < techkid6> statistics 17:46 < techkid6> ? 17:55 < MrARM> fixed it 17:55 < MrARM> techkid6: yup 17:56 < techkid6> MrARM: thats a shame, what I'd like to do is have a way for the "Achievement" GUI to become a notification GUI, with achievements being only part of it 17:59 < MrARM> anyway, if anyone is wondering what I did wrong, I created an buffer that was being deallocated and my app was reading memory that got already modified 18:01 <+Amaranth> MrARM: Should have written it in Rust ;) 18:02 < MrARM> uh no 18:03 < barneygale> hacker news reader detected 18:03 <+Amaranth> barneygale: Rust user, actually 18:03 < MrARM> I’m actually coding it in C++ for a reason 18:03 < MrARM> as I’m gonna plug this into MCPE without too much hassle 18:04 < barneygale> Amaranth, playing with rust is about #45346 on my to-do list. 18:04 <+Amaranth> heh 18:04 < barneygale> I need to find some good projects to contribute to 18:05 <+Amaranth> I'm one of the maintainers of the noise-rs library, we've got what I'm willing to bet is one of the fastest CPU implementations of perlin noise 18:06 <+Amaranth> At least for 2D noise 18:06 <+Amaranth> I'm not sure the 3D is up to par on speed yet 18:06 < shoghicp> hmm 18:07 <+Amaranth> I'm going to experiment with a SIMD implementation too but the compiler is autovectorizing the lerps already so I'm not sure how much gain there would be 18:07 < MrARM> also, in PlayerAbilitiesPacket, there’s a ’previous integer value divided by 250’ 18:07 < MrARM> there’s no previous integer 18:08 < MrARM> so is it an float or it is an int? 18:45 < MrARM> k 18:45 < MrARM> I did all client->server packets :D 18:47 < Bibl> thnx boss 18:47 < Bibl> wait i dont see it MrARM 18:47 < Bibl> it just says client or server 19:08 < Deaygo> Amaranth: I enjoy the * on the website. * In theory. Rust is a work-in-progress and may do anything it likes up to and including eating your laundry. 19:09 <+Amaranth> :D 20:12 < TkTech> Notifico and any other services that depended on my DNS should now be back up. Sorry again for the downtime. 20:16 < Bibl> lol look what i just found in my old code 20:16 < Bibl> braceFor: /* impact lmao */for (; i < braceIndex; i++) { 20:16 < Bibl> LexerToken t = tokens[i]; 20:18 < Xor_Boole> yey I broke models again http://puu.sh/eqwdL/c6182d297f.png 20:24 < Bibl> i like the magenta-black block 20:24 < Bibl> what is it 20:24 < Weloxux> probably one of them new stone types 20:24 < Weloxux> there´s hundreds 20:34 < dx> vaguely relevant to this channel: https://github.com/apache/thrift/blob/master/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java#L452-L458 20:34 < dx> "Convert n into a zigzag int. This allows negative numbers to be represented compactly as a varint." 21:21 < Xor_Boole> dx "zigzag int" --- Log closed lun. janv. 12 21:27:29 2015 --- Log opened lun. janv. 12 21:33:46 2015 21:33 -!- Irssi: #mcdevs: Total of 149 nicks [1 ops, 0 halfops, 9 voices, 139 normal] 21:37 -!- Irssi: Join to #mcdevs was synced in 223 secs --- Day changed mar. janv. 13 2015 05:09 < Not-f18a> [Glowstone] SpaceManiac pushed 3 commits [+2/-0/±8] http://git.io/MIrVGw 05:09 < Not-f18a> [Glowstone] ChioriGreene ce8b93b - Implemented door placement and interaction (see #119). 05:09 < Not-f18a> [Glowstone] jimmikaelkael 2634e8d - Added better game rule map and default values (see #455). 05:09 < Not-f18a> [Glowstone] SpaceManiac e75792e - Implemented doDaylightCycle, doTileDrops, and reducedDebugInfo. 16:18 < MrARM> hmm 16:18 < MrARM> http://wiki.vg/Protocol#Entity_Equipment 16:18 < MrARM> is that not an byte instead of an short? 16:26 < MrARM> nv, 16:26 < MrARM> *nvm 16:33 < MrARM> hmm, my code fails in reading a slot data, with reading the nbt data length short 16:33 < MrARM> only 1 byte is left, no two 21:05 <+SpaceManiac> MrARM: NBT data length isn't length-prefixed anymore 21:05 <+SpaceManiac> it's either a zero byte (no data) or the actual data (with no prefix) 21:08 < MrARM> Thanks 21:09 < MrARM> isn't that 0 a TAG_END? 21:22 < Fenhl> I guess you could call it that 22:40 < Xor_Boole> when are skin blobs going to require an yggdrasil signature? 22:40 < Xor_Boole> as in, is this actually going to happen? 23:03 < Thinkofdeath> Xor_Boole: they already do, its just the extra checks disabled 23:03 < Thinkofdeath> (excluding skulls) 23:03 < MrARM> are you ill, freenode? --- Day changed mer. janv. 14 2015 01:14 < Not-f18a> [Glowstone] SpaceManiac pushed 3 commits [+0/-0/±7] http://git.io/kywP9A 01:14 < Not-f18a> [Glowstone] SpaceManiac ffd04c4 - Implemented help.yml loading (closes #90). 01:14 < Not-f18a> [Glowstone] SpaceManiac 96e6bbe - Improved potion effect support (fixes #588). 01:14 < Not-f18a> [Glowstone] SpaceManiac 5303fee - Added player notification for difficulty changes. --- Log closed mer. janv. 14 03:51:02 2015 --- Log opened mer. janv. 14 04:15:39 2015 04:15 -!- Irssi: #mcdevs: Total of 152 nicks [1 ops, 0 halfops, 9 voices, 142 normal] 04:19 -!- Irssi: Join to #mcdevs was synced in 217 secs 20:23 < MrARM> K, wrote my simple C++ nbt lib --- Day changed jeu. janv. 15 2015 03:24 < Not-f18a> [Glowstone] SpaceManiac pushed 2 commits [+0/-1/±3] http://git.io/u0c8Cw 03:24 < Not-f18a> [Glowstone] ZephireNZ 1be5df0 - Provide a view for getOnlinePlayers(). 03:24 < Not-f18a> [Glowstone] SpaceManiac a4e35c3 - Added better bind error messages (closes #586). 15:51 < MrARM> In http://wiki.vg/Object_Data, Falling Block data, how do I decode the block id/meta? 15:52 < Dinnerbone> It says in the "notes" column 15:55 < Dinnerbone> (Well, it says how it's encoded, you can reverse that of course) 16:32 < shoghicp> I know of someone that has not reviewed a pull request I made ;D 16:33 < Weloxux> Is it me? Is it me? :D *jumps up and down excitedly* 16:34 < shoghicp> NO! 16:35 < Dinnerbone> I've been busy with company workshop and hugging people and fixing computers and stuff! :( 16:35 < MrARM> dammit 16:35 < MrARM> I crashed xcode 16:35 < Dinnerbone> I did take a quick glance and do have comments though, you only do it for the query not ping too 16:36 * Weloxux starts sobbing 16:36 < shoghicp> well, I do it for the UDP case 16:36 < shoghicp> as ping starts a TCP socket 16:36 < shoghicp> it doesn't matter anymore 16:36 < shoghicp> but on the UDP case, it'll resolve the DNS on each packet sent 16:36 < dx> heh, pull requests to dinnerbro, without context that sounds weird 16:36 < shoghicp> so it's important to cache it, it can change or have a slow resolution 16:37 < Dinnerbone> True! I didn't consider that. That's why I only took a quick glance and didn't investigate it yet :D 16:40 < shoghicp> I added extra info to the PR 16:45 <+sadimusi> does this thing handle SRV records at all? 16:46 < shoghicp> I think that step is done before that code 16:46 < shoghicp> and that's for the port 16:47 <+sadimusi> not only the port, the host can be completely different as well 16:47 < shoghicp> yep 16:47 < shoghicp> D: only TCP 16:47 <+sadimusi> but yeah I found it 16:47 < shoghicp> https://github.com/Dinnerbone/mcstatus/blob/master/mcstatus/server.py#L22-L31 16:47 <+sadimusi> I was just wondering if you're using something more clever than python's own dns module since it tends to behave differently than java in some cases 16:48 < shoghicp> dnspython, I think 16:54 < Dinnerbone> It's better than the one used in Minecraft! 16:55 < Dinnerbone> Which doesn't work on all systems and sometimes gets it wrong. :D 17:01 < Dinnerbone> I pulled it in, shoghicp, thank you <3 I'll deploy a new version later. 17:01 < shoghicp> :D 17:02 < shoghicp> ping me once it is deployed so I can test it :) 17:45 < Paprikachu> hey Dinnerbone, could you please make packet headers fixed length? :3 17:46 < dx> Paprikachu: why 17:47 < Paprikachu> it makes stuff much easier 17:47 < Paprikachu> and there isn't really a reason to use varints there anyways. 17:47 < dx> i'm sure the easiest thing for mojang is to not change it 17:48 < Paprikachu> well, not changing anything is always the easiest thing, obviously 17:48 < dx> also you'd be dealing with backwards compatibility issues with the status part of the protocol 17:48 < dx> s/you/they/ 17:48 < Paprikachu> could prob add a switch after handhshake. 17:48 < shoghicp> more code :D 17:48 < dx> and way uglier 17:49 < Paprikachu> welp 17:49 < dx> and if the best reason you have is that you're lazy... 17:49 < Paprikachu> not really 17:49 < Paprikachu> generating packets is a huge pita 17:49 < dx> 'generating'? 17:50 < Paprikachu> you know... putting the data together before sending it 17:50 < dx> if it's a huge pita then you should consider refactoring your code so that it's not 17:50 < Paprikachu> it fundamentally is 17:50 < dx> layers and stuff 17:50 < Paprikachu> yes, more inefficient layers :) 17:50 < Paprikachu> just think about it 17:51 < Paprikachu> if you want to keep the data in a single buffer, the following process has to happen 17:51 < Paprikachu> 1) leave enough space for the maximum possible header size 17:51 < Paprikachu> 2) encode the data at that location 17:51 < Paprikachu> 3) variably encode the type 17:51 < Paprikachu> 4) variably encode the length of that + data length 17:52 < Paprikachu> and that's pretty damn annoying, because you have to construct packets in reverse. 17:52 < Paprikachu> and inefficient too. 17:53 < dx> uhhh are you doing malloc()s manually in a way that it hurts you every time you do it? 17:54 < Paprikachu> and considering that the protocol uses json in some places, saving a single byte as opposed to having a 2 byte header length and a 1 or 2 byte type seems like a very questionable gain. 17:55 < Paprikachu> when you're trying to write a high performance server, cycles start to count. 17:55 < dx> considering that you'll have to encode json in some places, mallocs don't seem like a big issue 17:55 < Paprikachu> i'm not saying the protocol is a bottleneck, but i will say that there is a lot of cycles wasted for very little gain. 17:55 < dx> also this converstion is going nowhere 17:56 < Paprikachu> actually, json encoding doesn't have to use many allocations. 17:56 < Paprikachu> in fact, you can probably do with a single one, or none at all if you have a strategy for keeping buffers around (which i do) 17:56 < dx> omg all this microoptimization 17:57 < Paprikachu> i dont see any micro optimization 17:57 < Paprikachu> since im not performing any of those optimizations yet 17:57 < Paprikachu> im just saying it can be done. 17:57 < dx> "(which i do)" 17:57 < Paprikachu> i have such an optimization for receive buffers, yet 17:57 < Paprikachu> *yes 17:58 < Paprikachu> when you're aiming for 10k users, stuff like that counts. 17:59 < dx> so i assume you do profiling and benchmarking and have a decent test suite to prove all this? 17:59 < Paprikachu> i spend a fair amount of time making sure that my code is not designed in a way that is fundamentally inefficient. 17:59 < Paprikachu> other than that, i do what works and will optimize when i get there later. 18:00 < dx> http://blog.codinghorror.com/the-sad-tragedy-of-micro-optimization-theater/ 18:00 < dx> read that, highly relevant to the way you're thinking about problems 18:00 < Paprikachu> heck i dont have a working protocol implementation yet, what the hell 18:00 < Paprikachu> no, i'm not. you 18:00 < Paprikachu> you are misunderstanding. 18:01 < dx> you don't even have a protocol implementation and you're asking about microoptimizing malloc()s 18:01 < dx> the post is relevant 18:01 < Paprikachu> do you not see how packet parsing is singnificantly worse with varints 18:01 < Paprikachu> i *already* use a single buffer for packets, there is nothing else to do for now. 18:02 < dx> there is no proof that it 'significantly', it might be in theory, but the theory you have in your mind doesn't necessarily match the way the compiler/operating system/cpu will handle your code 18:02 < dx> that it's* 18:03 < dx> read the post. 18:03 < Paprikachu> it doesn't change my original concern, which is that generating packets is significantly harder with next to no gain. 18:03 < Paprikachu> the argument "use library X" is a lazy excuse. 18:04 < dx> what? how are libraries involved? 18:04 < Paprikachu> oh i figured you would say that 18:04 < dx> i didn't even think of that 18:04 < Paprikachu> doing X is hard? use lib Y! 18:05 < Paprikachu> someone somewhere down the road parses those varints 18:05 < dx> uhhh no, using a library won't fix the way you think about optimization 18:05 < Paprikachu> he's gonna cry. 18:06 < Paprikachu> well sorry to disappoint, apparently *thinking* about optimizations is really bad. 18:06 < dx> read the damn post! 18:06 < Paprikachu> how about no 18:06 < dx> why? 18:06 < Paprikachu> because it doesnt fucking apply? 18:06 < dx> did you read it to reach that conclusion? 18:06 < Paprikachu> i am NOT optimizing ANYTHING at ALL 18:07 < Paprikachu> how did you reach the conclusion i am doing that 18:07 < Paprikachu> just because im having some thoughts? 18:07 < dx> yes, like i said, this is about the way you're thinking about the problem 18:07 < dx> it's not about any particular optimization 18:07 < dx> it's not even against optimizing 18:08 < Paprikachu> what im thinking is: i will do the slow thing first, and if that is too slow, i will do what i thought of before 18:08 < Paprikachu> i dont see whats fundamentally wrong with that 18:08 < Paprikachu> you're suggesting im optimizing without evidence, which i'm clearly not 18:08 < dx> i'm referring to what you said after 18:09 < dx> 13:50 < Paprikachu> if you want to keep the data in a single buffer, the following process has to happen 18:09 < dx> that way of thinking about problems is what the post addresses 18:09 < Paprikachu> except it's not 18:09 < dx> it's not? 18:09 < Paprikachu> i can add 1+1 you know 18:10 < dx> what 18:10 < Paprikachu> some "optimizations" aren't "optimizations" because they're just so fucking obvious that you don't even need to measure it 18:10 < dx> uh 18:11 < dx> okay i was actually trying to help, but since you keep refusing to read that post, i see you don't actually see what i'm doing as help 18:11 < dx> so i give up 18:11 < dx> i guess i already said that this conversation is going nowhere fast. 18:11 < Paprikachu> if you're handling 200k packets per second, you don't want any superficial allocations and copying, it's really easy 18:14 < Paprikachu> oh and another thing, varints prevent packets from being sent in batches 18:17 < dx> the current implementation limits the size of varints to 5 bytes, hope that helps 18:17 < Paprikachu> i already knew that, and no it doesn't 18:17 < dx> ok 18:17 < Paprikachu> the size of a varint(T) is (sizeof(T) * 8 + 6) / 7 18:18 < Paprikachu> you really dont seem to understand that copying is the issue 18:19 < dx> i was only pointing out a fact 18:36 < Paprikachu> actually, you know what, i have an idea that could actually work 18:36 < Paprikachu> though it doesn't solve the complicated varint problem 18:37 < Paprikachu> it should be possible, given a packet, to calculate its wire length in advance. 19:26 <+Amaranth> Most packets are like that, sure 19:26 <+Amaranth> They have a fixed structure, the only thing that changes is the values in them. Some of them also change the number of values with pretty large swings in size 19:38 < MrARM> in the Block Action packet, is Block Type same as Block Id in other packets? 19:50 <+SpaceManiac> MrARM: No, in Block Action it's still the old type (no data) 19:50 < MrARM> so what it actually is? Only block id? 19:51 <+SpaceManiac> yes 19:51 < MrARM> k, thanks 19:52 < MrARM> hmm, why is block id even sent here? :o 19:52 <+SpaceManiac> it's used to determine which category of action is being played (note block, piston, chest) 19:53 < MrARM> well, client could just get it from map… maybe it’s to prevent some stuff, like if map went desync 22:30 < gurun> Paprikachu, the best optimization so far has turned out to be caching of already serialized packets, ready to distribute. 22:32 < Paprikachu> gurun: and what would you cache 22:32 < gurun> chuks 22:32 < gurun> s/chuks/chunks 22:32 < Paprikachu> well sure, if you use compression 22:33 < Paprikachu> i'm thinking of just not compressing anything 22:33 < shoghicp> D: 22:33 < shoghicp> compress at least chunks! 22:33 < shoghicp> or packets with a size higher than the MTU 22:33 < Paprikachu> compression uses cpu 22:33 < Paprikachu> a *lot* 22:33 < shoghicp> the default value is too low, takes less time to send a packet ncompressed 22:33 < Paprikachu> not sure if worth 22:33 < shoghicp> but having to send mor epackets = bad 22:33 < gurun> well 22:34 < gurun> when you get to really high numbers of connectivity, i run out of bandwidth way before i run out of memory and CPU. 22:34 < Paprikachu> if you're aiming as high as me (10k concurrent players), stuff liek that matters 22:34 < shoghicp> 64 is... too low. 1470 - 1500 would be a good value 22:34 < shoghicp> was the default 64 or 128? 22:34 < Paprikachu> gurun: that might be true, i'd have to do the math 22:35 < Paprikachu> but since compression is optional, it can wait 22:35 < gurun> at 80 players on the MCPE protocol, i was running at 2Gbit/s 22:35 < gurun> 20Giga that is 22:35 < gurun> fuck 22:35 < shoghicp> I can tell you that sending a 256x256 block area took a lot of time (and CPU time) without compression (23MB), compression helped a lot 22:35 < gurun> 20mbit :-P 22:35 < Paprikachu> 20 mbit isnt an issue 22:35 < shoghicp> on zlib, I found levels 6-7 to be the best taking into account CPU usage 22:35 < Paprikachu> good servers have 100 mbit and up 22:35 < gurun> that was just 80 players 22:36 < Paprikachu> my mc server is not supposed to run on home servers 22:36 < gurun> but if you are playing the PC league, i guess you have TCP .. so you will be better off. 22:36 < Paprikachu> it's for large servers 22:37 < Paprikachu> my ram limit is somewhere around 16-32 gb (may use more if available) and bandwidth 200mbit+ 22:38 < Paprikachu> it's a design choice to optimize for cpu usage 22:38 < Paprikachu> if i can do without compression, i will 22:41 <+SpaceManiac> shoghicp: the default is 256 22:41 < shoghicp> alright 22:42 < shoghicp> but as Minecraft sends packets directly, without bundling them in bigger packets 22:42 < shoghicp> having it compress only if bigger than MTU would be a good idea :) 22:43 < Paprikachu> MTU depends on who you 22:43 < Paprikachu> oops 22:43 < Paprikachu> MTU depends on who you're asking though 22:43 < shoghicp> yep 22:44 < Paprikachu> i'd just go with something like 1024 22:44 < shoghicp> I work with Minecraft: PE, there you need to guess the MTU 22:44 < shoghicp> the overhead of compressing is bigger than sending a packet :) 22:45 < Paprikachu> makes sense 22:49 < gurun> i think that comes down to where you want and can scle 22:50 < gurun> scale. 22:50 < gurun> cpu, memory or band 22:51 < Paprikachu> yeah well, i just don't think memory and bandwidth are an issue for big servers 22:52 < Paprikachu> from my own experience of hosting servers, going above 100 people is hard one a single instance 22:52 < Paprikachu> *on 22:54 < gurun> i thought you where talking about 10k 22:54 < shoghicp> he is 22:54 < Paprikachu> 10k is my goal for this server 22:54 < Paprikachu> i meant 100 players for a bukkit/spigot server 22:55 < gurun> ok, maybe the discussion should be around this .. how many players in line of sight do you imagine supporting? 22:55 < Paprikachu> no clue :D 22:55 < Paprikachu> that's probably just bandswith limited 22:55 < Paprikachu> bandwidth 22:56 < gurun> i don't think in neither MiNET or PM it would be a great issue suporting a LOT of players, as long as they don't "group up" too much. 22:56 < Paprikachu> not sure what either of those are 22:56 < gurun> it's just two different servers 22:57 < Paprikachu> what are they written in?