2016-01-01 22:56:20 ecx 1sec let me pull up the server sources 2016-01-01 22:56:20 javaprophet It could be that I'm not modifying my inventory correctly. 2016-01-01 22:56:49 javaprophet http://pastebin.com/Gm69EQe2 2016-01-01 22:56:53 Gjum so in your case does it break when you click on a slot say 5 times very fast? 2016-01-01 22:56:57 javaprophet That's the only place I write window clicks. 2016-01-01 22:57:04 javaprophet Let me write a test. 2016-01-01 22:57:53 Gjum I'd like to try and reproduce it with spock to be sure 2016-01-01 22:58:26 javaprophet No, it worked just fine, swapping the slots back and forth quickly. 2016-01-01 22:58:40 rom1504 javaprophet: you write 2 click packet without waiting in that pastebin 2016-01-01 22:58:55 javaprophet I have a layer below that that delays writing 2016-01-01 22:59:00 ecx http://paste.whitefire.in/view/xeRkVMzOro 2016-01-01 22:59:00 javaprophet It puts it into a queue. 2016-01-01 22:59:17 rom1504 (except if mc.writePacket contains a queue handling confirm transation waiting ?) 2016-01-01 23:00:01 javaprophet http://pastebin.com/6D7VqrC0 2016-01-01 23:02:49 rom1504 hmm so much pain 2016-01-01 23:03:24 rom1504 no clue if that can work or not. Does vanilla handle async stuff in such an annoying way ? 2016-01-01 23:03:53 ecx no its just threaded 2016-01-01 23:04:01 ecx all your packets go into a queue 2016-01-01 23:04:08 ecx theyre processed one by one in a packet read queue 2016-01-01 23:04:16 ecx packet read thread* 2016-01-01 23:08:10 ecx each player has their own thread 2016-01-01 23:14:18 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-01 23:15:51 shevchik_ No 2016-01-01 23:16:13 ecx idk its been a while 2016-01-01 23:35:08 Meeeh what, no, it use one or few more (netty) threads for all players 2016-01-01 23:35:38 shevchik_ Yes, but not one per player 2016-01-01 23:35:46 shevchik_ But the only packets that are processed on read thread 2016-01-01 23:35:50 shevchik_ Are login packets 2016-01-01 23:35:55 shevchik_ And chat and keep alive 2016-01-01 23:36:06 shevchik_ Others are processed by main thread 2016-01-01 23:36:31 Meeeh ecx, rom1504 ^ 2016-01-01 23:37:26 Meeeh shevchik_, hyym, chat use netty thread? it don't have own thread? (IDK, never chcked that) 2016-01-01 23:37:44 shevchik_ In vanilla and craftbukkit - no 2016-01-01 23:37:51 shevchik_ In spigot it uses a pool of chat threads 2016-01-01 23:38:14 Meeeh ah, now it make sense, ok :D 2016-01-01 23:40:08 ecx yeah the last time i actually did worko n this was before netty lol 2016-01-01 23:54:47 --> barneygale (~barneygal@90.196.181.240) a rejoint #mcdevs 2016-01-01 23:58:04 <-- HansiHE_ (~HansiHE@hansihe.com) a quitté (Quit: ZNC - http://znc.in) 2016-01-01 23:59:42 --> HansiHE (~HansiHE@hansihe.com) a rejoint #mcdevs 2016-01-02 00:10:31 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 240 seconds) 2016-01-02 00:35:12 <-- Tristitia (~tristitia@static-ip-69-64-50-196.inaddr.ip-pool.com) a quitté (Ping timeout: 246 seconds) 2016-01-02 00:37:38 --> Tristitia (~tristitia@static-ip-69-64-50-196.inaddr.ip-pool.com) a rejoint #mcdevs 2016-01-02 00:56:12 <-- levifig (~levi@hakr.io) a quitté (Ping timeout: 240 seconds) 2016-01-02 00:56:12 <-- TheUnnamedDude|b (bnc@2001:41d0:1:68a3::37) a quitté (Ping timeout: 240 seconds) 2016-01-02 00:56:32 <-- AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a quitté (Ping timeout: 240 seconds) 2016-01-02 00:57:12 <-- PEMapModder (~trueident@2607:5300:60:eb4::1) a quitté (Ping timeout: 240 seconds) 2016-01-02 00:57:12 <-- rom15042 (rom1504@rom1504.fr) a quitté (Ping timeout: 240 seconds) 2016-01-02 00:57:12 -- irc : déconnecté du serveur 2016-01-02 00:57:30 --> rom15043 (rom1504@rom1504.fr) a rejoint #mcdevs 2016-01-02 00:57:30 -- Le titre pour #mcdevs est "A haunt for developers working on projects related to Minecraft | Website & Rules: http://wiki.vg/MCDevs/rules | Wiki: http://wiki.vg | Channel is publicly logged as of Feb.25/13" 2016-01-02 00:57:30 -- Titre défini par TkTech (~TkTech@irc.tkte.ch) le mar., 02 sept. 2014 16:21:37 2016-01-02 00:57:30 -- Canal #mcdevs : 146 pseudos (1 op, 15 voices, 130 normaux) 2016-01-02 00:57:46 -- Canal créé le lun., 06 déc. 2010 12:22:40 2016-01-02 00:57:48 --> PEMapModder_ (~trueident@2607:5300:60:eb4::1) a rejoint #mcdevs 2016-01-02 00:57:55 --> Jailout20001 (~Jailout20@unaffiliated/jailout2000) a rejoint #mcdevs 2016-01-02 00:58:00 --> Adam__ (Adam@unaffiliated/adam-) a rejoint #mcdevs 2016-01-02 00:58:03 <-- Jailout2000 (~Jailout20@unaffiliated/jailout2000) a quitté (Ping timeout: 250 seconds) 2016-01-02 00:58:32 <-- Adam (Adam@unaffiliated/adam-) a quitté (Disconnected by services) 2016-01-02 00:58:35 -- Adam__ est maintenant connu sous le nom Adam 2016-01-02 00:58:56 --> Brandon1- (~Brandon15@195-154-68-209.rev.poneytelecom.eu) a rejoint #mcdevs 2016-01-02 00:59:49 --> rheddry (~levi@hakr.io) a rejoint #mcdevs 2016-01-02 01:00:58 <-- levifig (~levi@hakr.io) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:00:58 <-- TheUnnamedDude|b (bnc@2001:41d0:1:68a3::37) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:00:59 <-- AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:00:59 <-- PEMapModder (~trueident@2607:5300:60:eb4::1) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:00 <-- rom15042 (rom1504@rom1504.fr) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:03 <-- gabizou (~gabizou@irc.spongepowered.org) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:03 <-- m0r13 (~m0r13@2a01:4f8:201:8174:73:0:b00b:135) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:03 <-- Brandon15811_ (~Brandon15@2001:bc8:3111:200::) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:04 <-- xnrand (xnrand@unaffiliated/xy) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:04 <-- jamietech (~jamietech@jamietech.jbouncer.jamiete.ch) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:06 <-- JeanSebTr (sid50581@gateway/web/irccloud.com/x-bcnycnyduyradwoj) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:01:07 -- Brandon1- est maintenant connu sous le nom Brandon15811_ 2016-01-02 01:01:13 -- PEMapModder_ est maintenant connu sous le nom PEMapModder 2016-01-02 01:01:33 --> AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a rejoint #mcdevs 2016-01-02 01:01:52 <-- Pyker (pyker@pyker.net) a quitté (Ping timeout: 240 seconds) 2016-01-02 01:02:12 --> xnrand (xnrand@unaffiliated/xy) a rejoint #mcdevs 2016-01-02 01:02:45 --> Pyker (pyker@pyker.net) a rejoint #mcdevs 2016-01-02 01:03:24 --> jamietech (~jamietech@jamietech.jbouncer.jamiete.ch) a rejoint #mcdevs 2016-01-02 01:07:38 --> m0r13 (~m0r13@2a01:4f8:201:8174:73:0:b00b:135) a rejoint #mcdevs 2016-01-02 01:09:03 --> gabizou (~gabizou@irc.spongepowered.org) a rejoint #mcdevs 2016-01-02 01:10:44 --> JeanSebTr (sid50581@gateway/web/irccloud.com/x-mmjwhdpmlbagvtxg) a rejoint #mcdevs 2016-01-02 03:16:48 <-- Jode (~Jode@pool-173-48-157-52.bstnma.fios.verizon.net) a quitté (Quit: Leaving) 2016-01-02 03:25:28 <-- kahrl (~kahrl@88.67.15.118) a quitté (Quit: This iPhone is going to sleep.) 2016-01-02 03:26:31 <-- shevchik_ (~shevchik@109.188.124.65) a quitté (Read error: Connection reset by peer) 2016-01-02 03:33:38 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-02 04:00:22 --> programmerq (~jefferya@unaffiliated/programmerq) a rejoint #mcdevs 2016-01-02 05:06:52 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 260 seconds) 2016-01-02 05:20:17 <-- Cxom (~Trinoxtio@2601:248:4200:4876:b043:3cfa:d353:b57f) a quitté (Ping timeout: 260 seconds) 2016-01-02 05:23:05 --> Cxom (~Trinoxtio@2601:248:4200:4876:8431:b057:995c:7a3e) a rejoint #mcdevs 2016-01-02 06:11:02 --> shevchik_ (~shevchik@109.188.124.14) a rejoint #mcdevs 2016-01-02 06:19:20 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-02 06:40:00 --> redstonehelper_ (~redstoneh@unaffiliated/redstonehelper) a rejoint #mcdevs 2016-01-02 06:43:19 <-- redstonehelper (~redstoneh@unaffiliated/redstonehelper) a quitté (Ping timeout: 260 seconds) 2016-01-02 06:43:19 -- redstonehelper_ est maintenant connu sous le nom redstonehelper 2016-01-02 06:59:36 <-- barneygale (~barneygal@90.196.181.240) a quitté (Ping timeout: 264 seconds) 2016-01-02 07:02:44 --> shevchik__ (~shevchik@109.188.124.4) a rejoint #mcdevs 2016-01-02 07:03:48 <-- shevchik_ (~shevchik@109.188.124.14) a quitté (Ping timeout: 264 seconds) 2016-01-02 07:10:05 --> shevchik (~shevchik@109.188.126.50) a rejoint #mcdevs 2016-01-02 07:10:24 <-- shevchik__ (~shevchik@109.188.124.4) a quitté (Ping timeout: 264 seconds) 2016-01-02 07:26:24 -- r04r est maintenant connu sous le nom zz_r04r 2016-01-02 07:33:42 --> shevchik_ (~shevchik@109.188.127.6) a rejoint #mcdevs 2016-01-02 07:36:48 <-- shevchik (~shevchik@109.188.126.50) a quitté (Ping timeout: 264 seconds) 2016-01-02 07:56:14 --> shevchik__ (~shevchik@109.188.127.52) a rejoint #mcdevs 2016-01-02 07:58:24 <-- shevchik_ (~shevchik@109.188.127.6) a quitté (Ping timeout: 264 seconds) 2016-01-02 08:00:48 <-- shevchik__ (~shevchik@109.188.127.52) a quitté (Ping timeout: 264 seconds) 2016-01-02 08:02:01 --> shevchik__ (~shevchik@109.188.125.57) a rejoint #mcdevs 2016-01-02 08:11:36 <-- shevchik__ (~shevchik@109.188.125.57) a quitté (Ping timeout: 264 seconds) 2016-01-02 08:16:40 --> shevchik__ (~shevchik@109.188.125.13) a rejoint #mcdevs 2016-01-02 08:26:36 <-- shevchik__ (~shevchik@109.188.125.13) a quitté (Ping timeout: 264 seconds) 2016-01-02 08:35:42 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 260 seconds) 2016-01-02 08:39:46 --> shevchik__ (~shevchik@94.25.164.142) a rejoint #mcdevs 2016-01-02 08:41:38 javaprophet How does the client know the motion of entities in a server? I see there is a EntityMotion packet, but it never seems to be sent for things like arrows and players? 2016-01-02 08:42:42 <-- mallard (~mallard@77.86.33.102) a quitté (Ping timeout: 260 seconds) 2016-01-02 08:44:52 +Amaranth iirc the velocity packet is sent for knockback 2016-01-02 08:45:18 +Amaranth Otherwise the client and server have the same physics and collision implementations and the same starting points so... 2016-01-02 08:45:35 +Amaranth Oh and they sync up the actual position fairly regularly 2016-01-02 08:46:21 javaprophet Alright, thanks. 2016-01-02 08:47:16 javaprophet What about arrows? They have random initial velocity, so how do they work? 2016-01-02 08:47:33 +Amaranth Poorly, haven't you noticed they're basically always out of sync? 2016-01-02 08:47:52 javaprophet Hmm 2016-01-02 08:48:11 javaprophet Not in the recent updates of minecraft. 2016-01-02 08:49:20 --> shevchik_ (~shevchik@94.25.164.197) a rejoint #mcdevs 2016-01-02 08:52:24 <-- shevchik__ (~shevchik@94.25.164.142) a quitté (Ping timeout: 264 seconds) 2016-01-02 08:55:46 javaprophet I discovered the wiki's interpretation of SpawnObject is out of date! I'll modify it. 2016-01-02 09:02:43 --> shevchik__ (~shevchik@94.25.164.12) a rejoint #mcdevs 2016-01-02 09:06:12 <-- shevchik_ (~shevchik@94.25.164.197) a quitté (Ping timeout: 264 seconds) 2016-01-02 09:11:00 <-- shevchik__ (~shevchik@94.25.164.12) a quitté (Ping timeout: 264 seconds) 2016-01-02 09:11:25 --> shevchik__ (~shevchik@94.25.164.12) a rejoint #mcdevs 2016-01-02 09:15:34 rom15043 Out of date ? What is there to interpret ? It just spawns an object 2016-01-02 09:16:12 javaprophet It didn't include the Entity Velocity in SpawnObject packets. 2016-01-02 09:17:36 <-- shevchik__ (~shevchik@94.25.164.12) a quitté (Ping timeout: 264 seconds) 2016-01-02 09:20:59 rom15043 There is only one spawn object packet and entity velocity is a separate packet 2016-01-02 09:21:14 javaprophet Check Minecraft 1.8 source. 2016-01-02 09:21:29 javaprophet Spawn Object contains Entity Velocity params similar to Spawn Mob 2016-01-02 09:21:34 rom15043 Ah I see you added 3 velocity Fields 2016-01-02 09:21:39 rom15043 That is wrong 2016-01-02 09:21:48 javaprophet Look at the source! It is correct! 2016-01-02 09:21:50 rom15043 They are included in the object data 2016-01-02 09:22:12 javaprophet Vanilla MC reads it as part of the packet. 2016-01-02 09:22:20 rom15043 See http://wiki.vg/Object_Data 2016-01-02 09:23:14 rom15043 It doesn't matter how vanilla read it. These velocities are optional and were correctly described in the object data page 2016-01-02 09:23:18 javaprophet Ahh, I just interpreted it directly out of the SpawnObject packet from MC, I feel like it definitely doesn't belong in Object Data. 2016-01-02 09:24:35 javaprophet There are also other packets with optional data. 2016-01-02 09:25:36 rom15043 Well if you want to get it out of object data then you need to put the integer sent at the beginning of object data as a spawn object field then say the velocity are optional dependending on that field in the velocities description 2016-01-02 09:26:07 javaprophet Hmm, I see. 2016-01-02 09:26:12 rom15043 (And change the object data page to reflect this) 2016-01-02 09:27:13 javaprophet What MC seems to do, is to read Object Data as an integer, and then if it's > 0, read the velocity. I see your point. 2016-01-02 09:27:20 rom15043 Ah and it seems that beginning field is the actual data, object data is always an int apparently 2016-01-02 09:27:54 rom15043 Yeah but I think you're right too, it would probably be simpler to get this out of object data 2016-01-02 09:28:10 rom15043 Well providing object data is used nowhere else ? 2016-01-02 09:28:50 javaprophet Yea, I suppose. Perhaps specify that object data is always an Int, and provide the object data page on how to interpret it for other entities. 2016-01-02 09:29:13 rom15043 Yeah sounds good 2016-01-02 09:29:25 rom15043 Seems that's the only packet concerned too 2016-01-02 09:30:22 javaprophet I'll modify it to say the Field type is of type Int, ad put the Object Data link in the Notes, then modify the Object Data page accordingly. 2016-01-02 09:33:57 rom15043 (And add optional if object data = 0 on the velocity fields) 2016-01-02 09:34:18 javaprophet I did at the end of the notes, is there a different place to do it? 2016-01-02 09:34:45 rom15043 Usually it's in the field notes I think 2016-01-02 09:35:33 rom15043 Ah you did that 2016-01-02 09:36:08 rom15043 Alright :) 2016-01-02 09:36:29 javaprophet :) I'm modifying the Object Data page now. 2016-01-02 10:34:22 --> Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a rejoint #mcdevs 2016-01-02 11:05:11 --> mallard (~mallard@77.86.33.102) a rejoint #mcdevs 2016-01-02 11:28:01 <-- Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a quitté (Quit: WeeChat 1.3) 2016-01-02 11:30:25 --> kahrl (~kahrl@dslb-088-067-015-118.088.067.pools.vodafone-ip.de) a rejoint #mcdevs 2016-01-02 11:37:33 --> Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a rejoint #mcdevs 2016-01-02 11:42:59 <-- Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a quitté (Quit: WeeChat 1.3) 2016-01-02 11:47:04 --> Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a rejoint #mcdevs 2016-01-02 11:59:34 <-- Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a quitté (Quit: WeeChat 1.3) 2016-01-02 12:00:01 --> Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a rejoint #mcdevs 2016-01-02 12:11:51 <-- javaprophet (~javaproph@2601:647:ca00:46a4:b9d3:6e8:e496:ebca) a quitté (Remote host closed the connection) 2016-01-02 13:14:18 Meeeh Actually, what is that metadata, boolean at 4 index, "Is Silent"? 2016-01-02 13:14:23 Meeeh and when it is used 2016-01-02 13:36:56 rom15043 No clue. If I has to guess I'd say it makes the entity produce no noise. But : try it and tell us ;) 2016-01-02 13:37:15 rom15043 had 2016-01-02 14:12:48 ecx just treat other entities and players as EntityLivingBase 2016-01-02 14:12:53 ecx javaprophet: 2016-01-02 14:15:28 <-- Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a quitté (Quit: WeeChat 1.3) 2016-01-02 14:16:30 Meeeh setting zombie to eating state wasn't my best idea 2016-01-02 14:17:30 Meeeh why so many weird stuff like eating is in Entity metadata when using that will crash mc :D 2016-01-02 14:22:29 --> Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a rejoint #mcdevs 2016-01-02 15:14:11 <-- Prf_Jakob (jakob@146.185.148.27) a quitté (Ping timeout: 272 seconds) 2016-01-02 15:14:23 --> Prf_Jakob (jakob@void-network.org) a rejoint #mcdevs 2016-01-02 15:14:30 -- Mode #mcdevs [+v Prf_Jakob] par ChanServ 2016-01-02 15:27:26 -- zz_r04r est maintenant connu sous le nom r04r 2016-01-02 15:34:47 rom1504 the server can crash the client in so many ways ;) 2016-01-02 15:38:29 --> barneygale (~barneygal@90.196.181.240) a rejoint #mcdevs 2016-01-02 15:41:51 rom1504 flying-squid can now fully load anvil files http://download.rom1504.fr/stuff/mc-full-anvil-loading.png :) 2016-01-02 15:42:20 rom1504 (here it's loading a vanilla world) 2016-01-02 15:42:39 rom1504 (+ some generation for unsaved chunks on the right) 2016-01-02 15:49:07 Meeeh ugh, Elytra should not stop when you fall into 1 block size waterfall :D 2016-01-02 16:08:16 -- ecx est maintenant connu sous le nom ecx86 2016-01-02 16:16:50 --> ecx86 (~ecx86@unaffiliated/ecx86) a rejoint #mcdevs 2016-01-02 16:18:29 <-- ecx86 (~ecx86@unaffiliated/ecx86) a quitté (Quit: Leaving) 2016-01-02 16:18:52 --> ecx86 (~ecx86@unaffiliated/ecx86) a rejoint #mcdevs 2016-01-02 16:19:42 <-- ecx86 (~ecx86@unaffiliated/ecx86) a quitté (Client Quit) 2016-01-02 16:20:03 --> ecx86 (~ecx86@unaffiliated/ecx86) a rejoint #mcdevs 2016-01-02 16:51:58 <-- Timelaw (~Timelaw@78-69-251-208-no168.tbcn.telia.com) a quitté (Quit: WeeChat 1.3) 2016-01-02 18:14:00 <-- barneygale (~barneygal@90.196.181.240) a quitté (Ping timeout: 264 seconds) 2016-01-02 18:19:20 --> barneygale (~barneygal@90.196.181.240) a rejoint #mcdevs 2016-01-02 18:25:25 <-- barneygale (~barneygal@90.196.181.240) a quitté (Ping timeout: 265 seconds) 2016-01-02 18:27:14 --> barneygale (~barneygal@90.196.181.240) a rejoint #mcdevs 2016-01-02 18:31:32 <-- barneygale (~barneygal@90.196.181.240) a quitté (Ping timeout: 240 seconds) 2016-01-02 18:31:59 --> barneygale (~barneygal@90.196.181.240) a rejoint #mcdevs 2016-01-02 19:07:07 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-02 19:31:52 Not-d54a [1.8-Models] drXor pushed 1 commit to 1.8 [+2/-0/±3] http://git.io/vuLoV 2016-01-02 19:31:53 Not-d54a [1.8-Models] drXor 1e1e1c5 - Update crafting table. 2016-01-02 19:48:39 <-- barneygale (~barneygal@90.196.181.240) a quitté (Remote host closed the connection) 2016-01-02 20:09:19 <-- ecx86 (~ecx86@unaffiliated/ecx86) a quitté (Read error: Connection reset by peer) 2016-01-02 20:12:50 --> ecx86 (~ecx86@unaffiliated/ecx86) a rejoint #mcdevs 2016-01-02 20:22:19 --> ecx_ (~ecx86@unaffiliated/ecx86) a rejoint #mcdevs 2016-01-02 20:24:12 <-- ecx86 (~ecx86@unaffiliated/ecx86) a quitté (Ping timeout: 264 seconds) 2016-01-02 20:38:52 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 240 seconds) 2016-01-02 20:51:34 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-02 20:58:46 --> javaprophet (~javaproph@2601:647:ca00:46a4:b8dc:cc3c:eb57:44f0) a rejoint #mcdevs 2016-01-02 21:40:52 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 240 seconds) 2016-01-02 21:43:25 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-02 22:19:52 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 240 seconds) 2016-01-02 22:22:04 <-- Brottweiler (~brott@unaffiliated/brott) a quitté #mcdevs 2016-01-02 22:52:13 Meeeh http://wiki.vg/Pre-release_protocol#Entity_Metadata I testing that boolean from AreaEffectCloud 2016-01-02 22:53:27 Meeeh anyone know what it does? 2016-01-02 22:53:55 Meeeh http://imgur.com/k9CNgtn this near me is with true value, both use this same particle, color and radius 4 2016-01-02 22:55:51 javaprophet In the chat JSON format, are the arrays in extra just more chat messages? 2016-01-02 22:56:15 javaprophet IE they can be selectors or score, translate, or just text? 2016-01-02 22:56:48 Meeeh they can be everything as far as I know 2016-01-02 22:57:02 Meeeh and they can contains more extra arrays 2016-01-02 22:57:15 javaprophet Nasty 2016-01-02 23:17:41 rom1504 yes the chat format is pretty annoying 2016-01-02 23:17:51 rom1504 even just vanilla 2016-01-02 23:18:04 rom1504 with chat plugins it gets just impossible to makes sense of it 2016-01-02 23:18:23 javaprophet Yeah, especially considering I'm not using a JSON library. 2016-01-02 23:18:38 rom1504 oh lol why ? 2016-01-02 23:18:55 javaprophet (Just a personal challenge, I try to limit library usage) I managed to make a 200 line interpreter that works pretty well. 2016-01-02 23:19:25 rom1504 "Just a personal challenge, I try to limit library usage" , ah, I have the opposite personal challange 2016-01-02 23:19:29 rom1504 challenge 2016-01-02 23:19:43 javaprophet :P I'll pastebin the code I created, it's disgusting, in a moment 2016-01-02 23:20:08 rom1504 well making a new json parser is pretty easy too ;) 2016-01-02 23:20:18 javaprophet I did one up on that 2016-01-02 23:21:01 rom1504 if I were to do that, I would then package it as a library and use that new library though :p 2016-01-02 23:27:21 Meeeh this boolean seems to limit effect to only one point 2016-01-02 23:27:27 Meeeh instead of using radius o.O 2016-01-02 23:27:51 Meeeh This one-> http://wiki.vg/Pre-release_protocol#Entity_Metadata I testing that boolean from AreaEffectCloud 2016-01-02 23:27:57 Meeeh http://imgur.com/a/qQXgF :D this is epic 2016-01-02 23:33:35 javaprophet test 2016-01-02 23:33:45 javaprophet Works with Spigot/essentials & vanilla! 2016-01-02 23:33:56 javaprophet Prepare to be disgusted rom1504. 2016-01-02 23:34:23 javaprophet http://hastebin.com/uyixoqizaj.coffee 2016-01-02 23:34:51 javaprophet This is by far my most disgusting json psuedo-parser I've written yet. 2016-01-02 23:41:44 --> EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a rejoint #mcdevs 2016-01-02 23:43:56 rom1504 OMG 2016-01-02 23:44:12 rom1504 json-mc-chat parser :p 2016-01-02 23:44:12 javaprophet It's getting nastier too, I'm fixing a crash bug if you send it "}{" 2016-01-02 23:44:44 rom1504 when json is such an easy thing to parse https://github.com/rom1504/JsonConv/blob/master/source/parser.mly 2016-01-02 23:45:10 javaprophet Why write a proper parser when you can hack it? :P 2016-01-02 23:45:24 javaprophet (I love non-open-source projects because of this) 2016-01-02 23:46:01 rom1504 and that's why I hate non-open-source projects :p 2016-01-02 23:47:52 rom1504 btw mc chat has mojangson in the some field, I think the hoverevent 2016-01-02 23:48:27 javaprophet Mojangjson sounds very concerning. 2016-01-02 23:48:32 rom1504 yeah, hoverevent for action == 'show_item' 2016-01-02 23:48:35 javaprophet However, I'm not implementing anything but the visible text. 2016-01-02 23:48:46 rom1504 this is mojangson https://github.com/rom1504/node-mojangson/blob/master/grammar.jison :D 2016-01-02 23:49:36 Gjum "liste" ;) 2016-01-02 23:50:23 rom1504 ah yeah, I copied some of the grammar from https://github.com/rom1504/JsonConv/blob/master/source/parser.mly , and this one was a school project, so : in french :p 2016-01-02 23:54:45 Meeeh http://imgur.com/Qo5V6mu wat is that! :D 2016-01-02 23:54:51 javaprophet I never seen the TeX or OCaml languages in there before. 2016-01-02 23:54:54 Meeeh 1 FPS, yey 2016-01-02 23:55:12 javaprophet Jesus, that looks cool. 2016-01-02 23:56:49 Meeeh yeach, and you don't see anything except that, and you have 1fps :D 2016-01-03 00:00:51 Meeeh http://imgur.com/a/Bi8iy usable with smaller radius, but still, not for playing :D 2016-01-03 00:02:14 javaprophet Are those guardians, Meeeh? 2016-01-03 00:02:27 Meeeh javaprophet, they are, but effect isn't 2016-01-03 00:02:53 Meeeh this is CloudEffect entity with "mobappearance", 41 as particle id 2016-01-03 00:03:09 javaprophet Aah, I see. 2016-01-03 00:03:19 Meeeh and it is weird, as this particle isn't in place of spawn 2016-01-03 00:03:24 javaprophet I'm writing a headless bot, so I've never played with particles. 2016-01-03 00:03:45 javaprophet I figure your writing a server? 2016-01-03 00:03:45 Meeeh but as long as you are in chunks where this entity is, you can't see anything except that effect 2016-01-03 00:03:53 Meeeh yep 2016-01-03 00:04:17 javaprophet Nice 2016-01-03 00:08:47 Meeeh they changed anything about chat packets (action messages maybe)? 2016-01-03 00:09:07 javaprophet In 1.9? Not documented on the wiki. 2016-01-03 00:09:11 Meeeh every action message kick client from game, with malformed JSON exception ;/ 2016-01-03 00:09:14 rom1504 no idea, never tried it 2016-01-03 00:09:19 rom1504 ah 2016-01-03 00:09:33 rom1504 actually I know 2016-01-03 00:09:46 rom1504 you need to send json for every chat message now 2016-01-03 00:09:54 Meeeh I know that it use JSON 2016-01-03 00:09:59 Meeeh all my messages use json 2016-01-03 00:09:59 rom1504 can't just send a string without quote 2016-01-03 00:10:12 rom1504 in all packets with "chat" type ? 2016-01-03 00:10:28 Meeeh this.broadcastMessage(position, new TextComponent(str)); yep 2016-01-03 00:10:58 rom1504 yeah but for example, in the disconnect packet 2016-01-03 00:11:11 rom1504 http://wiki.vg/Protocol#Disconnect 2016-01-03 00:11:19 Meeeh didn't checked, but disconnect isn't crashing anything 2016-01-03 00:11:19 rom1504 ah it's not documented in pre-release page 2016-01-03 00:12:02 rom1504 Meeeh: well are you sure ? my problem was some random other problem was triggering a disconnect, which was not sending json, the vanilla client displayed that json error thingy 2016-01-03 00:12:39 rom1504 Meeeh: you get the json error when sending any chat messages ? (and only then) 2016-01-03 00:12:42 Meeeh yeach, it must be that, meh, I will debug and see how this json looks just before send 2016-01-03 00:12:52 Meeeh only action chat messages 2016-01-03 00:13:01 rom1504 ah okay 2016-01-03 00:13:10 Meeeh but they use this same system as other, just other enum value 2016-01-03 00:13:30 rom1504 well it's weird it's saying the json is wrong, aren't you using a lib to generate the json ?? 2016-01-03 00:14:24 Meeeh GSON, my chat API is simillar to spigot one, but with some changes, addons, etc, like replace method and other usless stuff 2016-01-03 00:15:11 Meeeh nah, even "/say:action test" kick all players 2016-01-03 00:15:41 Meeeh use JsonReader.setLentient(true) to accept malformed JSON, at line 1, col 2. meh 2016-01-03 00:16:34 rom1504 can GSON produce non-json ? 2016-01-03 00:16:44 rom1504 1.9 only parse real json now I think 2016-01-03 00:16:50 rom1504 (with quotes and all) 2016-01-03 00:17:17 rom1504 (not Lenient) 2016-01-03 00:18:31 Meeeh oh, interesting, it seems to only produce simple string 2016-01-03 00:18:37 Meeeh without all other stuff, ugh 2016-01-03 00:18:39 javaprophet That's mildly concerning, I might need a 2nd monstrosity to cover old style chat until 1.9 rolls around fully... 2016-01-03 00:19:59 Meeeh yeach 2016-01-03 00:20:12 Meeeh if chat don't have any format then it use return new JsonPrimitive(src.getText()); :D 2016-01-03 00:20:37 Meeeh so yeach, that is a issue, thanks rom1504 2016-01-03 00:21:39 Meeeh yey, works again! :D 2016-01-03 00:22:50 EqDev Anybody familiar with writing uncompressed packet headers to bytebufs when dealing with the protocol? 2016-01-03 00:23:21 javaprophet Almost everyone, I assume, what's your issue? 2016-01-03 00:24:48 EqDev I write packet data to a #1 bytebuf. In #2 bytebuf I right the packet length + id and then the packetID. Then I write #1 too #2. That doesnt work. But in #1 when I write the packetid and not in #2, it works 2016-01-03 00:25:27 EqDev Let me pastebin it if that didnt make sense xd 2016-01-03 00:25:33 javaprophet Has the server sent the compression packet? 2016-01-03 00:25:44 EqDev nope this is all before it 2016-01-03 00:25:49 EqDev just for status 2016-01-03 00:26:06 javaprophet Alright, the packet format before is a varint length, varint id, and then the body iirc. 2016-01-03 00:26:27 javaprophet length DOES include id, I believe. 2016-01-03 00:26:45 EqDev writeVarInt32(header, data.readableBytes() + packetOut.getId()); 2016-01-03 00:26:52 EqDev ^ Thats the first field 2016-01-03 00:26:57 EqDev Codec.writeVarInt32(header, packetOut.getId()); 2016-01-03 00:27:00 EqDev Thats second. 2016-01-03 00:27:09 EqDev Then data writes to the header 2016-01-03 00:27:28 EqDev That doesnt work. When I write the packetid to the data, that works. 2016-01-03 00:27:40 Meeeh what are you doing? 2016-01-03 00:28:22 javaprophet Are you writing the length? 2016-01-03 00:28:26 EqDev Trying to send a handshake packet along with ping and request 2016-01-03 00:28:40 EqDev Ye 2016-01-03 00:28:51 EqDev Codec.writeVarInt32(header, data.readableBytes() + packetOut.getId()); 2016-01-03 00:28:56 javaprophet Wireshark it and make sure you didn't mess it up, I suppose. 2016-01-03 00:29:11 javaprophet Oh, your adding the ID to the length. 2016-01-03 00:29:22 javaprophet Get the length of the VarInt for ID, then add it to body length. 2016-01-03 00:30:03 EqDev Know any utils to get the varint? 2016-01-03 00:30:18 EqDev Or should I just write it to a bytebuf and get those bytes and add it to the body length 2016-01-03 00:30:21 javaprophet Look at Vanilla MC's code in MCP, it has all the answers. 2016-01-03 00:30:42 javaprophet That will also work I think. 2016-01-03 00:30:50 javaprophet I don't personally use ByteBufs... 2016-01-03 00:31:04 EqDev nope it works looks like it 2016-01-03 00:31:17 Meeeh https://hasteb.in/lekekonoqe.coffee I use that to get size, I know that there is way with loop and bite shifts, but this is claner and faster for me :P 2016-01-03 00:31:18 EqDev https://gyazo.com/5c5f708983236e1f530360fb894563f6 2016-01-03 00:31:44 Meeeh oh, maybe that will be more clean witout that magic vaules 2016-01-03 00:31:52 EqDev lol 2016-01-03 00:32:57 EqDev both work tho correct? 2016-01-03 00:33:11 EqDev Your method should do the same as what I did Meeeh 2016-01-03 00:33:12 javaprophet "@SuppressWarnings("MagicNumber")" I've never seen such a warning... 2016-01-03 00:33:21 javaprophet Yes, EqDev. 2016-01-03 00:33:45 Meeeh I use that as I allocate buffers manualy using estaminated size of every packet :D 2016-01-03 00:34:05 EqDev weird 2016-01-03 00:34:07 EqDev Codec.writeVarInt32(header, varintSize(packetOut.getId())); 2016-01-03 00:34:09 Meeeh as I don't like allocting 512 bytes for 5 byte packet that is send 1000 times per second 2016-01-03 00:34:13 EqDev I use that for the id and it doesnt work anymore 2016-01-03 00:34:24 javaprophet I just use ByteArrayOutputStreams with DataOutputStreams on top w/ some helper write functions like mc.writeVarInt 2016-01-03 00:34:27 Meeeh this is only size of varint 2016-01-03 00:34:29 EqDev It worked when I did: 2016-01-03 00:34:30 EqDev Codec.writeVarInt32(header, packetOut.getId()); 2016-01-03 00:34:38 EqDev ohhhh 2016-01-03 00:35:13 Meeeh byteSize + varintSize, then packet id, and data. 2016-01-03 00:35:15 EqDev still weird. Codec.writeVarInt32(header, t.readableBytes()); still not working 2016-01-03 00:35:32 EqDev ^ thats packet id 2016-01-03 00:35:47 javaprophet Fire up wireshark and verify what the issue is. 2016-01-03 00:35:57 rom1504 any benefit in not using https://github.com/Steveice10/MCProtocolLib ? 2016-01-03 00:35:59 javaprophet Give us a hex dump of the connection. 2016-01-03 00:36:22 javaprophet It uses maven, so it'll probably be a pain to set up. 2016-01-03 00:36:22 EqDev nvr herad of wireshark 2016-01-03 00:36:24 Meeeh Codec.writeVarInt32(header, packetDataSize + varintSize(packetID)); 2016-01-03 00:36:32 Meeeh ec.writeVarInt32(header, packetID); 2016-01-03 00:36:40 Meeeh and then write packet data 2016-01-03 00:36:43 javaprophet It's free, google it. It allows you to snoop on connections. 2016-01-03 00:36:45 EqDev yeah that works 2016-01-03 00:37:01 EqDev Meeeh: that works. I thought I have to get the varint of packet.id for the id? 2016-01-03 00:37:13 EqDev not just write the int 2016-01-03 00:37:18 Meeeh ah 2016-01-03 00:37:28 Meeeh but 2016-01-03 00:37:33 Meeeh ".writeVarInt32" 2016-01-03 00:37:40 Meeeh isn't that for varint already? :D 2016-01-03 00:37:45 EqDev OHHHHHHHH 2016-01-03 00:37:50 EqDev braindead XD 2016-01-03 00:38:06 EqDev thanks guys 2016-01-03 00:38:18 EqDev ill try out wireshark btw 2016-01-03 00:38:49 javaprophet It's the best for debugging protocol issues, IMO. 2016-01-03 00:40:06 Meeeh nah, too lazy for that, I always look into NMS code to find differences xD 2016-01-03 00:40:10 EqDev good. Because I have 1 more issue. The request and ping packet doesnt work with the packet id in the header. works perfectly without it 2016-01-03 00:41:22 EqDev just installed wireshark 2016-01-03 00:42:04 EqDev any user guide to setting this up with a connection? 2016-01-03 00:42:29 javaprophet Lots of stuff on google, select a network adapter and the filter is similar to a java if statement. 2016-01-03 00:44:01 rom1504 "It uses maven, so it'll probably be a pain to set up." Lol 2016-01-03 00:44:14 rom1504 you seriously don't use a package manager then ? 2016-01-03 00:44:46 javaprophet Nope, I don't use any libraries usually. 2016-01-03 00:44:55 javaprophet In java atleast, in C, I use a few. 2016-01-03 00:45:20 EqDev okay I filtered it to port 25565 2016-01-03 00:45:36 javaprophet Run a ping and see what happens. Do it again from the vanilla client, and compare. 2016-01-03 00:45:52 EqDev I see 4 sources 2016-01-03 00:45:59 javaprophet I usually right click on a packet in the connect, and click follow TCP connection, then check hex dump or some similar. 2016-01-03 00:47:20 EqDev How do we know which source is correct 2016-01-03 00:47:34 javaprophet Don't run two at the same time. :P 2016-01-03 00:47:42 EqDev wat 2016-01-03 00:47:54 EqDev idk. I just started the sniffer and filters it with the port # 2016-01-03 00:48:10 javaprophet I usually find one, load the hex dump, clear, and restart, then hex dump vanilla for instance. 2016-01-03 00:48:20 rom1504 and this is why so many companies hire java developers. So they can do lots of NIH :) 2016-01-03 00:49:02 EqDev we are listening for the server correct? 2016-01-03 00:49:27 javaprophet Definitely not, but I enjoy it in my personal projects. :P 2016-01-03 00:49:40 EqDev wat 2016-01-03 00:51:04 rom1504 just in that not so populated chan, 3 people doing 3 separate java mc protocol lib, instead of working on a good one together :) 2016-01-03 00:51:44 EqDev okay javaprophet I did it and I see tons of purple packets 2016-01-03 00:56:46 javaprophet I don't recall seeing colors in wireshark... Look up a tutorial man. 2016-01-03 00:57:30 javaprophet Mine has large monetary gain as a motivator, so I don't think I'd fit into an open source project with it.... :( 2016-01-03 01:03:47 EqDev if client sends ping then request why does the wiki say request then ping 2016-01-03 01:04:06 javaprophet I always thought it did request then ping. 2016-01-03 01:04:11 javaprophet It's what my pinger does. 2016-01-03 01:04:46 EqDev https://gist.github.com/zh32/7190955 2016-01-03 01:04:53 EqDev That guy does it vice versa 2016-01-03 01:08:09 Meeeh rom1504, not possible :P everyone have own idea to do it, so if I don't see any project simillar to my idea... :P And it is just fun to play around all that stuff 2016-01-03 01:08:50 Meeeh also one will use cpp, one C, one Java, one Python, JavaScript, etc... 2016-01-03 01:09:24 javaprophet I saw some project that was language-less the other day... 2016-01-03 01:13:08 Meeeh i need to ask, why some project have bot here? 2016-01-03 01:13:32 javaprophet You mean SpockBot(I think)? 2016-01-03 01:13:59 Meeeh I'm not sure, but yes, but there was few other I think 2016-01-03 01:14:02 javaprophet I think they asked someone @ http://wiki.vg/MCDevs/rules 2016-01-03 01:14:06 gamingrobot ? 2016-01-03 01:14:28 rom1504 Meeeh: yes having one protocol lib by language is quite fine 2016-01-03 01:14:35 rom1504 having 15 is inefficient 2016-01-03 01:14:40 rom1504 waste of effort 2016-01-03 01:15:58 javaprophet I kind of agree rom, if we all teamed up, I imagine we could all write an entire client, rendering and all. 2016-01-03 01:17:43 Meeeh whateva, I making usless server not library xD I don't even know why I stared, just some lazy day, and instead of leaving all MC stuff and start do something normal, I stared my server project :D 2016-01-03 01:17:56 Meeeh And I can't stop :< I like it :< 2016-01-03 01:18:15 javaprophet I'm enjoying myself writing AI for things like factions-server domination. 2016-01-03 01:18:22 Meeeh and hate, because I know that I will never finish it/make it usable :D 2016-01-03 01:19:34 javaprophet Meeeh, if you implement everything & the craftbukkit api/NMS wrapper, you could make something awesome. 2016-01-03 01:21:00 Meeeh javaprophet, implementing bukkit API may be possible, but not NMS wrapper :D I don't think that I will someday implement everything... 2016-01-03 01:21:17 Meeeh Me vs team of Mojang 2016-01-03 01:21:39 javaprophet Yes it is, export all the public functions, and then create the same package & classes & methods, then just make everything call methods from your server. 2016-01-03 01:22:15 Meeeh people use a lot of refetcions here, including fields 2016-01-03 01:22:22 javaprophet Hell, I could implement MC Forge into my client if I wanted to spend 40 hours on it. 2016-01-03 01:22:54 javaprophet Then implement the fields! That will take testing to find, but it won't be an issue I don't think. 2016-01-03 01:23:08 Meeeh I have plans to implement Bukkit API, but not craftbukkit/NMS, this is just impossible :D 2016-01-03 01:23:14 Meeeh then you will have all data doubled 2016-01-03 01:23:14 javaprophet To be honest, that's kind of disturbing they use that though.... 2016-01-03 01:23:18 Meeeh 2x more ram needed 2016-01-03 01:23:32 javaprophet Nah, just have compatible stuff. 2016-01-03 01:24:09 javaprophet 95% of all the methods you can probably directly translate, others, may require more hackery, but I know it's possible. 2016-01-03 01:24:19 Meeeh then it is better to start from NMS, like in CraftBukkit 2016-01-03 01:24:33 Meeeh only edit NMS and adds own API 2016-01-03 01:24:40 javaprophet Then it's obfuscated, and your not on an OS base! 2016-01-03 01:24:43 rom1504 ("if we all teamed up, I imagine we could all write an entire client" the point of a protocol lib is it can be server/client/proxy independant) 2016-01-03 01:25:25 javaprophet I becoming more and more tempted to write my own Client & Server that I personally optimize, and see where it goes. 2016-01-03 01:25:29 Meeeh javaprophet, more "real" version 2016-01-03 01:26:29 Meeeh is to create some very hacky mappings that will edit plugins on load, and replace NMS fields reflection with your own fields, this same for methods etc, but even that :D you will have "job" for a year 2016-01-03 01:27:14 Meeeh But If I will be able to implement bukkit API and ProtocolLib, then it should give me good start. 2016-01-03 01:27:28 javaprophet No, just make a duplicate field with the NMS name, and make the NMS class extend your own but provide wrappers for the contents of the variable. 2016-01-03 01:27:35 javaprophet If it's a primitive, no extra ram needed really! 2016-01-03 01:28:10 Meeeh good luck, 1800 classes :D 2016-01-03 01:28:19 javaprophet I'm thinking I should write my own game again, but I need one of those impossible-to-find GFX designers.... 2016-01-03 01:28:39 javaprophet I bet I can do it in 300, but I'd rather make my own game and sell it first. 2016-01-03 01:30:32 javaprophet (If anyone here is a 2D designer and/or 3D modeller, nows the time to speak up ;) ) 2016-01-03 01:31:01 Meeeh the worst part with creating games, you need GFX :< 2016-01-03 01:31:11 Gjum programmer art ftw! 2016-01-03 01:31:23 javaprophet And for most games these days, modellers are even harder to find. 2016-01-03 01:31:35 javaprophet My art has always been solid colors :P 2016-01-03 01:32:25 Meeeh nah, just tell OpenGL/DirectX to color lines, and it will be fine! say that this is matrix style game or something. 2016-01-03 01:33:10 javaprophet Or maybe say it's a pixelly game like MC.... 2016-01-03 01:33:21 Meeeh about models, do squares and circles and put names on them 2016-01-03 01:33:30 Meeeh big ball with "dragon" on it 2016-01-03 01:33:36 Meeeh and everyone is happy 2016-01-03 01:34:03 javaprophet I played around making a 3D game engine a few years ago, I got it loading textured models and then left to go do server daemons for the next few years. :P 2016-01-03 01:36:33 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-03 01:37:21 Gjum > big ball with "dragon" on it 2016-01-03 01:37:26 Gjum had to think of agar.io 2016-01-03 01:37:42 javaprophet I wrote a bot for that game too. :P 2016-01-03 01:41:02 Gjum who didn't. link? 2016-01-03 01:41:34 javaprophet Mine remained private, anything I might sell I leave closed source. 2016-01-03 01:43:25 <-- mallard (~mallard@77.86.33.102) a quitté (Quit: Leaving.) 2016-01-03 01:43:29 Meeeh weird 2016-01-03 01:43:45 --> mallard (~mallard@77.86.33.102) a rejoint #mcdevs 2016-01-03 01:44:02 Meeeh If i rejoin on my server all that AreaEffectCoulds change to small black cloud, and I have no idea why 2016-01-03 01:45:04 Meeeh like they loose thier metadata, but other entites like creeper keep it, o.O 2016-01-03 01:46:41 Meeeh oh... because creepers etc have metadata in spawn packet, object don't 2016-01-03 01:46:59 javaprophet Object data? 2016-01-03 01:47:16 javaprophet Or use EntityMetadata I suppose. 2016-01-03 01:48:52 Meeeh I mean that SpawnLivingEntity contains metadata, for object entites, like arrow etc, you need send it manually in second packet 2016-01-03 01:49:04 javaprophet Ah, yea 2016-01-03 01:51:38 Meeeh Yey, works 2016-01-03 02:06:26 Meeeh There is one simple reason why I will never finish this 2016-01-03 02:06:36 javaprophet Hmm? 2016-01-03 02:07:28 Meeeh http://imgur.com/gAwhFow chickens 2016-01-03 02:07:48 javaprophet :D 2016-01-03 02:08:03 javaprophet Those chunks in the background though.... 2016-01-03 02:08:16 Meeeh just client trying to render 2016-01-03 02:08:20 Meeeh blame Mojang 2016-01-03 02:10:28 Gjum :D 2016-01-03 02:34:22 <-- Jailout20001 (~Jailout20@unaffiliated/jailout2000) a quitté (Read error: Connection reset by peer) 2016-01-03 02:35:27 --> Jailout2000 (~Jailout20@unaffiliated/jailout2000) a rejoint #mcdevs 2016-01-03 02:38:09 <-- Brandon15811__ (uid13052@gateway/web/irccloud.com/x-qhqqncsymbsxvlqj) a quitté (Quit: Connection closed for inactivity) 2016-01-03 03:06:24 -- r04r est maintenant connu sous le nom zz_r04r 2016-01-03 03:59:27 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 260 seconds) 2016-01-03 05:06:21 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-03 05:28:20 --> Keba_ (5edc1d6c@gateway/web/freenode/ip.94.220.29.108) a rejoint #mcdevs 2016-01-03 05:28:26 Keba_ hi 2016-01-03 05:28:35 Keba_ Someone here? 2016-01-03 05:32:45 Keba_ md_5? 2016-01-03 05:32:53 javaprophet Hello 2016-01-03 05:32:57 Keba_ hi 2016-01-03 05:33:08 Keba_ do you know about protocol? 2016-01-03 05:33:23 Keba_ got some questions :c 2016-01-03 05:33:43 javaprophet Yes. 2016-01-03 05:34:19 Keba_ Cool... 2016-01-03 05:34:40 Keba_ it is complex 2016-01-03 05:35:02 Keba_ Overall: I want to break a block infront of the player... 2016-01-03 05:35:04 javaprophet Spit it out. 2016-01-03 05:35:41 Keba_ I can allready get the serverchuncks but I don´t know how to get the block infront on the player 2016-01-03 05:35:53 Keba_ (It is only terminal no screen) 2016-01-03 05:36:02 javaprophet http://wiki.vg/ 2016-01-03 05:36:11 javaprophet Look up SMP Map Format 2016-01-03 05:37:17 EqDev hey javaprophet you know packet compression right? 2016-01-03 05:37:23 javaprophet Yes. 2016-01-03 05:38:26 EqDev Packet Length : Length of Data Length + compressed length of (Packet ID + Data) 2016-01-03 05:38:31 EqDev Is the Id and data compressed? 2016-01-03 05:38:41 EqDev or just the lenth 2016-01-03 05:38:59 EqDev length* 2016-01-03 05:39:02 javaprophet ID & Data are compressed. 2016-01-03 05:39:20 EqDev But data length is not 2016-01-03 05:39:25 EqDev in the first field 2016-01-03 05:39:49 Keba_ But how do I know where the player is? 2016-01-03 05:40:08 javaprophet Correct. 2016-01-03 05:40:25 javaprophet Player position packets. 2016-01-03 05:40:33 javaprophet Lookup protocol on wiki.vg 2016-01-03 05:41:32 Keba_ Thanks but how to i force the server to send this packet 2016-01-03 05:41:45 javaprophet It sends your position every tick, record it. 2016-01-03 05:42:06 Keba_ ok thxi thinlk that helped a lot 2016-01-03 05:42:49 EqDev javaprophet if compression is enabled, but it is under the threshold, do we send it as compressed or not compressed? 2016-01-03 05:43:02 javaprophet Compressed, with the second length == 0 2016-01-03 05:43:37 EqDev oh the second field, data length 2016-01-03 05:43:40 EqDev is 0, gotcha 2016-01-03 05:49:49 EqDev how do we compress the int and the data? 2016-01-03 05:49:56 EqDev Inflater? 2016-01-03 05:50:12 javaprophet Yes. 2016-01-03 05:50:17 javaprophet Deflater for compressing. 2016-01-03 05:50:23 javaprophet Inflater for decompressing. 2016-01-03 05:52:08 EqDev deflator takes in #deflate(byte[]). Should I create a ByteBuf and write the id as a varint then use the bytes[] as the parameter for the deflate method? 2016-01-03 05:52:32 javaprophet I dunno, I don't use bytebufs. 2016-01-03 05:52:59 EqDev How do you convert the int to a byte[] 2016-01-03 05:53:19 javaprophet Serialize it? 2016-01-03 05:53:39 javaprophet Read the protocol specs on wiki.vg, It will explain it all. 2016-01-03 05:55:24 EqDev I am reading the compression section 2016-01-03 06:05:39 Keba_ javaprophet? 2016-01-03 06:05:48 javaprophet Hmm? 2016-01-03 06:06:01 Keba_ ServerEntityPositionRotationPacket? 2016-01-03 06:06:05 Keba_ Is that correct? 2016-01-03 06:06:14 javaprophet Sure. 2016-01-03 06:06:20 Keba_ Thanks :) 2016-01-03 06:08:47 Keba_ Could I send a ClientPlayerRotationPacket to change the rotation or schould that be a ServerEntityPositionRotationPacket too? 2016-01-03 06:10:39 Keba_ ? 2016-01-03 06:10:57 javaprophet Yes. 2016-01-03 06:11:31 Keba_ ClientPlayerRotationPacket or ServerEntityPositionRotationPacket which one do I have to send to move the player 2016-01-03 06:11:42 javaprophet ClientPlayerRotationPacket 2016-01-03 06:11:50 Keba_ ok 2016-01-03 06:11:51 Keba_ thx 2016-01-03 06:12:31 Keba_ I tried but he dosn´t move at all 2016-01-03 06:13:52 Keba_ Any Ideas what I could have done wrong? Do I have to register anything 2016-01-03 06:16:17 Keba_ ? 2016-01-03 06:16:32 javaprophet You have to read the protocol. And implement it too. 2016-01-03 06:16:42 javaprophet Debug your code perhaps. 2016-01-03 06:39:07 --> redstonehelper_ (~redstoneh@p579527F0.dip0.t-ipconnect.de) a rejoint #mcdevs 2016-01-03 06:39:07 <-- redstonehelper_ (~redstoneh@p579527F0.dip0.t-ipconnect.de) a quitté (Changing host) 2016-01-03 06:39:07 --> redstonehelper_ (~redstoneh@unaffiliated/redstonehelper) a rejoint #mcdevs 2016-01-03 06:42:30 <-- redstonehelper (~redstoneh@unaffiliated/redstonehelper) a quitté (Ping timeout: 265 seconds) 2016-01-03 06:42:30 -- redstonehelper_ est maintenant connu sous le nom redstonehelper 2016-01-03 06:53:10 --> Nektro (6c31c195@gateway/web/freenode/ip.108.49.193.149) a rejoint #mcdevs 2016-01-03 07:19:40 Keba_ hi 2016-01-03 07:20:00 Keba_ Is there a way to read the Playerinventory? Protocol? 2016-01-03 07:24:05 <-- Nektro (6c31c195@gateway/web/freenode/ip.108.49.193.149) a quitté (Quit: Page closed) 2016-01-03 07:24:12 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 260 seconds) 2016-01-03 07:54:06 <-- EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a quitté (Quit: Page closed) 2016-01-03 08:36:28 --> Brandon15811__ (uid13052@gateway/web/irccloud.com/x-ezsszyejtclpzlar) a rejoint #mcdevs 2016-01-03 08:37:02 -- rheddry est maintenant connu sous le nom levifig 2016-01-03 08:42:25 nickelpro Keba_: read the wiki.vg protocol page, it answers all your questions 2016-01-03 08:45:37 <-- Keba_ (5edc1d6c@gateway/web/freenode/ip.94.220.29.108) a quitté (Ping timeout: 252 seconds) 2016-01-03 09:23:51 <-- bildramer (~bildramer@p5DC8ADCC.dip0.t-ipconnect.de) a quitté (Ping timeout: 255 seconds) 2016-01-03 10:25:38 --> nick____ (4f773045@gateway/web/freenode/ip.79.119.48.69) a rejoint #mcdevs 2016-01-03 10:26:22 <-- nick____ (4f773045@gateway/web/freenode/ip.79.119.48.69) a quitté (Client Quit) 2016-01-03 10:45:19 <-- javaprophet (~javaproph@2601:647:ca00:46a4:b8dc:cc3c:eb57:44f0) a quitté (Remote host closed the connection) 2016-01-03 11:05:19 <-- mallard (~mallard@77.86.33.102) a quitté (Quit: Leaving.) 2016-01-03 11:05:40 --> mallard (~mallard@77.86.33.102) a rejoint #mcdevs 2016-01-03 13:06:46 -- zz_r04r est maintenant connu sous le nom r04r 2016-01-03 13:32:43 --> bildramer (~bildramer@p5DC8ADCC.dip0.t-ipconnect.de) a rejoint #mcdevs 2016-01-03 17:29:21 --> gurun (~gurun@c83-249-65-92.bredband.comhem.se) a rejoint #mcdevs 2016-01-03 17:32:22 --> lexileo (~lexii@123.252.242.184) a rejoint #mcdevs 2016-01-03 18:23:36 --> javaprophet (~javaproph@2601:647:ca00:46a4:1c6d:cde5:c0b0:1fff) a rejoint #mcdevs 2016-01-03 18:49:34 --> EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a rejoint #mcdevs 2016-01-03 18:52:16 EqDev hey javaprophet. about the compression we talked about yesterday. When we set the packet id to 0 when the packet is uncompressed in the compression state, then how do we get the real packet id? Like if I send a chat packet and it is under the compression threshold, how will the client know its a chat packet when id is 0 2016-01-03 18:52:58 javaprophet The data length will be 0, and the next varint is the packet id. 2016-01-03 18:58:19 Gjum > Sent by the server before it disconnects a client. The server assumes that the sender has already closed the connection by the time the packet arrives. 2016-01-03 18:58:25 Gjum isn't that a contradiction? 2016-01-03 18:59:01 Gjum shouldn't that read "The client assumes that the server(/sender) has already closed ..." 2016-01-03 18:59:11 javaprophet Probably, yes. 2016-01-03 18:59:38 javaprophet I think sender and server got mixed. 2016-01-03 18:59:52 Gjum mediawiki misses the blame feature :/ 2016-01-03 18:59:56 javaprophet Perhaps, "Sent by the server before it disconnects a client. The client assumes that the server has already closed the connection by the time the packet arrives." 2016-01-03 19:00:16 EqDev thats contradiction 2016-01-03 19:02:06 nickelpro Back in the day disconnect was a two way packet and well behaved clients sent it to the server in order to inform the server that nothing had gone wrong and it was disconnecting on user request 2016-01-03 19:02:55 nickelpro Thus, "the server would assume the sender has already closed the socket" 2016-01-03 19:03:17 javaprophet Aah, makes sense. 2016-01-03 19:03:26 nickelpro That line clearly needs to be fixed, since Disconnects are exclusively Clientbound now 2016-01-03 19:03:28 Gjum well that description is on the clientbound packet... 2016-01-03 19:03:33 Gjum yeah 2016-01-03 19:05:03 nickelpro I'm unclear on how we stop the server from saying the client errored out. I think I solved it in SpockBot by politely shutting down the socket before disconnecting 2016-01-03 19:19:12 EqDev "compressed length of (Packet ID + Data)". So that is Packet ID compressed + Data compressed or. (Packet ID+Data) compressed 2016-01-03 19:26:27 EqDev right javaprophet 2016-01-03 19:33:54 ecx_ wow 2016-01-03 19:33:58 ecx_ with javaprophet in the channel 2016-01-03 19:34:02 ecx_ its almost like theres actually people 2016-01-03 19:34:06 ecx_ also wtf is up with my nick 2016-01-03 19:34:12 <-- ecx_ (~ecx86@unaffiliated/ecx86) a quitté (Quit: Leaving) 2016-01-03 19:34:36 --> ecx86 (~ecx86@unaffiliated/ecx86) a rejoint #mcdevs 2016-01-03 19:35:11 javaprophet Your packet length is the compressed data, data length, and packet ID, data. Your data length is 0 for non compressed, and it it's self is never compressed. 2016-01-03 19:35:29 javaprophet Packet Length is the length of everything but it's self. 2016-01-03 19:35:47 javaprophet Data length, if compressed, is the size of the uncompressed packet. 2016-01-03 19:35:55 javaprophet (incl packet id) 2016-01-03 19:39:51 --> toqueteos (uid67014@gateway/web/irccloud.com/x-xufiwytzdyoyvmmo) a rejoint #mcdevs 2016-01-03 19:46:30 EqDev oh 2016-01-03 19:46:49 EqDev hmm 2016-01-03 19:48:25 javaprophet http://scr.javaprophet.com/105046.jpg 2016-01-03 19:48:26 EqDev i thought you could only compress a byte[] 2016-01-03 19:48:48 ecx86 autofarm?? 2016-01-03 19:49:01 javaprophet A varInt can be turned into a byte[], you serialize it. 2016-01-03 19:49:16 javaprophet Yes, I've had him run overnight, quite a lot of potatoes. 2016-01-03 19:49:25 ecx86 v o u c h 2016-01-03 19:49:37 ecx86 lmao, serializing a varint. when ints are really just 4 bytes. 2016-01-03 19:49:49 ecx86 classic 2016-01-03 19:49:53 javaprophet Right now, I'm working on item value based on supply and demand, and a base-level inventory management model. 2016-01-03 19:50:06 ecx86 supply and demand? 2016-01-03 19:50:27 javaprophet IE, this AI really wants food, this AI can provide food given farm, which needs a seed. 2016-01-03 19:50:45 javaprophet So if the bots are hungry, then they will farm, and the value of food and seeds goes up. 2016-01-03 19:50:48 ecx86 okay 2016-01-03 19:50:52 ecx86 that is neat 2016-01-03 19:51:01 javaprophet Yeah, I'm just having fun with AI :P 2016-01-03 19:51:01 ecx86 i am now super interested in ur project 2016-01-03 19:51:15 Gjum rom1504, rom15043: ^ 2016-01-03 19:51:43 EqDev so javaprophet this serialization will work: https://gyazo.com/33c1fb20d4e263656b91cbd6bb99bf9d 2016-01-03 19:52:00 ecx86 or just this 2016-01-03 19:52:03 ecx86 byte asdf[4] 2016-01-03 19:52:03 javaprophet No! Please read the protocol EqDev! 2016-01-03 19:52:16 ecx86 wait, what endian is it 2016-01-03 19:52:17 javaprophet An int is not a varint! 2016-01-03 19:53:12 EqDev https://gyazo.com/f56a78b1ea43cb064c110652f888eb1c 2016-01-03 19:53:14 EqDev there 2016-01-03 19:53:19 EqDev Ill just use bytebug 2016-01-03 19:53:21 EqDev bytebuf* 2016-01-03 19:54:09 ecx86 i just realized something 2016-01-03 19:54:21 ecx86 ur using a special method to serialize an int 2016-01-03 19:54:21 javaprophet Hmm? 2016-01-03 19:54:31 ecx86 which is literally 4 bytes. lol mojang 2016-01-03 19:54:40 javaprophet I know, it's ridiculous. 2016-01-03 19:54:59 EqDev wat 2016-01-03 19:55:11 EqDev Do you guys serialize with a dataoutputstream? 2016-01-03 19:57:00 EqDev javaprophet hows this: https://gyazo.com/14fe562253abd4207564680c848384e6 2016-01-03 19:58:26 rom1504 ecx86: there are many kind of "int" 2016-01-03 19:58:38 ecx86 ? 2016-01-03 19:58:56 rom1504 http://wiki.vg/Protocol#Data_types most of those are ints 2016-01-03 20:00:02 rom1504 Gjum: yeah it's cool but it's all closed source apparently so well... 2016-01-03 20:07:57 javaprophet Closed source and a pay-to-use project. :) 2016-01-03 20:09:32 Gjum closed source doesn't prevent leaking state :) 2016-01-03 20:10:08 javaprophet Of course not :) 2016-01-03 20:31:48 <-- zahlex (~zahlex@212.224.123.168) a quitté (Ping timeout: 260 seconds) 2016-01-03 20:32:43 <-- Jailout2000 (~Jailout20@unaffiliated/jailout2000) a quitté (Ping timeout: 260 seconds) 2016-01-03 20:33:25 --> zahlex (~zahlex@212.224.123.168) a rejoint #mcdevs 2016-01-03 20:50:37 EqDev javaprophet you said data length is compressed in the first field 2016-01-03 20:50:47 javaprophet It is not. 2016-01-03 20:52:08 EqDev javaprophet after we convert the packet id to a byte[] and compress it, we just use .length and add it to the other lengths 2016-01-03 20:52:22 EqDev righto? 2016-01-03 20:52:51 javaprophet Maybe 2016-01-03 20:57:04 EqDev so javaprophet a compressed packet would look something like this 2016-01-03 20:57:04 EqDev https://gyazo.com/fb404f6143b4fda6c57da4527b02d512 2016-01-03 21:13:58 rom1504 how is that for a failed anvil saving http://download.rom1504.fr/stuff/mc-saving-gold-fail.png :D ? 2016-01-03 21:14:35 rom1504 replicate *all* the gold 2016-01-03 21:17:09 Gjum sell that as a mod to all the rich kids 2016-01-03 21:33:14 --> Jailout2000 (~Jailout20@unaffiliated/jailout2000) a rejoint #mcdevs 2016-01-03 21:39:21 --> OnlyQubes (c1d9faa0@gateway/web/freenode/ip.193.217.250.160) a rejoint #mcdevs 2016-01-03 21:39:43 <-- Jailout2000 (~Jailout20@unaffiliated/jailout2000) a quitté (Ping timeout: 256 seconds) 2016-01-03 21:40:47 --> Jailout2000 (~Jailout20@unaffiliated/jailout2000) a rejoint #mcdevs 2016-01-03 21:53:44 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-03 21:55:48 <-- Jailout2000 (~Jailout20@unaffiliated/jailout2000) a quitté (Ping timeout: 255 seconds) 2016-01-03 22:22:26 EqDev anyone know of any source code of compressing/decompressing packets out there? Having a difficult time with it 2016-01-03 22:22:53 javaprophet Take a look at SpockBot, it's a prominent open source implementation. 2016-01-03 22:24:35 EqDev For decoding compression, there are three cases: Enabled compression with the packet being under threshold. Enabled compression with the packet being over the threshold. And no compression 2016-01-03 22:24:53 EqDev I dont get the enabled compression with packet being under the threshold 2016-01-03 22:24:57 EqDev Looking at wiki vg atm 2016-01-03 22:24:58 rom1504 EqDev: what language ? 2016-01-03 22:25:01 EqDev java 2016-01-03 22:28:53 rom1504 https://github.com/Steveice10/PacketLib/blob/885d03759dce99d1d0a4b49b156d447c0d97b70e/src/main/java/org/spacehq/packetlib/tcp/TcpPacketCompression.java 2016-01-03 22:30:50 rom1504 of course if you were using a library (MCProtocolLib in java) you wouldn't have to wrote inferior code to handle network 2016-01-03 22:31:44 rom1504 (MCProtocolLib uses PacketLib) 2016-01-03 22:36:47 EqDev yeah I read up on it 2016-01-03 22:37:47 <-- toqueteos (uid67014@gateway/web/irccloud.com/x-xufiwytzdyoyvmmo) a quitté (Quit: Connection closed for inactivity) 2016-01-03 22:44:33 --> Jailout2000 (~Jailout20@unaffiliated/jailout2000) a rejoint #mcdevs 2016-01-03 22:45:36 EqDev do we handle the decode of a compression packet normally if it is under threshold or over 2016-01-03 22:45:49 EqDev over isnt it 2016-01-03 22:46:27 rom1504 over the threshold it's compressed 2016-01-03 22:46:42 rom1504 (to make it smaller) 2016-01-03 22:50:18 EqDev if it is not compressed we still handle it like a packet with compression tho 2016-01-03 22:50:32 EqDev since it is after the set compression packet 2016-01-03 22:52:01 EqDev or do we handle it with a without compression format 2016-01-03 22:52:07 EqDev rom1504 2016-01-03 22:54:06 rom1504 you handle it with the compression format yeah 2016-01-03 22:54:14 rom1504 (but it's not compressed) 2016-01-03 22:55:38 EqDev so the order is basically different with a new field added 2016-01-03 22:55:51 EqDev other than that they are the same rom1504? 2016-01-03 22:57:59 <-- Jailout2000 (~Jailout20@unaffiliated/jailout2000) a quitté (Ping timeout: 272 seconds) 2016-01-03 22:58:06 rom1504 yes 2016-01-03 22:58:14 rom1504 http://wiki.vg/Protocol#Packet_format 2016-01-03 22:58:43 EqDev yep reading as we were speaking 2016-01-03 22:58:50 gamingrobot EqDev: if you want the python version in spockbot here it is https://github.com/SpockBotMC/SpockBot/blob/master/spockbot/mcp/mcpacket.py#L77 2016-01-03 23:02:06 EqDev have any of you guys used ByteBuf's before? 2016-01-03 23:04:01 Meeeh EqDev, ? 2016-01-03 23:05:21 EqDev Meeeh bytebuf.array() will return the bytebufs data as a byte[] properly correct? 2016-01-03 23:05:48 EqDev java docs show some differential between it and readBytes with the index reader 2016-01-03 23:09:02 <-- OnlyQubes (c1d9faa0@gateway/web/freenode/ip.193.217.250.160) a quitté (Quit: Page closed) 2016-01-03 23:20:31 Not-d54a [SpockBot] Gjum pushed 5 commits to master [+0/-0/±10] https://github.com/SpockBotMC/SpockBot/compare/2afae44f4114...14c673af3120 2016-01-03 23:20:32 Not-d54a [SpockBot] Gjum 8380ff6 - Reflow comment text in basic example 2016-01-03 23:20:34 Not-d54a [SpockBot] Gjum b8c1941 - Fix very nasty bug with the Item subclass attributes always being tuples 2016-01-03 23:20:35 Not-d54a [SpockBot] Gjum 38b27bd - There is no max_amount, only stack_size 2016-01-03 23:20:37 Not-d54a [SpockBot] ... and 2 more commits. 2016-01-03 23:21:33 Meeeh EqDev, ugh, sorry, about ByteBuf, not all bufs works this same with .array 2016-01-03 23:22:18 Meeeh it will only work for ByteBuf-s that are created on top of byte array as far as I remember. (we are talking about netty ByteBuf?) 2016-01-03 23:24:27 EqDev yup 2016-01-03 23:24:53 EqDev I think bytebuf.readBytes(byte[] ) would work Meeeh 2016-01-03 23:25:20 EqDev im trying to inflat a varint atm, no luck 2016-01-03 23:25:41 EqDev i serialized it and decompressing it is taking a while 2016-01-03 23:27:59 EqDev any other ways Meeeh ? 2016-01-03 23:28:04 EqDev or rom1504 2016-01-03 23:28:24 Meeeh nah, I don't have time today, but look into NMS (in spigot maybe, so it will be a bit more readable) and thier PacketDataSerializer 2016-01-03 23:31:31 EqDev found nothing there 2016-01-03 23:31:42 EqDev pretty much the same methods as bytebuf 2016-01-03 23:33:27 Meeeh it is warpper, so it contains all methods from bytebuf + few own ones, like for varints etc 2016-01-03 23:34:39 Meeeh and NMS use it to wrap Unpooled.buffer() into it. 2016-01-03 23:34:45 Meeeh EqDev, ^ 2016-01-03 23:35:26 EqDev yeah same 2016-01-03 23:35:32 EqDev I use it for a new bytebuf 2016-01-03 23:35:56 EqDev ByteBuf compressedClone = buf; whatever edits I make to buf will not occur to compressedClone right 2016-01-03 23:36:09 EqDev 10/10 for java rememberence 2016-01-03 23:47:26 EqDev is it normal to have packet id length and data length of 2147483385 2016-01-03 23:54:30 nickelpro ecx86, javaprophet, rom1504: If you're interested in AI and Minecraft, consider taking a look at the work the OpenCog guys are doing on embodiment w/ Minecraft http://wiki.opencog.org/wikihome/index.php/Minecraft_Bot_Development_Roadmap https://github.com/opencog/opencog-to-minecraft 2016-01-03 23:56:23 ecx86 far cry 2016-01-03 23:56:28 ecx86 3 2016-01-03 23:57:11 javaprophet My bot is already better than theirs... 2016-01-03 23:59:05 nickelpro javaprophet: Code or example video at least? 2016-01-04 00:00:19 ecx86 https://www.youtube.com/watch?v=8U2GxEXceGI 2016-01-04 00:00:37 ecx86 it is proprietary 2016-01-04 00:00:48 javaprophet https://www.youtube.com/watch?v=DNpuaC3SFUo 2016-01-04 00:01:02 javaprophet http://scr.javaprophet.com/084054.jpg 2016-01-04 00:01:24 --> Xerxes (~donglord@cpe-184-58-121-102.columbus.res.rr.com) a rejoint #mcdevs 2016-01-04 00:02:55 javaprophet The donglord has come. 2016-01-04 00:02:58 javaprophet ^^^ 2016-01-04 00:03:14 ecx86 the dong comes 2016-01-04 00:03:25 ecx86 THE DONG TOLLS FOR THEE 2016-01-04 00:03:39 ecx86 HE IS TONY THE PONY HE COMES 2016-01-04 00:04:02 ecx86 ok ill stop 2016-01-04 00:06:29 nickelpro It's pretty impressive pathfinding, but the same thing can be done with command blocks https://www.youtube.com/watch?v=J2RdAillu9U, that's not AI 2016-01-04 00:08:16 javaprophet That's fairly impressive for command blocks, but that's not AI, or even code. 2016-01-04 00:08:38 nickelpro No, of course it isn't. But it's equivalent to your video 2016-01-04 00:08:45 Gjum /z/z 2016-01-04 00:09:16 ecx86 maybe u havent seen a combat demo 2016-01-04 00:09:49 nickelpro Force field combat is half a dozen LoC forge mod 2016-01-04 00:10:00 ecx86 its no cheat plus bypassed lmao 2016-01-04 00:10:17 ecx86 with target selection 2016-01-04 00:10:28 ecx86 and strategizing 2016-01-04 00:10:48 ecx86 i think, javaprophet played on a kitpvp server with his bots earlier this week 2016-01-04 00:14:01 Not-d54a [SpockBot] nickelpro pushed 1 commit to master [+0/-0/±2] http://git.io/vu33j 2016-01-04 00:14:02 Not-d54a [SpockBot] nickelpro d29e98a - Lay groundwork for auth token use 2016-01-04 00:15:08 ecx86 i can link u some copypaste sources if u want' 2016-01-04 00:15:12 ecx86 for account login with user/pass 2016-01-04 00:15:26 ecx86 its from my old alt manager 2016-01-04 00:19:23 nickelpro ecx86: We already have a full Yggdrasil implementation https://github.com/SpockBotMC/SpockBot/blob/master/spockbot/mcp/yggdrasil.py, our auth plugin just doesn't offer any API other than user/pass atm 2016-01-04 00:19:33 ecx86 ok nice 2016-01-04 00:39:47 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 250 seconds) 2016-01-04 00:59:01 EqDev I get a java.util.zip.DataFormatException: incorrect header check 2016-01-04 00:59:15 EqDev When I try to inflate the compressed bytes of packet id and data 2016-01-04 00:59:23 -- r04r est maintenant connu sous le nom zz_r04r 2016-01-04 01:01:19 -- zz_r04r est maintenant connu sous le nom r04r 2016-01-04 01:02:04 nickelpro EqDev: http://wiki.vg/Protocol#Packet_format 2016-01-04 01:03:06 nickelpro If Data Length is 0 then the packet id and following data are uncompressed. That's a pretty common cause of your error 2016-01-04 01:03:09 EqDev nickelpro I did look at that 2016-01-04 01:03:18 EqDev yeah I checked for htat 2016-01-04 01:03:21 EqDev ill double check 2016-01-04 01:04:15 EqDev yeah my data length isnt 0 2016-01-04 01:06:46 nickelpro Are you sure you're using Deflate and not gzip or something? I'm like 80% Deflate doesn't have any headers except for 3-bit block headers which don't event have an invalid state 2016-01-04 01:08:24 EqDev okay now I get java heap space 2016-01-04 01:08:29 EqDev out of memory wtf 2016-01-04 01:08:49 -- r04r est maintenant connu sous le nom zz_r04r 2016-01-04 01:09:26 EqDev the readable bytes left of packet id and data is 2147483385 2016-01-04 01:09:29 EqDev is that normal nickelpro 2016-01-04 01:10:29 nickelpro lol no 2016-01-04 01:10:36 nickelpro You're varint decoder is broken 2016-01-04 01:10:44 nickelpro s/You're/Your/g 2016-01-04 01:11:31 EqDev it worked for packets before compresion 2016-01-04 01:11:56 EqDev if i rewrite the readable bytes to another bytebuf, i get 256 bytes 2016-01-04 01:12:12 EqDev when I use that I get the header error 2016-01-04 01:12:21 nickelpro EqDev: Unlikely you experience a larger than 2 byte varint before compression is enabled. Try turning off compression on the server and see if it all works peachy 2016-01-04 01:13:09 EqDev how could I turn off compression on server 2016-01-04 01:13:23 EqDev send compression packet to the server with -1 right? 2016-01-04 01:13:35 nickelpro http://minecraft.gamepedia.com/Server.properties 2016-01-04 01:13:46 EqDev derp 2016-01-04 01:14:42 nickelpro Now for the standard mcdevs disclaimer: If you're using Java and working with the protocol, use ProtocolLib. It avoids all these issues and helps the community 2016-01-04 01:16:38 EqDev yep nickelpro it works fine without compression. i get login packets successful 2016-01-04 01:17:52 nickelpro EqDev: Fantastic, code link? 2016-01-04 01:18:06 EqDev for decoding ? 2016-01-04 01:18:11 EqDev yeah decoding 2016-01-04 01:19:38 EqDev nickelpro heres the decoder 2016-01-04 01:19:39 EqDev http://pastebin.com/NkLT734e 2016-01-04 01:21:33 nickelpro You're reading the wrong field to check for compression and your compression check is wrong besides 2016-01-04 01:22:21 nickelpro Ignore me 2016-01-04 01:22:27 nickelpro I can't read Java sometimes 2016-01-04 01:22:39 EqDev lel 2016-01-04 01:23:41 EqDev so nothing wrong nickelpro ? 2016-01-04 01:24:39 nickelpro You're compression check is wrong though. You shouldn't be checking if the data is under the threshold or not when you're recieving. If the uncompressed data length is 0, the following fields are uncompressed. If != 0, the following fields are compressed. Regardless of the compression threshold 2016-01-04 01:25:17 nickelpro No idea if that would cause your bug, probably not 2016-01-04 01:25:39 nickelpro Worth fixing either way 2016-01-04 01:26:01 nickelpro Actually, the would probably cause your bug 2016-01-04 01:26:07 nickelpro I dunno, fix and see 2016-01-04 01:28:28 EqDev nope 2016-01-04 01:28:33 EqDev buf is sitll too many bytes 2016-01-04 01:28:42 EqDev nickelpro 2016-01-04 01:29:52 nickelpro Then there is nothing wrong with the code you pasted 2016-01-04 01:30:16 EqDev weird 2016-01-04 01:31:44 nickelpro Just means the bug is somewhere else. I once struggled with packet decoding for a few hours because some orphan bytes were getting left in read buffers. I was looking for a problem in packet decoding when the bug was in my network code. These things happen 2016-01-04 01:32:20 EqDev okay 2016-01-04 01:32:24 EqDev ill do some more testing 2016-01-04 01:36:49 EqDev are you 100% that code is fine nickelpro 2016-01-04 01:38:13 nickelpro No, I can't Java for the life of me. Semantically it's correct, I know nothing about the internals of anything though 2016-01-04 01:41:31 EqDev this is really weird. when I find the index of the bytebuf of the packet before reading the bytes, it returns 626 2016-01-04 01:41:40 EqDev 262* 2016-01-04 01:48:07 rom1504 nickelpro: http://wiki.opencog.org/wikihome/index.php/Minecraft_Bot_Development_Roadmap are cool objectives but really they are not much different from the ones we had with mineflayer and spockbot for years. Any clue what they are going to do differently to do all this in a year ? 2016-01-04 01:48:56 --> pod_boq (d1a992a1@gateway/web/freenode/ip.209.169.146.161) a rejoint #mcdevs 2016-01-04 01:49:22 rom1504 and some of these objectives are so specific, sounds like they don't know much about mc 2016-01-04 01:49:33 rom1504 like "Ability to navigate terrain looking for trees or food." 2016-01-04 01:49:37 rom1504 that's so specific 2016-01-04 01:49:45 rom1504 why "trees or food" 2016-01-04 01:50:05 rom1504 why not "some block X", and "some entity Y" 2016-01-04 01:52:21 gamingrobot rom1504: because they are basing stuff off the unity version they had of a voxel engine 2016-01-04 01:52:44 rom1504 https://github.com/opencog/opencog-to-minecraft/blob/master/minecraft_bot/src/mcdata/mcidmap_blocks.py : duh, are they using spockbot or not 2016-01-04 01:54:00 rom1504 the atomspace thingy is probably interesting though 2016-01-04 01:56:07 gamingrobot rom1504: yea they are it looks like they have updated since I last looked at the code 2016-01-04 01:56:38 gamingrobot Not sure why the overlap for mcdata 2016-01-04 01:57:47 gamingrobot That code may have existed before we got the new mcdata setup in spockbot 2016-01-04 01:59:19 rom1504 yeah sure probably 2016-01-04 02:01:11 rom1504 I'm interested in the open "AGI" thingies though. I mean I think it's a good objective to build something general like that. But it seems to me that they (say opencog and nars) are currently big semi-theoritical things that don't actually do anything 2016-01-04 02:02:47 nickelpro They totally are, I think AI is mostly intellectual masturbation. But other people brought the subject up and OpenCog is one of the real OSS projects doing much work on hard AI 2016-01-04 02:03:32 ecx86 Cool 2016-01-04 02:03:38 ecx86 I'll look into that 2016-01-04 02:06:50 Not-d54a [SpockBot] nickelpro pushed 1 commit to master [+0/-0/±1] http://git.io/vu32x 2016-01-04 02:06:52 Not-d54a [SpockBot] nickelpro 4ba75c9 - online_mode defaults to True, AuthCore bitches loudly about credentials 2016-01-04 02:08:49 gamingrobot Opencog was the original reason I started working on spockbot 2016-01-04 02:19:49 <-- pod_boq (d1a992a1@gateway/web/freenode/ip.209.169.146.161) a quitté (Quit: Page closed) 2016-01-04 02:21:12 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-04 04:02:02 <-- zahlex (~zahlex@212.224.123.168) a quitté (Ping timeout: 260 seconds) 2016-01-04 04:02:35 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 250 seconds) 2016-01-04 04:54:18 <-- EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a quitté (Quit: Page closed) 2016-01-04 04:57:44 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-04 06:04:50 Xerxes How do you set a player entity's name title color? 2016-01-04 06:37:11 --> redstonehelper_ (~redstoneh@p4FCCFB77.dip0.t-ipconnect.de) a rejoint #mcdevs 2016-01-04 06:37:11 <-- redstonehelper_ (~redstoneh@p4FCCFB77.dip0.t-ipconnect.de) a quitté (Changing host) 2016-01-04 06:37:11 --> redstonehelper_ (~redstoneh@unaffiliated/redstonehelper) a rejoint #mcdevs 2016-01-04 06:40:54 <-- redstonehelper (~redstoneh@unaffiliated/redstonehelper) a quitté (Ping timeout: 265 seconds) 2016-01-04 06:40:54 -- redstonehelper_ est maintenant connu sous le nom redstonehelper 2016-01-04 07:40:59 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 250 seconds) 2016-01-04 08:58:04 <-- javaprophet (~javaproph@2601:647:ca00:46a4:1c6d:cde5:c0b0:1fff) a quitté (Remote host closed the connection) 2016-01-04 08:59:25 <-- Owexz (~Owexz@2001:19f0:5800:8cc1:5400:ff:fe0c:f993) a quitté (Quit: So long and thanks for all the fish!) 2016-01-04 08:59:48 --> Owexz (~Owexz@2001:19f0:5800:8cc1:5400:ff:fe0c:f993) a rejoint #mcdevs 2016-01-04 09:06:53 <-- Owexz (~Owexz@2001:19f0:5800:8cc1:5400:ff:fe0c:f993) a quitté (Quit: So long and thanks for all the fish!) 2016-01-04 09:10:12 --> Owexz (~Owexz@owexz.net) a rejoint #mcdevs 2016-01-04 09:10:15 -- zz_r04r est maintenant connu sous le nom r04r 2016-01-04 09:17:51 <-- gurun (~gurun@c83-249-65-92.bredband.comhem.se) a quitté (Ping timeout: 245 seconds) 2016-01-04 10:20:52 <-- Amaranth (~travis@ubuntu/member/Amaranth) a quitté (Read error: Connection reset by peer) 2016-01-04 10:22:04 --> Amaranth (~travis@ubuntu/member/Amaranth) a rejoint #mcdevs 2016-01-04 10:22:05 -- Mode #mcdevs [+v Amaranth] par ChanServ 2016-01-04 10:40:27 <-- |Blaze| (~scott@184.70.189.74) a quitté (Ping timeout: 260 seconds) 2016-01-04 10:48:48 --> |Blaze| (~scott@184.70.189.74) a rejoint #mcdevs 2016-01-04 11:06:11 <-- |Blaze| (~scott@184.70.189.74) a quitté (Ping timeout: 245 seconds) 2016-01-04 11:07:42 <-- mallard (~mallard@77.86.33.102) a quitté (Ping timeout: 265 seconds) 2016-01-04 11:27:57 --> barneygale (~barneygal@mail.thefoundry.co.uk) a rejoint #mcdevs 2016-01-04 11:31:04 --> |Blaze| (~scott@184.70.189.74) a rejoint #mcdevs 2016-01-04 12:09:00 <-- |Blaze| (~scott@184.70.189.74) a quitté (Ping timeout: 255 seconds) 2016-01-04 12:11:33 --> |Blaze| (~scott@184.70.189.74) a rejoint #mcdevs 2016-01-04 12:16:38 rom1504 Xerxes: I bet by settings the displayName field to something with colors 2016-01-04 12:17:05 rom1504 http://wiki.vg/Protocol#Player_List_Item 2016-01-04 12:17:20 rom1504 "Display Name" take a "chat format" 2016-01-04 12:17:32 rom1504 you can put colors in that http://wiki.vg/Chat 2016-01-04 12:18:14 --> Pobway (~Pobway@d206-116-250-4.bchsia.telus.net) a rejoint #mcdevs 2016-01-04 12:53:06 +SinZ does anyone know what the Wii-U version is like compared to PC or the other consoles? 2016-01-04 12:55:23 rom1504 apparently it's MCPE 2016-01-04 12:56:01 +SinZ I cant find any info on the wii-u edition 2016-01-04 12:57:42 --> gurun (~gurun@c83-249-65-92.bredband.comhem.se) a rejoint #mcdevs 2016-01-04 13:01:42 rom1504 http://www.mcpestuffs.com/2015/12/minecraft-wii-u-edition-out-now/ 2016-01-04 13:03:53 +SinZ so its the most expensive version of minecraft, with pretty much the worst feature list 2016-01-04 13:08:36 <-- lexileo (~lexii@123.252.242.184) a quitté (Ping timeout: 260 seconds) 2016-01-04 13:09:38 rom1504 expensive in what regards ? 2016-01-04 13:10:03 rom1504 I doubt it's slow 2016-01-04 13:10:14 rom1504 it's not expensive in term of money either 2016-01-04 13:10:30 rom1504 and its protocol is better 2016-01-04 13:10:51 rom1504 now, there is little to no documentation about it 2016-01-04 13:22:40 jast I guess "not expensive" is a different thing from "most expensive" :) 2016-01-04 13:25:11 rom1504 ohh they're selling it at 30$ 2016-01-04 13:25:17 rom1504 I was talking about mcpe 2016-01-04 13:25:26 rom1504 which is 5$ 2016-01-04 13:25:54 rom1504 interesting to sell the same thing with 2 different prices 2016-01-04 13:25:59 rom1504 much marketing 2016-01-04 13:34:37 jast target audience 2016-01-04 13:34:43 jast console players are used to paying $$$ for games 2016-01-04 13:34:59 jast probably some fees go to nintendo, too 2016-01-04 13:36:03 rom1504 yeah, it's like apple apps, you can make them pay more 2016-01-04 13:36:30 rom1504 since they're here to pay to begin with by buying a more expensive device anyway 2016-01-04 13:53:24 <-- |Blaze| (~scott@184.70.189.74) a quitté (Ping timeout: 260 seconds) 2016-01-04 14:23:43 <-- m0r13 (~m0r13@2a01:4f8:201:8174:73:0:b00b:135) a quitté (Quit: ZNC - http://znc.in) 2016-01-04 14:29:24 --> m0r13 (~m0r13@2a01:4f8:201:8174:73:0:b00b:135) a rejoint #mcdevs 2016-01-04 15:30:53 barneygale is the place to replace the Java version with something based on MCPE eventually? 2016-01-04 15:31:30 rom1504 they're saying they won't, but yeah I think so 2016-01-04 15:31:48 rom1504 once mcpe is feature complete and used by enough people 2016-01-04 15:32:07 rom1504 and maybe that plugin maker are okay with doing plugins not in java 2016-01-04 15:34:00 --> javaprophet (~javaproph@2601:647:ca00:46a4:504:3749:8465:25d9) a rejoint #mcdevs 2016-01-04 15:34:12 --> |Blaze| (~scott@184.70.189.74) a rejoint #mcdevs 2016-01-04 16:35:54 nickelpro PE is the better protocol if you overlook the RakNet code 2016-01-04 16:39:24 rom1504 I don't know raknet at all, just as I don't know netty. The protocol is independant of that 2016-01-04 16:40:03 rom1504 well, some conception decision might be a consequence of the chosen implementation 2016-01-04 16:40:21 rom1504 but in the end if you compare the protocol of mcpe and mcpc, mcpe is much simpler 2016-01-04 16:40:41 rom1504 I'm not sure if the reason is because features are still missing, hopefully not 2016-01-04 17:06:03 +SinZ is the pocket edition infinite terrain? 2016-01-04 17:15:31 +Thinkofname nickelpro: from what i've heard the inventory handling (protocol wise) for PE is horrible though 2016-01-04 17:16:27 nickelpro Thinkofname: >Implying inventory handling in Notchian is any better 2016-01-04 17:17:13 +Thinkofname at least you can tell what the client was doing on the desktop version :P apparently PE just tells you 'I now have X in slot Y' or something 2016-01-04 17:25:33 <-- AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a quitté (Read error: Connection reset by peer) 2016-01-04 17:26:37 --> AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a rejoint #mcdevs 2016-01-04 17:30:55 rom1504 that sounds like a good thing to me 2016-01-04 17:31:03 rom1504 why should the server care about clicks ? 2016-01-04 17:31:47 rom1504 (/know) 2016-01-04 17:31:50 +Thinkofname rom1504: It doesn't tell you where it came from though 2016-01-04 17:31:57 +Thinkofname so they could (I guess) just spawn something in 2016-01-04 17:32:35 rom1504 it doesn't say "I have now 1 gold in slot 10" and "I have 0 gold in slot 9" ? 2016-01-04 17:33:13 +Thinkofname in two seperate packets, you'll have to put the move back together yourself 2016-01-04 17:33:36 +Thinkofname no idea how raknet works but its udp too which can't make that fun 2016-01-04 17:33:36 rom1504 yeah I see your point, it would be better to have a item_moved packet 2016-01-04 17:34:07 rom1504 (I don't know mcpe that much, just quickly looked at it at one point) 2016-01-04 17:34:13 rom1504 *mcpe protocol 2016-01-04 17:35:11 +Thinkofname same :P I've just had two different people complain about the same issue with me 2016-01-04 17:35:26 --> mallard (~mallard@77.86.33.102) a rejoint #mcdevs 2016-01-04 17:50:43 nickelpro There should be a "Move item from x to y" for serverbound inventory. But the click system in vanilla is terribad 2016-01-04 18:35:50 +ammar2 Thinkofname: rak has a relability layer 2016-01-04 18:35:57 +ammar2 a very thorough one actually 2016-01-04 19:04:17 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-04 19:46:39 <-- Pangea (~Pangea@unaffiliated/pangea) a quitté (Ping timeout: 255 seconds) 2016-01-04 20:01:49 --> toqueteos (uid67014@gateway/web/irccloud.com/x-ajpkegznoxaulghc) a rejoint #mcdevs 2016-01-04 20:15:18 Gjum rom1504: https://www.reddit.com/r/Minecraft/comments/3xpwq6/google_now_shows_minecraft_block_information/ 2016-01-04 20:21:57 rom1504 yeah I saw that a while ago 2016-01-04 20:22:03 rom1504 I think they parse all mediawikis 2016-01-04 20:23:43 Gjum wasn't there an error in some data sheet? doors or such? could check if google has it too 2016-01-04 20:26:22 rom1504 https://github.com/PrismarineJS/minecraft-data/commit/9348158fb08afdb65c22479b242dd4dd1281c06b 2016-01-04 20:26:36 rom1504 but minecraft jungle door doesn't give anything in google here 2016-01-04 20:26:57 rom1504 which makes sense 2016-01-04 20:27:03 rom1504 because they parse the infoboxes 2016-01-04 20:27:05 rom1504 nothing else 2016-01-04 20:27:17 rom1504 and the different doors are not in the infobox 2016-01-04 20:27:28 Gjum right 2016-01-04 20:33:49 rom1504 http://download.rom1504.fr/stuff/mc-successful-saving.png flying-squid finally has a persistent world :D 2016-01-04 20:47:50 rom1504 hmm 2016-01-04 20:47:59 rom1504 where does the vanilla server store the seed ? 2016-01-04 20:48:04 rom1504 it's not in the region files 2016-01-04 20:53:22 rom1504 ah http://minecraft.gamepedia.com/Level_format 2016-01-04 20:55:25 rom1504 more stuff to parse 2016-01-04 20:55:51 rom1504 ah well it's just an nbt file, that's easy 2016-01-04 21:17:43 --> Pangea (~Pangea@unaffiliated/pangea) a rejoint #mcdevs 2016-01-04 21:51:28 toqueteos congrats rom1504! I had a lot of fighting with mca files until I got them working properly :D 2016-01-04 21:59:13 rom1504 :) 2016-01-04 22:56:52 <-- AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a quitté (Ping timeout: 240 seconds) 2016-01-04 23:16:05 <-- MonsieurApple (~MonsieurA@unaffiliated/mrapple) a quitté (Quit: oc.tc) 2016-01-04 23:16:43 --> AlphaBlend (whizkid300@pool-173-58-38-132.lsanca.fios.verizon.net) a rejoint #mcdevs 2016-01-04 23:46:43 --> EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a rejoint #mcdevs 2016-01-04 23:47:03 <-- EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a quitté #mcdevs 2016-01-04 23:47:05 --> EqDev (48d3ea88@gateway/web/freenode/ip.72.211.234.136) a rejoint #mcdevs 2016-01-04 23:47:50 EqDev do you guys receive packets that sometimes have too many bytes for a varint in the packet header? jnoah 2016-01-04 23:48:47 +ammar2 no, you're probably out of sync in the stream 2016-01-04 23:50:34 EqDev i dont believe that is the case ammar2. I have all the bytes come to me in one piece via netty handler adapter 2016-01-04 23:50:56 EqDev Is there a possibility its something else 2016-01-04 23:51:16 +ammar2 well what I mean is you're probably reading a byte as if its the varint but actually you're still in the middle of a packet or somewhere else 2016-01-04 23:51:29 +ammar2 not that you're actually out of sync in the TCP stream 2016-01-04 23:52:16 +ammar2 are you sure you're handling the normal packet header vs compressed packet header fine, I think a lot of people miss that and it causes a lot of grief 2016-01-04 23:52:47 EqDev well I try to check the data length, but it throws the error on that 2016-01-04 23:52:54 EqDev this is after the compression state 2016-01-04 23:53:44 +ammar2 could you show your packet parsing code please 2016-01-04 23:55:25 EqDev http://pastebin.com/zccaVyR1 ammar2 2016-01-04 23:56:01 EqDev line 20 is where the error is thrown with my decoding method (decoding method works perfectly) 2016-01-04 23:59:10 EqDev Even if the packet is by chance without compression, it shouldnt error since the second field is a varint for both uncompressed and compressed 2016-01-05 00:00:49 EqDev I ran it couple times more and error also occurs at line 9 ammar2 2016-01-05 00:01:18 +ammar2 EqDev: you don't actually use the packetLength you read huh 2016-01-05 00:01:42 +ammar2 does buf.readableBytes() just read everything it can from the stream 2016-01-05 00:01:49 +ammar2 because if so that's undesirable