17:58 -!- Irssi: Join to #mcdevs was synced in 376 secs 21:25 < Altenius> I read about the encryption protocol, but what is ASN.1 format? 21:28 < shoghicp> it's a public key format 21:28 < Altenius> Is there any documentation on it? 21:29 < shoghicp> you can just place the ===BEGIN PUBLIC KEY== before and load it on most crypto libs 21:30 < shoghicp> ===* 21:30 < shoghicp> well, that header and footer 21:30 < Altenius> well 21:30 < Altenius> What does the packet look like? 21:30 < shoghicp> as base64 21:30 < shoghicp> hmm... let me get a dump 21:32 < shoghicp> oh, I've to go 22:53 < Mathuin> I wonder how hard it would be to make fence gates work like doors with regard to doubling up. Having a wider fence gate would make it a lot easier to push animals in/through, and would be nicer to look at to boot. --- Day changed mer. août 13 2014 00:30 < Drainedsoul> Althenius: Why would you need documentation, OpenSSL (at least) can read it in just the way it is 13:24 < cindy_k> A feature? working as intended? really? 800 tabs? and no way to close them but to restart the client. I've added a few more since yesterday: http://gyazo.com/642d035194c3b4e6640aeb03f8f6f9e5 13:37 < eddyb> cindy_k: woot? 13:52 < cindy_k> https://bugs.mojang.com/plugins/servlet/mobile#issue/MCL-2939 13:59 < prplz> cindy_k i also dislike this feature 14:04 < cindy_k> its not a feature 14:04 < cindy_k> having tabs is a feature 14:04 < cindy_k> collecting 200 with no way to close them is a bug 14:05 < cindy_k> a low priority bug, sure, but I refuse to believe its intended 14:07 < eddyb> *sigh* 14:08 < jast> of course it's a feature 14:08 < eddyb> cindy_k: "can't close tabs without restarting launcher" sounds more like the minor annoyance it is :) 14:08 < jast> its purpose is that people at mojang don't have to change any code 14:08 < jast> which is very convenient for them. hence, it's a feature. 14:08 < jast> ;) 14:08 < eddyb> but yes, open a suggestion about adding close buttons on those tabs, on reddit 14:08 < cindy_k> which makes it a bug, I expected it to be labeled minor and shuffled to the bottom of the pile 14:09 < cindy_k> so jira is just to look pretty, bugs go on reddit. gotcha 14:09 < jast> some people have very narrow definitions of what 'bug' means 14:10 < jast> for example, mine is: if it does what the code says it should do, it's not a bug ;P 14:10 < cindy_k> ahh so you have no bugs then 14:10 < jast> exactly 14:16 < eddyb> redstonehelper: so I had this idea: blocks that have 6 full cube faces, each with an opaque texture and no non-full-cube face, can be considered opaque (in the cullface of a neighboring block sense) 14:17 < eddyb> redstonehelper: (and all other blocks would be considered transparent, translucent, etc.) - I'm curious if there are any counterexamples? 14:18 < eddyb> I got bitten once already, thought biome-dependent grass/leaf colors didn't change with altitude, the code disagreed :( 14:18 < eddyb> so I don't want this idea to flip later 14:26 < Drainedsoul> ebbyb: How would a block have a cube face? Wouldn't it have a square face? 14:26 < jast> perhaps it's a hyperblock 14:26 < eddyb> Drainedsoul: the face of a full cube 14:26 < eddyb> not a face which is a cube 14:26 < eddyb> (did I use English wrong?) 14:27 < Drainedsoul> then you would just say that the block is a cube 14:27 < Drainedsoul> jast: Goddamn tesseracts 14:29 < eddyb> Drainedsoul: no, because that is imprecise 14:29 < eddyb> minecraft models have faces 14:29 < Drainedsoul> so do cubes 14:29 < eddyb> which are translated, scaled and optionally rotated 14:30 < eddyb> minecraft models are not cubes 14:30 < eddyb> I mean, minecraft block models 14:30 < Drainedsoul> what's your point? 14:30 < Drainedsoul> [05:24] then you would just say that the block is a cube 14:30 < eddyb> oh, I see what you mean. I have counterexamples 14:30 < eddyb> a grass block is not a cube 14:31 < Drainedsoul> how do you figure that 14:31 < eddyb> yet it is an opaque block according to my definition 14:31 < eddyb> Drainedsoul: read the model files? 14:31 < Drainedsoul> is a grass block 3 dimensional? 14:31 < eddyb> :| 14:31 < eddyb> it has 10 faces, not 6 14:32 < eddyb> at least on fancy graphics 14:32 < Vijfhoek> So, a friend and I are working on a Minecraft Classic client, for shiz and giggles. Now, I wonder, does the authentication still work? 14:32 < Vijfhoek> With the JSESSIONID and all 14:32 < Drainedsoul> it still doesn't have "6 full cube faces" 14:32 < Drainedsoul> its faces are not cubes 14:32 < Drainedsoul> its faces are squares 14:32 < eddyb> Drainedsoul: full-cube faces 14:32 < eddyb> not faces which are cubes 14:32 < Drainedsoul> "full-cube faces" would imply more heavily that the faces are cubes 14:32 < eddyb> seriously, how do you say "faces of a cube" in English without using "of"? 14:33 < Drainedsoul> ...you don't? 14:33 < eddyb> my life is a lie 14:33 < Drainedsoul> you say "square"? 14:33 < Drainedsoul> the face of a cube is by defn a square 14:33 < eddyb> except a square doesn't have to be the face of a cube 14:33 < Drainedsoul> and? 14:33 < eddyb> *sigh* 14:34 < eddyb> I'm talking about a set of 6 quads 14:34 < Drainedsoul> "quad" is a superset of "square" 14:34 < eddyb> which are too hard to define using coordinates 14:34 < eddyb> basically... the 6 quads of the stone block is what I call "full-cube faces" 14:34 < Drainedsoul> if you have 6 squares you by defn have 6 quads 14:34 < eddyb> a set of 6 *specific* quads 14:35 < eddyb> in the local coordinate space of a block 14:35 < Drainedsoul> so you want 6 squares, which are the faces of a cube 14:35 < Drainedsoul> you could equally say "quads", since no other type of quad but a square can be the face of a cube 14:35 < eddyb> of a cube occupying the full space of a block 14:36 < eddyb> I just don't want to get over the IRC message limit when describing what kind of faces I'm looking for 14:40 < eddyb> anyways: opaque block (in my view): has at least one of each 6 faces of a 1x1x1 axis-aligned integer-coordinate cube using an opaque texture and has no faces that cannot be found in said cube 14:41 < eddyb> stone has the 6 opaque full faces, grass has 6 opaque full + 4 transparent ones (side overlay), something like a fence has other kinds of faces and none of the full ones 14:43 < eddyb> hmm, I don't think there's a block which has those 6 faces and you can still add a smaller face to make it transparent 17:47 < Not-9d73> [mc-autodocs] thinkofdeath pushed 1 commit to master [+0/-0/±51] http://git.io/rwAxeQ 17:47 < Not-9d73> [mc-autodocs] thinkofdeath b8f71b2 - 14w33a 18:18 < Thinkofdeath> The "targeted block" in the tab complete is kinda cool 21:53 < eddyb> Amaranthus: is that you in #rust-gamedev? 21:53 <+Amaranth> Yeah 22:12 < Mathuin> Has anyone created a color table for biomes? I'm looking for RGB triples to represent each of the biomes currently in use. 22:21 < TkTech> Mathuin: https://github.com/skiphs/AMIDST/blob/master/biome/default.json 22:21 < TkTech> WARNING: Viral, under the GPL. 22:23 < Mathuin> That's exactly the kind of thing for which I was looking, but alas not GPL-licensed so I'll have to go elsewhere. Nice to see that someone else has done the thing, though! 22:36 < TkTech> Mathuin: https://github.com/mblaine/BiomePainter/blob/master/BiomePainter/Biomes.default.txt 22:36 < TkTech> Mathuin: MIT 22:45 < Mathuin> Much better. 22:45 < Mathuin> what search did you run to find that one? I had spent a few minutes searching github and came up dry except the one you found. 22:52 < TkTech> "biomes", search by stars, read a couple descriptions :) Just looked for a minute. 22:52 < TkTech> Any kind of visual biome tool will require a color map somewhere --- Day changed jeu. août 14 2014 05:49 < portalBlock> Hi I am working on a project to respond to client server list pings. here is the code: http://github.com/portalBlock/MaintMotd I am not sure what is not working as I have not done much with protocol before (thought this would be a good intro). If anyone can help me then thanks :D 06:35 < portalBlock> I just saw I didnt flush my streams so I did that and also added the PingPacket, It still doesnt work but it seems to handle the Handshake a bit better. 06:35 < portalBlock> (github updated) 11:56 < Vijfhoek> Can http://wiki.vg/Authentication also be used for Classic 12:16 < Lucariatias> Vijfhoek: Nope, see http://wiki.vg/Classic_Protocol 12:25 < Vijfhoek> That page only describes the heartbeats in detail 12:26 < Lucariatias> It has a little bit on user authentication 12:26 < Vijfhoek> It doesn't say where to get the key though 12:27 < Vijfhoek> Somewhere else I read that I should use /login.jsp, but that one is 304 moved permanently 12:28 < Vijfhoek> And the page it redirects to, /login, doesn't have the mentioned JSESSIONID 12:29 < cindy_k> Which minecraft reddit should I put my bug on? 12:30 < cindy_k> just /r/minecraft ? 15:51 < TkTech> cindy_k: None? That's what JIRA is for. 16:03 < Drainedsoul> TkTech: Why would you go and report a bug when you can get internet points for it? 16:06 < SinZ> Drainedsoul: thats when you post the JIRA link to reddit 16:06 < TkTech> ^ Winning 16:07 < SinZ> link posts gain karma, self-posts dont 16:16 < dx> then the question should be: which minecraft reddit is more likely to upvote a jira link? 16:17 < SinZ> dx: why not both 16:17 < dx> "both"? did you mean "all of them"? 16:17 < SinZ> that works too 16:18 < redstonehelper> posting links to the bug tracker on r/minecraft will be removed 16:18 < redstonehelper> we treat them as suggestions, which have to be self.posts 16:18 < dx> a wild redstonehelper 16:18 < redstonehelper> hi 16:18 < dx> redstonehelper: but muh karma! 16:20 < dx> redstonehelper: well, you're the reddit expert here, what's the right place to get internet points from minecraft bugs? this is a serious question, cindy_k really needs those internet points 16:20 < redstonehelper> /r/FreeKarma 16:21 < dx> excellent. thanks 16:32 < cindy_k> no I rather not use reddit 16:32 < cindy_k> I was told twice yesterday to use it 16:39 < dx> ok, so, scrolled up, and a moderator of the bug tracker told you that it's not a bug, and linked to /r/minecraftsuggestions 16:40 < dx> er, i mean, scrolled up in this channel and found a link to https://bugs.mojang.com/browse/MCL-2939 16:46 < cindy_k> and around we go :) 16:59 < TkTech> Dinnerbone: Sorry for the poke, but I would definitely consider that a bug, no? MCL-2939. 16:59 < TkTech> Not sure which one of you works on the launcher. 17:00 < TkTech> cindy_k: Give it a bit and see if Dinner responds. 17:01 < SinZ> I hope dinnerbro does respond 17:02 < dx> if it's not a bug it's a "feature request to add close buttons to tabs", which is eh 17:02 < cindy_k> its a bug to have continual tabs created with no way of clean up 17:03 < cindy_k> I doubt its an intended feature 17:04 < Drainedsoul> They thought since they were programming in Java the GC would take care of the tabs for them 17:04 < dx> hahah 17:04 < dx> 10/10 17:04 < cindy_k> heh 17:04 < dx> GUI tab leak 17:05 < dx> better request a CVE number for this critical issue 17:05 < dx> could lead to DoS 17:08 < Drainedsoul> "GDB can not debug the process, because it crashes on large threads count only (800 threads)" oh StackOverflow questions... 17:11 < dx> wow, google managed to find that question, which was posted three minutes ago 17:15 < Drainedsoul> it's amazing isn't it 17:32 < Mathuin> /win10/win 10 17:32 < Mathuin> Bleah. Good morning. 19:37 <+Amaranth> Grum: Thanks for adding NPCs to the game, you can go ahead and enforce the skin blob again now :P 19:38 <+Amaranth> Armor stands are NPCs, they just don't know it yet 19:47 < Thinkofdeath> Amaranth: haha :P 19:48 < Thinkofdeath> Hopefully they aren't animated by resending the nbt like I think they are 19:48 <+Amaranth> Thinkofdeath: They're movable entities with no default physics or AI, they're fully posable, and they can wear armor and player heads 19:48 <+Amaranth> But yeah, you probably resend the whole thing each time 19:48 < portalBlock> Humm, that sounds like it could be fun. 19:48 < Thinkofdeath> .-. 19:48 <+Amaranth> Oh they also have arms and can hold things 19:48 <+Amaranth> And can have names 19:48 < Thinkofdeath> yeah i've seen, haven't played with them yet 19:49 <+Amaranth> And you can make children NPCs because they support the baby mob mode too 19:49 < Thinkofdeath> If the animation gets smoother they will be a really good replacement, better than player NPCs 19:49 < Thinkofdeath> currently you'll have to spam update their position 19:50 <+Amaranth> Right, normal player entities the client assumes the leg swings based on the fact that they're moving, with this you'd have to send the leg swings 19:51 <+Amaranth> But that means you get to control the swing too 19:51 <+Amaranth> I'm actually not sure if you can tell its an armor stand when it's fully geared up or not, that could ruin the effect 19:51 <+Amaranth> I suspect you can see the stand and pole sticking up out of it 19:52 < Thinkofdeath> true, a "target position" a "time" field might be useful for animating 19:52 < portalBlock> Is this a 1.8 thing? 19:52 < Thinkofdeath> (per a arm/leg) 19:52 < Thinkofdeath> portalBlock: yep 19:52 < portalBlock> :D 19:52 <+Amaranth> Oh, but you can make it invisible and then you'll only see the gear, that's kind of better 19:52 < portalBlock> True 19:53 <+Amaranth> I'm assuming the gear will always include a player head for the helmet slot, of course 19:53 <+Amaranth> Which means you can just change your skin and make a head out of it to get every head type you'd ever want 19:53 < eddyb> called `Result::unwrap()` on an `Err` value: Unsupported color type RGB(8) in '/home/eddy/Projects/hematite/assets/minecraft/textures/blocks/ice_packed.png' 19:54 < eddyb> Thinkofdeath: did they really take the ice texture and remove the alpha channel? 19:54 < eddyb> now I have to write RGB8 => RGBA8 conversion code just for that ice_packed file 19:58 < portalBlock> http://i.imgur.com/u2lST4W.png Cool :D 20:03 < redstonehelper> Amaranth: even if you hide the stand and the sticks the armor stand is made of, it'll still be missing proper limbs 20:04 <+Amaranth> Yeah but it might look decent enough to work 20:04 <+Amaranth> With armor, a player head, and something in its hand the only thing missing would be the part of the arms not covered by armor 20:05 < Thinkofdeath> You might be able to fix that with a resource pack 20:05 < Thinkofdeath> which you can force now 20:05 < Thinkofdeath> (Well "force" == disconnect if they say no) 20:26 < eddyb> Thinkofdeath: http://i.imgur.com/p87XX3B.png 20:26 < Thinkofdeath> nice 20:27 < Thinkofdeath> Vanilla's http://i.imgur.com/LBZJeBw.png 20:32 < eddyb> I know it, I've used it for a while with hardcoded offsets :P 20:32 < Thinkofdeath> :P 20:56 < Grum> <+Amaranth> Grum: Thanks for adding NPCs to the game, you can go ahead and enforce the skin blob again now :P <-- close but not yet ;) 20:58 < eddyb> Grum: hey :). I heard that per-world blockstate mappings are not going to make it to 1.8, is that true? 20:58 < eddyb> right now I have this Java "script" that dumps a whole bunch of data I need and it feels like a massive hack :( 20:59 < redstonehelper> if they're not in yet I really doubt they'll make it in for 1.8 21:00 < eddyb> redstonehelper: yeah, I figured, just keeping hole alive, I guess :( 21:00 < Paprikachu> per world blockstate mappings? 21:00 < redstonehelper> like, in one world stone could be id 1, in another it could be 104 21:00 < redstonehelper> I think 21:00 < Paprikachu> ah 21:01 < eddyb> redstonehelper: yupp. also all the states that are not saved right now 21:02 < redstonehelper> why aren't they saved, anyway? 21:02 < redstonehelper> is it too many for a fixed mapping? 21:02 < eddyb> they don't really fit on top of the old system 21:02 < eddyb> not sure if they don't fit in 16 bits, they might not :( 21:03 < redstonehelper> 16 bits are a lot of block states 22:55 <+Amaranth> redstonehelper: They currently haven't actually changed the world storage, they just combine the id and data when loading then map it to a block state 22:55 <+Amaranth> So if it didn't have a specific id/data before it still doesn't 22:55 <+Amaranth> Mainly fluids, fences, glass panes, and redstone wire --- Day changed ven. août 15 2014 00:02 <+Amaranth> Thinkofdeath, Grum: See, NPCs! https://www.youtube.com/watch?v=yH0pxKidJ7s 00:02 < Thinkofdeath> lol just saw that 00:02 < Thinkofdeath> I can imagine the lag on a normal server 00:12 < Mathuin> According to the wiki, "extreme hills" has some mountains reaching y=124. What's the maximum altitude the vanilla generator will make? 00:13 < Mathuin> Is y=124 the max? 00:13 <+Amaranth> Thinkofdeath: We don't even need a mod to do it anymore :P https://www.youtube.com/watch?v=hi8hXvy3HUA 00:14 < Mathuin> Or is y=124 the minimum? 00:14 < Thinkofdeath> Amaranth: command blocks are the new plugin api! 00:16 < redstonehelper> this is good for realms 00:16 <+Amaranth> haha, literally 19:12 < Not-9d73> [mc-autodocs] thinkofdeath pushed 1 commit to master [+0/-0/±1] http://git.io/FIt_BQ 19:12 < Not-9d73> [mc-autodocs] thinkofdeath 77afd4e - 14w33b --- Log closed sam. août 16 01:07:28 2014 --- Log opened sam. août 16 01:08:37 2014 01:08 -!- Irssi: #mcdevs: Total of 154 nicks [1 ops, 0 halfops, 10 voices, 143 normal] 01:14 -!- Irssi: Join to #mcdevs was synced in 355 secs --- Log closed sam. août 16 01:15:49 2014 --- Log opened sam. août 16 01:15:58 2014 01:15 -!- Irssi: #mcdevs: Total of 155 nicks [1 ops, 0 halfops, 10 voices, 144 normal] 01:18 -!- Irssi: Join to #mcdevs was synced in 157 secs --- Log closed sam. août 16 01:20:14 2014 --- Log opened sam. août 16 01:20:28 2014 01:20 -!- Irssi: #mcdevs: Total of 155 nicks [1 ops, 0 halfops, 10 voices, 144 normal] 01:22 -!- Irssi: Join to #mcdevs was synced in 157 secs 21:42 < eddyb> Thinkofdeath: teaser http://i.imgur.com/dm1hYHd.png 21:48 < Thinkofdeath> eddyb: nice, I see you have lighting working already 21:49 < Thinkofdeath> Smooth or simple? (can't tell from the small picture) 21:50 < eddyb> it's some kind of smooth (I guess I have better examples, but I'll wait until I get back home, the internet here is terrible and I have less than 50MB left) 21:52 < eddyb> Thinkofdeath: for each vertex, I average the sorrounding blocks 21:52 < eddyb> the sorrounding transparent blocks (air most of the time) 21:52 < Thinkofdeath> yeah I do the same 21:52 < Thinkofdeath> Caves look bad but outside looks nice with that method 21:53 < eddyb> Thinkofdeath: not what vanilla does, no? 21:54 < Thinkofdeath> I'm not sure, but their caves look better than mine 21:54 < Thinkofdeath> I tried looking at the code once... never again 21:54 < eddyb> haha 21:54 < eddyb> Thinkofdeath: do you have AO? 21:54 < Thinkofdeath> nope 21:54 < eddyb> well, that might be it ;) 21:55 < eddyb> ugh, time to implement the x/y/z rotations (and uvlock) for blockstates/*.json 22:31 < eddyb> Thinkofdeath: I really wonder how uvlock is implemented 22:32 * Thinkofdeath looks up what uvlock does 22:32 < eddyb> my best guess would be that it takes the entire texture tile a face is using, and rotate the UVs in the opposite direction or something 22:33 < eddyb> Thinkofdeath: it makes things like rotated wood stairs keep the "grain" that goes north-south or west-east 22:33 < redstonehelper> eddyb have a few links regarding that, want them? 22:33 < redstonehelper> I have* 22:33 < eddyb> redstonehelper: oh, please share :D 22:34 < redstonehelper> a comment by mog about a recent change here https://bugs.mojang.com/browse/MC-65994 22:35 < redstonehelper> and I think he talks about uvlock in here too http://www.reddit.com/r/Minecraft/comments/22vu5w/upcoming_changes_to_the_block_model_system/ 22:36 < redstonehelper> that's all the specific ones I can remember 22:36 < redstonehelper> but I have probably a couple dozen more about the model format spread across my changelogs, if you can be bothered to look through there 22:37 < Thinkofdeath> sounds like the realignTextures method I use for stairs, kinda 22:37 < Thinkofdeath> http://git.io/P6zDLg 22:39 < eddyb> redstonehelper: the "wrap by 16" thing sounds close to what I had in mind - i.e. split each UV coordinate into tile coord and sub-tile coords 22:39 < eddyb> and rotate the sub-tile coords 22:39 < redstonehelper> I am absolutely incompetent when it comes to modelling 22:39 < redstonehelper> I know roughly what can be done, but not how 22:39 < redstonehelper> do you happen to know of any good documentation on it? 22:40 < Thinkofdeath> mcwiki has some 22:40 < Thinkofdeath> http://minecraft.gamepedia.com/Block_models 22:41 < redstonehelper> merci 22:42 < eddyb> btw, there are no full-model z rotations, and x rotations are applied before y rotations (at least from taking a quick look at the blockstate files) - is that assumption correct? 22:43 < Thinkofdeath> I'm trying to wake up someone i know has played with the models a lot 22:43 < Thinkofdeath> http://puu.sh/aVf1e/2df377dabe.png 22:44 < redstonehelper> that vanilla? 22:44 < redstonehelper> I thought models can either inherit an existing model and rotate it or add new stuff, but not both 22:45 < redstonehelper> but this clearly has loads of rotation 22:45 < Thinkofdeath> redstonehelper: yeah thats vanilla 22:45 < redstonehelper> neat 22:45 < eddyb> redstonehelper: each element has its own rotation *and* individual faces can be rotated 22:46 < redstonehelper> ah 22:46 < eddyb> so you basically have arbitrary quads :P 22:47 < eddyb> what are the small things there o_O? 22:47 < Thinkofdeath> oh apparently that model has 256 variants o.O 22:47 < eddyb> wat 22:48 < eddyb> rotation + bottles? 22:48 < redstonehelper> no rotation in vanilla I think 22:48 < eddyb> 4 * 8 is only 32 22:48 < Thinkofdeath> and the items around them I guess 22:48 < redstonehelper> but those must be random then 22:48 < Thinkofdeath> yeah 22:48 < redstonehelper> the block model doesn't know what item is in the top slot 22:49 < eddyb> Thinkofdeath: now I want those to test my implementation :D 22:50 < Thinkofdeath> I'm still trying to get him but he seems to be afk :( 22:50 < redstonehelper> eddyb: this one has loads of models http://www.planetminecraft.com/texture_pack/default-3d-2985741/ 22:50 < eddyb> redstonehelper: thanks, I'll check it out when I get home --- Day changed dim. août 17 2014 02:12 < Thinkofdeath> redstonehelper: If you feel like trying out his pack https://github.com/drXor/1.8-Models :) 02:13 < redstonehelper> I will in a few days maybe 02:13 < redstonehelper> thanks 11:54 < Aragas> This new 3D is very impressive. Gorgeous work 12:18 < Flemmard> what new 3d ? 18:20 < LambdaSix> DRY makes you coupled, decoupling leads to repetition, oh noes. --- Day changed lun. août 18 2014 01:17 < rbreslow> Anyone want to help me get Spock Bot running? Here's my stack trace when I try to run the demo.py file: http://puu.sh/aWSNC.png 01:20 < Not-9d73> [Glowstone] SpaceManiac pushed 1 commit [+0/-0/±1] http://git.io/17GREg 01:20 < Not-9d73> [Glowstone] SpaceManiac fce340c - Build against newer flow-networking snapshots. 03:40 < ackpacket> so.... since the encryption is CFB8, if the server needs to send me 77 bytes what can I expect? Will it be padded? with what? 03:49 <+SpaceManiac> No padding, the encryption takes place on a byte for byte basis 03:51 < ackpacket> That can't be right, since the wiki says the IV is uses as the first input. The IV is 16 bytes 03:52 < ackpacket> the input to AES is 2*plaintext_block_size, isn't it? 03:52 < ackpacket> er... to AES CFB 03:54 < ackpacket> this is a pita in python -.- 03:54 < ackpacket> it might be worth it to digest the other repos out there 04:01 < ackpacket> Since the IV is 16 bytes, wouldn't this image imply that the block size for AES is 16 bytes? With a ciphertext output of half of that, 8 bytes. http://snag.gy/JRu8q.jpg 04:17 <+SpaceManiac> Yeah, I don't fully understand it myself despite having managed to implement it... 04:18 <+SpaceManiac> The block size is still 16 bytes but there's some shenanigans that lets it work in 1-byte units 04:28 < ackpacket> what have you implemented it in? 04:29 < ackpacket> I wish I could get a dump of packets, keys and their ciphertext. Would be a nice sanity check. 04:30 <+SpaceManiac> Java, personally. I think I've seen a Python implementation though... 04:30 < ackpacket> Yeah, i'm coming through it now. There are a few, but only one that really makes use of the new encryption 04:31 < ackpacket> It seems like *everyone's* implementation is in java, why is that? Are these tools ready to roll? Or is it because you can reuse some of the client code 04:31 < ackpacket> the vanilla client code, that is 04:33 < ackpacket> SpaceManiac: if it means anything to you, I discovered where the confusion is 04:33 <+SpaceManiac> I think it's just a side effect of Java being a popular language for these kinds of things 04:34 < ackpacket> it looks like the block size is indeed 16 bytes as expected 04:34 < ackpacket> it's the SEGMENT SIZE that is 8 04:34 < ackpacket> which allows it to work on a byte-by-byte basis 04:35 < ackpacket> what isn't shown in that diagram I showed you, is that only a portion of the previous output is used as the next input 05:46 < Drainedsoul> ackpacket: I've implemented it in C++ 05:46 < ackpacket> ew. Was that fun? 05:46 < ackpacket> How did you handle the sockets, nonblocking polling or threaded? 05:46 < Drainedsoul> ? what do you mean ? 05:47 < ackpacket> wait... what did you implement? 05:47 < Drainedsoul> just because it's nonblocking, doesn't mean it's polling, or non-threading 05:47 < Drainedsoul> my network stack was built ontop of IOCP on Windows 05:47 < Drainedsoul> epoll on Linux 05:47 < Drainedsoul> using std::hardware_concurrency() worker threads 05:47 < ackpacket> Got it. 05:48 < Drainedsoul> anyway, it wasn't difficult. There's out of the box support for AES128CFB8 in OpenSSL 05:48 < ackpacket> I think i've found some solutions in python. AES allows setting of a segment size 05:48 < Drainedsoul> so I just invoked the appropriate OpenSSL APIs 05:49 < ackpacket> so what were you building anyway? A client to... 05:49 < Drainedsoul> server 05:49 < Drainedsoul> I started a complete ground up rewrite of it through because I was dissatisfied with some core architectural decisions. 06:44 < ackpacket> Drainedsoul: that sounds like a hell of a task 06:50 < Drainedsoul> ackpacket: It's not so bad 06:51 < ackpacket> Drainedsoul: how far have you come in how long? 06:52 < Drainedsoul> in the rewrite? 06:52 < ackpacket> yup 06:52 < ackpacket> Drainedsoul: I still remember your name was on wiki.vg in one of the TCP dumps. That is, before encryption was added. 06:53 < Drainedsoul> ackpacket: First commit to the git repo was May 7, 2014. I'm not really developing it in the weird ad hoc way that most people seem to develop servers though. 06:54 < Drainedsoul> so I have NBT utilities, JSON utilities, Mojang API utilities, all the utilities needed for encryption/hashing/etc. 06:54 < Drainedsoul> protocol parsing 06:54 < Drainedsoul> database abstractions 06:54 < Drainedsoul> a lot of OS wrappers so it can be cross-platform 06:54 < Drainedsoul> a module loader 06:55 < Drainedsoul> String formatting utilities 06:55 < Drainedsoul> threading utilities. Like a resource pool, thread pool, cross-platform fiber implementation, threaded queue (i.e. message queue) 06:56 < Drainedsoul> A CLI library for Windows, have yet to implement the back-end of that on top of ncurses 06:56 < Drainedsoul> http://i.imgur.com/koL3SG4.png 06:57 < Drainedsoul> I wrote all the code to layout text/wrap lines/etc. like that on top of the Unicode Line Breaking Algorithm 06:58 < ackpacket> Where do you hope to go with it all? You want a running server that is under your control? 06:58 < Drainedsoul> but there's no "server" per se, it's just a library of Minecraft- and server-related utilities, which is what I want. The protocol parsing library, for example, is fully capable of parsing the client side of it 06:59 < ackpacket> ah, got it. 06:59 < Drainedsoul> https://github.com/RobertLeahy/MCPP this is where I got to before the rewrite, you can see there was terrain generation in the screenshots 07:00 < ackpacket> That mountain in the first shot honestly looks fantastic 07:01 < Drainedsoul> http://imgur.com/a/4vbOJ#0 07:01 < Drainedsoul> I actually never added screenshots to the readme as I progressed further with terrain gen 07:13 < ackpacket> I like what you did with the beaches. Much more realistic 07:14 < Drainedsoul> yeah I spent a lot of time on my terrain gen, it was fun 07:15 < ackpacket> Would be great if you could improve trees 07:15 < ackpacket> For instance when I camp there's a river we go down that is completely covered overhead by trees reaching out and over 07:15 < ackpacket> Seems to be a common scene 07:15 < Drainedsoul> yeah 07:16 < Drainedsoul> well my idea isn't so much to implement everything myself, but to make a system that's extensible, via modules. 07:16 < Drainedsoul> The way I'm designing it right now, p. much everything is a module 07:16 < Drainedsoul> http://i.imgur.com/hvniUsL.png 12:47 * md_5 pokes Dinnerbone about custom payload during login. Forge says they would appreciate it too 12:53 < dx> pinging on monday instead of sunday sounds like a better plan, yes 12:57 < Thinkofdeath> whilst we are pinging: 12:59 < Thinkofdeath> Dinnerbone: In what case would the client try and cast the inflater decoder to the deflator encoder :P 12:59 < Thinkofdeath> http://i.imgur.com/StvjaRK.png 13:19 < SinZ> lol 14:06 < Thinkofdeath> Dinnerbone: Seems to happen when using play's Set Compression packet 14:15 < Thinkofdeath> Posted an issue for it 14:15 < Thinkofdeath> https://bugs.mojang.com/browse/MC-67961 14:16 * Thinkofdeath waits for it to be closed as not vanilla 14:18 < redstonehelper> Thinkofdeath: typo, "causes the client the client to disconnect" 14:18 < Thinkofdeath> fixed thanks :) 14:18 < Drainedsoul> Thinkofdeath: Wait, set compression isn't used in vanilla? Or just not the play version? 14:19 < Thinkofdeath> just not the play version 14:19 < Drainedsoul> I don't understand how the play version is useful 14:19 < Thinkofdeath> its useful for proxies like bungee 14:19 < Drainedsoul> given that there's -- as far as I know -- no acknowledgement, how can you prevent race conditions? 14:19 < Thinkofdeath> since each server may have a different threshold 14:20 < Drainedsoul> adjusting the compression on the fly could make in flight, valid compressed/decompressed packets suddenly erroneous when received 14:20 < Thinkofdeath> hmm 14:21 < Thinkofdeath> good point 14:22 < Drainedsoul> I guess you could hack your way around it. Send SetCompression and then KeepAlive, and when you get the KeepAlive with the same ID back, that's your acknowledgement 14:22 < Thinkofdeath> :/ i'll just disable that part for now 14:23 < Thinkofdeath> breaks one optimization but its better than hacking around it for now 14:23 < Drainedsoul> what optimization is that? 14:23 < Thinkofdeath> Skipping compressed packets which we don't care about e.g. chunk packets 14:24 < Drainedsoul> I don't follow 14:24 < Thinkofdeath> Currently we decompress and recompress every packet the proxy gets, including chunks 14:24 < Thinkofdeath> the proxy doesn't need to read the chunks only the client so we could skip the decompression par 14:25 < Thinkofdeath> *part 14:25 < Drainedsoul> what's preventing that? 14:25 < Drainedsoul> and how would this have enabled it? 14:25 < Thinkofdeath> if the client and server have different thresholds (e.g. switching to a different server with different settings) then a packet we skip might not be within the theshold anymore 14:26 < Drainedsoul> ah okay, that makes sense 14:26 < Thinkofdeath> and the client does check that the packet should have been compressed and disconnects if its wrong 15:13 < Thinkofdeath> https://bugs.mojang.com/browse/MC-67961 Called it :/ 15:13 < Thinkofdeath> oh well 15:25 * cindy_k gives Thinkofdeath a cookie 15:26 < cindy_k> welcome to the bugtracker is not for bugs club. 15:26 * Thinkofdeath sits in a corner with the cookie, giving evil looks to Dinnerbone 15:31 < l4mRh4X0r> The fun part is, the mod closing it is referring to "the bugtracker rules", but I can't find any. 16:25 < Not-9d73> [mc-autodocs] thinkofdeath pushed 1 commit to master [+0/-0/±53] http://git.io/559iiw 16:25 < Not-9d73> [mc-autodocs] thinkofdeath cfba34b - 14w34a 16:30 < TkTech> ackpacket / Drainedsoul I believe sadimusi has a pure-python solution in mc4p 16:31 < TkTech> https://github.com/sadimusi/mc4p/blob/master/mc4p/encryption.py 16:31 < TkTech> Ah, uses pycrypto/OpenSSL 17:36 < Not-9d73> [mc-autodocs] thinkofdeath pushed 1 commit to master [+0/-2/±0] http://git.io/8UkACQ 17:36 < Not-9d73> [mc-autodocs] thinkofdeath 9aabb93 - Drop Blocks/Items.java as they make the diff too big 18:23 < bgale> I was trying in vain last night to use M2Crypto's AES 18:23 < bgale> PyCrypto's implementation seems to be slow 18:23 < bgale> pycryptopp doesn't support CFB 18:24 < bgale> next stop is cryptography.io 18:31 < MonsieurApple> Thinkofdeath: http://i.oc.tc/image/2i152z152O2L https://bugs.mojang.com/browse/MC-67961 18:41 < Thinkofdeath> MonsieurApple: \o/ 18:41 < MonsieurApple> yeah haha 19:07 < TkTech> The JIRA mod deleted his own comment 19:11 < Thinkofdeath> :/ 19:18 < dx> Thinkofdeath: so.. what did it say? 19:19 < Thinkofdeath> dx: "Invalid - this cannot happen in vanilla and modded versions are not supported" something like that 19:19 < dx> ah. meh. 19:19 < dx> the usual 19:20 < dx> reminder that Amaranth is a moderator, you can always harass him if the other moderators are being dumb 19:20 < Thinkofdeath> ha 19:25 <+Amaranth> MonsieurApple: So you're wanting it to kick you properly instead of accidentally with a bad cast? 19:25 <+Amaranth> Because I don't see how changing the compression settings on the fly is going to work, like Thinkofdeath said 19:25 <+Amaranth> Oh I guess he was quoting Drainedsoul 19:26 < Thinkofdeath> yeah i never noticed that was an issue until he pointed it out 19:26 < Thinkofdeath> I never got past the error to find out 19:26 < dx> "Threshold is the max size of a packet before its compressed" huh 19:27 < Thinkofdeath> dx: e.g. threshold of 256 means packets less than 256 bytes in size are uncompressed 19:27 < Thinkofdeath> the rest are compressed 19:28 < dx> are you really supposed to determine if it's compressed or not based on the size? 19:28 <+Amaranth> Wait, so what if it starts higher than 256 but compression brings it under that size? 19:28 <+Amaranth> Or do they have two length headers now? 19:28 < Thinkofdeath> two length headers 19:29 < dx> oh there you go. 19:29 < dx> "If Data Length is set to zero, then the packet is uncompressed; otherwise it is the size of the uncompressed packet" 19:29 < Thinkofdeath> MonsieurApple: http://i.imgur.com/SJyEi84.png 2000 players 19:29 <+Amaranth> This feels like it's a giant hack so they can let netty deal with how to safely do multithreaded compression of chunk packets 19:29 < Thinkofdeath> MonsieurApple: its better but not great 19:30 < Thinkofdeath> Amaranth: well chat too :P 19:30 < Thinkofdeath> dat json gets pretty big 19:31 < Thinkofdeath> I think it was partly in response to md_5's requests for compressed map packets 19:31 < dx> mediawiki really needs a damn 'blame' feature 19:31 < dx> bah, i'll just assume Thinkofdeath wrote that, since Thinkofdeath wrote 99% of the page anyway 19:32 < Thinkofdeath> o.O 19:32 < Thinkofdeath> whats wrong? 19:32 < dx> nothing is wrong, just wanted to know who added that line :P 19:32 < Thinkofdeath> oh 19:32 < Thinkofdeath> I think someone rewrote it for me at somepoint 19:33 < dx> well anyway, if what that line says is correct, the data length header works as a flag that says if it's compressed or not 19:33 < dx> sounds much more reasonable than checking the length 19:33 < Thinkofdeath> yep 19:33 < Thinkofdeath> well it checks the length anyway 19:33 < dx> you mean the implementation does? 19:33 < Thinkofdeath> if you compress a 128 byte packet with the threshold set to 256 bytes the client will disconnect 19:34 < Thinkofdeath> however if you don't compresss a 512 byte packet with the thresholds set to 256 bytes the client will accept it 19:34 <+Amaranth> Wait, I thought the server ruled here 19:34 < Thinkofdeath> Amaranth: both ways 19:34 < Thinkofdeath> they do the same check but the server sets the threshold 19:35 <+Amaranth> In any case it's weird that they don't just check if the wire length equals the packet length 19:35 < dx> wire length? 19:36 < dx> there's the 'packet length' header for what's transmitted over the wire, if that's what you meant, and 'data length' for the uncompressed packet size 19:37 <+Amaranth> Whatever they call them 19:37 <+Amaranth> If they always send both check if they're the same. If they're not, run through the inflater. 19:38 < dx> well data length == 0 means uncompressed (basically data length == packet length like you're saying) 19:38 < dx> so yes, the check seems pointless... 19:39 < dx> unless it's some kind of security measure i'm not seeing? 19:40 < dx> nah, kinda hard to DoS with packets that are *smaller* than the threshold 19:55 < TkTech> So I spent 3 days trying to figure out the crazy system instability on my i7. Solution was to disable all but one core :( 19:56 < TkTech> Guess one of the pins or lanes for the second core are fried. RMA time. 19:57 <+Ac-town> ouch 19:57 < dx> a friend of mine spent a few months with graphical glitches in apps unless he changed affinity of processes to avoid using one core 19:57 < TkTech> I had that happen to, when trying to render with blender. 19:58 < TkTech> I either had to set the affinity, or disable hyper threading 19:58 < dx> seems that intel is great at replacing faulty CPUs, though. getting a new one was a surprisingly painless process 19:58 < TkTech> Throwing the VCCIN on the CPU waaaay up helped 19:58 < TkTech> Yeah, they require a deposit for the cost of the unit but otherwise one is almost in the mail 19:59 < TkTech> Fairly painless process once they realize you've already done process-of-elimination 19:59 < TkTech> Otherwise the support goes down a long list of "Have you tried..." 19:59 <+Ac-town> i just got myself a new gpu and I think it might have a fault with the fans 19:59 < TkTech> Noisy fan or not working fan? 19:59 <+Ac-town> but I ordered a new psu since I don't think my older psu doesn't have enough amps 19:59 <+Ac-town> not working as expected 20:00 <+Ac-town> very little sound difference from 30% to 100% 20:00 <+Ac-town> and the rpm sensor reports 0 20:00 < TkTech> Hm, it sounds like the 3rd pin is off 20:00 <+Ac-town> so I was wondering if it just disables those parts of the gpu if there isn't enough power 20:00 < TkTech> Check to see if it's a 2-wire or 3-wire? 20:01 <+Ac-town> should be a 2 wire, 8 pin and 6 pin 20:01 < TkTech> Nah, the fan is by far the lowest energy usage, and the controller is super simple, doesn't really have the logic to do current demand 20:01 <+Ac-town> thats what i figured 20:01 < TkTech> You won't get RPMs with just a 2-wire 20:01 <+Ac-town> oh 20:01 < dx> should be 4 wires actually 20:01 <+Ac-town> the fan you mean 20:01 <+Ac-town> I think it was 3 or 4 20:01 <+Ac-town> I would expect it to report rpm 20:02 < TkTech> Whoops, yeah 4. 20:02 < TkTech> I haven't found a non-PWM GPU fan that can report RPMs 20:02 <+Ac-town> since it does get to 80C 20:02 < dx> http://www.pavouk.org/hw/fan/en_fan4wire.html 20:02 < TkTech> If it's supposed to be 4-wire, and it's not reading RPMs and you can't control the speed, something is wrong with the 4th wire 20:03 < dx> (actual connector shape and wire coloring varies) 20:03 < TkTech> Good guide 20:03 <+Ac-town> I put in a rma already but a new psu should get here tomorrow 20:04 < TkTech> What GPU? 20:04 <+Ac-town> 770 20:04 < TkTech> Ah, happen to be the ASUS one? 20:05 <+Ac-town> nope, pny 20:05 < dx> btw, in my experience, the fan is the shittiest part of any GPU. my 6870 had the stock fan fail one year after buying it 20:06 <+Ac-town> my 6950's fan kicked ass 20:06 < dx> right now i have the fan of the coolermaster hyper 212+ (that is supposed to be for my CPU) tied to the original heatsink, almost hanging from there lol 20:07 <+Ac-town> I once had a heatsync that had a fan in the middle of the block 20:07 <+Ac-town> apparently it died in the middle of summer 20:07 <+Ac-town> was always wondering why my game was weird, 100c cpu lol 20:07 < dx> ouch 20:07 < TkTech> http://pcpartpicker.com/part/asus-video-card-gtx770dc2oc2gd5 20:08 < TkTech> I have two of these (slightly different, 4GB and unlocked) 20:08 < TkTech> Fans are ungodly noisy 20:08 <+Ac-town> thats why I expect mine to be broken 20:08 < TkTech> Want to liquid cool them but the only backplates that fit are from the Titan 20:08 <+Ac-town> you'd think at 100% i'd go nuts from the noise 20:08 < TkTech> And anything Titan is $$ 20:08 < TkTech> Good headphones 20:09 < TkTech> Really, really loud headphones 21:00 < barneygale> `benchwood 21:01 < barneygale> oops wrong chan 21:06 < eddyb> TkTech: noise cancelling? 21:07 < TkTech> Can't stand noise cancelling headphones 21:07 < TkTech> Active ones at least, find large cups much better 22:07 < MonsieurApple> Amaranth: are you a jira mod / would be able to reopen this? https://bugs.mojang.com/browse/MC-61676 22:08 <+Amaranth> MonsieurApple: Dinnerbone marked it as fixed in a version you don't have access to 22:08 <+Amaranth> How can you say that's wrong? 22:09 < MonsieurApple> all bugs are marked as fixed for the future 22:09 < Thinkofdeath> "Fix Version/s: Minecraft 14w34a" thats out 22:09 < Thinkofdeath> and its marked as fixed on the blog post 22:10 <+Amaranth> In that case it's odd that he only changed it today but in any case no, I'm not going to overrule a Mojang employee on Mojang's bug tracker 22:10 <+Amaranth> If you don't think its fixed convince him 22:10 < MonsieurApple> what do you mean over rule? it's still broken, he just didn't realize it 22:11 <+Amaranth> You read minds now? 22:11 < dx> maybe it will be fixed in the next snapshot, not the one released today. 22:11 < dx> branches are a thing 22:11 < MonsieurApple> That's not what I'm saying, I'm saying he most likely didn't test 100 players and realize that there is still overflow/it's unreadable 22:11 < Thinkofdeath> dx: well it was changed this version 22:11 < MonsieurApple> Did you see the screenshot? 22:12 < dx> also, nice screenshot. that's a lot of Thinkofdeath 22:12 < Thinkofdeath> :P 22:12 <+Amaranth> I'm telling you to talk to Dinnerbone 22:12 < dx> seems unhealthy to think so much about death 22:12 < Thinkofdeath> for (int i = 0; i < 2000; i ++) tab(getName() + i) 22:12 < MonsieurApple> i didn't want to bother him, but I guess he knows now 22:13 < Thinkofdeath> Another thing to note is that the icons are missing 22:13 < Thinkofdeath> it would be worse with 22:13 < Thinkofdeath> and the longest name on that list is 16 chars 22:14 < Thinkofdeath> they are missing because offline mode not a bug in-case I didn't make that clear :P 22:14 <+Amaranth> Even 60 is too much when you have scoreboard stuff 22:14 < dx> did you say offline mode? BANNED FROM THE PLANET 22:14 <+Amaranth> And iirc it was supposed to be a feature that the icons go away when the list gets too big 22:14 < Thinkofdeath> ah 22:15 <+Amaranth> Heck with the scoreboard prefix and suffix I think it even overflows 1 22:15 < Thinkofdeath> dx: result forgetting to switch after bungee work :P 22:15 < dx> Thinkofdeath: BANNED 22:15 <+Amaranth> The tab list sucks and is generally useless, welcome to the game 22:15 < Thinkofdeath> dx: :( 22:15 < dx> now i'm wondering if it's possible to mitm the auth servers with a fake root certificate 22:16 < dx> most of the time nobody bothers to check fingerprints 22:16 <+Amaranth> That's called certificate pinning when applied to TLS, right? No one does that though 22:17 <+Amaranth> Chrome did for a while iirc and I think they still have it hard coded to do so for Google websites 22:17 < Thinkofdeath> dx: well I was going to test in online mode 22:17 < Thinkofdeath> but the session server died 22:17 < dx> Thinkofdeath: CRIMINAL SCUM 22:18 * Thinkofdeath hammers the session server until he can get in 22:19 < Thinkofdeath> woo I just hit the protocol max packet size limit somehow 22:20 < dx> congratulations 22:20 < Thinkofdeath> oh right, 2000 tab list entries + skins 22:20 < Thinkofdeath> == large packet 22:21 * Thinkofdeath hopes any networks don't use bungee's global ping setting 22:21 <+Amaranth> haha 22:25 < flamin_scotsman> Chromium certificate pinning is still alive and kicking :P 22:27 < Thinkofdeath> Amaranth: well the hiding doesn't work either http://i.imgur.com/CdMWtdj.png 22:27 <+Amaranth> heh 22:27 < Thinkofdeath> side note: The icons didn't all load at the same time even though they are the same skin blob 22:27 < Thinkofdeath> so is it downloading each some separately? 22:28 < Thinkofdeath> MonsieurApple: Feel free to add this http://i.imgur.com/CdMWtdj.png :P 22:28 <+Amaranth> Probably making the thumbnails separately 22:28 < Thinkofdeath> hmm 22:28 < MonsieurApple> Thinkofdeath: will do, ty 22:29 <+Amaranth> Not like it's common enough to have multiple people with the same skin to worry about such a situation in terms of CPU/RAM savings 22:29 < Not-9d73> [Glowstone] SpaceManiac pushed 2 commits [+2/-1/±7] http://git.io/dpRHPQ 22:29 < Not-9d73> [Glowstone] SpaceManiac fc7dd4a - Updated ops list and whitelist to use UUIDs and json format (see #123). 22:29 < Not-9d73> [Glowstone] SpaceManiac c36f463 - Updated bans to use json - still name-based, no migration (see #123). 22:30 < Thinkofdeath> tbh I didn't expect the icon creation to be done async 22:44 < MazzaTR> Hello 23:20 <+md_5> Thinkofdeath but threads are faster! 23:21 < Thinkofdeath> :P 23:22 <+Amaranth> md_5: Any update on that multithreaded Spigot? --- Day changed mar. août 19 2014 01:34 < Drainedsoul> Yay C++14! 02:57 < redstonehelper> if you want to display a custom message using the boss health bar, is there any advantage of usinga non-moving boss mob over using a mob spawner which is set to spawn one of those boss mobs, but never will because it's disabled? 10:08 < eddyb> Thinkofdeath: ugh 10:09 < eddyb> Thinkofdeath: I really hate what they did with tall plants 10:09 < eddyb> Thinkofdeath: they used a single block ID for the top part. which they will effectively "revert" in 1.9 10:14 < Thinkofdeath> eddyb: I end up copying the state from the bottom to the top in a process step because of that 10:15 < eddyb> well 10:15 < eddyb> Thinkofdeath: I have to create a rule for the top block 10:15 < Thinkofdeath> doors do the same (ish) 10:16 < eddyb> that says "when the block in the X direction is in the range [Y, Y+N), use models from range [Z, Z+N) instead" 10:16 < eddyb> I need to work on those rules 10:18 < eddyb> something like netherbrick fence will have a east/north/south/west boolean rule (so 16 values total), looking for solid or identical blocks 10:19 < eddyb> wooden fences and glass panes, however, have to look for solid blocks or blocks from the same group 10:19 < eddyb> also iron bars 10:19 < eddyb> wooden fences and gates form a group, all kinds and gass panes and iron bars form another group 10:20 < eddyb> I can make this pretty cheap by having each model be part of at most group. the solid thing is already encoded 18:18 < Not-9d73> [mc-autodocs] thinkofdeath pushed 1 commit to master [+0/-0/±2] http://git.io/l1CzYw 18:18 < Not-9d73> [mc-autodocs] thinkofdeath d31d31c - 14w34c 20:30 <+Ac-town> TkTech: so i got the new psu 20:30 <+Ac-town> and rpms shows up now 20:30 <+Ac-town> fwiw I did reseat the gpu 20:30 <+Ac-town> and ensure that the fan connector for it was plugged in all the way 20:32 <+Ac-town> though it only goes up to 3150 rpm, sounds quiet 20:32 <+Ac-town> oh well, run it all 100% all the time I will 20:34 < TkTech> That is so very odd :| 20:34 < TkTech> Like that fan draws literally nothing 20:34 < TkTech> If your PSU was failing you should have had a host of other issues 20:35 < TkTech> And it's not a direct VIN, because it's controlled through the GPU, so if the GPU was starved other issues should have popped up :| 20:35 <+Ac-town> there was other issues with the gpu 20:35 <+Ac-town> like the driver crashing 20:35 <+Ac-town> my old amd card never did that but I expect this nvidia card eats more power 20:35 <+Ac-town> and the psu has to be a few years old at this point 20:36 <+Ac-town> no idea how many amps on the 12v rail 20:36 <+Ac-town> could look now since its out 20:36 <+Ac-town> 3 12v rails with 22 amps each 20:36 <+Ac-town> 22/22/25 20:36 < TkTech> Ah, makes sense, I had to split the plugs on mine to two different rails 20:36 < TkTech> Couldn't get enough current off one 20:37 <+Ac-town> i'll just reuse this psu so its not to waste 20:37 < TkTech> Power wise the AMD GPUs are almost always better I think, except for the dual cards like the Titan Z 20:37 <+Ac-town> i wanted to get a modular one anyways for my itx build when the next intel version comes out 20:37 <+Ac-town> along with ddr4 20:37 < TkTech> That's one of the reasons they were so popular for mining 20:37 < TkTech> I bought a modular one, horrible purchase ;| 20:38 < TkTech> I have a 900D, which is a *massive* case, no standard cables you get with the PSU will reach properly. 20:38 < TkTech> And the modular ones all have proprietary connections 20:39 < TkTech> Ended up just slicing them and crimping the ends back on 20:39 < TkTech> I keep seeing builds with really nice modular PSU that have threaded cables, but I can't find one anywhere 20:40 < TkTech> Just massive, rigid cables 20:40 <+Ac-town> they usually run their own cables 20:40 <+Ac-town> and some modders run casing over the wires 20:40 <+Ac-town> its nuts 20:41 <+Ac-town> I have a really old full size thermaltake case from 2007 rofl 20:41 <+Ac-town> really want a itx for lan parties and such 20:42 <+Ac-town> all it needs is a gpu, 2 ssds, cpu, and ram 20:42 < TkTech> Man I wish anyone around here still did lan parties ;-( 20:42 <+Ac-town> well if you ever want to come over here 20:42 <+Ac-town> we have a big one 20:42 <+Ac-town> 550 people, 3 times a year 20:43 <+Ac-town> http://www.pdxlan.net/home/ 20:44 < TkTech> Ah Portland 20:44 < TkTech> Wait, aren't I there already for something... 20:44 < TkTech> Right! PyCon 2016 20:45 <+Ac-town> oh nice 20:46 < TkTech> Hopefully there's something that overlaps, company will send me out there. 20:46 < TkTech> Flight wouldn't be too bad, 7 hours with one stop 20:47 <+Ac-town> whats the dates? 20:47 <+Ac-town> if there isn't a lan and im still out here drinks/fun will happen 20:49 <+AndrewPH> TkTech: omg you'll be in portland wow 20:51 < TkTech> Ac-town: Half the company goes, and no one ever takes a camera for a reason :) 20:51 <+Ac-town> haha 20:51 < TkTech> Montreal was a little insane. 20:52 < TkTech> I'm just taking a look at my travel calendar, North America is too large. 20:52 <+Ac-town> cut out the east coast 20:52 <+Ac-town> well, cut out everything that isn't the west coast 20:52 < TkTech> I'll be in Houston, LA, and Minneapolis but none of those are much closer 20:53 < TkTech> Doesn't look like dates are set yet for PyCon 20:53 <+Ac-town> yeah, those places are far apart 20:53 < TkTech> Can't find anything anyway 20:53 <+Ac-town> plenty of time 20:53 < TkTech> Yeah, our US sales team is in Houston for whatever reason 20:53 < TkTech> Probably because of the cheap flights 20:54 < TkTech> sadimusi: Interested in pycon? 21:09 <+Amaranth> With the latest generation (if nvidia ever actually puts out more maxwell) it looks like they've got the power advantage 21:10 <+Amaranth> The 750 Ti is competitive with an AMD card I forget the model of but the AMD one uses twice the power 21:13 <+sadimusi> TkTech: I've never really heard of it, but even if I were interested it's still a bit too far away for my taste --- Day changed mer. août 20 2014 03:53 < nickelpro> Can anyone give me a clear rundown on how the new skin system work with the Spawn Player packet? It's been months since I did MC dev and I'm a little mystified 09:03 < Thinkofdeath> nickelpro: the properties field is populated with the 'properties' field returned from the sessionserver's hasJoined request 09:04 < Thinkofdeath> one of the properties (the only currently) is the texture one, the value field contains the url to the skin and the cape (if they have one) 09:04 < Thinkofdeath> (plus some other info) 13:55 < cindy_k> is d out yet? 14:00 < rom1504> cindy_k: yeah http://dlang.org/ 14:01 < cindy_k> lol 17:26 < nickelpro> Thinkofdeath: thanks 17:40 < eddyb> Thinkofdeath: what offset is between Data.Player.Pos (in level.dat) and the camera position? 17:43 < redstonehelper> player position is saved by the feet and I believe the camera (1st person) is in the middle of the head, on the height of the eye line which you can see if you enable visual mob hitboxes 17:44 < redstonehelper> not sure how much that helps, but eddyb ^ 17:46 < eddyb> redstonehelper: thanks. see my comment here http://www.reddit.com/r/rust_gamedev/comments/2e35sf/hematite_vs_minecraft/ 17:49 < eddyb> I really wish the game saved orientation 17:49 < redstonehelper> does it not? 17:49 < eddyb> does it? 17:49 < shoghicp> eddyb: offset is 1.62 17:49 < shoghicp> total height is 1.8 17:49 < eddyb> shoghicp: well, vertically 17:49 < eddyb> but it seems there's a horizontal offset between 0 and 0.2 17:49 < redstonehelper> eddyb: if you save a game and re-enter it, you are looking the same direction as last time 17:50 < eddyb> redstonehelper: I thought you are always looking north 17:50 < eddyb> I could've sworn I tested this 17:50 < redstonehelper> I swear it saves rotation, lemme test 17:51 < shoghicp> it saves rotation, at least it is in the NBT data 17:51 < eddyb> yaw but not pitch? 17:51 * eddyb hopes he used those words right 17:53 < redstonehelper> eddyb: grvm said something about camera stuff here, might help you find the location in the code http://www.reddit.com/r/Minecraft/comments/2dvx9c/minecraft_snapshot_14w34a/cjub70y?context=3 17:54 < Casperrrr> I have a question where to start creating an new server engine? :P 17:55 < eddyb> great, I have to go dumpster diving again in a jar 18:38 < Drainedsoul> "grvm"? 18:38 < Drainedsoul> is it the middle ages again? 18:40 < dx> it's just closer to black metal, while "grüm" is more heavy/power metal 18:41 < dx> and Grum is j-rock 18:44 < Drainedsoul> my IRC client really doesn't like UTF-8 18:44 < Drainedsoul> and I can't figure it out 18:45 < Drainedsoul> which is ironic because I love UTF-8 and hate Latin-1 18:46 < dx> :( 18:46 < Drainedsoul> what was that 18:47 < dx> what was what 18:47 < Drainedsoul> [09:44] CTCP/VERSION request from dx : 18:47 < dx> i asked your client what client it is and what version 18:47 < dx> and i got HydraIRC v0.3.165 (12/December/2008) by Dominic Clifton aka Hydra - #HydraIRC on EFNet 18:48 < Drainedsoul> yeah there's a window in the bottom right that says that now @_@ did it tell you? 18:48 < Drainedsoul> yeah that's right 18:48 < Drainedsoul> apparently it's written with "modern tools", i.e. VS 7 18:48 < Drainedsoul> -_- 18:48 < Drainedsoul> seems to work well enough, except the UTF-8 issue 22:38 < eddyb> FOUND THE LITTLE FUCKER 22:38 < eddyb> shoghicp, redstonehelper: 6903015 @0 glTranslatef(x = 0, y = 0, z = -0.1) 22:39 < redstonehelper> so what's the offset? 22:39 < eddyb> 0.1 on z 22:39 < redstonehelper> ahh 22:39 < redstonehelper> sneaky 22:39 < redstonehelper> put it on the minecraft wiki too, can't hurt to have it there 22:40 < eddyb> I'm not even sure I know how to wiki anymore 22:45 <+SpaceManiac> Did you end up finding the rotation tags? 22:46 < eddyb> yupp, Rotation: FloatList([35.250214, -10.049996]) 22:46 < eddyb> writing code to use those and the 0.1 offset right now 23:50 < nickelpro> eddyb: there's a horizontal offset? Why in the world would there be a horizontal offset? 23:51 < eddyb> nickelpro: idk, you see with the back of your skull or something like that :) 23:51 < eddyb> nickelpro: ask notch :P --- Day changed jeu. août 21 2014 00:16 < redstonehelper> shit, on z? I thought it was y 00:16 < redstonehelper> damnit notch 06:52 < eddyb> I don't get it 06:53 < eddyb> the tallgrass model is exactly one block tall 06:53 < eddyb> but in game, it looks like 0.75 06:53 < eddyb> did they really hardcode this shit? 06:55 < eddyb> also, what? my screenshots don't appear to be saved 06:56 < eddyb> I think the launcher broke horribly and I didn't realize 07:51 < eddyb> redstonehelper: confirmed: in-game bounding box is shorter than the tall grass by a couple pixels 08:16 < Grum_> eddyb: fun O.o 08:16 < Grum_> single or double-height one? 08:16 < eddyb> single 08:17 < eddyb> Grum_: the game is just messing with me 08:17 < Grum> lets see 08:17 < Grum> and yes, boundingboxes are hardcoded for obvious raisins 08:17 < eddyb> I now know that scaling by SQRT2 for "rescale" does the right thing 08:18 < eddyb> I'm looking at the tallgrass class to figure out the random offset algorithm, but I'm lost :P 08:18 < Grum> it has a method that returns a constant 08:18 < Grum> erm 08:18 < Grum> an enum even 08:18 < Grum> that says what sort of offset it has 08:19 < eddyb> Grum: the offset makes the tallgrass appears ±2px or so, which made fixing "rescale" a PITA. nothing looked right until I made a wall of tallgrass and just compared *that* :) 08:19 < Grum> we have to move it down a bit 08:20 < Grum> it has a: 'getOffsetType()' returning XYZ 08:20 < eddyb> Grum: oh, thanks... not sure why I didn't look for that when it's the obvious choice for my implementation, too :P 08:20 < Grum> because we usually do not have obvious implementations 08:20 < Grum> >.> 08:21 < eddyb> yupp, found it :D 08:21 < Grum> most newer code does >.> 08:21 < eddyb> NONE, XZ and XYZ 08:21 < Grum> yup 08:21 < Grum> we have XYZ for things plantable on farmland 08:21 < Grum> for obvious raisins 08:22 < Grum> and XZ for the things that can stay on the same level 08:22 < eddyb> atp in 14w32d (yupp, I know, I should update. kinda waiting for 1.8 though :P) 08:24 < eddyb> there's two methods in... the tesselator (judging by debug messages :)) 08:24 < Grum> yeah with or without AO 08:25 < eddyb> I don't even know how the pipeline goes in vanilla 08:25 < Grum> massively different from before 08:25 < eddyb> I just copy faces from the model into the VBO 08:25 < Grum> we do the same 08:26 < eddyb> oh, so this is what tesselation is? 08:26 < Grum> the 'only thing' the tesselation does right now (for world things) 08:26 < Grum> is copying buffers for faces over 08:27 < Grum> and then 'mending those buffers' to apply the lighting/coloring 08:28 < Grum> all the data to be copied over gets baked during starting the game 08:28 < eddyb> ok. so here's something random that surprised me. I was playing with apitrace last night (with which I found that 0.1 horizontal camera offset I was suspecting) 08:28 < Grum> yeah back 0.1 O.o 08:28 < Grum> was a surprise for me 08:29 < eddyb> Grum: surprise, when? 08:29 < Grum> oh i needed to do some math from the camera origin 08:29 < eddyb> hehe 08:29 < eddyb> fun bugs ahoy 08:29 < Grum> and that didn't work out as nicely when you have the camera offset by y+1.62 and z -0.1 >.> 08:29 < eddyb> anyways, I noticed that frames with the esc (pause) screen had 2k more calls 08:29 < eddyb> 2k calls for an overlay with 5 buttons? 08:30 < Grum> i think fonts are being drawn really inefficiently 08:30 * eddyb remembers there is text on those buttons and feels silly 08:30 < Grum> i think each char is a drawcall 08:30 < eddyb> Grum: yupp it just hit me 08:30 < Grum> we had a nice bug in older versions 08:30 < Grum> where every quad in an item was a drawcall >.> 08:30 < Grum> use f3 and look at a tab with enchanted items in a creative inventory 08:30 < Grum> BOOM FPS DEAD ;D 08:30 < Grum> (in the version you run now that is) 08:31 < eddyb> so, in-game there's 5k, with the esc screen 7k 08:31 < eddyb> the menu screen is 10k 08:31 < Grum> look at a page of potions =) 08:31 < Grum> that should be 100-200k :p 08:32 < eddyb> the only explanation I can come up with is that you're drawing a sphere made out of many triangles, for the, what's it called dammit... the spinny background thingie 08:32 < Grum> yeah 08:32 < eddyb> the panorama, that's it 08:33 < Grum> the drawcalls for the panoramic thingie is wtf 08:33 < eddyb> Grum: fixit 08:33 < eddyb> (after you fix boats because everyone is complaining about those) 08:33 < Grum> i dont care 08:33 < Grum> fps is limited to 30 anyhow 08:33 < Grum> or 20 orso in menus 08:34 < eddyb> it makes my apitrace replays very slow :( 08:36 < Grum> tough luck ;) 08:36 < eddyb> yeah, no, it's not a big deal, I got what I was looking for 08:37 < eddyb> is it just me, or is the no AO logic more complicated? 08:38 < eddyb> aah, no, I'm just confusing methods which all have the same name 08:49 < eddyb> Grum: thanks a lot, btw, this will come a long way :D. look how bad it was yesterday http://www.reddit.com/r/rust_gamedev/comments/2e35sf/hematite_vs_minecraft/ 08:50 < eddyb> (there's also an x-post on /r/rust which is not a link to the other post - *sigh* this wasn't even meant for reddit, just people getting excited on IRC and posting my half-assed crap) 08:50 < Grum> it confused, what is hematite? 08:52 < eddyb> my Rust clone 08:52 < Grum> ah 08:52 < eddyb> the project started out as "hey, someone made a tiny minecraft-like thing in python, I wonder how big it would end up in Rust" 08:52 < Grum> states make it much easier to render not? ;D 08:53 < eddyb> but I couldn't keep myself from using all that blockstate goodness 08:53 < eddyb> Grum: they're the only reason I can render anything at all :) 08:53 < Grum> the only 'downside' is the 'fillVirtualProperties' method 08:53 < eddyb> that brewing stand, man http://i.imgur.com/9EVzoCU.png 08:54 < Grum> fillVirtualBlockStateProperties is a magical method that 'fudges' the blockstate :/ 08:54 < eddyb> Grum: based on adjacent blocks? 08:55 < Grum> yeah for now 08:55 < Grum> the idea is to bake this in 1.9 08:55 < eddyb> I tried to came up with good rules for it 08:56 < eddyb> there's "when the block in the X direction is in the range [Y, Y+N), use models from range [Z, Z+N) instead" 08:56 < Grum> there are no good rules 08:56 < Grum> just 'code' to describe it :/ 08:56 < eddyb> Grum: actually, there's a maximally flexible way to describe it without code 08:57 < eddyb> it's just nastier to hardcode 08:57 < Grum> https://gist.github.com/grum/47bd747c16a1fecfa31c <-- for the 'fence' 08:57 < Grum> this will just be hardcoded later 08:57 < eddyb> the rule I mentioned would make the double plants work (which, dammit, who thought using only one block type for the top would be a good idea? 1.9 blockstates will revert that :P) 08:57 < Grum> the block tha gets placed will check around itself and pick the 'right shape' 08:57 < Grum> then it will prod the blocks around it to update their shape 'if needed' 08:58 < eddyb> there's the 4 cardinal directions rule, which gives you a range of 16 models (well, 15 without the original) 08:59 < Grum> there are actually 6 directions 08:59 < eddyb> are there blocks using 6 directions? 08:59 < eddyb> but it needs a "does connect" function. I figured I could have groups 08:59 < Grum> yes, redstone 08:59 < eddyb> Grum: dammit, that one :P 09:00 < Grum> well it uses more directions actually 09:00 < eddyb> (actually, those are 5, not 6) 09:00 < Grum> it uses 8 directions :p 09:00 < Grum> each arm is a tri-state 09:00 < eddyb> oh, yeah, sorry 09:00 < Grum> vines use 5 09:00 < eddyb> vines do something? 09:00 < Grum> grow 09:00 < eddyb> apart from that, they don't encode render state in blockstate? 09:01 < Grum> not sure 09:01 < Grum> but it doesn't matter 09:01 < Grum> static mapping is not a possibility 09:01 < Grum> or rather, it is, but it's a pointless exersize 09:01 < eddyb> where was I? the connection function. for wooden fences, it would be "adjacent solid block or block from group 'wooden fences and fence gates'" 09:02 < Grum> yes, but there should not be code describing this 09:02 < eddyb> for netherbrick fences would be "adjacent solid block or same block" 09:02 < Grum> well it needs code :p 09:02 < eddyb> Grum: you mean, the handful of possible rules? 09:02 < eddyb> not sure if the "group" thing is a great idea 09:03 < eddyb> glass panes and iron bars would also form another group 09:03 < eddyb> Grum: I mentioned a maximally flexible thing earier: decision trees 09:03 < eddyb> stairs are probably the worst ones 09:03 < Grum> what stuff connects to is actually not a 'data driven thing' 09:03 < eddyb> Grum: it has to become :P 09:04 < Grum> no 09:04 < Grum> *really* not 09:04 * eddyb puts Grum in a turing tarpit 09:04 < Grum> no, think about it 09:04 < Grum> connectivity changes shape, shape changes boundingbox, boundingbox HAS TO BE server defined 09:04 < eddyb> and? 09:05 < eddyb> you have to load blockstate mappings from the world anyways 09:05 < eddyb> unless you mean that you want to keep hardcoded bounding boxes 09:05 < Grum> not sure what that has to do with it :p 09:06 < Grum> we have to keep 'hardcoded' boxes, rather, they are 'defined' by the server which makes it fine for them to be code 09:06 < eddyb> why can't you map model variants to bounding boxes? or something like that 09:06 < jast> how about you just do all checks on the client side. should work fine with any client conforming to RFC 3514. 09:06 < eddyb> Grum: i.e. use the results of the connectivity to determine bounding box 09:07 < eddyb> but connectivity would be specified in data 09:07 < Grum> eddyb: boundingboxes are 1:1 mappign with blockstates 09:07 < eddyb> ugh 09:08 < Grum> each state has its own boundingbox 09:08 < eddyb> Grum: wouldn't the full block state be a result of data-specified connectivity tests :P? 09:08 < Grum> you are starting to mix up terms, enough so I cannot actually reply sanely 09:08 < Grum> data being what? 09:09 < eddyb> JSON, what else :) 09:09 < Grum> i think its a bad idea 09:09 < Grum> first off, right now the server has no idea about blockmodels or godknowswhat 09:09 < Grum> i dont think it would have to ever know 09:09 < Grum> but it does need to have information on the boundingbox 09:10 < eddyb> but what about blockstate .json files? 09:10 < Grum> so sure, in theory we could make that json 09:10 < eddyb> hmm 09:10 < Grum> blockstate is just the mapping on the client 09:10 < eddyb> I'm guessing those are just for the visual models 09:10 < Grum> its the stringified version of what the server knows 09:10 < Grum> yes 09:10 < Grum> "east=false,north=false,south=true,west=false": { "model": "oak_fence_n", "y": 180, "uvlock": true }, 09:11 < Grum> for the fence 09:11 < eddyb> so with custom per-world mappings, the server will have to accept any unknown block names as.... what? 09:12 < Grum> the key is just the stringified blockstate 09:12 < eddyb> or maybe you don't want that level of customization (just yet) 09:12 < Grum> how do you mean: 'the server will accept' ? 09:14 < Grum> and don't start with the 'level of customization'-bs 09:14 < eddyb> (sorry. need to be more specific) 09:14 < Grum> you do 09:15 < Grum> because saying that i do not want something because you either underexplained or simply describe something that cannot work is silly 09:15 < eddyb> what if I add a custom blockstate to the mappings in a world, and place those blocks around the map in an external tool, and I add the blockstate to the resourcepack? 09:15 < Grum> 'custom blockstate' ? 09:15 < Grum> that doesn't exist 09:15 < eddyb> foobar 09:15 < Grum> a block has states defined on its properties in the state -- its a cartesian product of all the things 09:15 < Grum> you cannot just 'decide' to add one 09:16 < eddyb> is code going to (always) be required? 09:16 < Grum> yes 09:16 < Grum> ALWAYS 09:16 < eddyb> ALWAYS? 09:16 < Grum> you could in theory add a block *on the server* through some data-driven mechanic 09:16 < Grum> ALWAYS 09:16 < Grum> but obviously that block would be similar to bedrock 09:16 < Grum> no properties at all 09:17 < eddyb> obviously I wasn't considering certain things when I started fiddling with this project :P 09:18 < Grum> in theory a block without behavior can be completely defined by pure data 09:18 < Grum> ideally we'll go there 09:18 < Grum> but only the basic things that apply ot all things would be handled that way 09:19 < Grum> it cannot have any states -- perhaps simple rotation on the y axis at max 09:19 < Grum> collision mesh, light-behavior ..hmmz that's about it? 09:22 < eddyb> Grum: yeah, sorry for wasting your time :) 09:22 < Grum> its ok but it's not so simple :p 09:28 < Grum> I think eventually blocks will become json definitions for their basic values 09:28 < Grum> but there still is going to be some form of defined loading around 10:01 <+SpaceManiac> http://forums.bukkit.org/threads/bukkit-its-time-to-say-goodbye.305106/ 10:03 < dx> rip 10:09 < TkTech> SpaceManiac: Well, can't really say that was unexpected. 10:09 < Kavukamari> anyone build anything neat with command blocks lately? 10:09 < TkTech> But I am postively stunned at the responses. Complete English? No whining? 10:09 < TkTech> Is this really a forum? 10:10 < dx> TkTech: i thought the moderators were removing all the idiots, but no, a comment about spigot is still there 10:13 < dx> (a decent comment about spigot, that is) 10:13 <+SpaceManiac> Not sure what I'm going to do with Glowstone now, it always did depend on the Bukkit API pretty heavily. 10:14 < dx> SpaceManiac: isn't the api side of it legally clean? 10:14 <+SpaceManiac> Legally clean, yes. But now nobody is maintaining it. 10:17 < Dinnerbone> So go maintain it or fork it 10:17 < Dinnerbone> They're not erasing bukkit from the face of the earth. 10:17 < Thinkofdeath> The beauty of open source 10:18 < dx> """open source""" 10:18 < dx> if you ignore the fact that craftbukkit is the biggest part of it, and it's, well... something.