04:00 < cathode> i'll give it a shot but the major problem is that my player .dat file seems to be corrupt 04:00 < cathode> or something 04:01 < KnownUnown> Hmm... 04:01 < KnownUnown> Then that should mean that your inv is coreuprt 04:01 < KnownUnown> Corrupt 04:01 < KnownUnown> Not your world 04:02 < cathode> one of the chunks in the world was corrupt too 04:02 < cathode> whats the preferred way to shut down a MC server other than ctrl+C in ssh 04:02 <+SpaceManiac> "stop" ? 04:02 < cathode> ok 04:02 < cathode> does that typically matter? 04:02 <+SpaceManiac> I would think so. 04:03 <+SpaceManiac> It's probably not a good idea to just terminate your process while it could be in the middle of writing data. 04:03 < cathode> it does print out some messages about 'saving world' 04:04 < KnownUnown> Not a good idea sat all 04:04 < KnownUnown> I tried that before 04:04 < KnownUnown> Ended up erasing all of one players inventory 04:04 < KnownUnown> And corrupting a chunk 04:06 < cathode> hrmm 04:06 < cathode> ok 04:06 < cathode> i tried like 'quit', 'exit', 'shutdown' etc 04:06 < cathode> didn't think of 'stop' 04:07 <+SpaceManiac> there's a 'help', y'know 04:08 < cathode> yes but it gets overridden/cluttered by 170 mods 04:08 < cathode> :P 04:09 < cathode> on an unrelated note, 'F9' in client shows chunk boundaries... is there a command to show region boundaries? 04:17 < cathode> KnownUnown - that region fixer tool found two corrupt chunks out of 37952 04:17 < cathode> i'm going to load up a previous snapshot of the virtual machine and see if i can find not-corrupt chunks for it to replace 04:32 < cathode> KnownUnown - thanks. i think the player save is okay in the 'current' version (with the corrupted chunks) and the chunks were non-corrupt in the backup version (which had corrupt inventory or player) 04:33 < cathode> so i was able to rebuild a clean copy ... haven't tested it yet but i'm hoping it turns out okay 04:48 < KnownUnown> :) 04:48 < KnownUnown> Glad I helped 04:50 < cathode> :) 04:50 < cathode> thank god for VM snapshots though 04:50 < cathode> and fast storage-level cloning 04:51 < cathode> 3-5 seconds to snapshot a VM, 15-20 to clone the snapshot as a new VM and boot it 04:59 < KnownUnown> :D 05:01 < cathode> i also need to run a script that will quiesce the minecraft server to make it safe to take a storage-level snapshot 05:02 < KnownUnown> :/ 05:02 < KnownUnown> guess what? 05:02 < KnownUnown> There's an amazing script that takes autobackups for you. 05:02 < cathode> i think i found it 05:02 < KnownUnown> And manages your MC servers automagically. 05:02 < cathode> http://minecraft.gamepedia.com/User:Dotted/Script 05:02 < cathode> that? 05:02 < KnownUnown> nope ;) 05:03 < KnownUnown> http://msmhq.com/ 05:03 < KnownUnown> check that 05:03 < KnownUnown> I use it for my MC server 05:03 < KnownUnown> loads the world into ram, so it's faster 05:03 < KnownUnown> and it takes backups 05:03 < cathode> ah 05:03 < KnownUnown> and it autosaves 05:03 < cathode> ok 05:03 < KnownUnown> and there's an autoupdate jar function 05:03 < KnownUnown> there's a lot of features on it, it's a good script. 05:03 < KnownUnown> (linux-only) 05:03 < cathode> yeah i'm running on CentOS 6.5 05:04 < cathode> XenServer cluster sitting on HP BL460c G6 blades in a C7000 chassis 05:04 < cathode> dual quad-core xeon L5520 cpus w/ 48GB RAM 05:04 < cathode> in each blade 05:04 < KnownUnown> wow :/ 05:04 < KnownUnown> many performance 05:04 < cathode> currently only have a pair... i'll pick up more when i get money 05:04 < KnownUnown> I host my server on my home computer 05:04 < KnownUnown> and hope for the best 05:04 < cathode> heh 05:05 < KnownUnown> Got a domain and everything 05:05 < KnownUnown> 'tis fine 05:05 < KnownUnown> it's never overloaded 05:05 < KnownUnown> and it never takes up too many system resources 05:05 < cathode> dunno how much i'd need the world-on-ramdisk thing... my virtualization cluster sits on a SAN with 48 x 2.5" 10k RPM SAS drives 05:06 < KnownUnown> world-on-ramdisk brings a significant performance increase on Bukkit 1.7.4 for me 05:06 < KnownUnown> for some reason 05:06 < cathode> hmm 06:37 <+md_5> dual quad-core xeon L5520 cpus w/ 48GB RAM 06:37 <+md_5> each of those CPUs is like 120w 06:37 <+md_5> your power bill........ 06:38 < nickelpro> Did he say he has that in his house? 06:39 < cathode> md_5 - 65W TDP iirc 06:39 < nickelpro> Why would you keep a rack that powerful in your own home 06:39 <+md_5> oh, maybe it was 120w combined then 06:39 <+md_5> :p 06:39 <+md_5> nickelpro datacentres also charge for power you know 06:39 <+md_5> :p 06:39 < cathode> the blade chassis is pretty power efficient 06:39 < cathode> the PSUs are 80-plus gold 06:39 < cathode> like 89-92% efficient 06:39 < nickelpro> md_5: Ya but at least they're not sitting on my shitty consumer ISP network 06:40 <+md_5> you can get mini-itx blades now :3 06:40 < cathode> md_5 - hp moonshot 06:40 <+md_5> what about it? 06:40 < cathode> 45 separate intel Atom Avoton or four-way Opteron X2150 'blades' in a 5U chassis 06:41 < cathode> looks like a good way to pack lots of stuff in one box :) 06:41 <+md_5> eh 06:41 < cathode> with the opteron config that's 720 cores per system i think 06:41 <+md_5> avoton sounds like its designed for thin clients or something 06:41 < cathode> sure they're not terribly fast 06:42 < cathode> but the point is you can use them for things that are not compute-intensive but have lots of parallelism 06:42 < nickelpro> cathode: What are you doing that benefits from massive parallism so much over single core performance? 06:42 < cathode> i'm not 06:42 <+md_5> speaking of single core performance 06:42 < cathode> i was pointing out the system specs 06:42 <+md_5> Im busy building some 2U 4770k systems 06:42 < cathode> my blades have decent single-thread performance 06:43 < nickelpro> Didn't mean "you" specifcally, meant "you" the general consumer 06:43 < cathode> especially considering i can buy blades with the aforementioned spec for $330/ea shipped 06:43 < cathode> off-lease / used 06:45 < cathode> anyway i use my stuff as a lab envionment as well as for hosting things (like minecraft) 06:45 < nickelpro> I dunno, I feel like the same money dumped into traditional racks would still yield better performance in almost all use cases. Maybe they just really want to dump Avotons? 06:45 < cathode> nickelpro - for like, VDI deployments i think it's nice. because each Avoton or Opteron x2150 has an onboard GPU that is "decent" 06:46 < cathode> so if you have people running flash or 2d CAD or lots of other stuff that need a gpu, but not a gaming GPU, then they benefit greatly from that 06:46 < nickelpro> cathode: I could see that, or some virtualized hosting thing where you want mimum garaunteed resources 06:46 < nickelpro> minimum* 06:46 < cathode> aye 06:47 < cathode> you are probably right though, i'd say a bunch of xeon E5-series chips in dual-socket blades will give you more power efficiency per GFLOPs as well as more compute per U 07:38 <+md_5> I dont care about compute per U 07:38 < cathode> KnownUnown - that MSM program... does it work with modded servers? 12:56 < KnownUnown> cathode: it should 15:31 < Not-001> [mcprotocol] thinkofdeath pushed 1 commit to master [+0/-0/±102] http://git.io/XdbS7w 15:31 < Not-001> [mcprotocol] thinkofdeath 57ab927 - 14w06a 15:43 < Thinkofdeath> http://wiki.vg/Pre-release_protocol#14w06a Nothing major 16:02 < dividuum> Thinkofdeath, thanks so much for updating that information 16:03 < Thinkofdeath> np :) 18:31 < Not-001> [mcprotocol] thinkofdeath pushed 1 commit to master [+0/-0/±102] http://git.io/AQ-cUA 18:31 < Not-001> [mcprotocol] thinkofdeath 31782b5 - 14w06b 18:37 < TkTech> If anyone has time, could they document the fonts on the wiki? I have a functional sample snippet here https://gist.github.com/TkTech/dff9bbe54c9a074612e1 18:37 < TkTech> I did that for WizardCM but he hasn't responded in a few days ;-( 18:38 < Thinkofdeath> TkTech: there is a bit here http://wiki.vg/Chat 18:40 < TkTech> Hm, I missed that, although my sample shows you how to actually get the box for the character 19:50 < TkTech> Thinkofdeath: Have paypal? 19:50 < Thinkofdeath> TkTech: yep 19:50 < Thinkofdeath> why? 19:51 < TkTech> Thinkofdeath: PM me the email? Also, what country are you in? 19:51 < Thinkofdeath> England 19:54 < TkTech> Thinkofdeath: A quick google search tells me that is roughly the cost of a case of beer in England as a thank you for your 300th contribution to the wiki :) 19:55 < Thinkofdeath> TkTech: Thanks :) 19:55 <+AndrewPH> Do I get that amount for my 3th contribution to the wiki? 19:56 < Thinkofdeath> to be fair I do a lot of small edits instead of big ones 19:56 < TkTech> 300 small edits is just as valuable as 10 big edits, especially if it's correcting and maintaining those big edits. 19:57 < Thinkofdeath> Well thanks again :) 22:33 < cathode> hey there 22:33 < cathode> if i delete a bunch of regions (world generation issues with upgrade to new modpack ...etc) do i need to clean up anything else? 22:43 < Thinkofdeath> cathode: Structure data if 1.6.4+ but that is a lot harder to remove certain areas 22:43 < Thinkofdeath> As its all one file 22:45 < cathode> ok 22:45 < cathode> structures like villages? 22:46 < cathode> what about third party mod structures? 22:52 < Thinkofdeath> No idea 22:56 < cathode> ok. thanks 23:01 < cathode> in other news, there are a freaking boatload of errors and warnings that fly by when loading mod packs. are authors really this lazy/bad? 23:12 < c^> o/ --- Day changed ven. févr. 07 2014 02:03 < TkTech> cathode: "Are developers lazy?" is one of those questions that can be answered with "dur." 04:21 < cathode> TkTech - i can understand if it's like bugs that are 'cosmetic' but still throw errors 04:21 < cathode> but when it's stupid stuff like they didn't include proper version info in their jar.... thats inexcusable 10:29 < thefinn93> has anyone done anything with parsing sniffed minecraft network traffic? 10:30 < thefinn93> im trying and failing miserably... 10:30 < Drainedsoul> what are you trying to do? 10:30 < thefinn93> well initialy just get some basic info about the minecraft session 10:31 < thefinn93> but ideally i'd like to save maps tha the remote server sends 10:31 < thefinn93> however i could see all manner of interesting things being done with this 10:37 < Drainedsoul> yes but what's the context 10:38 < thefinn93> context? 10:38 < thefinn93> i want to save a copyof the map on a server im playing on 10:38 < thefinn93> i googleda little 10:38 < Drainedsoul> what do you mean "parsing sniffed minecraft network traffic", do you mean that you have like a wireshark log of the session, or are you proxying the session, or... 10:38 < thefinn93> couldnt find an easy way to do it 10:38 < thefinn93> oh i see 10:39 < thefinn93> um well i was using scapy to capture off the ethernet device on my laptop 10:39 < thefinn93> perhaps there would be an easier way if i wrote a ton of java 10:40 < Drainedsoul> if you can figure out how to do it from a log of the network traffic 10:40 < thefinn93> and made it a plugn 10:40 < Drainedsoul> then you have better things to do than write little programs for minecraft 10:40 < Drainedsoul> the NSA probably has a lot of money for you 10:40 < Drainedsoul> free PhD too 10:40 < Drainedsoul> because you'd have to pioneer some serious shit in cryptography 10:40 < thefinn93> oh 10:40 < thefinn93> :( 10:40 < Drainedsoul> proxying, or pretend to be a client yourself, are really the only ways to go about it 10:41 < thefinn93> hmm okay 10:41 < Drainedsoul> there are proxies you can use if you want to get the cleartext for the session 10:41 < thefinn93> i didnt realize it was encrypted 10:41 < thefinn93> yeah 10:41 < thefinn93> uh do you have any suggestions for such proxies? 10:41 < thefinn93> i was looking around, most things dont seem to support the newest protocol version 10:41 < Drainedsoul> I know SirCmpwn has (had?) one. I don't know if he maintains it still, if it supports the latest protocol version, or if it can do actual binary dumps. 10:41 < Drainedsoul> the source code was available for it though 10:42 < thefinn93> okay 10:42 < Drainedsoul> https://github.com/SirCmpwn/SMProxy ah only 1.6.4 10:42 < Drainedsoul> (according to the readme) 10:42 < thefinn93> mm 10:43 < thefinn93> last commit was 4 months ago... when did 1.7.1 (thats latest right?) come out? 10:43 <+SirCmpwn> hi 10:43 <+SirCmpwn> I will read all that in a moment 10:43 < thefinn93> SirCmpwn: dont bother,just me being an idiot 10:43 <+SirCmpwn> k 10:44 < thefinn93> just wondering if SMProxy supports 1.7.1 10:44 <+SirCmpwn> no 10:44 < thefinn93> er 10:44 <+SirCmpwn> /join #craft.net 10:44 < thefinn93> 1.7.4 10:44 < thefinn93> ok 10:44 <+SirCmpwn> I haven't finished 1.7.4 support in Craft.Net yet 10:44 <+SirCmpwn> and SMProxy depends on C.N 10:44 < thefinn93> k 10:45 <+SirCmpwn> very busy 10:45 <+SirCmpwn> feel free to help out :) 10:45 < thefinn93> i dont know any .net 10:45 <+SirCmpwn> enough is in place that SMProxy should be feasible to update, if you base it on the 1.7.x branch of C.N 10:45 < thefinn93> eh okay 10:46 < thefinn93> im gonna look what around,maybe smehting in a language im more comforatble with 10:46 <+SirCmpwn> you'll never learn that way 10:46 < thefinn93> heh 10:47 < thefinn93> im trying to learn one thing at a time, not a new language and a whole crazy proxying thing 10:48 < Drainedsoul> I tried to upvote "you'll never learn that way". I need to IRC more and Reddit less Christ 10:49 < thefinn93> is there a nice explination of what changed between protocol versions? 10:49 <+SirCmpwn> between 1.6.x and 1.7.x, the answer is "everything" 10:49 < thefinn93> oh 10:49 < thefinn93> well fuck 10:50 <+SirCmpwn> https://github.com/SirCmpwn/Craft.Net/tree/1.7.x/source/Craft.Net.Networking 10:50 <+SirCmpwn> you don't have to know C# to benefit from this 10:50 <+SirCmpwn> the networking code for C.N 1.7.x is complete and stable 10:50 <+SirCmpwn> give it a read 10:50 < thefinn93> mk 10:50 <+SirCmpwn> it implements the entire 1.7.4 protocol, so plenty of detail to go around 18:23 < Not-001> [fNbt] fragmer pushed 2 commits to master [+0/-0/±4] http://git.io/iH9UPw 18:23 < Not-001> [fNbt] fragmer 503825c - Updated NUnit from 2.6.2 to 2.6.3 18:23 < Not-001> [fNbt] fragmer 8606c5a - Continuing work on automatic IDictionary serialization (SerializeCodeEmitter.HandleStringIDictionary) 19:22 < LaxWasHere> Any solution guys? http://q.AwsmPwrd.com/EkEI.png 19:23 <+SpaceManiac> install PHP? 19:23 < umby24> never run it before, but I would probably guess you need to use the php from the included "php5" folder. (That is, if it was included with pocketmine) 19:26 < LaxWasHere> Hmm 19:28 < shoghicp> hmm 19:28 < Not-001> [fNbt] fragmer pushed 3 commits to master [+0/-0/±4] http://git.io/dkaJgg 19:28 < Not-001> [fNbt] fragmer 39fa224 - Improved code reuse between SerializeCodeEmitter's IList and IDictionary handlers. Also started working on possibility of automatically serializing any mix of nested ILists/IDictionaries. 19:28 < shoghicp> PocketMine support 19:28 < Not-001> [fNbt] fragmer 41e1931 - Annotated CodeEmitter. 19:28 < Not-001> [fNbt] fragmer 1eef1a5 - Finished handling of nested combinations of ILists/IDictionaries. Untested. 19:28 < shoghicp> LaxWasHere: I see that you are on #pocketmine, let me help you there 19:29 < LaxWasHere> Oh lol, I was in the wrong channel. 21:15 < Not-001> [Glowstone] SpaceManiac pushed 1 commit [+6/-0/±3] http://git.io/yRbPig 21:15 < Not-001> [Glowstone] SpaceManiac bc88c8b - Added ClientSettings and PluginMessage packets: 21:27 < Not-001> [fNbt] fragmer pushed 1 commit to master [+0/-0/±3] http://git.io/_Hfm2w 21:27 < Not-001> [fNbt] fragmer 87fe780 - Fixed a few bugs in IDictionary handling in NbtCompiler 21:46 < omkelderman> hi, ive noticed that when i read the incomming payload of an rcon-packet (ive used http://wiki.vg/Rcon) and the command-output contains multiple lines when executed on the minecraft-console, i get it as one long string with all the lines without any indication of EOL's or something like that 21:46 < omkelderman> anyone got an solution? 21:50 < omkelderman> for example, the help command, on the minecraft-console: http://puu.sh/6NwZy.png, my own output: http://puu.sh/6Nx65.png 21:51 < dx> omkelderman: i can see \n as newlines here 21:51 < dx> what are you using to view the output that doesn't know \n is a newline? 21:52 < omkelderman> that second image is the console of eclipse, but when i inspect the packet i get per byte, i cannot see a \n-byte, one sec, i'll make a screen-shot of that one 21:54 < omkelderman> couldnt fit in screenshot, so: http://pastebin.com/eicrRu7Q 21:55 < omkelderman> there is no 0x0A (\n) packet 21:56 < dx> "\xc2\xa7e--------- \xc2\xa7fHelp: Index (1/7) \xc2\xa7e---------------------\n\xc2\xa77Use /help [n] to get page n of help.\n" 21:56 < dx> i can clearly see \n there 21:57 < dx> those \xc2\xa7e are utf-8 encoded §e which you don't have in your output, but that might be a different server reply 21:57 < omkelderman> which server-version do u have? 21:58 < dx> git-Bukkit-1.6.2-R0.1-b2838jnks 21:58 < dx> i don't even remember why i kept that one 21:58 < omkelderman> ive got mojangs 1.7.something-i-forgot if im not mistaken, lemmycheck 21:58 < dx> lol 21:59 < dx> okay gonna get a vanilla 1.7.4 to test 21:59 < omkelderman> ok, ive got 1.7.2 22:00 * dx downloads again 22:01 < dx> okay, can reproduce. 22:01 < dx> same with 1.7.4 22:02 < omkelderman> one thought i had was maybe to split the string in chunks, but that doesnt realy work, cause each line has a different length... 22:02 < dx> https://bugs.mojang.com/browse/MC-7569 22:03 < dx> omkelderman: no, the output really doesn't have newlines, it's not a bug in your implementation 22:03 < dx> all you can do is guessing 22:03 < omkelderman> sweet.... (not xd) 22:04 < dx> lol that bug says "Debian GNU/Linux Sta(b)le 6.0" 22:04 < MCMrARM> lol 22:05 < omkelderman> :P 22:05 < dx> where the hell is the 'edit' in this bugtracker 22:06 < omkelderman> edit what? 22:06 < dx> affected version, as requested by one of the 'moderators' (which looks like a bot rather than a moderator) 22:07 < omkelderman> i think only the reporter can edit that... 22:08 < dx> okay 22:08 < omkelderman> im not sure, but thats my best guess 22:09 < dx> the last changes to 'affected versions' were made by moderators too, so welp 22:09 <+SpaceManiac> just add a comment? 22:09 < dx> yeah done that 22:10 < omkelderman> 14w06b, is that the latest? 22:11 < dx> yeah, just grabbed the last server jar in mojang.com 22:11 < omkelderman> k 22:16 < omkelderman> but say they fix it at some point, there will always be some 1.7.4 or earlier servers somewhere, so if i develop something which relies on rcon-stuff, i have to handle both, and taking in account that bukkit is doing it again different, could be fun to implement everything... xd 22:18 < omkelderman> also the response packet-type is weird... xd login is send 3, received 2, command is send 2, received 0....... 22:18 < omkelderman> where's the logic xd 22:18 < omkelderman> i wonder what bukkit does 22:26 < omkelderman> ok, i downloaded the latest craftbukkit-rb and it does the same with the id's :P --- Day changed sam. févr. 08 2014 03:22 < Not-001> [fNbt] fragmer pushed 3 commits to master [+0/-0/±6] http://git.io/903EPA 03:22 < Not-001> [fNbt] fragmer 5e5d7be - NbtCompiler: [NullPolicy] attribute can now be applied to INbtSerializable properties. 03:22 < Not-001> [fNbt] fragmer 241dc12 - NbtCompiler: Fixed serialization of NbtTag properties when NullPolicy is InsertDefault. 03:22 < Not-001> [fNbt] fragmer 9d52903 - NbtCompiler: Implemented serialization of dictionaries/arrays/lists of NbtTags and NbtFiles. 16:08 < Trimsty> Hi :D 16:09 < Ray____> hello 16:10 < Ray____> anyone has an idea how i can set the target location of an enderdragon? 19:40 < cathode> hi there. #minecraft doesnt know so i'll ask here... is there any way for a server admin to A) manually disable a crafting recipe provided by a mod (even if the mod doesnt allow it to be configured) or B) change mod load order? 19:40 < cathode> talking about a Forge 1.6.4 server here 21:03 <+clonejo> cathode: isn't there some forge channel? 21:04 <+SpaceManiac> #minecraftforge on esper 21:07 < TkTech> cathode: Mod related questions don't usually get answered here. More of a DIY channel. 22:03 < xxmicloxx> Hello 22:03 < xxmicloxx> I have a problem with encryption in minecraft 22:03 < xxmicloxx> I get an Encryption Response packet from the client 22:04 < xxmicloxx> the decrypted verify token matches the sent verify token 22:04 < xxmicloxx> also, the authentication to the mojang servers also works 22:05 < xxmicloxx> but when I enable the encryption the client just reads junk... 22:05 < Drainedsoul> are you sure you're using the right encryption scheme? 22:05 < xxmicloxx> I have copied the code from the minecraft client 22:06 < xxmicloxx> using AES, shared secret is the byte array sent by the client with the response packet 22:06 < xxmicloxx> but I decrypt that array first 22:06 < xxmicloxx> using my secret RSA key 22:06 < Drainedsoul> you mean RSA private key? 22:06 < xxmicloxx> yes 22:06 < Drainedsoul> what do you use as the IV? 22:07 < xxmicloxx> when generating the key pair? 22:07 < Drainedsoul> no, when turning AES128CFB8 on 22:08 < xxmicloxx> I don't use any IVs in my code... I didn't find that in MC's source code either 22:08 < Drainedsoul> have you tried decrypting your own data? 22:08 < xxmicloxx> I will 22:08 < Drainedsoul> are you sure you don't send anything before you turn on encryption? 22:08 < xxmicloxx> btw, I use this class: http://hastebin.com/hagepohelu.java 22:09 < xxmicloxx> I don't 22:09 < iBotPeaches> looks decompiled :p 22:09 < xxmicloxx> it is^^ 22:09 < xxmicloxx> When I get the encryption response, I decrypt both byte arrays and then compare the verify token 22:09 < xxmicloxx> then, I turn on encryption 22:10 < xxmicloxx> no, I don't send any data 22:11 < Drainedsoul> are you trying to perform concurrent sends without guarding the encryption context (I don't even know if that's possible using the scheme you're using)? 22:11 < xxmicloxx> I'm logging everything I'm sending 22:11 < Drainedsoul> that doesn't address that question 22:11 < xxmicloxx> and I'm not sending anything 22:12 < xxmicloxx> You mean if I'm trying to call encrypt() from multiple threads? 22:12 < Drainedsoul> sure 22:12 < xxmicloxx> No, I don't... 22:12 <+SpaceManiac> If you're not sending anything, how is the client reading junk? 22:12 < Drainedsoul> ^ 22:12 < xxmicloxx> I am sending a packet02LoginSuccess 22:12 < xxmicloxx> it sometimes reads a packet id of -2206 22:12 < xxmicloxx> or a invalid length (22 bytes) 22:13 < xxmicloxx> I mean the VarInt has a size of 22 bytes... 22:13 <+SpaceManiac> are you sure you don't have the cipher directions backwards or something? 22:14 < xxmicloxx> no, it is the right direction 22:14 < Drainedsoul> well if it helps, the vanilla server implements this, so you can just copy and paste that. 22:14 <+SpaceManiac> did you try to make sure? 22:14 < xxmicloxx> I will try to loop the data, if that helps... 22:14 < xxmicloxx> Let me do some tests 22:16 <+SpaceManiac> If you need another reference, Glowstone does encryption: http://git.io/kdmTvQ - http://git.io/GSZVnA 22:16 <+SpaceManiac> it's probably pretty different than your setup but it might help you spot something 22:16 < xxmicloxx> okay thanks 22:16 < xxmicloxx> I'll look into that 22:16 < Drainedsoul> I'd say my server does encryption also, but no one wants to read C++ code around these parts :'( 22:17 < xxmicloxx> what's your c++ server called? 22:17 < Drainedsoul> https://github.com/RobertLeahy/MCPP 22:17 < xxmicloxx> this thing seems laaarge^^ 22:22 < xxmicloxx> hm... not good 22:22 < xxmicloxx> decrypting doesn't seem to work 22:23 < Drainedsoul> decrypting your own data? 22:23 < xxmicloxx> yes 22:24 < xxmicloxx> sorry 22:24 < xxmicloxx> encrypting didn't work 22:24 < Drainedsoul> how'd you verify that? 22:24 < xxmicloxx> debugging^^ 22:24 < xxmicloxx> stepping through 22:24 < Drainedsoul> in what way didn't it work? 22:24 < xxmicloxx> encrypting does not set anything on the target ByteBuf 22:24 < Drainedsoul> oh okay 22:26 < xxmicloxx> hm... when I encrypt three bytes of data, the cypher says that it outputs 16 bytes of data 22:26 < xxmicloxx> isn't AES a linear encryption 22:26 < Drainedsoul> in CFB mode it is 22:26 < Drainedsoul> which is what MC uses -- AES128CFB8 22:27 < xxmicloxx> okay hm... 22:27 < xxmicloxx> this is funny 22:27 < xxmicloxx> I create my cipher the same way MC does 22:27 <+SpaceManiac> not hitting errors? maybe you need to include bouncycastle? 22:29 < xxmicloxx> does bouncycastle change java standard classes? 22:29 < xxmicloxx> return new SecretKeySpec(decryptData(par0PrivateKey, par1ArrayOfByte), "AES"); 22:29 < xxmicloxx> This is what it says in minecraft code 22:29 < xxmicloxx> and that's exactly what I do 22:29 < xxmicloxx> I don't see any bouncycastle imports, btw 22:30 <+SpaceManiac> bouncy castle becomes a provider for some of the Java crypto internals, I don't remember the specifics 22:30 < xxmicloxx> oh okay 22:30 < xxmicloxx> good to know 22:30 < xxmicloxx> so what do I do 22:30 < xxmicloxx> just include it into classpath? 22:30 <+SpaceManiac> I think that, then "Security.addProvider(new BouncyCastleProvider());" 22:31 < Drainedsoul> I honestly think this business of just looking at what MC does, and doing that blindly, is dangerous 22:31 < xxmicloxx> I am not doing it blindly 22:31 < xxmicloxx> I am understanding what MC does 22:32 < xxmicloxx> it sends it's server ID through asynchronous encryption, and then sends the shared secret back encryptedly 22:32 < xxmicloxx> and then they switch to synchronous encryption 22:32 < xxmicloxx> because it's faster 22:32 < xxmicloxx> and it's secure, because the shared secret was sent asynchronously encrypted 22:34 < xxmicloxx> guess what did do nothing again? BouncyCastle did not help -,- 22:35 < xxmicloxx> It is still using the sun provider... 22:35 * SpaceManiac shrugs 22:40 < xxmicloxx> Okay, I'll just try to use bouncy castle APIs now 22:47 * xxmicloxx dances 22:47 < xxmicloxx> Thanks! Using the bouncy castle API my local encrypt/decrypt test works 22:47 < xxmicloxx> Now I just have to implement it... 22:52 <+SirCmpwn> are you a client or a server 22:52 <+SirCmpwn> xxmicloxx: 22:59 < xxmicloxx> server 22:59 < xxmicloxx> Oh, and another question 22:59 < xxmicloxx> encryption seems to work now 23:00 < xxmicloxx> Is the client supposed to send something after I send 0x02LoginSuccess? 23:00 < xxmicloxx> Or do I have to start transferring the world? 23:02 < xxmicloxx> okay I stop asking and dance now 23:02 < xxmicloxx> client switched the state to PLAY 23:02 < xxmicloxx> (this is why I get an error when I send a login-disconnect...) 23:03 * xxmicloxx starts partying 23:03 < xxmicloxx> Thanks for supporting me :) 23:04 < xxmicloxx> also, what format does a kick message have to be? 23:04 < xxmicloxx> I can't send it because of "MalformedJsonException"... 23:07 <+SpaceManiac> it should be a string which is a json-encoded object something like {"text": "Kick text"} 23:09 < Dinnerbone> (Shortcut of which can just be: "Kick text") 23:16 < Drainedsoul> you could just not send a kick message and close the socket >:D --- Day changed dim. févr. 09 2014 01:01 < Not-001> [Glowstone] SpaceManiac pushed 7 commits [+28/-13/±81] http://git.io/nqCiZw 01:01 < Not-001> [Glowstone] SpaceManiac 5357763 - Started on updating entity packets (not functional). 01:01 < Not-001> [Glowstone] SpaceManiac 0f7b619 - Revamped entity metadata system and added some things to TagCompoundUtils. 01:01 < Not-001> [Glowstone] SpaceManiac 065a84d - Further work on entity packet update: 01:01 < Not-001> [Glowstone] ... and 4 more commits. 02:37 < mochar> hey, where should I go to start making mods? googling didn't gave me much of an answer.. 02:44 <+SpaceManiac> mochar: Forge is probably your best bet for modding 03:01 < mochar> thanks for the answer. 03:03 < mochar> Do I have to download the installer or Src? files.minecraftforge.net --- Log closed dim. févr. 09 03:36:26 2014 --- Log opened dim. févr. 09 03:48:42 2014 03:48 -!- Irssi: #mcdevs: Total of 135 nicks [1 ops, 0 halfops, 10 voices, 124 normal] 03:52 -!- Irssi: Join to #mcdevs was synced in 225 secs 06:30 < Not-001> [Glowstone] SpaceManiac pushed 2 commits [+3/-1/±12] http://git.io/MCV_6w 06:30 < Not-001> [Glowstone] zml2008 8a75ed9 - Switch to thread-per-world design for ticking 06:30 < Not-001> [Glowstone] SpaceManiac deac50c - A bit of cleanup: 11:40 * xxmicloxx slaps xxmicloxx around a bit with a large trout 11:41 < Drainedsoul> uhh 14:24 < xxmicloxx> Hello 14:24 < xxmicloxx> does anyone know what I have to do to make the client join the world? 14:25 < xxmicloxx> I have already enabled the encryption 19:15 < xxmicloxx> Hello 19:16 < xxmicloxx> I am working on a 1.7 server, I have already enabled the encryption and communication works fine, but I don't know what I have to send after the 0x02 Login Success packet 20:25 < umby24> Anyone have an example of some kind on reading the "Record data" from multi block change? 20:28 < dividuum> umby24, you already have the 32bit value? then it's basic bit shifting: metadata = value & 0xf, block_id = (value >> 4) & 0xFFF and so on 20:29 < umby24> yeah, Got the data. Just need the exta help on what to do with it :P 20:31 < umby24> and if I were writing that record data would I use the same shifts and so on? 20:31 < dividuum> no. then you have to shift the values into the correct spot and OR them. like this: 20:32 < dividuum> value = metadata & 0xf | (block_id & 0xFFF) << 4 and so on 20:32 < umby24> ok, thanks :D --- Day changed lun. févr. 10 2014 00:46 < TkTech> It's tempting to just kickban everyone with an "away" nick. 00:48 < dx> TkTech: they will never notice 00:48 < dx> not a really effective way to tell them to stop doing it 00:58 < TkTech> Some of them would I'd hope. MrARM-Away is pretty active at least. 01:01 < umby24> http://pastebin.com/xa8P6BDF Would this be correct for Record Data? (Multi block change_ 01:04 <+SirCmpwn> TkTech: +b *away!*@* 01:05 <+SirCmpwn> nah, that wouldn't really help 01:15 < dx> seems like everyone who has an away nick must also make it different from everyone else 01:16 <+AndrewPH> xXcodplay3r117Xx|afk, masterc0d3r1337-nothere, TkTech[away] 04:05 < nickelpro> dx: They'll never be "Away" in this channel again 04:06 < nickelpro> seems to be like it solves the problem 04:06 < nickelpro> me* 06:21 < TkTech> Well, the ending of Bioshock Infinite is a mindfuck. 06:22 < Drainedsoul> it was such a letdown 06:23 < nickelpro> Its hugely inferior as a game to its predecesors 06:24 < TkTech> The gameplay wasn't too awful, but that ending really is disappointing. 06:24 < Drainedsoul> yeah 06:24 < Drainedsoul> it was almost a big of a letdown as Mass Effect 3 06:24 < TkTech> I was kinda hoping it would have *more* choices, not a theres-really-only-one-path story 06:24 < Drainedsoul> yeah 06:25 < nickelpro> I still dont understand how blasted bioware's writers were for ME# 06:27 < nickelpro> Especially considering the game was a masterpiece right up until the elevator to the little blue fucker 06:27 < Drainedsoul> yeah exactly 06:27 < Drainedsoul> if the Leviathan DLC hadn't been DLC I would've been a little less angry 06:28 < nickelpro> It's still fucked with Lev, I'm mildly less peaved since Citadel was so good 06:29 < nickelpro> But still, how do you screw that up? It's a space epic, it doesn't need a twist ending. Evil aliens die, hero rejoins everybody, we have a nice scene with them watching the broken fleet come toghether implying a better tomorrow. Hell even the far future telling stories of "The Shepard" 06:30 < nickelpro> First time I played (Extended Cut was already out) I told blue boy to go screw himself, I wouldn't force everybody into a red, blue, or green box. And the Repear win ending started playing... I was laughing and crying at the same time. I thought I had figured out the "right" option 06:31 < Drainedsoul> lol 06:33 < nickelpro> But ya, I don't know what got into Levine's head turning a Shock game into a cover based shooter, which plays like its on rails 06:34 < SinZ> AndrewPH: I am %nick%|offline 06:41 < umby24> ^ 06:41 < nickelpro> I simply never go offline, leaving one's computer is for casuals. Problem solved 07:04 < umby24> lmao 07:05 < Not-001> [Glowstone] SpaceManiac pushed 2 commits [+34/-20/±5] http://git.io/0TnSDg 07:05 < Not-001> [Glowstone] SpaceManiac 6a22742 - More protocol updates: 07:05 < Not-001> [Glowstone] SpaceManiac f302767 - Moved inventory packets to own package, changed Slot to use ItemStack, and added Contents. 09:08 < Drainedsoul> does anyone here randomly know anything about OpenSSL? 09:08 < Drainedsoul> and if it'd be possible to use my own PRNG for RSA public/private key generation. I can't find anything. 09:08 < Drainedsoul> but I'm pretty sure the OpenSSL PRNG is not thread safe, so... 09:08 < Drainedsoul> :( 09:11 < TkTech> Drainedsoul: http://www.openssl.org/docs/crypto/threads.html#description 09:23 < Drainedsoul> fucking C libraries goddamnit 09:24 < Drainedsoul> whoever designed libc-ares should design every C library 09:24 < Drainedsoul> TkTech: thanks though 09:24 < TkTech> That would be MIT. 09:25 < TkTech> Literally MIT. In 1998. 09:25 < Drainedsoul> seriously I was giddy working with/wrapping that library, it's just so well designed 09:26 < Drainedsoul> as opposed to things like libmysqlclient, which feel like they were designed by an incohate PHP dev 09:27 < Drainedsoul> this whole business of treating the whole library as some kind of object is just wrong. A lot of C libraries just seem like a thin wrapper for various levels of global state. 09:28 < Drainedsoul> set a locking callback for the whole library, are you serious? How'd that seem like a good idea 09:28 <+clonejo> You still won't want to implement your own crypto, unless you're an expert in that field. 09:29 < Drainedsoul> no, I don't want to implement my own protocol-level communication with MySQL Server, but that doesn't somehow redeem these libraries 09:33 <+clonejo> What do you want to do in parallel anyway? 09:34 < Drainedsoul> everything 09:35 < Drainedsoul> my server is just a big proactor, so everything and anything is liable to run in parallel 09:37 <+clonejo> Even rsa key generation? 09:39 < Drainedsoul> Not right now. It's all done during start up (which is single-threaded) 09:40 < Drainedsoul> but the page isn't very specific about what, exactly, needs to be synchronized. 09:40 < Drainedsoul> stream encryption is definitely, absolutely, 100% guaranteed to be done in parallel 09:47 <+clonejo> and openssl can't do stream encryption in parallel?! 09:48 < Drainedsoul> well this documentation isn't clear, which is a major complaint I have with openssl and libmysqlclient -- the documentation lacks specificity 09:48 < Drainedsoul> I was doing stream encryption in parallel, and haven't had any problems yet 09:48 < Drainedsoul> but "haven't had any problems yet" is like the worst omen of thread safety issues ever 16:54 < TkTech> So many spam signups. 17:22 < MCMrARM> So bad internet connections 19:11 < CanVox> So.... 19:11 < CanVox> The other day mojang started giving us null responses to user refresh requests sometimes. 19:11 < CanVox> Like the response was the text "null": 19:11 < CanVox> We started treating them as bad session tokens and everything would be fine when users relogged with their passwords. 19:12 < CanVox> Now mojang has started giving us null responses to user password attempts. 19:12 < CanVox> This is a bit more serious because we have no idea what to tell the user. 19:12 < CanVox> All of the confirmed users for the first issue were legacy accounts, if that helps. 19:13 < CanVox> Annnnnd I'm gonna go ahead and dinnerbone: grum: ^^^^^ 19:14 < CanVox> Should I treat it as a mojang outage? 19:52 < Grum> CanVox: if you end up getting throttled it will pretend you fail no matter what 19:52 < CanVox> Right, but since when is "null" the way the auth servers respond to failure? 20:30 < xxmicloxx> Hm... I have a question (again) 20:30 < xxmicloxx> when I send the Join Game packet to the client 20:30 < xxmicloxx> and following that the Spawn position packet 20:30 < xxmicloxx> I get a 0x15 Client settings packet 20:31 < xxmicloxx> and following that a whole lot of junk... 20:32 < xxmicloxx> oh sorry my fault -,- 20:40 < xxmicloxx> Hm... after sending the spawn position packet I get a plugin message, followed by a rotation and look packet 20:40 < xxmicloxx> do I have to resend that rotation and look packet to the client? 20:40 < xxmicloxx> It is hanging at "Downloading level..." 20:42 < Thinkofdeath> xxmicloxx: Have you sent a Player Position and Look packet? 20:42 < xxmicloxx> Like I said, I get one from the client, but I did not send one... 20:42 < xxmicloxx> I think I have to send that packet back to the client, right? 20:43 < xxmicloxx> well, f*** windows 20:43 < xxmicloxx> just hangs because I started VMWare workstation :( 20:43 < Thinkofdeath> You need to send one and the client should send one back matching 20:43 < xxmicloxx> hmm okay 20:43 < xxmicloxx> weird is this a race condition? 20:43 < xxmicloxx> because I get a packet from the client but I am not sending one 20:44 < Thinkofdeath> No idea, the vanilla ignores movement packets until the client sends a matching 20:44 < Thinkofdeath> one 20:44 < xxmicloxx> oh okay useful hint^^ 20:45 < xxmicloxx> You know what sucks? http://puu.sh/6RcEB.png 20:45 < xxmicloxx> Looks like I'm rebooting now... brb --- Day changed mar. févr. 11 2014 02:20 < Not-001> [Glowstone] SpaceManiac pushed 2 commits [+1/-2/±25] http://git.io/8ZVFng 02:20 < Not-001> [Glowstone] SpaceManiac ce668a8 - Started on revamp of NBT utilities. 02:20 < Not-001> [Glowstone] SpaceManiac 94d272b - Switched to new NBT features where possible. Fail events quieter while shutting down. 08:12 < shoghicp> src/BaseEvent.php 08:12 < shoghicp> and 08:12 < shoghicp> src/event folder 08:12 < shoghicp> and the HideMe plugin 08:13 < shoghicp> oops 08:13 < shoghicp> wrong channel 08:15 < dx> dammit shoghicp 08:15 < dx> that was the most offensive thing i've heard all day 08:15 < MrARM> xD 08:38 < Drainedsoul> PHP is pretty offensive 08:50 <+SirCmpwn> considering what time it is 08:50 <+SirCmpwn> that may well be the _only_ thing you've heard all day 09:07 < Drainedsoul> o_o what's that supposed to mean 09:15 < dx> Drainedsoul: if i was in GMT-7, i would have read those messages 12 minutes after midnight 09:17 < Drainedsoul> I'm in GMT-8 tho o.o 09:18 < Drainedsoul> it's just 18 mins past midnight 09:18 < dx> yeah, i used a hypothetical timezone... that might not be used anywhere right now... but yeah 09:19 < dx> wait hold on 09:19 < dx> i'm dumb 09:19 < dx> just, uh, ignore everything i've said 09:20 < Drainedsoul> ...okay I'll try 09:21 < dx> wait nevermind 09:21 < dx> i got it right 09:21 < dx> but i'm still dumb for getting confused so easily 09:22 < dx> Drainedsoul: those messages were one hour ago 09:22 < dx> which is why i used GMT-7 09:36 < Dinnerbone> You're dumb 09:37 < Dinnerbone> Timezones :( 09:37 <+SirCmpwn> yeah, but not as dumb as inverted skeletons 09:38 < Dinnerbone> Helps with their aim! 09:38 <+SirCmpwn> like they need help 09:39 <+SirCmpwn> skeletons are totally op 10:33 < SinZ> true dat 18:24 < asd_> hi, can anyone give me a authserver.mojang.com response of a valid login (in json)? 18:26 < Thinkofdeath> asd_: http://wiki.vg/Authentication should be on here 18:26 < asd_> cool thank you! 22:51 < schwartz_2000> someone can help me with python3 and the way to use nickelpro/spock ... unable ton run it ? 22:57 < dx> nickelpro: schwartz_2000 wants to use you 22:58 < TkTech> Kinky. 22:58 < dx> schwartz_2000: pastebin some error messages http://pastebin.com 23:01 < Not-001> [Glowstone] SpaceManiac pushed 2 commits [+0/-1/±23] http://git.io/1Q2h-A 23:01 < Not-001> [Glowstone] SpaceManiac 596a4d2 - Java version is now 1.7. Further move to new NBT stuff. 23:01 < Not-001> [Glowstone] SpaceManiac 8fb22f1 - Removed GlowItemStack and added start of NBT ItemMeta handling. 23:04 < schwartz_2000> dx: importerror: no module named'spock.plugins.defaults 23:06 < dx> i said pastebin but i guess that's enough 23:07 < schwartz_2000> dx:sorry .. two computer the one with python3 was linux console only! 23:08 < dx> ssh exists but okay, doesn't really matter 23:10 < dx> schwartz_2000: the demo.py script is broken, change second line to "from spock.plugins import DefaultPlugins" 23:10 <+clonejo> also screen and tmux should have copy+paste functionality ;) 23:13 < schwartz_2000> dx: you are kidding me... that seam to work.... 23:15 < dx> aaaaand my pc got completely unusable for a few minutes 23:16 < dx> what the fuck does this thing do. looked like it used all my ram 23:16 < dx> 4gb ram free, 2gb swap used. okay. what. 23:17 < dx> (spock is dead already, said "socket was hung up, stopping") 23:18 < dx> [19:12:17 WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 8169ms behind, skipping 163 tick(s) 23:19 < dx> nickelpro: nice DoS 23:26 < schwartz_2000> Return back soon --- Day changed mer. févr. 12 2014 01:29 < nickelpro> lol 01:29 < nickelpro> Just got back from work 01:29 < nickelpro> dx: sorry for whatever terrible thing Spock did to you 01:31 < dx> nickelpro: oh i forgot to check what happened exactly, but yeah, seems like starting your bot ate a few gigabytes of ram 01:35 < nickelpro> dx: I'm going to figure out what demo is doing now, I never actually run it so ya... 01:35 < dx> nickelpro: yeah, i noticed you never run it, lol broken import. 01:36 < nickelpro> dx: I suspect Spock thought it was hung up on and the network plugin went nuts (because error handling is for people who make mistakes) 01:37 < dx> if recv_buffer == '': fork() 01:37 < dx> best disconnection handling ever 01:38 < dx> (i didn't disconnect it, though. the disconnection was probably a ping timeout) 01:42 < nickelpro> dx: I know what it is 01:42 < dx> nickelpro: \o/ 01:43 < dx> "grep -r fork" doesn't show anything though 01:43 < nickelpro> dx: I created a plugin for parsing the map into an easy-to-use format 01:43 < nickelpro> dx: every block is an object 01:43 < nickelpro> dx: for some reason I didn't consider the stupid amount of memory that would use on python 01:44 < dx> ...and you never use this bot with real servers that have normal amounts of blocks? 01:44 < nickelpro> My local machine has lots of memory and an i7, I never noticed a problem :-P 01:44 < nickelpro> I'm dumb 01:45 < dx> how much is lots? i have 8gb.. 01:45 < nickelpro> 16 01:45 < dx> lol. 01:45 < nickelpro> I used 25% by logging into an average server just now 01:45 < dx> but yeah i had a lot of crap open at that moment 01:46 < dx> a windows 7 vm, skype, firefox 01:46 < dx> 2gb ram each, approximately 01:48 <+AndrewPH> TkTech: dogecoins at 270 satoshi :o 01:48 < dx> AndrewPH: is that high or low? 01:49 <+AndrewPH> relatively high 01:49 <+AndrewPH> it's been at about 200 for a while now 01:49 < dx> lol measuring price with satoshi 01:49 <+AndrewPH> it's currently higher than its last highest peak 01:49 < dx> i always thought the prices of dogecoins were depressing, but yeah, absurdly high supply 01:50 < dx> makes sense, still looks bad 01:50 <+AndrewPH> my 10k dogecoins are worth like $19 bruv 01:51 < umby24> my 3k are like $6. 01:51 < dx> loadsamone 01:51 < umby24> right? 01:51 <+AndrewPH> lods e mone 01:51 < dx> i didn't get in the hype train because scrypt is painful to mine 02:12 < Drainedsoul> http://img.pandawhale.com/post-37107-dogecoin-mining-gif-mine-SO-WO-fPRU.gif 02:13 <+AndrewPH> wow, I could buy 2 pizzas with my doge 02:20 < nickelpro> Aaaaand everything should be fixed on Github Spock now 02:20 < nickelpro> Or not 02:20 < nickelpro> Maybe it blows up RasPi's or something 02:21 < nickelpro> Not like I test this stuff 02:28 < dx> lol 02:29 < mbaxter> Don't you go lolling here dx. No. 02:29 <+SpaceManiac> serious business only 02:29 < dx> s-sorry ;_; 02:31 < dx> mbaxter: do you actually have anything against lolling or was that just a way of reminding me that you're here? 02:32 < dx> also TIL 'loll' is a verb 03:35 < Not-001> [Glowstone] SpaceManiac pushed 1 commit [+0/-0/±4] http://git.io/1wyqkQ 03:35 < Not-001> [Glowstone] SpaceManiac e3a0744 - Added outbound HeldItemSlotMessage functionality. 06:31 < TkTech> Sigh. Shouldn't have sold my Dogecoin. 06:38 <+SirCmpwn> why, did it suddenly start mattering? 06:39 < Jailout2000> SirCmpwn: http://coinmarketcap.com/ 06:40 < TkTech> Yes. It's trading on direct markets for up to $3.1/k. 06:40 < TkTech> It got added to some chinese exchanges and just took off. 06:40 <+SirCmpwn> well, you've got to get out sometime, I suppose 06:40 <+SirCmpwn> isn't it more or less scheduled to die 06:41 < TkTech> You're going to have to clarify that one. 06:41 < TkTech> Are you talking about mining the last block? 06:41 <+SirCmpwn> I thought they set it up for infinite inflation 06:42 < TkTech> Well, kinda. 06:42 < TkTech> The total number of coins isn't capped, although up until 2015 the number mined each year halves. 06:42 < TkTech> But the difficulty increases over time, so you need to put more work into it to get those coins. 06:43 <+SirCmpwn> also, isn't one of the primary goals of dogecoin to be fun, and not worthy of investing in 06:43 <+SirCmpwn> I should be clear, I know little about dogecoin, I've just read a handful of comments when the subject comes up here and there 06:43 < TkTech> WhyNotBoth? 06:43 <+SirCmpwn> well, doesn't the very fact that you regret a sell defeat the purpose? 06:44 < TkTech> Not really. I've tipped the majority of what I bought and mined in the first place. 06:44 <+SirCmpwn> also, someone asked MediaCrush to accept dogecoin donations over twitter 06:44 <+SirCmpwn> so I made an address and tweeted them 06:44 <+SirCmpwn> and they sent no dogecoin :< 06:44 < TkTech> Yeah. Internet ;-( 06:46 < TkTech> Transaction volume is just silly. $10 000 000+ USD moved in 24 hours. 06:47 <+SirCmpwn> well, dogecoin is built on the tipping culture, it naturally moves a lot of coin around 06:47 < TkTech> That was part of the reasoning for such an absurd coin coint. 06:48 < TkTech> People like being able to tip 100 coins like it's absolutely nothing. 06:48 < TkTech> Versus fractions of bitcoins (satoshi's) 06:48 <+SirCmpwn> well, you could tip 100 satoshis to a similar effect :P 06:48 <+SirCmpwn> but then they're getting all serious in the serious bitcoin world of seriousness 06:48 < TkTech> Using the tipbot for 0.0000000044 BTC is different than 100 Doge :) 06:49 <+SirCmpwn> well, it's similar to using the dogebot for 0.000000044 kilododge 06:49 <+SirCmpwn> I didn't actually do any math there, so I know it's widly off 06:49 <+SirCmpwn> wildly* 06:53 <+AndrewPH> TkTech: I read a really good post about it earlier, about how in 2 months a community has built up that has shamelessly pooled together money to help two athletics teams get to the olympics AND has surpassed almost all older cryptocurrencies 06:54 <+SirCmpwn> well, they did they olympics thing through a wealthy bitcoin owner who bought a large amount of doge for the occasion 06:55 <+AndrewPH> SirCmpwn: they still pooled it all together, it's not like one person went and sold $30k of their own dogecoins to do it 06:55 <+SirCmpwn> details aside, the jamacian team was funded, for the most part, through bitcoin 06:56 <+SirCmpwn> I'm not drawing any conclusions from that fact, I'm just making mention of it 06:56 <+AndrewPH> no, they were funded through american dollars 06:56 <+SirCmpwn> enabled, then, through generous amounts of bitcoin 06:57 <+SirCmpwn> why is this something that difficult to mention? 06:58 <+AndrewPH> in the same sense, they were enabled through generous amounts of dogecoin. Unless there was a huge bitcoin fundraiser that didn't get covered for some reason or another 06:58 <+SirCmpwn> there was, if I recall correctly, a single donor who funded the majority of the pool by converting a large amount of bitcoin 07:00 <+AndrewPH> do you mean they sold their bitcoin for lots of doge and donated it to the cause? 07:00 <+SirCmpwn> yes 07:02 <+AndrewPH> and you're not referring to the process of converting doge to usd using bitcoin? 07:02 <+SirCmpwn> no, I'm referring to an individual with a large amount of bitcoin exchanging it directly for doge to help fund the jamacian bobsled team 07:02 <+AndrewPH> right, I thought you were referring to the conversion of doge to usd 07:03 <+SirCmpwn> ah, I was not 07:03 <+AndrewPH> carry on my wayward son 07:03 <+SirCmpwn> there'll be peace when you are done 07:07 < dx> god dammit, i wanted to find one of the code snippets pbunny posted originally, but they are all in dpaste and expired :( 07:08 <+SirCmpwn> what were you trying to accomplish? 07:09 < dx> someone in some other channel complained about the "kyoto cabinet" code, where "everything is in the header files" 07:13 < dx> oh, found a few non-dpaste ones. http://dump.bitcheese.net/texts/enacese/C 07:14 < dx> but that looks like a normal-ish macro 08:16 < Drainedsoul> why use macros when C++ exists --- Log closed mer. févr. 12 16:51:44 2014 --- Log opened mer. févr. 12 16:51:52 2014 16:51 -!- Irssi: #mcdevs: Total of 143 nicks [1 ops, 0 halfops, 12 voices, 130 normal] 16:55 -!- Irssi: Join to #mcdevs was synced in 248 secs 18:27 < Paprikachu_> hey, is there a tool that i can use to trace packets sent/received by the client that supports 1.7.4? 18:30 < Thinkofdeath> Paprikachu: http://wiki.vg/Debugging 18:30 < Thinkofdeath> Paprikachu_: ^ 18:30 < Paprikachu_> nice, thanks! 18:33 < mbaxter> dx: Always watching. 18:55 < Paprikachu_> how does throwing an eye of ender work in the protocol? 19:44 < nickelpro> Paprikachu_: It's just an entity, like anything else that isn't a block 19:44 < Paprikachu_> so it uses the spawn entity packet? 19:45 < Paprikachu_> ah, spawn object 19:46 < nickelpro> Paprikachu_: Ya it's object 0x48 19:46 < Paprikachu_> thanks 19:47 < Paprikachu_> how is the movement determined though? 19:47 < nickelpro> Entity Velocity 19:47 < Paprikachu_> ah 19:47 < Paprikachu_> alright cool, thanks 19:48 < nickelpro> Which is also why you'll sometimes see Entities move forward then jump back 19:48 < nickelpro> The client takes the entity velocity and projects the path the entity is supposed to take, but sometimes the server lags behind 19:48 < Paprikachu_> hh[entities=1[8833401]] 19:48 < Paprikachu_> what kind of packet is that? 19:48 < Paprikachu_> the ID is the id of my eye of ender 19:49 < nickelpro> Entity Packet, Server_to_Client, Play State, 0x14 19:49 < Paprikachu_> how do you know its 0x14? 19:50 < nickelpro> No other packet fits that structure 19:50 < Paprikachu_> ah, alright 19:50 < Paprikachu_> is there a list somewhere that maps these class names to packets? 19:51 < nickelpro> Not that I know of 19:51 < nickelpro> I would assume they change fairly often anyway, its just random obfuscation names 19:53 < Thinkofdeath> The packet id should be in the log as well you can use that to work out the packet's name 19:54 < nickelpro> ^ 19:54 < nickelpro> I've never actually used the built in debugger 19:57 < Paprikachu_> it's not in the log sadly 19:58 < Thinkofdeath> Something like [PLAY: 23] or something 19:58 < nickelpro> Client> [22:56:42] [Netty Client IO #5/DEBUG]: IN: [PLAY:21] gw[id=1907, xa=4, ya=0, za=3] 19:58 < nickelpro> Should be what you're looking at basically 19:59 < nickelpro> IN is the direction (relative to who is doing the logging, server or client), PLAY is the state, and the next number is the packet ID 20:01 < Paprikachu_> uh 20:02 < Paprikachu_> i thought that number was something else 20:02 < Paprikachu_> lemme check again 20:03 < Paprikachu_> are they off by one? 20:03 < nickelpro> nop 20:03 < Paprikachu_> [PLAY:18] hp[id=8833401, x=-0,01, y=0,03, z=0,02] 20:03 < Thinkofdeath> They are in decimal and the wiki is in hex 20:03 < Paprikachu_> oh 20:03 < Paprikachu_> right 20:04 < nickelpro> The first thing my CompEng teacher did in HighSchool was pound binary, decimal, and hex conversions into us 20:04 < nickelpro> binary and hex are easy enough, but I thank him everyday for making us memorize dec 20:08 < Paprikachu_> what exactly is the purpose of the veolicty packet? 20:08 < Paprikachu_> is it to allow the client to precalculate where an entity is moving to? 20:09 < nickelpro> Paprikachu_: Yep, so you see it as a smooth path rather than the entity teleporting all over the place 20:10 < Paprikachu_> so lets say i want to analyze the packets on a server to calculate the position of a stronghold 20:11 < nickelpro> You'd have be within sight range of the stronghold 20:11 < Paprikachu_> i just need to care about the position and the movement 20:11 < Paprikachu_> right? 20:11 < Paprikachu_> what do you mean 20:11 < nickelpro> Just position really 20:11 < Paprikachu_> the server sends a spawn position followed by multiple move relative packets 20:11 < nickelpro> If you never get sent the entities/chunks because you're 20 chunks away, there's nothing to analyze 20:12 < Thinkofdeath> nickelpro: You can use trig and two eye of enders to calcuate the position 20:12 < Paprikachu_> uhm, im throwing an enderpearl 20:12 < Paprikachu_> indeed 20:12 < Thinkofdeath> Thats why he wants to know their position 20:13 < nickelpro> Thinkofdeath: I don't actually play Minecraft, just program, I'm sure I knew this at some point and long since forgot 20:14 < nickelpro> Alright, then ya, spawn object and rel move should be enough 20:14 < nickelpro> I would log velocity in case it does turn out to be important 20:15 < Paprikachu_> yeah, im just grep-ing out the relevant lines 20:15 < Paprikachu_> and then feeding that into my calculator 20:20 < Paprikachu_> anyways, thanks a lot to you guys 20:21 < Paprikachu_> im going to apply that to my server now and get rich :P 21:21 < nickelpro> Something I never encountered while working in scripting languages, does Minecraft care if strings are null-terminated or not? 21:22 < nickelpro> I don't think it should... 21:26 <+SpaceManiac> If you say length is 4 and send a b c \0 that'll be the string it receives 21:27 < nickelpro> SpaceManiac: Ya but the server doesn't display anything for a null does it? 21:27 < nickelpro> That's my real question 21:27 <+SpaceManiac> Uh, probably not. But if you tried to include it in your username or something it might fail to verify. 21:28 < nickelpro> I would suspect so, I'm working on a little C lib and writing the encoders it suddenly struck me I had to consider including nulls or not 21:29 <+SpaceManiac> strlen() followed by the actual contents, no null terminator 21:30 < nickelpro> Ya that's probably the best way 21:30 < nickelpro> For some reason I was thinking "But what if I want to copy the string out of the outgoing buffer?" Then I realized I'm retarded 21:36 < Not-001> [Glowstone] SpaceManiac pushed 3 commits [+3/-2/±10] http://git.io/ENhVqw 21:36 < Not-001> [Glowstone] SpaceManiac 33f0782 - Updated to Bukkit 1.7.2-R0.3. Commands work but alias system will need examining. 21:36 < Not-001> [Glowstone] SpaceManiac 502c089 - Updated bans to new Bukkit API and Minecraft ban file format. 21:36 < Not-001> [Glowstone] SpaceManiac 2da89fd - Fixed heldItemSlot not actually getting set. 22:02 < Drainedsoul> nickelpro: You should probably avoid using null-terminated strings if you can. 22:05 < nickelpro> Drainedsoul: I know, but they're so convenient :-\ 22:05 < TkTech> Microsoft (oddly) has some excellent security guidelines for working with C strings. 22:07 < Drainedsoul> nickelpro: I don't really see how they're convenient, but okay? I mean what happens when you want to send the null character literal? 22:07 < Drainedsoul> TkTeck: How is that odd? 22:07 < Drainedsoul> *TkTech 22:08 < dx> so what's the standard way to do length prefixed strings? a struct of int and char*? 22:09 < dx> or some library thing like glib's GString maybe? 22:09 < Drainedsoul> dx: Why would you use an int for a length? 22:09 < Drainedsoul> dx: There's a type specifically for that in stddef.h -- size_t 22:10 < dx> ...isn't that a typedef for int? 22:10 < dx> but yeah that's better 22:10 < Drainedsoul> dx: No. Consider that int is signed. Consider that int is 32-bit on some 64-bit platforms. 22:10 < dx> 'some' 22:10 < dx> fun stuff 22:11 < Drainedsoul> dx: The sizes of the built-in C integral types are deliberately unpredictable. There are other integer types if you require a certain size. 22:11 < Drainedsoul> http://pubs.opengroup.org/onlinepubs/7999959899/basedefs/stdint.h.html 22:12 < dx> yeah i know 22:12 < dx> in the case of the length of the string i don't think it really matters that the size is predictable 22:13 < dx> size_t isn't predictable either, but i see how it can be preferable over int for this 22:13 < Drainedsoul> dx: ... 22:13 < dx> Drainedsoul: what 22:13 < Drainedsoul> dx: int is signed. How does using a signed type for a length make sense. 22:13 < Drainedsoul> dx: Let's just waste half the representable values, deliberately, on values that make no sense 22:14 < Drainedsoul> dx: And better yet, let's use a type that can't encapsulate all possible lengths, deliberately, for the length of a memory region 22:14 < dx> Drainedsoul: okay.. 22:15 < Drainedsoul> dx: Besides, what are you going to do with an integer length? All the C standard library functions that work with length take a size_t 22:15 < Drainedsoul> dx: Going to pass an int to malloc? Nice possibly-lossy/-narrowing conversion, that'll never cause problems 22:16 < dx> ok so 22:17 < dx> 18:08 < dx> so what's the standard way to do length prefixed strings? a struct of size_t and char*? 22:17 < dx> 18:09 < dx> or some library thing like glib's GString maybe? 22:18 < Drainedsoul> dx: I usually just use struct { size_t length;char * str; }; 22:19 < Drainedsoul> dx: But I think it'd really depend on the library you're specifically working with. 22:19 < Drainedsoul> dx: That would make the most sense with the most libraries, as most libraries just take a pointer and a length 22:19 < dx> hm i see 22:20 < dx> thanks 22:26 < CanVox> Hey, do we know whether /validate stops working on a session key after awhile? 22:26 < CanVox> That is, does it expire? 22:26 < nickelpro> Drainedsoul: Convenient because string.h is built around null-terminated strings, and you should never send a null character in UTF-8 or valid C strings anyway 22:27 < nickelpro> CanVox: session key? You mean client token or access token?\ 22:27 < CanVox> access token 22:27 < CanVox> Like I know if a user logs in from anywhere, the old access token stops working for /validate 22:28 < CanVox> But my question is if I log in once and then leave to go travel the world, how long does /validate continue to work with my most recent access token 22:28 < Drainedsoul> nickelpro: Would you care to support that you should never send a null character in UTF-8? The null character is a Unicode code point. UTF-8 represents all Unicode code points. 22:29 < nickelpro> CanVox: It should work until a new access token is generated or the current one is invalidated with /signout or /invalidate 22:29 <+AndrewPH> the pile of poo character is also a unicode code point 22:29 < Drainedsoul> AndrewPH: And? A string serialization/deserialization/handling technique should be agnostic about the code points in the underlying string, provided they are valid Unicode, which U+0000 is. 22:30 <+AndrewPH> Drainedsoul: I wasn't trying to make a point :) 22:30 < CanVox> So for instance I wouldn't want to build access to a service around /validate because someone could burn a minecraft account giving everyone access. 22:30 < Drainedsoul> AndrewPH: okay 22:30 < nickelpro> Drainedsoul: The Unicode null character is not actually represented by a null character in UTF-8 22:30 < Drainedsoul> nickelpro: Wrong. 22:30 < Drainedsoul> nickelpro: U+0000 maps to the byte 00 in UTF-8. Anything else is not UTF-8. 22:31 < nickelpro> I have no idea where I read that, you're right 22:31 < nickelpro> CanVox: You don't want to build any authentication around Ygg at all 22:32 < nickelpro> Use Ygg to log into Minecraft and absolutely nothing else. If you absolutely must verify an account owner, use skin verification or something like that 22:33 < CanVox> Because of the issue I just articulated, or other reasons? 22:34 < nickelpro> CanVox: Because it most methods require the user to give you their username and password, token based approaches are very far from user friendly and very flaky 22:34 < CanVox> Well, sure, but we've already got their token lying around 22:35 < CanVox> We would be using Ygg to authenticate services within a minecraft launcher that the user already logged in for anyhow 22:35 < nickelpro> That's different, sorry I'm used to people trying to use this for web service verification 22:36 < CanVox> I work on the technic launcher, we're just trying to stop burning bandwidth on cracked launchers 22:36 < CanVox> We were tracking down an unrelated issue and opened one of our mirror server's logs and it's all 404's all day because 2 months ago we moved a file from one place to another and the cracked launchers haven't caught up yet 22:37 < CanVox> So just shutting down our web services to people who can't log in seems a nice idea, but it looks like we're down to actually doing a refresh on our server which sucks. :\ 22:39 < nickelpro> CanVox: Ya, validate doesn't even work for all valid access tokens 22:40 < CanVox> That's grand 22:41 < CanVox> nickelpro: Is it arbitrary, or is there a class of access tokens it doesn't work for 22:42 < nickelpro> CanVox: I never fully understood it's use case, wiki says "Note: this method will not respond successfully to all currently-logged-in sessions, just the most recently-logged-in for each user. It is intended to be used by servers to validate that a user should be connecting (and reject users who have logged in elsewhere since starting Minecraft), NOT to auth that a particular session token is valid for authentication purposes. To authenticate a user by s 22:42 < nickelpro> ession token, use the refresh verb and catch resulting errors. " 22:42 < CanVox> Oh I wrote that 22:42 < CanVox> Basically /validate is for servers ,not for authentication 22:43 < CanVox> So imagine two clients with different client ID's and active session tokens 22:43 < CanVox> You can refresh either one of them to cycle the token & log in 22:43 < CanVox> but /validate will only work on your most recent one 22:43 < CanVox> Because it's for servers to check whether you're the guy they should be letting online 22:44 < nickelpro> Well obviously since the most recent one is the only one with the valid access token 22:47 < CanVox> Well how do you define valid 22:48 < CanVox> because the less recent one is valid for refreshing purposes 22:48 < CanVox> The server will allow you to log in without a password if you're holding the less recent session token 22:49 < nickelpro> CanVox: Seriously? It shouldn't do that, a refresh should invalidate all access tokens 22:49 < CanVox> uh only if the client ID is new 22:49 < CanVox> otherwise how would mutliple launchers work 22:53 < nickelpro> Anyone here better versed in token auth? 22:55 < CanVox> I mean like I'm really very sure I know how it works 22:55 < CanVox> Each launcher has its own clientID 22:56 < CanVox> when you log in with client ID, username/password, it gives you a session token 22:56 < CanVox> The first time a client ID logs in, all existing tokens are invalidated 22:56 < CanVox> Other than that, refresh takes a client ID/session token. If the client ID isn't new and the session token is the most recent for that ID, it cycles the session token & lets you in 22:56 < CanVox> But only the most recent session token from any client ID can be used to connect to a server 22:56 < CanVox> cos only one instance of a user can be logged in at once 23:06 < mbaxter> eat 23:06 < mbaxter> erm, whoa. 23:06 <+SpaceManiac> drink 23:07 < dx> whoa 23:07 * mbaxter goes back to idling 23:07 < nickelpro> ^ --- Log closed jeu. févr. 13 01:00:46 2014 --- Log opened jeu. févr. 13 01:00:54 2014 01:00 -!- Irssi: #mcdevs: Total of 138 nicks [1 ops, 0 halfops, 11 voices, 126 normal] 01:05 -!- Irssi: Join to #mcdevs was synced in 269 secs 04:08 < Not-001> [MCPP] RobertLeahy pushed 10 commits to random_overhaul [+4/-2/±7] http://git.io/PvFiug 04:08 < Not-001> [MCPP] RobertLeahy fea26ae - Makefile Fix 04:08 < Not-001> [MCPP] RobertLeahy 133212d - Remove random.hpp 04:08 < Not-001> [MCPP] RobertLeahy 82b5ee1 - Random Device 04:08 < Not-001> [MCPP] ... and 7 more commits. 04:08 < Not-001> [MCPP] RobertLeahy pushed 1 commit to master [+0/-0/±1] http://git.io/OE-uVw 04:13 < Not-001> [MCPP] RobertLeahy pushed 10 commits to master [+8/-4/±11] http://git.io/M1R61Q 04:13 < Not-001> [MCPP] RobertLeahy 56b57f1 - Merge branch 'random_overhaul' 21:02 <+clonejo> TobiX: don't tell me you are a member of C4 21:25 < schwartz_2000> someone work on python client 1.7.4 or NPC without MOD 21:25 < nickelpro> Spock is a python client that works with 1.7.x 21:25 < nickelpro> Recently patched to not blow up your computer too 21:26 < schwartz_2000> nickelpro .. I tryed yesterday /nickelpro/spock without success 21:27 < nickelpro> schwartz_2000: Yep, the demo had a broken import and the WorldPlugin was leaking resources like they were going out of style 21:27 < nickelpro> schwartz_2000: That's why I patched and fixed that stuff 21:28 < schwartz_2000> nickelpro: I will try to find cue... give you some news 21:28 < nickelpro> Well "fixed" is a strong word --- Day changed ven. févr. 14 2014 00:23 < Not-003> [Glowstone] SpaceManiac pushed 1 commit [+1/-0/±2] http://git.io/vubmew 00:23 < Not-003> [Glowstone] SpaceManiac d5b2226 - Cleaned up shutdown logic (fixes #31): 01:26 < Not-003> [Glowstone] SpaceManiac pushed 1 commit [+0/-0/±4] http://git.io/JSrIXA 01:26 < Not-003> [Glowstone] SpaceManiac b69cfae - Fixed handling of events during shutdown, an NPE in BlockPlacementHandler, and some incorrect UnsafeValues behavior. 02:02 < CanVox> Er 02:03 < CanVox> https://libraries.minecraft.net/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.jar all of a sudden started giving me access denied 02:03 < CanVox> Is that a mojang problem or a me problem? Does that link work for other people? 02:03 < nickelpro> CanVox: Mojang 02:03 < CanVox> ok 02:03 < CanVox> poop 02:03 < nickelpro> I didn't even know Mojang distributed libs 02:03 < nickelpro> much less scala libs 02:04 < CanVox> They distro some, but I think you're right about scala 02:34 < CanVox> grum: Is the lockout behavior by IP, and does /validate do the lockout behavior? 02:47 < dx> CanVox: is this the minecraft launcher complaining about that, or are you requesting this with some other method? 02:47 < CanVox> what 02:47 < CanVox> The minecraft launcher doesn't run /validate 02:47 < CanVox> oh are you talkinga bout the scala thing? 02:48 < dx> scala 02:48 < dx> ye 02:51 < CanVox> Yeah the scala thing was my fault, we're supposed to serve it from our own servers, but I broke our servers, so it fell back on maven central, but then our users were too much for maven central, so then it fell back on mojang's servers which never had the file to begin with. 02:51 < dx> oh that makes sense 02:52 < dx> i've only seen scala in mods, too, so yeah 02:55 < CanVox> :\ 02:55 < CanVox> mojang apparently throttles auth requests by IP 02:56 < CanVox> So our grand plan to stop serving files to cracked launchers has run into some problems 06:21 < Grum> CanVox: yes and probably 06:22 < CanVox> Er. So I can DDOS a server by sending them a bunch of fake connection attempts with bad login data? 06:22 < Grum> that makes no sense 06:22 < CanVox> The server would in turn send you guys the bad login data 06:22 < CanVox> And you guys would then stop taking /validate requests from the server 06:22 < CanVox> making it impossible to connect 06:23 < Grum> i have no idea which path the code currently takes for the servers verification 06:23 < Grum> but that obviously cannot be throttled :) 06:23 < CanVox> Ok rad, thanks. 06:23 < Grum> that said; what on earth are you making? 06:24 < CanVox> We're killing access to our files for people who don't own minecraft 06:24 < CanVox> To install files from our mirrors, you have to send your tokens to our validation which gives you a temporary token you can use to download files. 06:25 < CanVox> We were originally using /refresh and we hit an issue where we were getting just enough failed validations to get cut off by the auth servers 06:25 < Grum> errr the fuck 06:25 < Grum> 'refreshing' with your tokens logs that sets of tokens out 06:25 < CanVox> Right 06:25 < CanVox> we then respond back to the launcher with the new token 06:25 < CanVox> and it rotates locally 06:26 < Grum> so how on earth did you make the launcher do that? 06:26 < CanVox> We've started using /validate and haven't run into the same issue, but we weren't sure whether it was because you guys didn't throttle /validate or we added a bunch of logic to filter out obviously-wrong shit 06:26 < Grum> because now we're talking about doing runtime changes to the launcher 06:26 < CanVox> Not your launcher 06:26 < CanVox> our launcher 06:26 < Grum> ah ... soon to be history, k 06:27 < CanVox> Any day now! 06:28 < Grum> which launcher is 'our launcher' btw? :) 06:28 < CanVox> Technic 06:30 < CanVox> Now I thought you guys backpedaled on forcing people to use Mojang's launcher without providing the same features as other launchers. 06:30 < CanVox> So are you guys gonna be beefing up the launcher? 06:32 <+AndrewPH> magic launcher's features in vanilla launcher would be pretty nice and dandy 06:34 < CanVox> Magic Launcher: soon to be history 06:36 < Grum> so what featuers is the launcher missing? 06:36 < Grum> seems quite complete imho 06:36 < CanVox> That's why it's so popular! 06:37 < SinZ> mod wise, it is missing some convenience stuff 06:37 < CanVox> I mean it has no ability to download & install third party content. 06:37 < CanVox> Or just like 06:37 < CanVox> Idunno does the new profile thing save non-mojang files? I haven't messed with it. 06:38 < CanVox> So for instance if I were willing to download & install mods on my own, I could use the profiles to have different mod setups, right? 06:38 <+AndrewPH> magic loader lets you specify a list of jarfiles and it'll inject them when it launches minecraft, and you can have profiles of different jarfiles. it's pretty neat. 06:38 < Grum> you even get to pick what you launch into ... so yes you can do whatever you want 06:38 < SinZ> CanVox: yes 06:39 < SinZ> you can assign each profile to run off different folders 06:39 < CanVox> Right, so it's I'd say good competition for multimc 06:39 < SinZ> MultiMC also has a user interface reading mcmod.info though 06:39 < CanVox> But 40% of minecraft users are forge users and it's basically made to pretend mods don't exist, which is weird.