13:05 < gamingrobot> https://github.com/opencog/opencog 13:06 < Bibl> gamingrobot: whats hard about messing with bits? :D 13:06 < gamingrobot> I am having a hell of a time packing a negative position 13:07 < gamingrobot> https://www.irccloud.com/pastebin/UwIwkRDl 13:07 < gamingrobot> works great for positive numbers 13:08 < Bibl> i dont get what struct.pack is 13:09 < Bibl> dont you just use val 13:09 < gamingrobot> its a way of packing values into bits 13:09 < gamingrobot> so it takes val, a integer and packs it as a big endian long long 13:09 < Bibl> the first 3 expressions in your code are right 13:09 < Bibl> then i dont know what you're doing 13:09 < Bibl> just return val? 13:10 < gamingrobot> when x is neg val becomes massive 13:10 < Bibl> try just returning val 13:11 < gamingrobot> I did it says it cant convert int to bytes 13:11 < gamingrobot> the struct pack is not the problem 13:11 < gamingrobot> 18446741187759964163 thats what val is if x is negitive 13:11 < Bibl> give me a value for x y z 13:11 < Bibl> and ill test my java version 13:12 < gamingrobot> 'location': {'z': 3, 'x': -11, 'y': 4} 13:13 < gamingrobot> the problem is you cant pack the value 18446741187759964163 into a 64 bit long, its just too big 13:13 < gamingrobot> so my logic above must be wrong 13:14 < Bibl> http://i.imgur.com/CZWU0W7.png 13:14 < Bibl> lol 13:14 < gamingrobot> is that right? 13:14 < Bibl> not sure sec 13:15 < gamingrobot> its def not the same thing I am gettnig 13:17 < Bibl> http://i.imgur.com/A88bKFV.png hmm 13:17 < Bibl> what packet is this used for? 13:18 < gamingrobot> block place 13:19 < gamingrobot> 1111111111111111111111010100000000010000000000000000000000000011 13:20 < Bibl> yep its that 13:20 < Bibl> i tested with mc 13:20 < Bibl> 1111111111111111111111010100000000010000000000000000000000000011 13:21 < Bibl> and my java code does 13:21 < Bibl> 1111111111111111111111111111111111111111111111111111110101000011 13:21 < Bibl> lmao 13:21 < gamingrobot> wait so am I correct? 13:21 < Bibl> think so 13:22 < gamingrobot> ... 13:22 < gamingrobot> >q is signed >Q is unsigned, also the wiki doesnt say the long is unsigned 13:22 < gamingrobot> "64-bit long split in to three parts" 13:23 < Fenhl> it should be unsigned though 13:23 < gamingrobot> it is I just didnt think it was derp 13:23 < Fenhl> otherwise the values don't fit 13:24 < Fenhl> I don't think the wiki should call it a “long” though 13:24 < Fenhl> that's misleading 13:25 < Fenhl> there, fixed 13:25 < gamingrobot> yay 13:42 < gamingrobot> its so weird that the mc server doesnt care if you have 10 windows open as long as your within the radius of the block that has it 13:46 < Bibl> chest sorter bot? 13:46 < Bibl> or multi chester sorter bot 13:46 < gamingrobot> possibly I am currently writing inventory to be the same as the mc client, one active window at a time 13:48 < gamingrobot> https://db.tt/SV6krkUG the testing grounds 13:52 < gamingrobot> hmmm I might be wrong, it may just assume if you get another openwindow the previous one is closed 13:54 < gamingrobot> thats interesting ender chest is different from chest 13:55 < gamingrobot> ender chest is minecraft:container and not minecraft:chest 13:55 < q3hardcore> well, it's *really* not a chest 13:56 < gamingrobot> might have to add to wiki tho 13:56 < gamingrobot> its not on the Inventory page 13:59 < Fenhl> gamingrobot: what's the inventory type number? 14:02 < gamingrobot> PLAY not sure 14:02 < gamingrobot> its not window_id 14:05 < Fenhl> huh 14:06 < Fenhl> I guess that packet doesn't use numeric window types 14:06 < Fenhl> where is that used then o.O 14:10 < Bibl_> lol fixed my pos stuff http://hastebin.com/sogoyofige.avrasm 15:23 < gamingrobot> I wonder if those numerics are just old 15:24 < Fenhl> I'm finding a lot of old stuff in articles 18:06 < Wuppie> Hmm, i'm sending correct data for the player inventory the to the client, however in the client, the items don't appear 18:06 < Wuppie> :/ 18:09 < Wuppie> do i need to do anything before i send the inventory? 19:04 < gamingrobot> Wuppie: were you sending the slot packet or the window items one? 19:05 < Wuppie> window items 19:05 < gamingrobot> for some reason the normal mc server sends window items and http://wiki.vg/Protocol#Set_Slot for every slot that has a item 21:13 < Bibl_> are block states packed into block metadata? 21:21 < gurun> what do you mean by block state, and what to you mean by block metadata 21:21 < gurun> block state as in the new name or? 21:27 < Grum> blockstates are thing that will replace block+data (the 4bit 0-15 thing) 21:28 <+SpaceManiac> Wuppie: what values are you sending in the open window and window item packets? 21:28 < Wuppie> oh, to send inventory data i need to open the window first SpaceManiac? 21:28 < Wuppie> lol 21:28 <+SpaceManiac> yes 21:29 < Wuppie> lol, i guess that is the problem then 21:29 < Wuppie> didn't think about that 21:29 <+SpaceManiac> actually, are you referring to the *player's* inventory, or a specific inventory? 21:39 < Bibl_> i meant 21:40 < Bibl_> im storing block data in a hashmap 21:40 < Bibl_> but i didnt realise that block state such as rotation of a log is packed with the 'metadata' that is given for a variant of the log 21:40 < Bibl_> so it makes my table lookup thing a bit tricky 21:42 < Bibl_> http://i.imgur.com/4wsLNv0.jpg this explains it 21:43 < ellisvlal> ...That awquard moment you've had a znc bouncer signed in since November with infinate playback buffer and forgot about it... 21:43 < ellisvlal> ...Literally downloading messages for a good few minutes... 21:44 <+SpaceManiac> Bibl_: maybe you are overcomplicating things? 21:44 < Bibl_> SpaceManiac: atm i have this http://hastebin.com/aserelavax.coffee 21:45 < Bibl_> if you go to line 89 you can see the logs 21:45 < Bibl_> those are the combinations of the rotations and the different types of logs 21:45 < Bibl_> however for other stuff it gets even more complicated 21:46 < Bibl_> i was wondering if i should switch over to a another way or continue how im doing it 21:46 <+SpaceManiac> I don't think your current method will be good in the long run 21:47 < Bibl_> SpaceManiac: why? 21:48 <+SpaceManiac> the blockid + metadata combination is being deprecated in favor of a single id which maps to a block state 21:48 <+SpaceManiac> a block state being a block type + a map of properties to values 21:49 < Bibl_> would it still be an int? 21:49 < Bibl_> or nbt style 21:49 <+SpaceManiac> there would still be ints involved somewhere 21:51 <+SpaceManiac> for storage, a bimap to convert states to/from their ((id << 4) | data) representations - then states have a type and a map 21:51 <+SpaceManiac> where all states of the same type have the same property keys 21:54 < Bibl_> SpaceManiac: and for now? can i just do that big blockdata map 21:54 <+SpaceManiac> you *can* do whatever, I just wouldn't recommend it 21:55 < Bibl_> what do you recommend for 1.8? 21:55 <+SpaceManiac> what I just described 21:57 < Bibl_> but if the block id and metadata system is currently in place how am i supposed to cater to the new system? 21:57 <+SpaceManiac> the id+metadata system is in a limbo state because it's being phased out 21:58 <+SpaceManiac> in the protocol everything is one id, (old_id<<4)|old_meta 21:58 <+SpaceManiac> only the save format hasn't changed 22:16 < Paprikachu> so about the compression threshold 22:16 < Paprikachu> if i send a threshold of X, does that mean packets of size X get compressed or not? 22:19 < Paprikachu> http://wiki.vg/Protocol#With_compression and http://wiki.vg/Protocol#Set_Compression say different things 22:21 <+SpaceManiac> Hmm, I'm not sure 22:22 < Thinkofdeath> Look the same to me? If the packet size over the threshold the client/server will compress, whether you compress is up to you 22:22 <+SpaceManiac> I compress if size >= threshold and things seem to work fine 22:22 < Paprikachu> mh 22:23 < Thinkofdeath> oh that 22:23 < Paprikachu> > or >= is the question :P 22:23 < Thinkofdeath> Vanilla: http://hastebin.com/gutulotitu.java 22:24 < Thinkofdeath> so >= 22:24 < Paprikachu> looks like it 22:24 < Paprikachu> thanks for clearing that up 22:24 < Paprikachu> those are the kind of weird edge cases that are going to be a horror to debug 22:24 < Paprikachu> if you don't get it right 22:30 < Paprikachu> can i send SetCompression directly after receiving LoginStart? 22:31 < MrARM> yes 22:31 < MrARM> what vanilla does I think 22:32 <+SpaceManiac> I wait until encryption is negotiated, but that would probably work 22:37 < Paprikachu> i don't have encryption yet 22:37 <+SpaceManiac> after login start is fine then 22:38 < Paprikachu> i don't think i even have to uncompress anything, which is cool 22:38 < Paprikachu> threshold == max packet size 22:38 < Paprikachu> :> 22:54 < Bibl_> http://ge.tt/6sjU5K92/v/0 so many block states D: guess I have to do it your way SpaceManiac --- Day changed mar. janv. 27 2015 00:48 < Bibl_> Grum: can i have the Cartesian class? with all the iterator stuff. i cant figure out these generics 03:58 < Fenhl> Paprikachu: I changed the http://wiki.vg/Protocol#Set_Compression notes, does this look better? 07:14 < Grum> Bibl_: Cartesian? 07:22 < Fenhl> what's the name at http://wiki.vg/Protocol#Login_Start ? Player's username? 08:38 < Bibl_> Grum: sorry i went to sleep it looks like http://i.imgur.com/9ZJuAuf.png 09:18 <+md_5-> Bibl_ hm? what do oyu need help with 10:05 < Xor_Boole> <+md_5-> <- lel 10:05 < Xor_Boole> so is the 5 an approximation with uncertanity 1? 10:56 < gurun> avaraging 1ms tick-time with 160 streaming player, can't be a bad thing :-) 10:57 < gurun> Paprikachu must be happy to know that he secret is all in the entity ids 10:57 < gurun> and byte copy 16:17 * gurun broke 500 player limit on server 16:33 < gamingrobot> gg 17:19 < barneygale> gurun, custom server? 17:23 < gurun> Yes avg tick time around 10ms 17:23 < gurun> 400mbit/s on the sending side (don't know on receive) 17:34 < Bibl_> md_5: i went to school, im trying to refactor the minecraft block state stuff and im havnig a hard time putting in the generics 17:35 < barneygale> gurun, is it on github? 17:35 < Bibl_> these classes http://i.imgur.com/Ewc7C9l.png 17:35 < barneygale> (or: is the source available?) 17:36 < gurun> barneygale: yeah it is on github 17:37 < barneygale> oh good 17:37 < barneygale> link? 17:39 < Wuppie> barneygale, for MiNET? 17:39 < barneygale> Thanks Wuppie. 17:39 < Wuppie> barneygale, https://github.com/NiclasOlofsson/MiNET 17:40 < Wuppie> i guess thats what you meant 17:40 < barneygale> Yah 17:40 < gamingrobot> *waves at barneygale* 17:40 < barneygale> I just didn't know what the server was called, so I couldn't google :P 17:41 < barneygale> hi gamingrobot 17:41 < Wuppie> barneygale, haha :P 17:50 < TkTech> wiki.vg and all related services will be down temporarily due to a critical CVE that leaked. 17:50 < TkTech> For those that host their own servers, go get the patches for CVE-2015-0235 17:55 < barneygale> HN thread: https://news.ycombinator.com/item?id=8953545 17:57 < Gjum> Hey everyone, I'm going through the clientbound 1.8 packets and was wondering where the client gets to know its entity ID. Any ideas? 17:57 < Thinkofdeath> 'Join Game' 17:58 < gurun> It's 0 17:58 < Gjum> oh, always start at the top ^^ thanks 17:58 < Gjum> and no, its not 0 if another client is already online 18:03 < Bibl> Grum: http://i.imgur.com/Ewc7C9l.png are you able to give me the code with generics for this grum bby? <3 18:28 < Grum> Bibl: no idea what Cartesian is 18:28 < Grum> oooooooh wait 18:29 * Bibl waits 18:29 < Grum> Mmm most of them are not too hard ;) 18:29 < Grum> What's the problem with em? 18:29 < Bibl> what about this one? http://i.imgur.com/LPudzQC.png 18:30 < Bibl> i cant put a T there 18:30 < Bibl> because its static and a field 18:30 < Grum> you can put a T in there 18:30 < Grum> lets see if i can find it 18:31 < Grum> i cant, why are you messing with taht code anyhow 18:31 < Grum> that code is seriously not to be messed with 18:31 < Bibl> im refactoring it 18:31 < Bibl> then i extract and use for block states 18:31 < Grum> refactoring? O.o 18:32 < Grum> it is used for blockstates, by the blockstate definition 18:32 < Bibl> mcp code doesnt have proper naming for stuff and doesnt have generis 18:32 < Bibl> generics* 18:32 < Bibl> ye 18:33 < Grum> The call that is used is called: Iterable> product = Cartesian.product(getPropertyValues()) 18:34 < Grum> which calls: public static Iterable> product(Iterable> iterables) -- which should be the 3rd method 18:34 < Bibl> damnit 18:34 < Bibl> means i got something wrong 18:34 < Bibl> Iterable> allowedValuesIterables = Cartesian.cartesianProduct(this.getAllowedValues()); 18:34 < Grum> it's a horrrrible class hehe 18:35 < Grum> i made it ;D 18:35 < Bibl> lol 18:35 < Bibl> client still runs tho 18:35 < Grum> yes =D 18:35 < Bibl> how is your blockstate class defined 18:35 < Bibl> public class BlockState> { 18:36 < Bibl> i guess you just did ? 18:36 < Grum> BlockState has no T at all 18:36 < Grum> its just an interface 18:37 < Bibl> ^_^ 18:37 < Grum> it has > T getValue(Property propery) though 18:37 < Bibl> wait mcp has IBlockState and BlockState 18:37 < Bibl> I did 18:37 < Bibl> IBlockState withProperty(IProperty property, T value); 18:37 < Grum> our AbstractBlockstate also has no 18:38 < Bibl> wrong method sorry 18:38 < Grum> yes but the class/interface itself has no T 18:38 < Bibl> T getValue(IProperty property); 18:38 < Bibl> lol it works tho :D 18:38 < Bibl> public abstract interface IBlockState> { 18:38 < Bibl> why so generic 18:39 < Grum> yes that is: >, V extends T> BlockState setValue(Property property, V value) 18:39 < Grum> oh sorry, one too many >>'s 18:40 < Bibl> i made it T extends Comparable because all the implementations already implement Comparable 18:40 < Bibl> like the Integer, Boolean, and Enum one 18:40 < Grum> Not all 18:40 < Bibl> which doesnt? 18:40 < Grum> Enum? O.o 18:41 < Bibl> the enum class (extends Enum) implements Comparable 18:41 < Grum> errrr does it? :p 18:41 < Grum> could be! 18:41 < Bibl> public abstract class Enum> implements Comparable, Serializable { 18:41 < Bibl> ye 18:41 < Bibl> i am le bytecode master 18:41 < Grum> not much to do with bytecode 18:41 < Bibl> i did some type inference thing and i saw that when i was messing out 18:41 < Bibl> around* 18:42 < Grum> but erm we have our own types 18:42 < Bibl> GrumInteger? 18:42 < Bibl> Boolum 18:43 < Grum> Direction :p 18:43 < Bibl> public class PropertyDirection extends PropertyEnum { ? 18:44 < Bibl> public class PropertyEnum> extends PropertyHelper { 18:44 < Grum> Helper!? BUTCHERY! 18:44 < Bibl> ikr 18:44 < Bibl> is it just abstractproperty? 18:44 < Grum> AbstractProperty :p 18:44 < Grum> yeah 18:44 < Bibl> searge pls 18:44 < Grum> hehe 18:46 < Grum> anyhow; Bibl; https://gist.github.com/grum/3c14aff852a811ac319d 18:46 < Bibl> "@SuppressWarnings("unchecked")" knew it 18:47 < Grum> ofcourse 18:47 < Bibl> couldnt get it without 18:47 < Grum> you cannot get away with that when doing that 18:47 < Grum> some comments are also fun, you get runtime errors otherwise 18:47 < Grum> such fun! 18:48 < Bibl> wait then whats static class Product implements Iterable { 18:49 < Grum> pfftt 18:49 < Bibl> i tried 18:49 < Bibl> static class Product implements Iterable { 18:49 < Bibl> but its giving me errors 18:49 < Grum> ProductIterator extends UnmodifiableIterator 18:50 < Grum> what do you attemped to do? 18:50 < Grum> because you *really* shouldn't want to be touching those classes 18:50 < Grum> it will *really* fuck things up badly when you do 18:51 < Grum> It's basically the core of the whole blockstate systme 18:51 < Bibl> im putting all the generics in and then taking those classes out and using it for block stuff 18:51 < Grum> 'using it for block stuff' 18:51 < Bibl> for another project 18:51 < Grum> what? 18:51 < Grum> meh you can just recreate it without doing that :p 18:52 < Grum> we had to make it 'generate once' and '100% unmodifiable' 18:52 < Grum> that is why it is that hard 18:52 < Bibl> http://hastebin.com/dabogowoko.coffee i didnt realise how wrong this way 18:52 < Bibl> this was* 18:52 < Bibl> then i dumped the block state stuff 18:52 < Bibl> like the table ids 18:52 < Bibl> and there are thousands of different ids 18:53 < Grum> hihi enjoy 18:53 < Thinkofdeath> Are you trying to get the block states -> ids/data? 18:53 < Bibl> lmao 18:53 < Grum> it has a table of that statically 18:53 < Grum> for whatever maps 18:53 < Bibl> yea 18:54 < SopaXorzTaker> Developers! Developers!! Developers!!! Develo... uh. 18:54 < SopaXorzTaker> I have a problem 18:54 < Grum> afk 18:54 < SopaXorzTaker> how to make offline-mod UUID's 18:54 < Thinkofdeath> https://github.com/SpigotMC/BungeeCord/blob/master/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java#L425 convert into language of your choice 18:55 < Grum> you can basically do whatever 18:55 < Grum> but i do not think that is what we do 18:55 < Bibl> Grum: whats the point of 18:55 < Bibl> // Excess casting needed :( 18:55 < Bibl> return list.toArray((T[]) newArray(elementType, list.size())); 18:56 < Bibl> return (T[]) list.toArray((T[])newArray(elementType, list.size())); * 18:56 < Grum> oh god we do >.> 18:56 < Grum> Bibl: just that 18:56 < Bibl> why do you need that extra cast 18:56 < Grum> because of what it says there 18:56 < Grum> it is needed 18:56 < Bibl> oh i replaced it to that first line of code i posted 18:57 < Bibl> return list.toArray((T[]) newArray(elementType, list.size())); 18:57 < Bibl> i thought i was casting twice 18:57 < Grum> the lines i put comments at were needed 18:58 < Grum> because java sucks 18:58 < Bibl> for Product 18:58 < Bibl> private Product(Class clazz, Iterable[] iterables) { 18:59 < Bibl> it is Iterable[]? 18:59 < Bibl> or T[] 19:00 < Grum> private Product(Class resultType, Iterable[] iterables) { 19:01 < Bibl> is this a special mojangsta joke? 19:03 < Grum> ? 19:04 < Bibl> this is ridiculous lol 19:06 < Grum> as i said, do not use it 19:11 < Grum> was seriously not intended to be prodded at 19:13 < Bibl> how else can i implement block states though :/ 19:13 < Grum> why would you need to do that? ;D 19:13 < Grum> implement it yourself :) 20:04 < gurun> lol 20:44 < getName> Hey guys. I'm trying to create a python script to make a handshake with a minecraft server then connect a player to it. I didn't work with packets, protocols, etc. I need something like a tutorial with sending packets from python to a server. Thank you! 21:02 < Paprikachu> getName: http://wiki.vg/Protocol 21:03 < getName> Is there a tutorial in python or php about sending packets? 21:10 <+SpaceManiac> getName: you can probably find a tutorial by looking up 'python networking' or similar - MC protocol is TCP 21:10 <+SpaceManiac> you might also have luck finding an existing Python implementation of the protocol 21:10 < getName> Thank you! 21:11 < getName> Actually I want to learn about sending and receiving packets. 21:12 < Paprikachu> getName: this is probably relevant for you: http://wiki.vg/Protocol_Encryption 21:12 < Paprikachu> actually nvm wrong link 21:13 < Paprikachu> http://wiki.vg/Protocol_FAQ 21:13 < getName> Thx. 21:15 < Gjum> getName: also https://github.com/barneygale/quarry/ 21:17 < getName> Thank you guys for helping me. I'm going to try working on this. --- Log closed mar. janv. 27 21:23:59 2015 --- Log opened mar. janv. 27 21:24:08 2015 21:24 -!- Irssi: #mcdevs: Total of 163 nicks [1 ops, 0 halfops, 10 voices, 152 normal] 21:27 -!- Irssi: Join to #mcdevs was synced in 233 secs 22:06 < gamingrobot> aw he didnt hang around 22:37 < gamingrobot> oh thats weird, the client sends updatesign if they click done, or escape 22:38 < gamingrobot> oh thats even weirder, escape doesnt put nothing on the sign, it does the exact same thing done does 22:54 < Fenhl> yeah it's a neat shortcut 23:06 < gamingrobot> that feels wrong though --- Day changed mer. janv. 28 2015 00:41 < Bibl> does spigot not support the new doors? 00:42 <+SpaceManiac> new doors? 00:42 <+SpaceManiac> oh 00:42 <+SpaceManiac> uh, you'd have to ask the Spigot people 00:50 <+Amaranth> Any API for doors hasn't worked since 1.2 00:51 < Gjum_> Is there some documentation on how respawning a client works? I.e. the packets sent from death to being visible again to other players 00:51 <+SpaceManiac> Gjum_: send the Respawn packet, then basically everything else you'd send after Join Game 00:52 <+SpaceManiac> for other players, there's a death animation (in Entity Status, I think) you can play and then probably you want to remove and re-spawn the player 00:55 < Gjum_> the thing is, my client respawns but other players do not see him until they relog 00:56 < Gjum_> maybe I need to send a position packet, but I was wondering when and how 00:57 < Gjum_> uhh nvm, magically it is working now... ?! 01:03 < Bibl> same thing with me Gjum 01:10 < gamingrobot> its so odd when spock places blocks because it doesnt send the animation so blocks just appear 01:10 < Bibl> ncp blocks thatr 01:10 < Bibl> as noswing 01:10 * Bibl sleeps 01:10 < Gjum_> well just send the animation then... ^^ 01:11 < gamingrobot> I know its just something I figured the server would make and send not have the client do it 01:11 < gamingrobot> oh you placed a block ok *sends place block animation to all other clients* 01:11 < Gjum_> a lot of stuff the server should do is done by the client 01:12 < Gjum_> like checking for onGround 01:15 < gamingrobot> hey we are going to make sure you dont go though blocks but we are going to let you tell us if you are on the ground :P 01:16 < gamingrobot> just makes writing a bot framework that much more fun 03:03 <+md_5> Bibl2 doors work fine lol 05:44 <+SpaceManiac> hmm, looks like client can sometimes forget to send settings 06:02 < Xor_Bool-> SpaceManiac perhaps "forget" is putting it a but kindly 09:48 < WizardCM> don't you just hate it when the collision boxes are completely inaccurate? 09:48 * WizardCM points at armor stands 09:49 < Fenhl> WizardCM: you mean these things that don't have collision boxes? 09:50 < Fenhl> :P 09:50 < WizardCM> Fenhl: this apparently counts as hitting the collision box http://wizrd.tk/jc6nx3 09:51 < Fenhl> ok now I'm confused 09:51 < Fenhl> lol 09:51 < WizardCM> Fenhl: ok, how about this - this would hit the armor stand, not the grass block i'm looking at http://wizrd.tk/f1gefx 09:53 < Fenhl> ah 09:53 < Fenhl> hitbox 09:54 < WizardCM> ooooh, or how about this one - i can't hit the dirt http://wizrd.tk/yi608s 09:54 < WizardCM> this is making my runescape item drop system a pain in the butt xD 09:54 < WizardCM> especially combined with this http://wizrd.tk/92hx5c 11:18 < Paprikachu|work> so... how are negative numbers encoded in varints 11:19 < Paprikachu|work> does mc encode all the sign bits as well? 11:19 < shoghicp> bitshifting magic :) 11:19 < Fenhl> Paprikachu|work: you encode it as a signed int using two's complement, then encode that as a VarInt 11:20 < Paprikachu|work> des -1 result in a single byte with the value 0111 1111 or with 5 bytes 11:20 < Paprikachu|work> does 11:20 < Paprikachu|work> actually nevermind 11:20 < Fenhl> it's a VarInt right? not a VarLong or whatever 11:20 < Paprikachu|work> that would be ambiguous 11:20 < Paprikachu|work> it has to be 5 bytes 11:21 < Fenhl> yeah it is 11:21 < Paprikachu|work> what about the leftover bits 11:21 < Paprikachu|work> are the sign bits, yero bits or irrelevant 11:21 < Fenhl> 0 11:21 < Paprikachu|work> *z 11:21 < Paprikachu|work> mh, ok 11:21 < Paprikachu|work> thanks# 11:22 < Fenhl> (or at least they should be. If they're not the wiki is wrong) 11:23 < Paprikachu|work> that makes my encoding very simle actually 11:23 < Paprikachu|work> just gotta convert signed to unsigned 11:38 < angal> Hello, I'm server. When i spawna player, at (8, 26, 8), client tps at (8.5, 65, 8.5), then fall down few blocks and after then tp's at my coords. 11:38 < angal> All packets exchange - http://pastebin.com/MbnXGHyp 11:39 < angal> Is it intended behaviour of client, or i'm doing something wrong? 12:26 < ackpacket> There are hacked clients that do a .enchant, and end up loading an item with a bunch of rediculous enchantments. They require the player to be in creative of course. I logged the packets sent and it looks like all they are doing is sending a 0x11 with the inventory window as the clicked window, and the slow follows a range of numbers over the next few packers 12:27 < ackpacket> e.g. Client: 0x11 0x00 0x10, client: 0x11 0x00 0x13 12:27 < ackpacket> What explains this behavior? 12:29 < Thinkofdeath> They most likely use Creative Inventory Action not the Enchant Item packet 12:29 < Thinkofdeath> You sure your logging is correct? 13:05 < ackpacket> Thinkofdeath: yup, 0x11 13:05 < ackpacket> on 1.7.2 13:06 * Thinkofdeath shrugs 13:06 < Thinkofdeath> I don't remember that far back 13:06 < ackpacket> my theory is that the server somehow calculates an enchantment based on slot number, but has no guard against slot numbers as high as 127 13:55 < angal> Does item have metadata and should spawn as object? 15:02 < angal> Yes... Ok. 15:25 < gamingrobot> why is the entity id in Join Game different from the one in Spawn Player? 15:29 < gamingrobot> ohhh because Spawn Player is another player appeared 17:44 < SopaXorzTaker> shoghicp, hello 17:44 < SopaXorzTaker> congrats for being a Mojangsta! 18:50 < Bibl> anyone here have their own client?> 18:51 < Grum> i do! 18:51 < Bibl> are you able to connect to 18:51 < Bibl> play.buildersunite.net 18:51 < Bibl> my client just hangs 18:52 < Bibl> no timeout or anything 18:52 < Grum> you know it is vanilla right? ;D 18:52 < Bibl> ye 18:52 < Grum> i cannot connect unless i know the version :p 18:52 < Bibl> 1,8 18:52 < Bibl> 1.8 18:52 < Grum> there. 18:53 < Bibl> grumpls 18:53 < Grum> i jsut connected? 18:53 < Bibl> yeah 18:53 < Grum> works fine 18:53 < Bibl> my client cant connect to this server 18:53 < Bibl> all other servers work fine 18:53 < Grum> your client sucks 18:53 < Bibl> i own minecraft noob 18:54 < Bibl> we have expert programmers 18:54 < Bibl> like botch and brum 18:54 < Bibl> beb 18:55 < Bibl> i cant figure out why this isnt working omg 18:55 < Grum> l2code 18:55 < Grum> l2mc 18:56 < Grum> l2network 18:56 < Grum> l2internet 18:56 < Bibl> extreme couldnt handle it 18:57 < dx> too extreme for him 18:57 < Bibl> see this? https://www.youtube.com/watch?v=A3ytTKZf344 18:58 < Bibl> seen* 19:00 < dx> that was highly educative thanks Bibl 19:01 < Bibl> stupid jelly witch 19:04 < Bibl> "Failed to establish connection." thanks netty 19:34 < Bibl> if (!future.isSuccess()) { 19:34 < Bibl> future.cause().printStackTrace(); 19:34 < Bibl> } 19:34 < Bibl> Failed to establish connection.java.lang.NullPointerException 19:34 < Bibl> at org.topdank.minenet.lib.network.TcpClient.connect(TcpClient.java:114) 19:34 < Bibl> thanks netty 19:34 < Bibl> "Failed to establish connection." 19:37 < Grum> that is what it knows :) 19:50 < Bibl> ok apparently java.nio.channels.UnresolvedAddressException 20:19 < Bibl> https://a.pomf.se/dbrnjx.png lol wot 20:32 < Grum> hahahaha 20:32 < Gjum> they think your bot has a dns 20:35 < Bibl> i dont even know what that means 20:37 < Grum> neither do the people who banned you 20:38 < Bibl> we werent even doing anything lol 20:38 < Bibl> that server had some srv ip lookup thing 20:38 < Bibl> so we couldnt connect with its ip 20:40 < Grum> that is quite normal? 20:40 < Grum> i guess you have a poopy client? :D 20:41 < Bibl> i dunno my friend said something about a/cname w/e blah blah blah 20:48 < gamingrobot> Bibl: maybe they think your playing mc though dns http://code.kryo.se/iodine/ :P 20:48 < Bibl> i have a feeling they dont know what means lol 20:48 < Bibl> what that* 21:09 < Xor_Boole> so I presume we'rew getting an api for spooper data, or did I missread dinnerbro's tweet? 21:18 < dx> most likely just a torrent 21:25 < Grum> probably not raw data 21:25 < Grum> you are heavily underestimating how much it is 21:25 < Xor_Boole> Grum meh, /something/ would be nice 21:25 < Grum> probably likely the graphs themselves 21:25 < Dinnerbone> We'll give access to some charts and parsed data, and maybe raw data every now and again if anyone can prove they can actually use it for something. :D 21:26 < Grum> raw data seriously is a lot :) 21:26 < Xor_Boole> Dinnerbone something something advertising and money-making schemes something something 21:26 < Xor_Boole> Grum in the order of...? 21:26 < Grum> 100gb/day of raw data 21:26 < Xor_Boole> so that's why amazon hates you guys 21:26 * Xor_Boole runs 21:26 < Grum> hmm wait that seems not a lot 21:27 < Grum> hehe 21:27 < Grum> Dinnerbone: what was the packed size? something like 400mb/hr right? 21:27 * Xor_Boole checks snooper datagramthiny 21:27 < Dinnerbone> I just remember it was 15GB 1 day avg when individually compressed. 21:28 < Dinnerbone> So / 24 / 2 21:28 < Xor_Boole> did I seriously just search wiki.vg on wiki.vg? 21:28 < Grum> yeah sounds more like it 21:28 * Xor_Boole jostles head 21:28 < Grum> so around 300gb when you uncompress it 21:29 < Xor_Boole> anyways, an API I'd like to see is a) list of unique responses for snooper requests (probably the ones that have repeats over some threshold) and count for response time over time interval 21:29 < Grum> so really not that much, around ~110TB :0 21:30 < MrARM> wow 21:30 < Xor_Boole> e.g. request a list of java versions, then request the number of people with a version over an interval 21:30 < MrARM> was it like that earlier? 21:30 < Grum> per year sorry ;D 21:30 < MrARM> I think you gave raw data earlier, didn't you? 21:31 < Grum> Xor_Boole: we have those graphs yes 21:31 < Dinnerbone> Yes, they are still available on the sites 21:31 < Dinnerbone> The format has changed since then, however, and obviously the amount of data has gone up. 21:31 < Xor_Boole> Grum will they be available in a json form? 21:31 < Xor_Boole> that's literally all I'm interested as far as snooper data. most is pretty much useless if you guys already do funneling for us 21:31 < Grum> not sure, Dinnerbone, what is planned! 21:32 < Grum> just exposing our graphs externally? 21:32 < Dinnerbone> The raw data is linebreak delimited json objects 21:32 < Xor_Boole> well, I'm not worried about json-based APIs given how much you lurve json 21:32 < Xor_Boole> personally I'd like not to have to parse svg graphs 21:32 < Dinnerbone> XML it is! 21:32 < Xor_Boole> but that's just taste I supp- 21:32 < Xor_Boole> oh fuck you 21:32 < SinZ> ughhh 21:32 * Xor_Boole gives up 21:33 < Grum> no! fixed with aligned truncated fields! 21:33 * Xor_Boole flips a table at dinnerbone 21:33 < Dinnerbone> A SOAP endpoint. :D 21:33 < Grum> *width 21:33 < Grum> mmm SOAP :p 21:33 < Xor_Boole> you've been using maven for too long 21:33 < Dinnerbone> Haha since forever 21:33 < Xor_Boole> #sbtmasterrace 21:33 < Xor_Boole> you guys use maven in-house correct? 21:33 < Dinnerbone> I can't remember the last time I touched an xml file 21:33 < Xor_Boole> or is it gradle? 21:33 < Dinnerbone> Was probably when I accidentally opened a docx file in sublime 21:33 < Dinnerbone> :D 21:34 < Dinnerbone> Or whichever of those obscure formats is xml 21:34 < Xor_Boole> docx is xml? I swear it's a binary format 21:34 < Xor_Boole> Dinnerbone svg I think? 21:34 < Thinkofdeath> I thought docx was a zip of xml files? 21:34 < MrARM> docx is afaik an zip 21:34 < Xor_Boole> svg is xml because it was desinged by cavemen 21:34 < Xor_Boole> Thinkofdeath > implying anyone gives a shit about docx 21:34 < MrARM> no, because it was done for html 21:35 < Xor_Boole> xml is still barbarian 21:35 < Xor_Boole> remember that json-as-xml monstrocity? 21:35 < MrARM> Also, dammit thinkofdeath was quicker 21:35 < Grum> html is xml! 21:35 < Xor_Boole> Dinnerbone wanna make the modding API executable json (not js) as xml? 21:36 < Grum> Xor_Boole: that will be asm 21:36 < Xor_Boole> yey asm! 21:36 < Grum> oh and it is done 21:36 < MrARM> With instructions as XML tags! 21:36 < Grum> didn't you notice? you can do anything with asm! 21:36 < Xor_Boole> Grum ostensibly yes, but there's no native loading system 21:36 < Xor_Boole> until you have a loading system there is no API 21:36 < Xor_Boole> resource pack loading doesn't count 21:37 < MrARM> just make a thing loading all binaries from a folder 21:37 < Grum> we have the launcher 21:37 < Grum> that loads stuff ;) 21:37 < MrARM> you'll make Xor_Boole happy 21:38 < Xor_Boole> Grum you'd be a good lawyer. or a bad one, depends on the definition 21:38 < gurun_> Grun, quick question. Are you keeping the world-generators for PC and PE fairly the same? 21:38 < gurun_> Grum: ^ 21:38 < Grum> no, but the goal is to have them be the same eventually 21:38 < MrARM> these are not same afaik 21:38 < Grum> well they are fairly the same now 21:38 < Grum> not 'the same' :p 21:39 < MrARM> biome list differ a bit I think 21:39 < MrARM> also, nether and the end gen, is it implemented? 21:39 < gurun_> yeah, things like that .. but i was after the "goal". So you gave the "right" answer. Thanks. 21:40 < MrARM> also, do you also work on PE? 21:40 < gurun_> MrARM: i'm guessing it is not a huge office. Swedish sallaries are way too high :-P 21:41 < gurun_> (even though not close to Copenhagen i have to say) 21:42 < Grum> swedish salaries are high? 21:42 < Grum> man i should move to sweden then 21:43 < MrARM> lol 21:43 < Grum> gurun_: got a number in your mind that you consider high? :) 21:44 < Xor_Boole> Grum I'd like to move to sweden. you guys have less snow 21:44 * Xor_Boole looks out the window at the blizzard 21:44 < gurun_> 90kDKK last job, this job a bit lower. I have about double as a developer in DK as in SE. I have best both worlds since i live in Malmö :-P 21:44 * Xor_Boole looks back at his computer screen 21:45 < gurun_> so high in sweden, around 50k 21:45 < Grum> Not sure how 50k is high :/ 21:46 < MrARM> right, you get 500k 21:46 < Grum> if only lol 21:46 < gurun_> i never made 50k in SEK. 21:46 < gurun_> but .. i was in small towns. 21:46 < Grum> so why are you making ~100k SEK in dk? :D 21:46 < gurun_> i guess SHOLM is a bit higher. 21:47 < gurun_> 4 milion people 21:47 < gurun_> none working. 21:47 < gurun_> they need us. 21:47 < gurun_> bad 21:47 < gurun_> but when i started, it was almost 20% higher than now. SEK has been growing a bit too strong for my liking :-P 21:48 < Grum> fading now though 21:48 < gurun_> i hope so (traiter I am) 21:49 < gurun_> hmm .. that turned into a combination of trader and traitor 21:49 < Grum> hehe 21:50 < gurun_> but i did medical stuff earlier, and now investment banking. SO I guess i found lucrative business. 22:00 < Xor_Boole> sigh, school starts next month, can we please get a snapshot before school starts so I can try to break /something/? 22:01 < gamingrobot> *drools over all the data* 22:02 * Xor_Boole catches the drool in a cup and sends it the cloning facility 22:03 < gamingrobot> hahaha 22:03 < gamingrobot> I am either doing something wrong or spigot handles block place / block break differently from vanilla 22:04 < Xor_Boole> gamingrobot degine "something wrong" 22:07 < gamingrobot> If I send held item of -1 to a spigot server the block still places, if I do it on a vanilla server the block doesnt place 22:08 < gamingrobot> ohhhh I know why its not working 22:08 < Gjum> -1 works for me, what did you do wrong? 22:08 < gamingrobot> the slot encoding code is just encoding to null 22:08 < Gjum> ^^ 22:08 < gamingrobot> is Gjum == Grum 22:09 < Gjum> nope 22:09 < Gjum> actually my nick is older than Grum works at mojang 22:11 < Gjum> so no reference there 22:11 < Xor_Boole> Gjum that sounds like something Grum would say when he's in a trolly mood 22:11 < gamingrobot> so on a vanilla server would work with held item of -1 if I encode the slot correct? 22:12 < Thinkofdeath> gamingrobot: what version of minecraft? 22:12 < Gjum> 1.8 yes 22:12 < gamingrobot> 1.8.1 22:12 < gamingrobot> what version did server side inventories appear? 22:12 < SinZ> Grum: Do you guys have a TV showing realtime stats yet? 22:13 < Thinkofdeath> huh I thought I made the handling more vanilla like in 1.8 for block placement 22:13 < Xor_Boole> SinZ it's mojang, it's a dance floor 22:13 < gamingrobot> If held item ends up being null, spigot still places the block, if I do that for a vanilla server it doesnt work, so I guess spigot just does extra checks 22:14 < gamingrobot> I just dumped the packet data with protocollib and figured out that it was null 22:14 < Xor_Boole> anyone want a blizzard? I'm kind of tired of mine 22:14 < Xor_Boole> then again so is everyone in boston at this point 22:18 < Thinkofdeath> gamingrobot: odd, as far as I can tell both spigot and vanilla ignore the itemstack sent in that packet apart from deciding whether it will send an inventory update back 22:18 < gamingrobot> I was talking about held_item not itemstack 22:19 < gamingrobot> http://wiki.vg/Protocol#Player_Block_Placement The Held Item there 22:19 < Thinkofdeath> Held item is a 'Slot' type, which is an itemstack with bukkit's names :P 22:19 < Gjum> isnt there only one field for that? 22:20 < Gjum> wiki.vg says 'Held item', and setting it to -1 works at least in 1.8.1 vanilla 22:20 < gamingrobot> yea I was setting it to null because my encoding was messed up 22:27 < gurun_> Anyone here doing professional MC hosting? 22:27 < Gjum> professional as in? multiple servers, many users? 22:27 < Gjum> custom plugins? 22:29 < gurun_> hosting, servers. 22:29 < gurun_> like lbsg 22:34 < MrARM> so plugins, servers, users 22:43 < gamingrobot> nvm the slot encoding is correct, protocol lib prints a held item of -1 as null 22:43 < gamingrobot> go figure --- Day changed jeu. janv. 29 2015 00:12 < gurun_> MrARM: well, plugins server .. all that, yes. The real question was; Is world saving necessary for a pro host when they only basically offer PVP 00:16 < jython234> gurun_: lol 00:35 < gurun_> hmm.. i think i missed the fun 06:42 < Grum> SinZ: no :( we have an internal page though 06:43 < SinZ> Aww 06:43 < Grum> 'soon' tm 09:58 < prplz> players with 1 letter usernames just appeared on my server... 09:58 < prplz> cause for concern? 09:58 < prplz> this one: https://api.mojang.com/users/profiles/minecraft/r 10:03 < Dinnerbone> There are 1 letter usernames, you just can't make them anymore. 10:03 <+md_5> Dinnerbone hehehe, he has "ho", "r" and "ny" on his server right now 10:05 < Dinnerbone> Nice. 10:06 < gurun> I think the order is "NY r ho" 10:07 < prplz> http://prntscr.com/5yg54c 10:07 < prplz> nope 10:16 < Dinnerbone> Actually using our authentication servers? 10:16 < Dinnerbone> All 3 accounts are legit, it's possible someone is just being funny. 10:17 < Fenhl> legacy: true ? 10:17 < prplz> yes it's real Dinnerbone 10:17 < Fenhl> does that mean it's not a Mojang account? 10:17 < prplz> Fenhl it means login with username, not email 10:18 < prplz> non-migrated 10:18 < Fenhl> yeah 10:18 < Fenhl> that's what I thought 10:20 < SinZ> I dont see why it cant be migrated? 10:21 < SinZ> just decided not to I guess 12:24 < ScruffyRules> Hey Dinnerbone. *Nudge* Why are some Server unconnect-able? 12:24 < ScruffyRules> xD 12:30 < jast> how about you make your question even more vague 13:03 < SinZ> jast: why is there a bug? 13:13 < jast> SinZ: because of reasons 14:11 < SopaXorzTaker> Hey! Who writes a server, can provide a dummy chunk in 0x21 packet please 14:11 < SopaXorzTaker> *need for testing 14:33 < Bibl> half day at school 14:33 < Bibl> [13:28:48] Вiы: left at 12:25 14:33 < Bibl> [13:28:49 | Edited 13:28:52] Вiы: walked home 14:33 < Bibl> [13:28:54] Вiы: now is 13:28 14:33 < Bibl> god bless 14:39 < gamingrobot> SopaXorzTaker: you want the raw bytes? 14:39 < SopaXorzTaker> yeah 14:43 < gamingrobot> SopaXorzTaker: https://gist.github.com/gamingrobot/406ad69ac7361d0b2074 14:44 < gamingrobot> not entirely sure what the p's are 14:44 < gamingrobot> its a python byte string 14:46 < SopaXorzTaker> did this originate from a vanilla server? 14:46 < SopaXorzTaker> so, this is a dummy chunk 14:47 < gamingrobot> it originated from a spigot server, one sec 14:50 < gamingrobot> SopaXorzTaker: https://gist.github.com/gamingrobot/406ad69ac7361d0b2074 14:50 < gamingrobot> thats from a vanilla server 14:50 < gamingrobot> its from a empty flatland map, hope it helps 14:50 < SopaXorzTaker> that doesn't generally matter for me :D, but, is this from a 0x21 packet 14:51 < gamingrobot> yup 14:51 < SopaXorzTaker> okay :D 14:52 < SopaXorzTaker> thanks 14:52 < SopaXorzTaker> I'm writing a server in Python 14:52 < SopaXorzTaker> shit-coded, but working xD 14:53 < gamingrobot> https://github.com/nickelpro/spock 14:53 < gamingrobot> might help with testing 14:53 < gamingrobot> I should probably update the demo 14:55 < SopaXorzTaker> in my code, packet fields are stored in a dict (pwee!) 14:55 < SopaXorzTaker> and decoded manually (yuck!) 14:57 < SopaXorzTaker> gamingrobot, also, what fields the packed had before the *painful* dissection? 14:57 < gamingrobot> ? 14:57 < SopaXorzTaker> poor little piece of data... I meant 14:57 < gamingrobot> refresh the gist 14:57 < SopaXorzTaker> Before you decoded it 14:57 < gamingrobot> oh 14:57 < SopaXorzTaker> It had additional fields 14:58 < SopaXorzTaker> oh! 14:58 < SopaXorzTaker> Thanks 14:58 < gamingrobot> yea I updated the gist with more information about the packet, the data section is the actual chunk data 15:01 < SopaXorzTaker> oh, I see! 15:14 < SopaXorzTaker> hey gamingrobot, can you please provide the full log of you connecting to server like this with authentihication packets censored? 15:16 < gamingrobot> yea sure one sec 15:22 < gamingrobot> lol gist tab crashed while trying to paste it in 15:22 < SopaXorzTaker> gamingrobot, 340 have passed 15:22 < SopaXorzTaker> xD 15:22 < SopaXorzTaker> ok 15:22 < gamingrobot> my router reset right after you sent that message 15:23 < SopaXorzTaker> D: 15:25 < gamingrobot> SopaXorzTaker: do you need the 0x21 packet in this dump? 15:25 < SopaXorzTaker> yeah 15:25 < SopaXorzTaker> I need the whole process 15:31 < gamingrobot> oh thats why gist broke, I tried to paste 20mb of text 15:31 < SopaXorzTaker> ah 15:35 < gamingrobot> Warning really really large file http://indium.gamingrobot.net/packetsbatman.txt 15:39 < gamingrobot> SopaXorzTaker: that work? 15:41 < SopaXorzTaker> richtig! 15:41 < SopaXorzTaker> thanks 16:21 < SopaXorzTaker> damn 16:21 < SopaXorzTaker> the client waits for MapChunkBulk 16:21 < SopaXorzTaker> I'm lazy to encode it' 16:21 < SopaXorzTaker> :< 17:26 < Bibl> https://gist.github.com/TheBiblMan/e6e0399c6504bf7147a5 i dont understand why the x and z values are ANDed 17:31 < dx> uh, getting the x/y/z within a 16x16x16 chunk? 17:53 < gurun> Bibl: did you understand it or .. do you want the explanation? 17:53 < gurun> it was actually much smarter than i did :-) 17:54 < Bibl> why would it be & 15 rather than % 17:54 < Bibl> because if you're trying to get the block location as a chunk offset 17:54 < Bibl> surely it would be % 16 ? 17:54 < gurun> i believe it is because you take an absolute world coordinate, and regardless where you are, the last 4 bits will always tell where within a chunk you are 17:54 < Bibl> huh 17:54 < Bibl> ok 17:55 < gurun> but i think that would a LOT faster than doing the math on it 17:55 < Bibl> im doing https://gist.github.com/TheBiblMan/363099554d6c66c7c568 17:56 < gurun> hehe, i love the shit math going on in Minecraft :-) 17:56 < Bibl> hmm, code still works :/ 17:57 < gurun> basically it is doing the same as you chunkbaseX - x 17:57 < gurun> sorry x-chunkbasex 17:57 < gurun> damn, now i have to rewrite all the code to do that trick instead :-P 17:57 < Bibl> how are you doing it? 17:57 < gurun> math :-) 17:58 < gurun> i don't use >> 4 and stuff much. 17:58 < gurun> it makes the code unreadible for normal coders 17:58 < Bibl> code? :) 17:58 < gurun> hehe 17:59 < gurun> unfortunat for the rest of us, whoever wrote the original code that everybody else is copying from absolutely loved shit math 17:59 < gurun> haha s/shit/shift/ but .. point being the same 18:01 < Bibl> is shifting bad? 18:01 < Bibl> i was doing divinding before and someone said it was faster to >> instead 18:01 < Dinnerbone> Use constants, more readable! 18:01 < Bibl> dividing* 18:01 < Bibl> Dinnerbone: constant for the number 4? 18:02 < Dinnerbone> Yes, what is 4 here? What does it mean? Why not 3? 18:02 < Bibl> because 4 is better than 3 18:02 < Dinnerbone> Ah, so 5! :D 18:02 < gamingrobot> because 4 is randomly picked by a dice roll 18:02 < Bibl> do they not teach that in school where you're from? 18:02 < Bibl> nono, you need to pay attention is number choosing class 18:02 < Bibl> in* 18:02 < Dinnerbone> No, our schools were not for four 18:02 < Bibl> oh 18:03 < Bibl> my school curiculum is based on the number 4 18:03 < Dinnerbone> Must be expensive, the three courses were free. 18:04 < Dinnerbone> My parents didn't want me taking the five ones, it didn't jive. 18:04 < Bibl> kinda but my parents studied four at university so they're doing quite well 18:06 < Bibl> is it better to do 18:06 < Bibl> map.remove(id) 18:06 < Bibl> or do a map.contains first 18:07 < Bibl> is hashmap.remove expensive when you try to remove a key that isnt there? 18:07 < gamingrobot> seems like it it would be less expensive becuase it doesnt have to do anything 18:07 < Bibl> thanks 18:08 < gamingrobot> but I am not a java expert :P 18:08 < Dinnerbone> Contains, remove and get all need to actually dig into its records to get to the key, whatever your intentions 18:08 < Dinnerbone> It's actually more expensive to contains and get, or contains and remove, because you're asking it to go find the record, then do nothing, then go find the record and remove it. 18:17 < Bibl> zoot 18:17 < Bibl> die 18:17 < Bibl> no1 loves u m8 18:18 < _zoot> :'( 18:29 < dx> so rude 18:29 * dx hugs _zoot 18:30 < SopaXorzTaker> Thanks Dinnerbone for the server check tool 18:30 < SopaXorzTaker> :) 18:31 < Gjum> Dinnerbone: is the server check tool open source btw? 18:31 < dx> https://github.com/Dinnerbone/mcstatus/ ? 18:31 < Gjum> could get a better color code parsing mechanism imo 18:31 < Gjum> ooo thanks :) 18:32 < gamingrobot> I need to write one of those for a rcon tool 18:32 < SopaXorzTaker> dx, yeah 18:51 < gurun> Bibl: remove is usually a very expensive operation except for linked lists impl, stack and queue 18:52 < Bibl> im talking maps 18:52 < gurun> usually the same cost as Add-not-to-the-end 18:53 < gurun> sorry, when it starts with has in .net it's usually not a map :-P 18:53 < gurun> was one of the most confusing shit when migrating my brain from java to .net 19:04 < SopaXT> Oh 19:04 < SopaXT> What if I violate the EULA? 19:05 < SopaXorzTaker> Will Mojang DDOS my server if I will ignore their request? 19:05 < SopaXorzTaker> ->no hate, jus tinterested 19:07 < _zoot> SopaXorzTaker: if you violate the EULA a fat swedish man is going to come break your kneecaps 19:08 < SopaXorzTaker> with a baseball bat 19:08 < SopaXorzTaker> D: 19:09 < Xor_Boole> 13:07 <_zoot> [12:58:32] SopaXorzTaker: if you violate the EULA a fat swedish man is going to come break your kneecaps 19:09 < Xor_Boole> incorrect 19:09 < Xor_Boole> first you'll get a teary-eyed email from marc 19:09 < Xor_Boole> /then/ they'll send the viking lawyers after you 19:09 < _zoot> "Stop! You violated the EULA. Pay the court a fine or serve your sentance." 19:09 < Xor_Boole> I'd be really, really surprised if mojang didn't send a light warning first 19:10 < Xor_Boole> much cheaper and easier than deploying the calvary 19:10 < SopaXorzTaker> I'll use 'DA TORZ.IM SECUR AND U LAMER HAXR NERD LOLOLOL' 19:10 < _zoot> make sure you wear a hoodie and conceal your face when you use the computer 19:10 < SopaXorzTaker> But what if I use a anonymizer 19:10 < SopaXorzTaker> gluing my webcam 19:10 < Xor_Boole> I called someone a nerd on facebook the other day. I was told I can't talk. 19:10 < SopaXorzTaker> and wearing a tinfoil hat 19:11 < Xor_Boole> apparently I'm #foreveranerd 19:11 < _zoot> then install a source-based linux distribution and some unheard of windowmanager + green and black terminal theme 19:11 < _zoot> then you can be 1337 anonymous hacker: the violator of EULAs 19:11 < Xor_Boole> _zoot look at my term http://puu.sh/fccEV/c720c19dba.png 19:11 < SopaXorzTaker> so do they have rights to DDOS my little odroid hosting aminecraft server? 19:11 < Xor_Boole> I am of many leet haxor 19:12 < _zoot> do you not use any plugins for irssi? :< 19:12 < Xor_Boole> I haven't had the need really 19:12 < Xor_Boole> mostly I write scripts whenever I need them 19:12 < Xor_Boole> which is rare because perl is literally hitler 19:13 < Xor_Boole> perl was invented by the nazis to kill allied programmers, this is fact 19:13 < Xor_Boole> history channel said so 19:13 < SopaXorzTaker> perl is asperger's 19:14 < _zoot> if you were a real man you'd write a minecraft client in elisp and then play minecraft in emacs 19:14 < SopaXorzTaker> um, on 19:14 < SopaXorzTaker> *no 19:14 < Xor_Boole> _zoot > emacs 19:14 < Xor_Boole> > real man 19:14 < Xor_Boole> I'm done talking to you 19:14 < _zoot> just look at richard stallman, he's a real man 19:14 < _zoot> smell is smelly smell 19:14 < _zoot> his unwashed beard 19:14 < _zoot> it just screams manly 19:14 < Xor_Boole> my beard is better 19:14 * Xor_Boole strokes his neckbeard 19:15 < SopaXorzTaker> play minecraft in emacs... I would need a virtual ascii-art windowmanager with direct rendering 19:15 < Xor_Boole> SopaXorzTaker stop 19:15 < Xor_Boole> please stop 19:15 < SopaXorzTaker> >:D 19:15 < Xor_Boole> emacs is evel 19:15 < Xor_Boole> it can die in hell with PHP 19:15 < barneygale> SopaXorzTaker, if you're interested, I have a python server implementation here: https://github.com/barneygale/quarry/blob/master/quarry/net/server.py 19:16 < _zoot> as a saint in the church of emacs, it is my job to cleanse the world of vi-using heathen 19:16 < SopaXorzTaker> Well, guys, got to go 19:23 < Gjum> barneygale: i was wondering why you dropped barneymc and started quarry, any deep thoughts involved? 19:23 < barneygale> barneymc is fucking ancient 19:23 < barneygale> I thought I deleted that repo... 19:23 < Xor_Boole> barneygale that's what she said 19:23 * Xor_Boole shows himself out 19:23 < Gjum> well you didnt ^^ 19:24 < barneygale> I had other implementations before that too - one called Ashitaka is one 19:24 < Gjum> and spock is actually based on that 19:24 < barneygale> spock? 19:24 < Gjum> the thing gamingrobot works on 19:24 < barneygale> oh 19:24 < barneygale> I don't know anything about this hah 19:24 < dx> https://github.com/nickelpro/spock 19:26 < barneygale> you fkn takin my code bithc? 19:26 < barneygale> ima dmca yr ass 19:26 < dx> lolol 19:26 < Gjum> actually you can, its unlicensed 19:26 < barneygale> yeah, I know 19:27 < barneygale> I just checked :P 19:28 < Xor_Boole> actually, I just realized an important use-case for name changes I don't think has been brought up 19:28 < barneygale> that's insane 19:28 < barneygale> I forgot about barneymc completely 19:28 < barneygale> nice one nickelpro and gamingrobot! 19:28 < Xor_Boole> there needs to be a way to move a username between two accounts without the risk of it being taken 19:28 < barneygale> glad to be of service 19:28 < Gjum> atm thats impossible i think 19:28 < Xor_Boole> Gjum well yes 19:29 < Xor_Boole> which is why I'd /really/ like to poke someone about this 19:29 < Xor_Boole> since it seems like an important use case for users of multiple accounts 19:29 < Xor_Boole> then again multiple accounts/email would be nice too... 19:30 < Xor_Boole> sigh, where's jelbring when you need to shout at him 19:30 < Gjum> you actually could just give someone your (prev. changed) access tokens to that account 19:30 < Xor_Boole> Gjum erm wat 19:31 < Gjum> ahh right, youd have to give them your other mojang-acc stuff too... 19:31 < Gjum> still was thinking minecraft account 19:31 < Xor_Boole> the main use case is that I want to grab a certain user that will be freed from nonpremium accounts, but I want to grab it with one of my alts 19:31 < Xor_Boole> and then I'd like to move it to my main 19:32 < Xor_Boole> mostly so I don't lose `Xor_Boole` 19:32 < Xor_Boole> I'm debating proding djinnibone about this 19:33 < Xor_Boole> he's not particularly relevant to the issue but I don't have contacts with the web backend people 19:33 < Gjum> at least we could make sure they thought about it 19:35 < Xor_Boole> Gjum you wanna poke him? I'm not a fan of doing it 19:35 < Xor_Boole> personally I don't think they give a shit 90% of the time but I still don't like doing it 19:40 * Xor_Boole jabs Thinkofdeath 19:40 < Xor_Boole> wanna jab dinny for me? 19:56 < Bibl> https://www.youtube.com/watch?v=M8L8F8xzQQA so good 20:24 < gamingrobot> barneygale: you going to stick a license on it? 22:51 < Xor_Boole> is there /any/ reasonable reason we're limited to 65k maps per server? 22:51 < Xor_Boole> switching to int would be trivial since maps already have their own custom tags 22:52 < Xor_Boole> I'm reminded of this every time some kid posts map art to reddit 22:54 < gamingrobot> There is a limit? 22:54 < Xor_Boole> yes 22:54 < Xor_Boole> maps are indexed by item damage 22:54 < gamingrobot> also when would you ever hit 65k maps 22:54 < Xor_Boole> which is the single most retarded thing ever 22:54 < Xor_Boole> gamingrobot map art 22:55 < Xor_Boole> the upper limit is just too small 22:55 < Xor_Boole> changing to int would square the size 22:56 < redstonehelper> has anybody ever hit the limit? 22:57 < Xor_Boole> redstonehelper shh 22:57 < Xor_Boole> I have a feature that would have on my server, i.e. single-use treasure maps 22:57 < Xor_Boole> I have to use a hack to use exactly one map and a billion per-player renderers 22:58 < Thinkofdeath> then re-use ids or something 22:58 < Xor_Boole> Thinkofdeath it's harder than you think 22:58 < redstonehelper> yeah, like caching 22:58 < Xor_Boole> maps might get wiped 22:58 < Xor_Boole> plus that's not really the use case I'm talking about 22:58 < Xor_Boole> I still think the limit is too small and the work required to increase it is also not /that/ bad 22:59 < Xor_Boole> mostly changing "short" to "int" in several places and some changes to ItemFilledMap 23:00 < Xor_Boole> https://twitter.com/Dinnerbone/status/560915074064584704 23:00 < Xor_Boole> pleb, String... args is where it's at 23:00 < Xor_Boole> dammit, wrong channel. this is your fault Thinkofdeath --- Day changed ven. janv. 30 2015 01:07 < gurun> INFO [MiNET.MiNetServer] - TT 0ms Ltcy=11ms 401 player(s) Pkt 29780/s ACKs 8501/s AvSize: 1268b Tput: 302.23Mbit/s 09:24 < gurun> is it true that vanilla java server can't really use multi-core processors to increase performance of one instance? 09:27 <+md_5> it uses multiple cores, just not for every aspect of the server\ 09:30 < gurun> "not for every aspect" would be as expected. 09:31 < gurun> i just read an article somewhere that claim that there is no point in running the server on a multicore machine because it wouldn't use it. So it had me go and investigate what java actually do with threading, and not. 09:32 < gurun> does java still have an upper memory limit if you run it on x64? 09:33 <+md_5> uh 09:33 <+md_5> its in the hundreds of gigabytes at least 09:34 < gurun> so it just follow the underlying limitations from the OS (windows have the same issue with 32). 09:35 <+md_5> Ive seen heaps in the hundreds of gigabytes 09:35 <+md_5> so I would assume anything is possible 09:35 <+md_5> I cant spot anything obvious in the code 09:36 < gurun> no, that doesn't have anything to do with the code. That would be the limitation of the JVM (max 2.5G on 32bit) 09:36 <+md_5> yes 09:36 <+md_5> Im reading the hotspot jvm code 09:36 < gurun> i just never used java on x64 so that's why i'm asking. I shifted to .NET before x64 was commodity 09:37 <+md_5> seems to be as large as the OS will let you mmap on your system 09:38 <+md_5> which basically depends on number of free pages 09:38 < gurun> ok, sounds fair. It was just a bit odd that Java with the announcement of Java 8 also declared that "now it is multicore enabled" .. eh. 09:38 < gurun> i mean Oracle. 09:38 < Frigolit> on windows that's the limit, but an executable can be marked as allowing allocating up to 3.5GB if it handles memory addresses properly 09:38 < Frigolit> otherwise it'll just crash :3 09:38 <+md_5> I can get a few hundred gigs on my 16gb system 09:39 <+md_5> gurun they are probably referring to specific aspects of garbage collection 09:39 < Frigolit> (32-bit windows) 09:39 <+md_5> java itself has had threads for two decades if not more 09:39 < gurun> Frigolit: yes, but i asked for 64 specifically 09:39 < Frigolit> yea on x64 there's no real limit 09:40 < gurun> md_5: yeah, I read that they have a completely new GC, suposed to be super performant. The last couple of weeks I have been truly amazed of how good GC is in .NET compared to what i remeber from my Java days. 09:41 < gurun> so a better GC "engine" would be like a revival of Java :-) 09:41 <+md_5> java gc only really started getting serious in 6/7/8 09:41 < gurun> i left at 5 :-) 09:42 < Frigolit> hehe 09:42 < gurun> at one point we highered the arcitect of weblogic to help my company sqeezzeee out the last bit of performance only through GC manipulation. He appearently was part of the team designing GC in Java for Sun. Learned a lot from that guy. 09:54 < gurun> Mojang us using A to host MC, righ. I read an article saying that it uses AS3 to store player and other data. S3 as I understand it is an object storage. Does that mean that it also stores worlds in S3? 10:13 < SinZ> ...Worlds are stored on the disk 10:13 < SinZ> ...Worlds are stored on the disk 10:54 < barneygale> gamingrobot, can do if you want, what would you prefeR? 11:00 <+AndrewPH> + 13:40 < gamingrobot> barneygale: just a MIT license if that's good with you, I just want to avoid confusion later 13:40 < barneygale> cool, will do it later 13:41 < gamingrobot> Ty --- Day changed sam. janv. 31 2015 01:18 < Bibl_> god damnit 01:18 < Bibl_> i was redesigning the block system 01:18 < Bibl_> well static block data system 01:19 < Bibl_> and turns out stairs, that have different state data, have the same values when converted to an int 01:20 < Bibl_> http://i.imgur.com/nF9WwsD.png 01:20 < redstonehelper> you didn't know this before? 01:21 < Bibl_> no i assumed that you would have a different value if they had different block data 01:22 < redstonehelper> I think you'll find the same with fence gates and fences 01:22 < redstonehelper> and cobble walls 01:22 < Bibl_> >.< 01:22 < Thinkofdeath> and redstone :) 01:22 < redstonehelper> oh yeah, definitely 01:22 < Bibl_> redstone doesnt need bounding boxes shhhh