18:17 < dx> AnotherOne confirmed for pbunny clone 18:17 < AnotherOne> lol 18:18 < dx> :P 18:18 <+pdelvo> the problem was that md_5 was teaching him and he was right :D 18:18 < AnotherOne> usage of java slyle in c may lead to disaster 18:18 < Demos> well OOP methods CAN be good in C code or not, just like that CAN be good in java or not 18:18 < dx> it's not really about "java", it's about "i don't want to hear what you're telling me" 18:19 <+pdelvo> in the files he was doing his world stuff he was reding packets... 18:22 < Not-001> [PartyCraft] SirCmpwn pushed 2 commits to master [+0/-0/±2] http://git.io/DBt9iw 18:22 < Not-001> [PartyCraft] aholmes c706255 - Fix typo. http://www.reddit.com/r/csharp/comments/1ez7e7/writing_c_code_from_within_minecraft_on_a_custom/ca5h03m 18:22 < Not-001> [PartyCraft] SirCmpwn 77b6dfc - Merge pull request #10 from aholmes/master Fix typo 18:29 < dx> ...why say "pull requests welcome" for that, lol 18:32 <+ammar2> to encourage other people to contribute 18:38 -!- Cay [~OlofLarss@s83-177-171-150.cust.tele2.se] has quit [Read error: Connection reset by peer] 18:40 < dx> it's a typo.. 18:51 -!- AnotherOne|2 [~kvirc@ip123-187.telenet.dn.ua] has joined #mcdevs 18:51 < AnotherOne|2> 123 18:51 < AnotherOne|2> [19:43:34] Vortality: Message_SuperLongClassNameRulesWtfNigga 18:51 < AnotherOne|2> oh 18:52 < AnotherOne|2> dat kvirc 18:53 < AnotherOne|2> 321 18:53 < AnotherOne|2> how to change name? 18:53 -!- AnotherOne [~kvirc@ip123-187.telenet.dn.ua] has quit [Ping timeout: 246 seconds] 18:53 -!- AnotherOne|2 is now known as AnotherOne 18:54 < dx> pro 18:56 < AnotherOne> sure 19:28 -!- zh32 is now known as zh32|away 19:34 < Not-001> [Craft.Net] SirCmpwn pushed 3 commits to master [+0/-0/±4] http://git.io/JQ-71Q 19:34 < Not-001> [Craft.Net] SirCmpwn a6468df - Fix #158 19:34 < Not-001> [Craft.Net] SirCmpwn 10d2208 - Merge branch 'master' of github.com:SirCmpwn/Craft.Net 19:34 < Not-001> [Craft.Net] SirCmpwn 05f5b3a - Drop inventory on player death 19:38 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+0/-0/±1] http://git.io/cng2-w 19:38 < Not-001> [Craft.Net] SirCmpwn 6e4ea7e - Fix death spamming when falling into the void 19:39 -!- Calinou [~Calinou@unaffiliated/calinou] has quit [Remote host closed the connection] 19:40 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+0/-0/±1] http://git.io/vJNXbQ 19:40 < Not-001> [Craft.Net] SirCmpwn 330e914 - Slowed down death by void 19:45 < Not-001> [Craft.Net] SirCmpwn pushed 3 commits to master [+0/-0/±5] http://git.io/L1UnBQ 19:45 < Not-001> [Craft.Net] aholmes 778c19a - Fix issue with players respawning under the map. This is done by adding the PlayerEntity.Height to Level.SpawnPoint. This change also changes storing the PlayerEntity.Height with the position when the user exits. Instead, I opted to add the height wherever needed. This has the effect of not dropping the user twice as high during respawn than during login. Issue #154 19:45 < Not-001> [Craft.Net] aholmes be3e34c - Correct whitespace 19:45 < Not-001> [Craft.Net] SirCmpwn 3303737 - Merge remote-tracking branch 'aholmes/master' 19:47 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+0/-0/±1] http://git.io/bX1oBQ 19:47 < Not-001> [Craft.Net] SirCmpwn b30f227 - Fix formatting issue with pull request 19:53 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 19:53 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 19:58 -!- GameMakerGm [~gamemaker@cpe-173-175-165-69.elp.res.rr.com] has joined #mcdevs 19:58 -!- GameMakerGm [~gamemaker@cpe-173-175-165-69.elp.res.rr.com] has quit [Changing host] 19:58 -!- GameMakerGm [~gamemaker@wikia/Gamemakergm] has joined #mcdevs 20:01 < Demos> hey, do you guys think bash trickery could be usefull when writing mod install scripts, I am trying to decide if I want to require windows users to install bash or to just say "only use simple commands in your scirpts that will work in both bash and powershell" 20:01 -!- BizarreCake [~BizarreCa@46.121.251.157] has quit [Ping timeout: 245 seconds] 20:18 -!- GameMakerGm [~gamemaker@wikia/Gamemakergm] has quit [] 20:19 -!- kryton [~kryton@64.187.161.193] has joined #mcdevs 20:21 < kryton> hi.. newb here... i was wondering if there was a python library (or even java) that understands the minecraft protocol. I want to write a server-admin tool to run a single-server 20:21 < kryton> (or better yet) is there a OSS tool out there already? 20:26 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+0/-0/±1] http://git.io/_ae2tg 20:26 < Not-001> [Craft.Net] SirCmpwn 8277e52 - Removed test code from flatland generator 20:26 < AnotherOne> did you look here? http://wiki.vg/Library_List 20:27 < Not-001> [PartyCraft] SirCmpwn pushed 2 commits to master [+0/-0/±4] http://git.io/AvkOqQ 20:27 < Not-001> [PartyCraft] SirCmpwn 773c243 - Update Craft.Net submodule 20:27 < Not-001> [PartyCraft] SirCmpwn 2eb3049 - Merge branch 'master' of github.com:SirCmpwn/PartyCraft 20:29 <+SpaceManiac> kryton: take a look at https://github.com/bravoserver/bravo - it's a server but you might find some parts useful 20:31 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+1/-0/±3] http://git.io/7XW-jg 20:31 < Not-001> [Craft.Net] SirCmpwn 5ddf97a - Added tab complete event, closes #151 20:34 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+0/-0/±2] http://git.io/RHRS0g 20:34 < Not-001> [Craft.Net] SirCmpwn 464e36d - Added TabCompleteEventArgs.Handled to avoid sending responses unless needed 20:35 < kryton> thanks SpaceManiac & AnotherOne .. i'll check them out 20:40 < kryton> this stuff is pretty cool.. is there a webapp that can start/stop servers edit properties etc as well? 20:41 < dx> uh 20:41 < Not-001> [Craft.Net] SirCmpwn pushed 1 commit to master [+0/-0/±2] http://git.io/wCVUKg 20:41 < Not-001> [Craft.Net] SirCmpwn a424a9f - Added TabCompleteEventArgs.Client 20:41 < dx> kryton: what do you want to do exactly? you don't need to use the minecraft protocol for that stuff 20:41 < kryton> I want to write a webapp that can stop my girls pinging me @work to restart the server/load new worlds 20:42 < kryton> as well as chat to them while they are online, and de-ban their friends 20:43 < kryton> thought i might need the minecraft protocol to do stop server cleanly as well (instead of kill -9'ing it) 20:43 < dx> then no, no minecraft protocol at all 20:44 < kryton> ok..sweet 20:45 < dx> you just need rcon and maybe a server wrapper script (that does something when the java process quits) 20:46 < kryton> ok.. is there a proxy that lets them choose worlds when they log in? (so we could host multiple worlds on a single port) 20:46 < dx> er.. 20:46 < dx> you'll want to use bukkit for that kind of stuff 20:47 < dx> you can do it with a proxy, but i'm not sure if any project like that is still maintained 20:47 < kryton> ok.. thx 20:47 < dx> bukkit+multiverse 20:47 < kryton> i'll see if i can get a simple admin app first.. then focus on that 20:48 < dx> but yeah, rcon is the protocol you need 20:48 < kryton> thx again dx 20:51 <+ammar2> eww rcon, there's quite a bit of web panel plugins out there you can probably use 20:51 <+ammar2> for bukkit that is 20:52 < kryton> not using bukkit.. just plain minecraft_server.jar for now 20:52 < kryton> although they want to do plugins like horse-riding and stuff 20:53 < dx> ammar2: what's wrong with rcon? :( 20:53 < dx> kryton: wat 20:53 <+ammar2> dx: apart from plaintext password tranmission? 20:54 <+ammar2> s/tranmission/transmission/ 20:54 < Demos> can you rcon via ssh? 20:54 < dx> ammar2: what's wrong with doing that from localhost? 20:54 < dx> Demos: ye 20:54 < kryton> Demos: you can set up a SSH-encrypted port connection via -L 20:54 < kryton> Demos: on ANY TCP connection 20:55 <+ammar2> dx: not much but localhost only severly limits it, no 20:55 < dx> ammar2: so uhm, anything else apart from that? 21:03 -!- xy [xy@unaffiliated/xy] has quit [Quit: bye] 21:10 < Not-001> [PartyCraft] SirCmpwn pushed 1 commit to master [+0/-0/±4] http://git.io/b0C8LQ 21:10 < Not-001> [PartyCraft] SirCmpwn 46c9689 - Implemented tab complete 21:13 -!- eddyb [~eddy@unaffiliated/eddyb] has joined #mcdevs 21:15 -!- kryton [~kryton@64.187.161.193] has quit [Remote host closed the connection] 21:28 -!- kcore [uid8012@gateway/web/irccloud.com/x-ktupxcpkgfuwuqbr] has quit [Quit: http://pastebin.com/7t22PU48] 21:29 -!- yorick [~yorick@oftn/member/yorick] has joined #mcdevs 21:52 -!- Adam01 [~Adam01@pageserved.com] has quit [Ping timeout: 252 seconds] 21:56 -!- Adam01 [~Adam01@pageserved.com] has joined #mcdevs 21:58 -!- Demos [~Dsmas@108.127.216.84] has quit [Ping timeout: 248 seconds] 22:00 -!- SuinDraw [~NiaTeppel@WiseOS/Founder/NiaTeppelin] has quit [Quit: Leaving] 22:19 -!- Demos [~Dsmas@184-200-110-23.pools.spcsdns.net] has joined #mcdevs 22:24 -!- kev009__ [~kev009@tempe0.bbox.io] has joined #mcdevs 22:24 -!- kev009_ [~kev009@tempe0.bbox.io] has quit [Ping timeout: 276 seconds] 22:25 -!- EvilJStoker [jstoker@unaffiliated/jstoker] has joined #mcdevs 22:25 -!- Guest84241 [jstoker@claire.jcs.me.uk] has quit [Ping timeout: 271 seconds] 22:27 -!- edlothiol [~edlothiol@95-91-255-238-dynip.superkabel.de] has quit [Ping timeout: 266 seconds] 22:31 -!- Yoshi2| [~chatzilla@xdsl-78-35-211-175.netcologne.de] has joined #mcdevs 22:32 -!- Yoshi2 [~chatzilla@xdsl-81-173-139-95.netcologne.de] has quit [Ping timeout: 240 seconds] 22:32 -!- Yoshi2| is now known as Yoshi2 22:34 -!- AnotherOne|2 [~kvirc@159.224.197.230] has joined #mcdevs 22:34 -!- AnotherOne [~kvirc@ip123-187.telenet.dn.ua] has quit [Read error: Connection reset by peer] 22:35 -!- AnotherOne [~kvirc@ip123-187.telenet.dn.ua] has joined #mcdevs 22:38 -!- shoghicp_ [~shoghicp@77.225.6.14] has joined #mcdevs 22:38 -!- AnotherOne|2 [~kvirc@159.224.197.230] has quit [Ping timeout: 246 seconds] 22:41 -!- shoghicp [~shoghicp@77.225.6.14] has quit [Ping timeout: 256 seconds] 22:46 -!- kev009__ [~kev009@tempe0.bbox.io] has quit [Ping timeout: 264 seconds] 22:51 -!- shoghicp_ is now known as shoghicp 22:53 -!- kahrl [~kahrl@p5B338A92.dip0.t-ipconnect.de] has joined #mcdevs 23:04 -!- GameMakerGm [~gamemaker@cpe-173-175-165-69.elp.res.rr.com] has joined #mcdevs 23:04 -!- GameMakerGm [~gamemaker@cpe-173-175-165-69.elp.res.rr.com] has quit [Changing host] 23:04 -!- GameMakerGm [~gamemaker@wikia/Gamemakergm] has joined #mcdevs 23:04 -!- kev009__ [~kev009@tempe0.bbox.io] has joined #mcdevs 23:05 -!- Yoshi2 [~chatzilla@xdsl-78-35-211-175.netcologne.de] has quit [Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803]] 23:06 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has quit [Read error: Connection reset by peer] 23:06 -!- Krenair [~Krenair@wikimedia/Krenair] has quit [Excess Flood] 23:06 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 23:07 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 23:07 -!- Krenair [~Krenair@wikimedia/Krenair] has joined #mcdevs 23:07 -!- Krenair [~Krenair@wikimedia/Krenair] has quit [Excess Flood] 23:07 -!- Guest28468 [~Krenair@ZNC.MonsterProjects.org] has joined #mcdevs 23:07 -!- Guest28468 [~Krenair@ZNC.MonsterProjects.org] has quit [Excess Flood] 23:08 -!- Krenair_ [~Krenair@ZNC.MonsterProjects.org] has joined #mcdevs 23:12 -!- Krenair_ [~Krenair@ZNC.MonsterProjects.org] has quit [Changing host] 23:12 -!- Krenair_ [~Krenair@wikimedia/Krenair] has joined #mcdevs 23:17 -!- AnotherOne [~kvirc@ip123-187.telenet.dn.ua] has quit [Read error: Connection reset by peer] 23:18 -!- kev009 [~kev009@tempe0.bbox.io] has joined #mcdevs 23:18 -!- mode/#mcdevs [+v kev009] by ChanServ 23:19 -!- kev009__ [~kev009@tempe0.bbox.io] has quit [Ping timeout: 256 seconds] 23:34 -!- redu [~redu@31.185.255.248] has quit [Quit: leaving] 23:47 -!- yorick [~yorick@oftn/member/yorick] has quit [Remote host closed the connection] 23:50 -!- yorick [~yorick@oftn/member/yorick] has joined #mcdevs 23:53 -!- eddyb [~eddy@unaffiliated/eddyb] has quit [Quit: Konversation terminated!] --- Day changed dim. mai 26 2013 00:00 < Not-001> [mc-erl] clonejo pushed 4 commits to master [+0/-0/±5] http://git.io/95jUkQ 00:00 < Not-001> [mc-erl] clonejo 5517258 - extended .gitignore 00:00 < Not-001> [mc-erl] clonejo c477740 - show module in console log 00:00 < Not-001> [mc-erl] clonejo 3b8bde4 - refactored mc_erl_app:os_run/0 00:00 < Not-001> [mc-erl] clonejo c271723 - Revisiting role of mc_erl_eid, will now supply anyone with eids. 00:06 -!- Krenair_ is now known as Krenair 00:20 -!- Demos [~Dsmas@184-200-110-23.pools.spcsdns.net] has quit [Ping timeout: 256 seconds] 00:23 -!- kev009_ [~kev009@tempe0.bbox.io] has joined #mcdevs 00:23 -!- mode/#mcdevs [+v kev009_] by ChanServ 00:23 -!- kev009 [~kev009@tempe0.bbox.io] has quit [Ping timeout: 264 seconds] 00:27 -!- AlbireoX [~AlbireoX@99-136-83-34.lightspeed.rcsntx.sbcglobal.net] has joined #mcdevs 00:47 < Not-001> [mc-erl] clonejo pushed 1 commit to master [+0/-0/±4] http://git.io/QIByjQ 00:47 < Not-001> [mc-erl] clonejo 42fbfcf - finished mc_erl_client_lib, working on mc_erl_client [NOT WORKING] 00:52 -!- Xaardas [~tach@p5B2515D3.dip0.t-ipconnect.de] has quit [Quit: Tschuess und bis Bald] 00:55 < Not-001> [mc-erl] clonejo pushed 1 commit to master [+0/-0/±1] http://git.io/hqWHCA 00:55 < Not-001> [mc-erl] clonejo 669c11b - hopefully fixed compilation issue 00:56 <+md_5> can we actually just fix the Minecraft protocol :| I mean if the mojangstas are so hell bent on json, why dont we wipe out NBT and rredo some of the packets 00:56 <+clonejo> md_5: We could define our own protocol to use between our custom servers and clients. 00:56 <+md_5> clonejo custom server tools far outnumber custom clients 00:56 <+md_5> there are *no* custom clients in use 00:57 <+clonejo> We could do a protocol critic page on the wiki 00:58 <+clonejo> with enhancement suggestions 00:58 -!- Sanjay [4a5839cb@gateway/web/freenode/ip.74.88.57.203] has joined #mcdevs 00:58 < Sanjay> Hey ther 00:58 < Sanjay> Anyone around? 00:58 <+md_5> Grum mentioned something about if we wanted something in MC to make an API and then provide sample impleentation with MCP, although that doesnt really work for packets since they would still have to do all the heavy lifting 00:59 < Sanjay> Hey 00:59 < Sanjay> Hows it going 00:59 <+md_5> also, dual stack udp+tcp would be an idea dont you think clonejo ? use udp for move packets that we dont give a toss if dont arrive 00:59 <+md_5> not bad 00:59 <+md_5> also shit like: Note: When this packet is sent from the server, the 'Y' and 'Stance' fields are swapped. 01:00 -!- feepbot [~feepbot@p579E4869.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 01:00 < Sanjay> I was wondering what packet I would need to send for a player to drop something from his creative inventory. 01:00 <+md_5> does that still happen? 01:00 <+md_5> hmm creative inventory... 01:00 <+md_5> Sanjay you want; Click Window (0x66) I imagine 01:00 -!- feepbot [~feepbot@p579E46AD.dip0.t-ipconnect.de] has joined #mcdevs 01:01 < dav1d> md_5: well will udp really bring a benefit? 01:01 <+md_5> dav1d I think in some cases dualstack would 01:02 <+md_5> client to server and server to client player/entity position updates 01:02 < Sanjay> Ok,that seems about right. It says window 0 is player inventory, would that also be for creative inventory? 01:02 <+ammar2> eww dual stack 01:02 <+md_5> maybe time updates too 01:02 <+ammar2> also keep in mind that the current encryption scheme wont work with udp 01:02 <+md_5> anything where we dont have to implement an ACK system 01:02 < dav1d> md_5: I don't think this would make the protocol simplier or even better 01:02 <+md_5> ammar2 we can just use the same keys in a block cipher 01:02 < dav1d> ammar2: who needs encryption for movement? 01:03 <+ammar2> dav1d: no one :D 01:03 < dav1d> right 01:03 < dav1d> just drop it all together 01:03 < dav1d> only sensible is probably chat 01:03 < dav1d> which needs tcp anyways 01:03 < dav1d> or some kind of tcp emulated tcp 01:04 <+md_5> even the metadata (which they moved around all the indexes in 1.6) should be json, not this bullshit made up format 01:04 <+ammar2> tcp emulated tcp 01:04 <+ammar2> wat 01:05 <+md_5> ammar2 he meant a tcp impl based on udp, which is a silly idea 01:05 <+ammar2> not silly, thatswhat everyone does 01:05 < dav1d> ammar2: udp emulated tcp 01:05 <+md_5> not quite 01:05 < dav1d> yeah it is 01:05 <+md_5> Spawn Experience Orb (0x1A) 01:05 <+md_5> why is that its own packet 01:05 < dav1d> but having to connection for a minimal gain is also kinda stuipid (imo) 01:06 <+md_5> Update Sign (0x82) <-- should be tile entity data 01:06 < dav1d> I mean what you gain is not really huge 01:06 <+md_5> Item Data (0x83) <-- should be item stack data 01:06 <+md_5> dav1d if we consolidated all the position updates (0xA-D) over udp, sending all fields, the bandwidth would be the same as using the lowest denominator of those packets 01:06 <+md_5> and we nuke 3 packets in the process 01:07 <+md_5> My biggest bitch about MC is how they make a new packet instead of repurposing old ones 01:07 <+md_5> right now to make a client you need to implement 81 packets 01:07 <+md_5> that is a few hours of just writing decode methods 01:08 <+md_5> Tab-complete (0xCB) could be a special json packet, now that we have tat 01:08 <+md_5> Plugin Message (0xFA) really needs an int header as opposed to short 01:08 <+md_5> Server List Ping (0xFE) really needs to send the hostname as well as protocol version 01:09 < dav1d> md_5: so you would open a second connection after the handshake in udp? 01:09 <+md_5> 0x01: Dimension byte 0 -1: nether, 0: overworld, 1: end should be bumped up to a short 01:09 <+md_5> dav1d I say after encryption, so {0xCD,0x00} 01:09 < dav1d> yeah 01:10 < dav1d> well this works, but would probably need a lot of refactoring in the minecraft code 01:10 <+md_5> the respawn and login packets should be merged 01:10 <+md_5> send a small login packet 01:10 <+md_5> then follow it by a respawn packet 01:10 <+md_5> atm they duplicate info 01:11 <+md_5> 0x0A-D should also be merged, I mean if we have json, who cares about the bandwidth of a few extra doubles. Using UDP with all the doubles is still better than tcp in terms of B/w 01:11 < Sanjay> Hey sorry to interupt... But I was looking at the Windows part of the 0x66 packet (http://www.wiki.vg/Inventory#Windows). I cant seem to find a creative inventory window in there. 01:11 < dav1d> there are a few flaws 01:11 <+md_5> Sanjay the creative window is client side as far as I know 01:11 < dav1d> Sanjay: that is probably a client thing, if the client is in creative he opens that instead of the normal 01:12 < Sanjay> Well the client has to send some sort of packet when the user adds an item from creaetive inventory into his regular inventory correct? 01:12 < Sanjay> Or even drops it 01:13 <+md_5> Sanjay not afaik, I remember in bukkit I patched a bug where the client could spawn water source blocks even when they werent in his inventory 01:13 <+md_5> dav1d all this entiti relative move should be scrapped and we can just use absolute values over udp 01:13 < Sanjay> Hmmm... So I would need to first add it to the inventory and then place it/ drop it? 01:14 <+md_5> I think you can just say drop(new ItemStack(whatToDrop, countToDrop)) 01:14 <+md_5> or however your client works 01:14 < Sanjay> I dont have any "drop" method implemented yet... 01:14 < dav1d> md_5: there should be a lot done 01:15 < Sanjay> Isnt ItemStack a bukkit object? 01:15 <+md_5> Sanjay Im just making up an example 01:15 <+md_5> Increment Statistic (0xC8) could be done via udp, it spams a bit and who cares if your stats are off by a few % 01:16 < Sanjay> So basically your saying I could just use the same method to drop an item that is not in my inventory (in creative inventory) that I use to drop a regular item in my inventory? 01:16 <+md_5> yyes 01:16 < Sanjay> So it doesn't even need to be in the inventory? 01:16 <+md_5> as far as I know, no 01:17 < Sanjay> So I would go about this using the 0x0E packet? 01:17 < Sanjay> (player digging) 01:18 <+md_5> I think you need 0x66, grabbing a proxy and inspecting a vanilla client doing it is a good idea 01:18 <+md_5> I dont know for sure 01:18 < Sanjay> It says one of the status codes are drop item 01:18 <+md_5> yeah, for survival, when using q 01:19 < Sanjay> I dont see a field for the "type" of block to drop in 0x0E. Does it drop whatever is selected? 01:20 <+md_5> again 01:20 <+md_5> for creative use 0x66 01:20 <+md_5> if you are unsure get a proxy and confirm 01:20 -!- Amaranth [~travis@ubuntu/member/Amaranth] has quit [Quit: Leaving...] 01:22 < Sanjay> What would a proxy do? Show me the outgoing packets? 01:23 <+md_5> yes 01:24 <+clonejo> Sanjay: the window_click packet is also when clicking outside the inventory window 01:24 <+clonejo> eg. dropping an item 01:24 -!- zh32|away is now known as zh32 01:25 < Sanjay> But what would I send for the "slot" value... 01:26 <+md_5> the Slot value is an itemstack data 01:26 < Sanjay> Would a program like this work for inspecting outgoing packets sent by the client? http://www.snapfiles.com/get/smartsniff.html 01:27 <+md_5> https://github.com/SirCmpwn/SMProxy 01:27 <+md_5> might not be 1.5.2 though 01:27 -!- zh32 is now known as zh32|away 01:28 -!- zh32|away is now known as zh32 01:32 < Sanjay> +clonejo The 0x66 has mode 4 button 0 for "Left click outside inventory holding nothing". But how would I do that holding something? 01:33 <+clonejo> the server has to track any action of the player in the inventory (eg. clicking slots) 01:34 <+clonejo> and predict the outcomes of all these actions 01:37 < Sanjay> So how would I go about say left clicking a redstone block and then left clicking outside of the inventory window with it 01:37 <+md_5> you are familar with the itemstack protocol format, right. 01:37 <+md_5> just send 0x66 with your desired itemstack as the slot 01:38 <+md_5> -- 01:38 <+md_5> The structure consists of at least a short, which gives the item/block ID [1]. A value of -1 signifies that the slot is empty, and no further data follows. 01:38 <+md_5> If the block ID is not -1, three more fields follow. These fields are a byte (item count), a short (item damage), and another short (length of optional NBT data). 01:38 <+md_5> If the short (length of NBT data) is -1, there is no NBT data, and no further data follows. Otherwise, a byte array will follow. 01:38 <+md_5> The byte array contains gzipped (that is RFC 1952 rather than RFC 1950) NBT data. The format of this data is as follows: 01:41 < Sanjay> So once I get to slot, I should writeShort with block ID, writeByte with the item count, and than writeShort with item damage and then writeShort with -1 for no NBT data? 01:45 -!- Amaranth [~travis@ubuntu/member/Amaranth] has joined #mcdevs 01:45 -!- mode/#mcdevs [+v Amaranth] by ChanServ 01:47 < Sanjay> All seperate right? 01:49 -!- GameMakerGm [~gamemaker@wikia/Gamemakergm] has quit [Ping timeout: 246 seconds] 01:59 -!- shoghicp [~shoghicp@77.225.6.14] has quit [Quit: Leaving] 02:18 < Sanjay> +md_5, I tried using 0x66 to drop the item, but it doesnt work. The code on this page runs every 30 seconds for keep alive packet. The first time, it does nothing, and the player just stays in the game, but the second time the loop runs, the player just leavs the game with no error client side or server side. It works fine without the 0x66 packet: http://paste.md-5.net/curagadawe.avrasm 02:21 -!- zh32 is now known as zh32|away 02:21 -!- zh32|away is now known as zh32 02:25 -!- zh32 is now known as zh32|away 02:25 -!- zh32|away is now known as zh32 02:27 -!- Zachoz|Away is now known as Zachoz 02:30 -!- yorick [~yorick@oftn/member/yorick] has quit [Remote host closed the connection] 02:33 -!- SuperSpyTX is now known as SuPaHsPii 02:33 -!- SuPaHsPii is now known as SuperSpyTX 02:34 -!- zh32 is now known as zh32|away 02:35 -!- zh32|away is now known as zh32 03:06 < Sanjay> Hello? +md_5 are you here? 03:08 -!- r04r is now known as r04r|away 03:51 <+md_5> Sanjay cant be of much more assistance 03:56 < Sanjay> ;( 04:04 < Sanjay> What do I need to do? 04:14 -!- zh32 is now known as zh32|away 04:15 -!- zh32|away is now known as zh32 04:31 -!- Exio [~x@trekweb/user/nax] has quit [Quit: Exio] 04:33 -!- md_5 [md_5@mcdevs/trusted/md-5] has quit [Quit: ZNC - http://znc.in] 04:33 -!- Exio [~x@trekweb/user/nax] has joined #mcdevs 04:33 -!- md_5 [md_5@mcdevs/trusted/md-5] has joined #mcdevs 04:33 -!- mode/#mcdevs [+v md_5] by ChanServ 05:04 -!- TomyLobo [~TomyLobo@91-66-112-147-dynip.superkabel.de] has quit [Quit: Standby mode...] 06:23 -!- Sanjay [4a5839cb@gateway/web/freenode/ip.74.88.57.203] has quit [Quit: Page closed] 06:26 -!- jspiros [~jspiros@hylia.us] has quit [Ping timeout: 256 seconds] 06:38 -!- cathode [~cathode@c-76-105-184-52.hsd1.or.comcast.net] has quit [Read error: Connection reset by peer] 06:55 -!- Zachoz [~Zachoz@pdpc/supporter/student/zachoz] has quit [Ping timeout: 256 seconds] 07:01 -!- Zachoz [~Zachoz@pdpc/supporter/student/zachoz] has joined #mcdevs 07:14 -!- redu [~redu@31.185.255.248] has joined #mcdevs 07:47 -!- yosafbridge [~yosafbrid@li125-242.members.linode.com] has quit [Ping timeout: 246 seconds] 07:49 -!- yosafbridge [~yosafbrid@li125-242.members.linode.com] has joined #mcdevs 07:51 -!- Zaneo [~Zaneo@70.52.147.134] has joined #mcdevs 07:51 -!- mode/#mcdevs [+v Zaneo] by ChanServ 07:54 -!- redu [~redu@31.185.255.248] has quit [Write error: Broken pipe] 07:54 -!- Caius [~Caius@about/apple/macbookpro/Caius] has quit [Ping timeout: 361 seconds] 07:55 -!- redu [~redu@31.185.255.248] has joined #mcdevs 07:55 -!- Caius [~Caius@about/apple/macbookpro/Caius] has joined #mcdevs 08:01 -!- eddyb [~eddy@unaffiliated/eddyb] has joined #mcdevs 08:10 < Not-001> [fCraft] fragmer * r1983 6 files : Finished moving bulk of the GUI handlers from ConfigGUI.AddWorldPopup to fCraftGUI.RealisticMapGenGUI 08:20 < Not-001> [fCraft] fragmer * r1984 2 files : Temporary fix for AddWorldPopup compile errors. Everything compiles, woo. 08:28 < Not-001> [fCraft] fragmer * r1985 2 files : Cleaning up unused dependencies in AddWorldPopup 08:43 -!- jspiros [~jspiros@hylia.us] has joined #mcdevs 08:53 < dx> 19:55 <+md_5> can we actually just fix the Minecraft protocol :| I mean if the mojangstas are so hell bent on json, why dont we wipe out NBT and rredo some of the packets 08:53 < dx> md_5: but i like NBT ;_; 08:54 < dx> (it's better than json) 08:57 <+md_5> dx not really, regardless, the protocol is too derp and needs to be fixed 08:57 <+md_5> badly 08:57 <+md_5> but mojang doesnt give a flying f*** about it and would rather spend time on other useless things 08:57 <+md_5> then call fixing the protocol useless 08:57 <+md_5> youtubers are more important than us 08:57 < dx> i'm pretty sure that choosing json is a way of saying "all of this sucks, let's do it differently" 08:58 < dx> a poor way to say it, but... 08:58 <+Matvei> Is it text-based JSON, or BSON/ 08:58 < dx> text based 08:59 <+Matvei> That seems wasteful 08:59 < dx> never heard of BSON, is it the """standard""" way of writing json in a more compact way? 09:00 < dx> i mean there's other implementations (lol protocol buffers) 09:00 < dx> but my point was, if we're going to do that, there's NBT 09:01 <+Matvei> BSON is fairly common. It can represent any data that JSON can, just more compactly 09:01 <+Matvei> (well, there are a couple additions, like a byte array type) 09:02 < dx> byte array = just a string without utf-8 decoding? 09:03 <+Matvei> Effectively, yes. But BSON implementations actually treat it as a byte array 09:05 <+md_5> Matvei bson and nbt 09:05 <+md_5> are like.. the sae 09:05 <+md_5> same 09:05 <+md_5> just different formats 09:05 <+Matvei> Yeah pretty much. I was pretty happy with NBT, honestly. 09:05 <+md_5> but still, I dont actually think json has much if any more overhead than nbt 09:05 <+md_5> since every nbt tag is named 09:06 <+md_5> and so is every json tag 09:06 <+md_5> and nbt has a format byte, whereas json might have a quote or bracket 09:06 <+md_5> so in the end it will be the same size 09:08 <+Matvei> NBT fields declare their type though, so you know exactly how many bytes to read. JSON requires a bit of parsing to figure out field size 09:08 <+Matvei> Makes linear parsing slower and more wasteful 09:09 <+Matvei> Also numeric types take up more bytes (effectively using 4 out of 8 bytes per character), extra separators (brackets/quotes/commas/decimal points), etc 09:09 <+Matvei> All adds up 09:09 <+md_5> true 09:10 <+md_5> Matvei but remember, mojang doesnt give a toss about packet sizes 09:10 <+Matvei> *4 out of 8 bits per character, rather 09:10 <+md_5> -> json chat 09:10 <+md_5> why isnt chat nbt eh? 09:10 <+Matvei> I care about bytes, I get to pay for my community's bandwidth :P 09:10 < dx> "if you care about size compress it" 09:10 < dx> "if you care about cpu time thread it" 09:11 * dx still rages about that 09:11 <+md_5> dx soo lets have a json encode thread and a compression threa 09:11 <+md_5> d 09:11 <+md_5> gogogogo 09:11 < dx> that shit seems to work for HTTP servers, but those have completely different scalability properties 09:12 < dx> -.-" 09:12 <+md_5> seriously, my proxy sometimes has to do 100 messages a second from a couple thousand users 09:12 <+md_5> now it has to do 100 json decodes a second as well 09:13 < dx> heh yeah, your proxy is the best way to tell mojang that there's some people who actually want to scale and this is just making it harder 09:14 <+Zaneo> Matvei, how does femto compare to vanilla in terms of footprint? 09:14 < dx> what can a single minecraft server handle, usually? is it 200 players? they'd just think you can put an octacore on it and have 7 spare cores 09:15 <+md_5> dx right now I'm limited to about 2000 players without burning up the CPU. I'm slowly but surely aggressively optimizing it, but I feel 3000 is an absolute peak. The problem also is that the CPU usage at lower players is comparatively high, but then it peaks very wuickly 09:15 <+Matvei> Zaneo, memory footprint? Femto is a few megabytes of base use + map size, that's it. 09:15 <+md_5> (by low I mean 200-400 players) 09:15 <+Matvei> About 20 MB with the default map size, if I remember correctly 09:16 < dx> md_5: 2000 with bungee or with a single vanilla/bukkit/spigot? 09:16 <+md_5> because MC sends so many packets it runs a very quick fetch decode execute cycle 09:16 <+md_5> dx 2000 on a bungee 09:16 <+md_5> spigot caps out at 500 09:16 <+Zaneo> Heh good luck with that 09:16 < dx> oh ok 09:16 <+md_5> and to get 500 you need a 4.5ghz overclocked 3770k processor 09:16 < dx> lol.. 09:16 <+Zaneo> More 09:16 <+Zaneo> You need ssds 09:17 <+md_5> thats the most I've ever seen on a spigot server with 20tps, 500 exactly 09:17 < dx> i'm pretty sure he's already assuming the whole world on ramdisk 09:17 <+md_5> yeah Zaneo I'm talking uber optimzed setup 09:18 -!- Prf_Jakob [~jakob@c-2b27e155.1214-1-64736c20.cust.bredbandsbolaget.se] has quit [Ping timeout: 248 seconds] 09:19 <+md_5> dx the thing that would help bungee scalability most is a packet ID header 09:19 <+md_5> because at the moment it needs to parse every packet.. I do this very efficiently, but sometimes its not enough 09:19 <+md_5> *packet length header 09:19 < dx> md_5: dude. i love your project 09:19 <+md_5> so do I 09:20 -!- Prf_Jakob [~jakob@c-2b27e155.1214-1-64736c20.cust.bredbandsbolaget.se] has joined #mcdevs 09:20 -!- mode/#mcdevs [+v Prf_Jakob] by ChanServ 09:20 < dx> md_5: i bet everyone in this channel would like to have that packet length header but you have the best reason to force them to add it 09:20 <+md_5> dx the most requested feature I get is virtual hosting in the server ping tab without srv records 09:20 <+md_5> I have virtual hosting 09:20 <+md_5> but it shows a global count in the ping tab 09:21 <+md_5> and I just have to reply: "Mojang says no, use SRV records" 09:22 <+md_5> its not even like its hard for mojang to add, its just they treat 3rd party developers like shit, and mapmakers and youtubers like god 09:22 < SinZ> ^ 09:23 <+Zaneo> On a side note, who is still developing it, I don't really follow them anymore 09:23 < dx> "it"? 09:23 <+Zaneo> minecraft 09:23 < SinZ> Jeb, Grum and Dinnerbone 09:23 < dx> ...i was trying to say that without pinging them 09:23 < dx> oh well 09:23 <+md_5> oh 09:23 <+md_5> also a packet to be able to reset a clients entity ID 09:24 <+md_5> (the one given in 0x01) 09:24 < dx> reset? 09:24 <+md_5> I would kill babies for it 09:24 < dexter0> so what happened to EvilS3ph then :P 09:24 <+md_5> dx change it 09:24 <+md_5> dexter0 he never did anything, stuck up arsehole. doesnt even develop bukkit, just changes the version number every release 09:24 < SinZ> dexter0: he spends his entire time on the bug tracker and mod api AFAIK 09:25 <+md_5> not even SinZ , just doing minor things and then acting like he is god and they are his babies: ie bug tracker 09:25 < dx> oh i forgot that guy was in mojang too. seriously. he's just PR for bukkit 09:25 <+md_5> (excuse me if I'm bitter about EvilSeph, I spent 18 months of my life working for the arsehole) 09:25 < dx> errr public relations not pull request 09:25 <+md_5> dx if by PR you mean destroyer of PR and lead of 'damage control' when the community revolts, sure 09:26 < dx> md_5: i didn't say anything about how he handled it 09:26 <+md_5> anyway, be back in 20 minutes 09:26 <+md_5> then more exam study 09:33 < dx> it really sucks that having vanilla clients with vanilla launchers is an important requirement for a lot of people 09:34 < dx> we can't just go and mod the protocol on both sides and tell people that they need to use a different client with no extra features other than having a less dumb protocol 09:35 < dexter0> except, where are the custom clients that are even near feature complete? 09:35 < dx> i wasn't talking about custom clients, i was talking about modded vanilla clients 09:36 < dx> same shitty java codebase, modified packets 09:36 < dx> just as a transition, of course, but we need to show them the benefits 09:42 < Not-001> [fCraft] fragmer * r1986 13 files : Added DefaultMapGenGui/DefaultMapGenGuiProvider, as fallback for gens that do not provide a custom Gui. Basically, it's a PropertyGrid with some boilerplate code. 09:43 -!- AnotherOne [~kvirc@ip123-187.telenet.dn.ua] has joined #mcdevs 09:43 < AnotherOne> hello people 09:44 < AnotherOne> AnotherOne's Awesome C++ Minecraft Protocol 0.1 is done! 09:44 < dexter0> is it public yet? 09:45 < AnotherOne> no:) 09:45 < dx> vaporware! 09:45 < eddyb> AnotherOne: what did you end up using? 09:46 < AnotherOne> in other words please:) 09:46 -!- kcj [~casey@unaffiliated/kcj] has joined #mcdevs 09:46 < AnotherOne> my english is so english 09:46 < eddyb> engrish 09:47 -!- Calinou [~Calinou@unaffiliated/calinou] has joined #mcdevs 09:48 < SinZ> dx: the problem is, we are running out of benefits 09:48 < dx> SinZ: 'running out'? are they doing something to improve the situation? 09:48 <+md_5> uh 09:49 <+md_5> I would go out of my way, to spend my $$$$ time designing AND implementing a new MC protocol if I got an agreement with mojang that it would be implemented once a community consensus + review from their side was complete 09:49 <+AndrewPH> jesus please 09:49 <+md_5> I think at least half the issue is the fact that they wont spend their time on people like us 09:49 < eddyb> AnotherOne: what did you use for the code? 09:50 <+md_5> instead they spend their time on youtubers 09:50 <+md_5> because then they get credit from the youtubers 09:50 <+md_5> and then the youtuber fanbois turn into mojang fanbois 09:50 < dx> md_5: please skip the rant about the youtubers when you talk to them about this 09:50 * md_5 deletes message he had ready 09:50 < dx> :D 09:51 <+md_5> Ill stick with 09:51 <+md_5> I would go out of my way, to spend my $$$$ time designing AND implementing a new MC protocol if I got an agreement with mojang that it would be implemented once a community consensus + review from their side was complete. I think at least half the issue is the fact that they wont spend their time on people like us. 09:51 < dx> but yeah, if there's some proper legal contract, you should be able to refactor the code directly, right? 09:52 * md_5 is open to legal contracts, but like that is gonna happen 09:52 < dx> i meant a contract that gives you access to the codebase temporarily under some conditions :P 09:52 * md_5 has seen some pretty dodgy shit in private minecraft servers that he cannot detail any further 09:52 < dx> o_o 09:53 <+md_5> http://www.wiki.vg/Wrapper_List ... that page 09:53 < AnotherOne> eddyb: c++ and a small hand-made code generator 09:53 * md_5 think all people with voice should be given permission to rename and delete wiki pages 09:53 < dx> just with the name i'm sure it was a page that wasn't updated in years 09:53 < AnotherOne> reading from vector buffer and throwing exception if there are not enough bytes 09:54 < eddyb> AnotherOne: so the same crappy thing? 09:54 < eddyb> meh 09:54 < eddyb> I wanted to help you :P 09:54 <+md_5> better way is to make a wrapper buffer that throws an exception when it cant read the desired data type 09:54 < AnotherOne> why crappy?:) 09:54 <+md_5> readInt() {assert readadbleBytes >= 4, super.readInt()} 09:55 <+md_5> dx what is your minecraft iGN? 09:55 < dx> md_5: dequis 09:55 < AnotherOne> md_5: this is a good variant too 09:55 <+md_5> https://github.com/dequis 09:55 <+md_5> I is stalker 09:55 < dx> lol 09:56 < dx> yes i wrote the long rant in the gist and my name is right there in the github profile 09:56 <+md_5> ohg 09:56 <+md_5> right.. you wrote that rant 09:56 <+md_5> +1 09:56 < dx> :D 09:56 <+md_5> I am gonna write 1 proposal to mojang though, refactor 0x01 and 0x09 09:56 -!- Jailout2000 [~Jailout20@unaffiliated/jailout2000] has quit [Quit: Leaving.] 09:57 < dx> the first message i wrote had a slightly positive opinion, BTW, since i've had a pending patch for craftirc to translate all the irc formatting codes and it's blocked because of § parsing bugs 09:58 < AnotherOne> http://www.wiki.vg/Protocol#Player_.280x0A.29 09:58 <+md_5> in fact, just delete 0x09 and merge it into 0x01 or vice versa 09:58 < AnotherOne> i got this trying to connect to bukkit server 09:58 <+md_5> yes? what about it? 09:58 < dx> did bukkit tell you that you're grounded? 09:59 < AnotherOne> is it ok for bukkit to send client to server message? 09:59 < Calinou> "community consensus" 09:59 < Calinou> >community 09:59 < Calinou> >reaches a consensus 09:59 < Calinou> --thexyz 09:59 -!- edlothiol [~edlothiol@95-91-255-238-dynip.superkabel.de] has joined #mcdevs 09:59 < SinZ> md_5: deleting 0x09 and mering to 0x01 and renaming the packet to Spawn would be nice 09:59 <+md_5> I think between the prominent members of this channel we can reach a rough 4/5'ths majority 10:00 <+md_5> SinZ yah, and being able to set the entityId in said packet. I would be soo happy 10:00 < SinZ> and trimming the packets down 10:00 < dx> Calinou: i'm pretty sure we all can agree in the most important and general stuff, at least 10:00 < SinZ> ie the not-used sections of packets 10:01 -!- Jailout2000 [~Jailout20@unaffiliated/jailout2000] has joined #mcdevs 10:01 < SinZ> md_5: only derp with merging, is having to send maxPlayers more often than just once 10:01 <+md_5> SinZ I was thinking that, too 10:01 <+md_5> like where could we put it 10:02 < SinZ> maybe just trim Packet 0x01 to be stuff only needed once 10:02 <+md_5> SinZ atm all that would be is maxPlayers 10:02 < SinZ> and at the end of handshake, send Login AND respawn 10:02 <+md_5> SinZ or we can just send it all the time and allow for resizing which would be cool 10:03 < SinZ> Not that the player list is used by any not-vannila instance 10:03 < SinZ> as everyone over-nerfs the packet sending 10:03 -!- shoghicp [~shoghicp@77.225.6.14] has joined #mcdevs 10:06 < SinZ> md_5: and while we are trimming the protocol, 0xC8 can be destroyed 10:06 <+md_5> SinZ is it not used? 10:06 < SinZ> server has no reason to care about achievements, and client can spoof them anyway 10:07 < dx> hm, it's still a feature that exists though 10:07 <+AndrewPH> the 'achievements' feature should be nuked imo 10:07 < dx> you could just choose not to send it 10:07 <+md_5> client calculates its own acheivements too doesnt it? 10:07 < dx> yeah 10:08 <+md_5> mojang plz listen to us 10:08 < dx> but statistics and achievements are different features 10:10 -!- Xaardas [~tach@p5483C83A.dip0.t-ipconnect.de] has joined #mcdevs 10:12 < dx> also, Grum said there was no way to predict the size of some packets 10:12 < dx> he meant the ones with metadata / slot data, right? am i mising anything else? 10:13 <+md_5> dx so? 10:13 <+md_5> you write to a buf 10:13 <+md_5> and then prepend to said buf 10:13 < dx> yeah... that's what i was thinking 10:13 < dx> there's nothing that can't be fixed without a wrapper like that 10:13 < Calinou> Grµm looks more awesome, dx :P 10:14 < dx> Calinou: i see a ? in a circle, use utf-8 please 10:14 < Calinou> no u 10:14 < dx> oh xchat, xchat defaults to hybrid latin1 utf-8, see here http://xchat.org/encoding/ 10:15 < SinZ> dx: im on hexchat and it appeared fine 10:15 <+Zaneo> ^ 10:15 < Calinou> changed all networks to UTF-8 10:15 -!- Calinou [~Calinou@unaffiliated/calinou] has quit [Quit: Excess Flood] 10:15 < dx> wat 10:15 -!- Calinou [~Calinou@unaffiliated/calinou] has joined #mcdevs 10:15 < Calinou> Grµm => does this work now? 10:16 < dx> SinZ: as i said, xchat/hexchat default to hybrid latin1 utf-8, you can receive latin1 characters (which are invalid utf-8) and also utf-8, but when you send it's always latin1 10:16 < dx> Calinou: yes 10:16 < Calinou> cool 10:16 <+Zaneo> Both showed up for me, and i'm on a fresh install of hexchat 10:16 < dx> Zaneo: read what i said.. 10:17 <+Zaneo> Ah sorry missed that 10:17 < Grum> o.O 10:17 < dx> it's a terrible setting since *you* are the only one who doesn't know your characters are fucked up 10:17 < dx> oh hey it's grum 10:17 <+md_5> quick 10:17 <+md_5> kidnap him 10:17 < dx> k 10:17 * md_5 is an artist https://github.com/ElasticPortalSuite/BungeeCord/issues/390 10:18 < dx> md_5: beautiful 10:18 < AnotherOne> lol 10:18 < Calinou> should be on DA ASAP 10:18 * Calinou posts it to /r/minecraft 10:18 < Grum> md_5: yeah we could do packetsize crap, but why would we bother spending time on that? 10:18 < Grum> it wont gain us anythin 10:18 <+AndrewPH> looked fine to me, dx 10:18 <+md_5> um 10:19 <+md_5> dx should I make a youtube reference 10:19 < dx> Grum: md_5 wants to refactor minecraft's protocol code FOR FREE! just because he loves you all 10:19 <+md_5> well 10:19 <+md_5> why is credit from youtubers and map makers more important than credit from us? 10:19 < Grum> whut? 10:19 < Calinou> oh hai 10:19 < Grum> i never add anything 'just for one person' 10:19 < SinZ> you constantly add features because sethbling asked 10:19 < Calinou> our local PilzAdam 10:19 <+md_5> not you 10:19 < Grum> not ever done that 10:19 < SinZ> you as in Mojang 10:20 <+md_5> ^^ 10:20 < Calinou> SinZ: he did not 10:20 < dx> Grum: dinnerbro does 10:20 <+md_5> Dinner tweets all this shit all the time, stars on youtube videos 10:20 < Calinou> binnerdone then 10:20 < Grum> i guess mostly because they are oneline additions with controlled impact? 10:21 <+md_5> one line? 10:21 < Grum> unlike that 'prefix packet with length change' :p 10:21 <+md_5> you mean coloured armor 10:21 < dx> Grum: don't you think that server admins who would like to have networks of interconnected servers with thousands of players are rather important? 10:21 <+md_5> custom mob spawners 10:21 <+md_5> attribute systems 10:21 <+md_5> are all one line> 10:21 < Grum> the spawners were done because they were broken 10:21 <+md_5> also, I implemented said packet length system in ~10 lines 10:22 < SinZ> using NBT to change the block in minecarts and the position of the block in minecarts? 10:22 < Grum> dx: not in the slightest 10:22 < Grum> and you cant even do it without offline mode 10:22 < Grum> even less reason to support it 10:22 < dx> ... 10:22 <+md_5> Grum http://screencloud.net/v/ljtw 10:22 <+md_5> 11 lines 10:22 <+md_5> for packet length header 10:23 < SinZ> so because it helps legit people, it wont be done because pirates dont benefit? 10:23 < Grum> and lets now talk about impact md_5 10:23 < Grum> is it backwards compatible? no 10:23 * SpaceManiac yawns 10:23 <+md_5> is anything backwards compatible? 10:23 < Grum> why break it if its not going to be an improvement? 10:23 <+md_5> protocol version wouldnt exist if everything was compatible 10:23 < Grum> protocol version would ALWAYS exist 10:23 <+md_5> is 1.6 compatible with 1.5? 10:24 < Grum> if you dont have it, you are clearly not smart :P 10:24 <+md_5> answer: no 10:24 <+AndrewPH> wouldn't be needed though 10:24 < dx> Grum: have you heard about "BungeeCord"? it's what i was talking about. people actually use it for huge servers. clients connect to it and authenticate normally. 10:24 < Grum> AndrewPH: obviously it is needed O.o 10:24 <+md_5> therefore said change could go in the 1.6 update 10:24 <+md_5> so your argument of it being backwards compatible is irellevant 10:24 < Grum> dx: and then get offloaded to offline servers? fun 10:24 <+AndrewPH> Grum: because obviously not everything is backwards compatible :) 10:25 < Grum> md_5: no, its ok if its backwards incompat but it should at least improve SOMETHING 10:25 <+Zaneo> What do you mean by backwards compatible, works perfectly fine? or doesn't crash? 10:25 < Grum> which it doesn't 10:25 <+Zaneo> Just to clarify... 10:25 <+md_5> it does improve something, just ask this entire channel. You can make an MC client / server without coding 81 packets in which the slightest typo will cause helll 10:25 < Grum> i dont see the issue 10:25 <+md_5> does coloured armor improve something in my opinion 10:25 <+md_5> no it doesnt 10:25 < Grum> i mean, you all do it now not? 10:26 < dx> Grum: current protocol version is 66. that means 66 changes that aren't backwards compatible since this started... 10:26 < Grum> dx: yeah and with the current state of the protocol we'll have another 100 more 10:26 <+md_5> therefore I vote coloured armor be removed <--- see the issue with that. 10:26 < SinZ> its 61... 10:26 < dx> SinZ: 13w19a 10:26 <+SpaceManiac> so you agree the current state of the protocol is awful? :P 10:26 < Grum> yes obviously it is 10:26 < Grum> you cant even call it a protocol 10:27 < Grum> protocols are designed 10:27 < Grum> this isnt 10:27 <+md_5> just because the mojang employees are Minecraft god and get to decide what 10 million people play, shouldnt mean that a features usefulness is decided by 1 guy 10:27 <+AndrewPH> Isn't json going to be used for something over the network 10:27 <+md_5> hey, I feel like horses 10:27 < Grum> however the priority of things are decided by 3 people md_5 ;) 10:27 <+md_5> lets give 10,000,000 people horses because we can! 10:27 <+AndrewPH> if something should at least improve something, why would json be considered? wasteful! 10:27 <+md_5> Grum are horses high on that priority? 10:27 < Grum> md_5: ask jens, he considered that a yes 10:28 < SinZ> Grum: how goes the new authentication? 10:28 < Grum> personally i think adding any features to the game right now is ..... not idael 10:28 < Grum> SinZ: webteam hasn't started on it 10:28 <+md_5> wouldnt making a server that can hold 300 people without eating up 3ghz of cpu be a priority? 10:28 < Grum> md_5: nope 10:28 < dx> .. 10:28 < Grum> well, a low one at best 10:28 < SinZ> wouldn't making the networking more efficient be on the table 10:28 <+md_5> oh right, but making a client that map makers and famous people can dick around with is 10:29 < Grum> yes, but also a low prio 10:29 <+md_5> hey guise, look what dinner added just for us this week! 10:29 < AnotherOne> yeah! 10:29 <+md_5> oculus rift 10:29 <+AndrewPH> imo you guys should release a big update, and then spend some time redesigning the protocol (or as you put it, designing it for the first time in its lifetime) 10:29 <+md_5> that is a massive priority 10:29 < Grum> md_5: i agree with you, i think its pointless to do 10:29 < AnotherOne> now i can login and stay online 10:29 < Grum> AndrewPH: the problem is, to redesign the protocol we need to have other shit fixed 10:29 < dx> Grum: *why* is it low priority, exactly? is it because we're the ones who ask for it? 10:29 < Grum> we havent yet, slowly working towards it 10:29 < AnotherOne> vector buffer is much faster than stream 10:29 <+md_5> I can see why tahg quit 10:29 < Grum> but then there is yet more shit that has to be fixed before that 10:30 <+ammar2> .query md_5 well yeah, famous people dicking around = more vids = more publicity = more sales 10:30 <+ammar2> oops 10:30 <+ammar2> :3 10:30 < dx> lol 10:30 < Grum> md_5: except that he didnt 10:30 <+md_5> Grum irreconcilable differences isnt quitting? 10:30 < dx> he didn't? that's new to me 10:30 < Grum> i have nothing more to add on that 10:30 < Grum> anyhow, the problem is in the bloody yaks 10:30 <+md_5> "Creative differences and frequent changes in developmental focus lead to a situation that could not be reconciled between the company and myself. " 10:30 < Grum> there is a ton of yaks that have to get handled before we can even consider redoing the protocol 10:31 <+md_5> lead to a situation that could not be reconciled between the company and myself. 10:31 <+md_5> ould not be reconciled between the company and myself. 10:31 < Grum> md_5: the first word is indicative 10:31 <+md_5> could not be reconciled 10:31 < Calinou> wouldnt making a server that can hold 300 people without eating up 3ghz of cpu be a priority? 10:31 < Calinou> CPUs don't work like that 10:31 < dx> Grum: wrapping every packet write to not use the protocol directly but use a buffer that counts the packet length to be able to prepend it is not redoing the protocol 10:31 < Calinou> and 300 player server is horrible 10:31 < Calinou> oculus rift 10:31 < Calinou> lol 10:31 < Grum> dx: yes but breaks 100% without giving ANY benefit/extra features/anything 10:32 <+md_5> so, either tahg left because he hated mojang. or mojang made tahg leave because they hated him. 10:32 < dx> Grum: every version number change breaks protocol parsing 10:32 <+md_5> s/hate/disliked direction and opinions 10:32 < Calinou> also, making minecraft server less hungry is simple: switch to 10 TPS 10:32 < Calinou> the end 10:32 < Calinou> it'll do most of the stuff for you 10:32 < Grum> dx: and they typically fix a bug orso 10:32 < Grum> yet the protocol is so horridly 'designed' that the onyl way to do it is by doing a backwards incompatible change 10:32 <+md_5> Calinou what I said holds true, the server uses approx 3 billion cpu cycles/sec one way or another 10:32 < dx> Grum: the benefit is extremely more lightweight protocol parsing, such as being able to handle thousands of messages per second without caring about every single one 10:32 <+md_5> every change is backwards incompatible 10:32 < Calinou> efficient or inefficient ones? we don't know 10:32 <+SpaceManiac> I can definitely understand the "bigger fish to fry" mentality 10:33 < Calinou> an A4-5400 won't handle 300 players 10:33 < Grum> dx: but that is absolutely nothing that 99.99% of the 10million players care for 10:33 < Calinou> never judge CPUs by speed or cores 10:33 < Calinou> and even less by cache 10:33 <+md_5> Calinou I'm not being scientiffic here 10:33 < Grum> SpaceManiac: there is so much broken stuff we have to start somewhere, starting at the place that has ungodly amounts of dependencies is *not* a good spot :) 10:34 <+SpaceManiac> Heh 10:34 <+ammar2> Grum: I dunno man, reddit seemed pretty hyped by the inter connected server system. All done thanks to third party software which would benefit from protocol changes 10:34 < Grum> s/broken/suboptimal/ 10:34 < dx> md_5: how many bungee servers are there? 10:34 < Grum> ammar2: and now you just display another reason that doing it wont add much; you already have it working without it 10:34 <+md_5> dx best measured in players not server 10:34 < dx> md_5: sure then, how many players? 10:34 < Grum> surely it would be easier, but god that is *not* a good reason to break everything 10:35 <+ammar2> dx: http://mcstats.org/plugin/BungeeCord 10:35 <+md_5> 45,000 peak, when the MC peak is 280,000 10:35 <+md_5> approx 10:35 < Calinou> 100+ players is full of disorder already 10:35 < Calinou> I can't enjoy servers with more than 40 players 10:35 <+md_5> dx so call it 15% of Minecraft SMP players 10:35 <+ammar2> Calinou: different people like different things 10:35 < dx> md_5: cool. 10:35 < dx> Calinou: this isn't 100+ players in a single chunk lol, this is interconnected servers 10:35 <+AndrewPH> Calinou: bungee is cording several servers together, a corded network won't have every player playing in the same space 10:36 < Calinou> interconnected servers is again, useless for that kind of gamer 10:36 <+md_5> yeah 10:36 < Calinou> -r 10:36 < Calinou> not to mention it is energy inefficient 10:36 <+md_5> Calinou dont judge based on your opinions 10:36 < Calinou> feel free to do it 10:36 <+md_5> clearly the system works > made it to front page of MCforums, curse weekly wrapup, top post on r/minecraft 10:36 < Grum> md_5: so you get a sharded world? 10:36 < Calinou> but mojang will never implement that :P 10:36 < Grum> i have no idea what bungeecord actually does 10:36 < dx> Calinou: it doesn't interest you, but just see the numbers they mentioned above, other people like it 10:37 < Calinou> md_5: since when /r/minecraft is indicative of popularity, or front page of MCF 10:37 <+ammar2> since forever 10:37 <+AndrewPH> Calinou: Multiworld is pretty popular 10:37 < Calinou> "griefing is an illusion" was on front page for 3 weeks :trollface: 10:37 < Grum> dx: no that is a lie, most people dont even KNOW they are using it, let alone you claim they 'like' it 10:37 <+AndrewPH> bungeecord is the same idea, just with servers instead of local worlds 10:37 <+md_5> Calinou ........ 15% of players is also indicitative 10:37 <+md_5> yeah 10:37 < Not-001> [fCraft] fragmer * r1987 4 files : DefaultMapGenGui now auto-sizes itself properly. 10:37 <+md_5> bungee is the next level of multiworld 10:37 <+AndrewPH> Grum: think of Multiverse 10:37 < dx> Grum: how can someone not know they are playing in a server with 2000 online players? 10:37 <+AndrewPH> now replace local worlds with networked servers 10:37 < Grum> each dimension on its own server? 10:37 <+md_5> Grum basically yeah, but more game modes 10:37 < Calinou> dx: spam in chat? :trollface: 10:38 <+md_5> eg if you run a minigames network 10:38 <+AndrewPH> each world of course can have multiple worlds 10:38 <+md_5> hunger games one server 10:38 <+md_5> minez on the other server 10:38 <+AndrewPH> but it's very much the same idea 10:38 <+md_5> creative on another server 10:38 -!- shoghicp_ [~shoghicp@77.225.6.14] has joined #mcdevs 10:38 <+md_5> its a 'lobby' 10:38 < Grum> md_5: so there is absolutely no benefit beyond doing a: 'jump into a portal' or 'execute command' to connect to another server? 10:38 <+md_5> Grum there is, it ties the servers together 10:38 < Grum> is chat synced up from *all* servers into 1 general pool? 10:38 <+md_5> there are bungee plugins 10:38 < Calinou> jump-into-a-portal to go to a server would be useful 10:38 <+AndrewPH> Grum: it can be 10:38 < Calinou> one server per world, why not 10:39 <+md_5> that can control chat, communication between other plugins on other servers 10:39 <+md_5> tab lists, global commands 10:39 <+Zaneo> That's actually what my server has done recently 10:39 <+md_5> anyway lets get back on topic 10:39 <+Zaneo> Each world is a different server with different plugins, all sharing a global chat 10:39 <+md_5> where were we... 10:40 < dx> md_5: well, Grum not being aware of the existence of bungee is an important part of the topic 10:40 < Grum> so, what would be a compelling reason to do a change to the protocol if you already have it working? O.o 10:40 < Grum> dx: not at all, it changes nothing 10:40 < SinZ> the json patch dinnerbone is about to do will slow it all down 10:40 <+md_5> yeah 10:40 < Calinou> source 10:40 < SinZ> but the packet headers can speed it back up 10:40 < Grum> SinZ: no? O.o 10:40 < Calinou> also, what will that json patch be useful for? 10:40 <+ammar2> the packet header change can reduce the actual protocol interfacing library significantly 10:40 <+md_5> Grum uh yes? now i have to decode in excess of 100 json packets a second 10:41 <+AndrewPH> why JSON? I mean, at least it's not XML, but JSON? 10:41 <+md_5> and what ammar2 said, at the moment if I want to make a custom MC client, I have to build an 81 packet library 10:41 < Grum> yeah so ? 10:41 <+md_5> see now we just get back to this stalemate 10:41 <+AndrewPH> Grum: Wastes space, wastes processing power, wastes time. 10:41 < Grum> i mean, if you want to do anything with mc you will end up having to hardcode a ungodly amount of things 10:41 <+md_5> 3rd party devs: make it easy for as 10:41 <+AndrewPH> Grum: so don't make that list even longer, try to improve it. 10:41 < AnotherOne> i think mojang does not give a f*** about custom client makers 10:41 <+md_5> mojang: f*** you we only add shiny stuff that makes users love us. 10:42 <+AndrewPH> because the worse you make it, the more crap you guys have to do later on 10:42 < Grum> the json change is needed 10:42 <+md_5> AnotherOne ^^ thats what above means 10:42 <+md_5> Grum read the comments on the gist 10:42 <+AndrewPH> Grum: "needed" 10:42 < Grum> or rather, we need something to communicate a chat-structure to the other side 10:42 <+md_5> especially dequis's 10:42 <+ammar2> the change may be needed but json isn't needed :P 10:42 < Grum> it doesnt have to be json 10:42 <+md_5> https://gist.github.com/Dinnerbone/5631634 10:42 < SinZ> Grum: then do NBT, not JSON 10:42 < Grum> there is no 'sane' alternative though 10:42 < Grum> NBT is FUCKED UP 10:42 <+AndrewPH> Grum: there we go 10:42 <+md_5> well 10:42 < Grum> seriously NBT is *BAD* 10:42 <+md_5> notch would have you believe nbt is a good idea for chat 10:42 < dx> json is worse 10:42 -!- shoghicp [~shoghicp@77.225.6.14] has quit [Ping timeout: 248 seconds] 10:42 <+md_5> I mean nbt is what... a json/bson replacement 10:42 -!- shoghicp_ is now known as shoghicp 10:43 -!- Zaneo [~Zaneo@70.52.147.134] has quit [Quit: Leaving] 10:43 < Grum> you have never seen the NBT code ... its horrifying 10:43 < Grum> untested >.> 10:43 <+md_5> Grum yes we have, it was open sourced 10:43 < Grum> the one time i did test it, i found 5 bugs in 10 minutes :( 10:43 <+md_5> in the anvil converter 10:43 <+md_5> it had the mojang nbt classes 10:43 < Calinou> NBT is FUCKED UP 10:43 < Calinou> +1 10:43 < Grum> yeah then you should know it is broken 10:43 < Calinou> who uses NBT other than minecraft? ._. 10:44 <+md_5> Calinou no one 10:44 <+md_5> minecraft invented nbt 10:44 < dx> the format itself is not bad, though 10:44 < Grum> it is 10:44 <+md_5> http://bsonspec.org/#/specification 10:44 < Grum> well, its not specifically horrible, the implementation is however 10:44 <+md_5> nbt is basically a shitty bson 10:45 <+md_5> at the core nbt is based around the same design principles as bson 10:45 < Grum> i've looked at bson before, looks like a sane alternative 10:45 < Grum> but meh, not really of much importance right now 10:46 < dx> uhm 10:46 <+AndrewPH> Grum: question: why does this happen http://i.imm.io/17lzZ.png 10:46 < Grum> no idea 10:46 < dx> you guys hate the § based chat packets, and hate NBT, so introduce json as dependency, but don't want to introduce bson? 10:46 < Grum> we dont introduce a json dependency at all 10:46 <+md_5> dx reason: they already had a json lib for realms 10:46 < Grum> we already have json as a dependency 10:46 <+md_5> > for realms 10:47 < Grum> we had it before that 10:47 < dx> oh, is it just realms? 10:47 < dx> Grum: where? 10:47 < Grum> we've had it for a long long LOOONG time 10:47 < Grum> argo has been bundle with our sources forevar 10:47 <+md_5> argo can barely be classed as a json 10:47 < Grum> (util 1.6 ;D) 10:47 < Grum> argo = json 10:47 <+md_5> its a horrible library 10:47 < Grum> yes 10:47 < Grum> we'll be using gson 10:47 <+AndrewPH> haha, argo, clever. because jason and the argonauts. 10:47 < Grum> we are using both right now even 10:47 <+AndrewPH> ha. 10:48 < dx> ha 10:48 <+AndrewPH> I feel silly but that made me giggle. 10:48 <+md_5> AndrewPH hehe 10:48 * md_5 quickly checks what they used argo for 10:48 <+AndrewPH> I should probably get some sleep 10:49 <+md_5> uh 10:49 < dx> Grum: so you had bundled argo without using it, now you decide to introduce a new json dependency because argo sucks, but don't want to introduce a bson dependency? 10:49 <+md_5> argo is only used for realms as far as I can tell 10:49 <+md_5> dx and with the new launcher / recently they have added:a 10:49 <+md_5> apache commons 10:49 <+md_5> guava 10:49 <+md_5> asm 10:49 <+md_5> scala 10:49 <+md_5> wat.... why is asm and scala there 10:49 <+ammar2> asm? scala? wut 10:49 < dx> ..scala? lol? 10:49 <+md_5> something 10:50 <+md_5> what 10:50 <+md_5> forge is polluting my lib folder 10:50 < dx> lol derp 10:50 <+md_5> actual lib folder is: 10:50 <+md_5> argo 10:50 <+md_5> guava 10:50 <+md_5> jorbis (paulscode) 10:50 <+md_5> apache commons 10:50 <+md_5> jinput 10:50 <+md_5> joptsimple 10:51 <+md_5> bouncycastle 10:51 <+md_5> lwjgl 10:51 <+md_5> ---- 10:51 < SinZ> launcher is gson and apache commons 10:51 <+md_5> jopt simple was probably added in a blink 10:51 < Grum> oh well; afk -> groceries :P 10:51 <+md_5> dx they dont have a real reason not to add bson 10:52 < dx> when sircmpwn complained about dependencies, dinnerbro said "Ok. Dependencies are bad? We already had json handling" 10:52 <+md_5> the fact is there are 2 groups of people crying for the attention of mojang 10:52 < dx> so dependencies aren't a problem 10:52 <+md_5> and we are always the group that gets ignored because our ideas are stupid 10:52 <+md_5> yet horses hoppers droppers coloured armor mob spawners comparators are not stupid 10:52 <+SpaceManiac> have fun getting food 10:53 < dx> we're just not a priority 10:53 <+ammar2> md_5: well yeah, you need updates to sell the game 10:53 <+md_5> ammar2 you could do all our updates in the time it takes to make oculus rift work 10:53 < SinZ> you could do all our updates before 1.6 is released 10:54 <+md_5> SinZ you could do them before the next snapshot (excluding the udp idea we threw around) 10:54 < SinZ> I didn't like the udp idea 10:54 < SinZ> WAY too much work for everyone 10:54 <+ammar2> yeah, dual stack is iffy 10:55 < dx> i'd love to have udp, but considering the amount of 'care' we receive, forget it 10:55 < SinZ> all our protocol improvements are required basically to make udp work right anyway 10:56 < dx> if adding a packet size header is hard, udp is impossible 10:56 <+md_5> the fact is there are commited people who want to "so don't make that list even longer, try to improve it." but it wont happen 10:56 -!- Cay [~OlofLarss@s83-177-171-150.cust.tele2.se] has joined #mcdevs 10:57 < dx> should i post a summary of this conversation to the gist thread, btw? 10:57 <+md_5> dx I loved your last comment, so yes, make it snazzy 10:58 <+ammar2> dx: if by gist thread you mean you guys complaining and dinnerbro saying nothing, sure :D 10:58 < dx> let's hope github doesn't decide to clear my text field again 10:58 <+md_5> dx write in wordpad or something and copy over 10:58 < dx> md_5: yeah i do that already 10:58 < dx> ammar2: he replied to a sircmpwn comment, at least 10:59 < AnotherOne> lol, dx 10:59 < AnotherOne> i told you 10:59 <+ammar2> his comment wasn't nearly detailed enough to provoke a proper response 11:00 < dx> AnotherOne: you also said i was butthurt and nobody cared, go away 11:01 < AnotherOne> i meant nobody at mojang:) 11:03 < dx> ...well now we know that grum doesn't care, but that doesn't mean we're going to give up 11:03 <+ammar2> we are 11:03 <+ammar2> we'll have to live with it just like we've been all these years 11:03 < dx> at the very least i want something that isn't json for the chat packets 11:04 <+md_5> ...well now we know that grum doesn't care, but that doesn't mean we're going to give up 11:04 <+md_5> +1 thats why this channel exists 11:10 -!- Yoshi2 [~chatzilla@xdsl-87-78-41-206.netcologne.de] has joined #mcdevs 11:11 < AnotherOne> http://www.youtube.com/watch?v=vtxL6jDiaUQ this + code meditation + tea = nice day 11:29 < AnotherOne> do you remember episode from matrix when Neo was shown "Woman in red" in code? 11:30 < AnotherOne> feeling the same while reading packet dumps 11:31 < Flemmard> it's more: http://cdn.memegenerator.net/instances/400x/36998474.jpg 11:33 -!- SuinDraw [~NiaTeppel@WiseOS/Founder/NiaTeppelin] has joined #mcdevs 11:33 < AnotherOne> true 11:35 < AnotherOne> what fo you guys think abut 0x10x? 11:35 < AnotherOne> 10c* 11:38 -!- Calinou [~Calinou@unaffiliated/calinou] has quit [Remote host closed the connection] 11:38 -!- kcj [~casey@unaffiliated/kcj] has quit [Ping timeout: 246 seconds] 11:48 <+SpaceManiac> seems neat from what I heard about it ages ago 11:51 < AnotherOne> i like its idea 11:51 < AnotherOne> Notch is genius of ideas 11:51 * eddyb runs away 11:52 < AnotherOne> not of implementation though:( 11:53 < Yoshi2> I heard that he put 0x10c on ice 11:54 < SinZ> from writers block or something like that 11:59 < dx> i just discovered :match and :highlight in vim 11:59 < dx> free custom syntax highlighting 11:59 < AnotherOne> masochist 12:00 < dx> why 12:00 < AnotherOne> because vim 12:00 < dx> sometimes you have to read stuff that isn't in a defined format 12:00 < dx> oh derp 12:00 < AnotherOne> how to exit it?:) 12:00 < Flemmard> :q! 12:00 < AnotherOne> damnit 12:00 < dx> let's not talk about this 12:01 < AnotherOne> i still remember my first launch of vim 12:01 < Flemmard> never try to exit vim as you want to exit emacs .. locks your term (if you dont know what it really does) XD 12:01 < AnotherOne> it ended with reboot 12:02 < dx> vim is an editor for people who want to be efficient, not for people who want to click buttons and use wizard interfaces 12:02 < AnotherOne> notepad++ 12:03 < Flemmard> emacs is great (if you use it properly) 12:03 < Flemmard> as a lot of term editors 12:03 < Flemmard> keyboard shortcuts are a lot more efficient than messing with a mouse and a crappy UI :> 12:03 < dx> yeah i'm sure emacs is good too, but i just chose a different path 12:03 < Flemmard> yeah 12:03 < Flemmard> we 'had' to learn it at school 12:03 < Flemmard> so ..