DarkStorm652 / DarkBot

Minecraft thin client and automation framework
BSD 2-Clause "Simplified" License
124 stars 53 forks source link

Update protocol to 1.8* #45

Open ElPresidentePro opened 9 years ago

ElPresidentePro commented 9 years ago

What protocol supported 1.8? and there are new update?

Unihedro commented 9 years ago

What you're using isn't even anywhere near English.

ElPresidentePro commented 9 years ago

sorry men, i am spanish, my english is bad sorry ;(

ElPresidentePro commented 9 years ago

Is the project is abandoned or being updated?

t81lal commented 9 years ago

Long hiatus/better things to do/abandoned.

LefsFlare commented 9 years ago

I don't like saying this but I'm the brother of the maintainer of this Git. He died as of a week ago when he contracted pneumonia, if any of you want to take over, drop me a message and I will pass along his private details, including the files he was working on before the illness hit.

Unihedro commented 9 years ago

@LefsFlare: I'm interested in taking over this project. I have extensive experience with software development, a high reputation Stack Overflow profile, and here's my CV. You can get in touch with my public email listed under my GitHub profile.

This response is obsolete.
LefsFlare commented 9 years ago

@Unihedro It is fine, if you wish to take over the project but as far as my brother's wishes are to be of concerned, he would have wanted someone to update this project to the latest version, of which he didn't manage to do himself.

The biggest question, is if you would be able to do it.

roblabla commented 9 years ago

I'm willing to give a hand in updating this project to 1.8. I'm the maintainer of node-minecraft-protocol and have a good understanding of how minecraft's protocol works.

I have already forked the project and am currently writing the v47x protocol backend for 1.8.

For a bit of an overview of the changes required :

  1. Update the packet definitions so they match 1.8. This is relatively easy grunt work.
  2. Implement the new packet header (varint CompressedLength, varint UncompressedLength) that is used after packet "SET_COMPRESSION" is received.
  3. At this point, it will be possible to test the bot on server with compression disabled (compression-threshold=0).
  4. Implement the new compression support. Compression is implemented using zlib's Inflate/Deflate algorithms. This will probably require some changes in SocketConnectionHandler.

Once this is all done, the bot will be updated to protocol 1.8, but that's just the start. We will still need to make sure the bot is still working, etc...

squires commented 9 years ago

Ahem. Behave yourself, LefsFlare. People, he has pulled this bullshit before. https://github.com/DarkStorm652/DarkBot/issues/31

squires commented 9 years ago

@DarkStorm652 Perhaps you'd like to block him (https://help.github.com/articles/blocking-a-user/)

LefsFlare commented 9 years ago

Perhaps you would realize how effective this bullshit is in pulling DarkStorm back into the world of Git when no one has heard from him over a couple of months. Not only did you ruin it, you effectively nulled any chance of Dark coming to this issue to rectify the issue that he is not dead.

If anyone asks why Dark is not coming back despite the issues, I will happily point them to you.

squires commented 9 years ago

DarkStorm has no obligation to maintain this project for you. Your attempts to manipulate people are completely inappropriate and childish.

ElPresidentePro commented 9 years ago

@roblabla let me know if you need help

LefsFlare commented 9 years ago

@squires I don't think I am attempting to manipulate Dark to maintain this project. The only thing I and to that extend, every one of us want, is simply an answer from him. Whether be it a line claiming he does not want to work on the project anymore or that he was away on an extended leave or whatever the case.

You do realize that even though he has no obligation to maintain this project for anyone, he is the only one that understands most of his own code. For anyone to continue someone else's codes is not easy. From what I see on your GitHub repository, it's clear and obvious to anyone that you obviously have not worked on a project like DarkBot or even Java.

You may find it inappropriate and childish but before you nosed your way in, what I have done clearly worked the first time around, bringing Dark back into the scene and providing comfort and relief for the close followers of this Git project.

Lastly, I am not manipulating anyone. What I did was tell a lie, to which Dark can choose to rectify or continue to leave every single one of us in the dark. Calling my attempt inappropriate and childish is very obviously, on no grounds.

roblabla commented 9 years ago

@LefsFlare I have taken the torch of node-minecraft-protocol when its maintainer stopped supporting it, without problem. Yes, undertaking maintenance of a foreign project is hard, but it's not impossible. Besides, the code quality of DarkBot is very high from what I've seen, so instead of losing your time in justifying yourself, go learn some java and submit a PR to DarkBot if you want to see it updated. This has more chances of getting Dark back into the project than your pathetic stunt.

Oh, and yes, your attitude is childish and manipulative. Dark might not want to work on the project anymore, and yet you're forcing his hand into updating it. Like it or not, but what you're doing fits very neetly in the definition of Psychological Manipulation, which is "a type of social influence that aims to change the perception or behavior of others through underhanded, deceptive, or even abusive tactics".

Anyway, no use in arguing this further, I'm out. Let's stay on-topic now and see how the community can update this project without Dark around. I'll have some time over the week-end, I'll push my progres in my fork then.

Unihedro commented 9 years ago

@squires @LefsFlare @roblabla: I don't mean to offend or to be against any of you since I understand that everyone here is only commenting because you respect this repository and the program that Dark has built and helped everyone else for, but for the best interests of DarkBot - help by contributing if you have time, stay out of the pranking or the bickering if you can't otherwise. The same trick won't work twice unless the world is stupid (#31), and if DarkStorm is planning to work on this, they'd be anyway.

Of course, I'm not one to speak since I have my own development projects to work on, but I don't get what the point of this entire discussion is extending into. If you're still wondering if this project is being maintained, just consider otherwise. It's not my loss - or yours - but others, and that you shouldn't be worrying about it and badgering DarkStorm.

I'm unwatching this repository now. It's been a pleasure.

t81lal commented 9 years ago

"he is the only one that understands most of his own code" - I am better than Darkstorm, ask him yourself. "Besides, the code quality of DarkBot is very high from what I've seen" I think dankstorm would agree with me if I said that some large code changes in this project wouldn't be a bad thing.

roblabla commented 9 years ago

@TheBiblMan every project has its "bad chunk, big rewrite needed" part somewhere. The problem comes when 100% of the code is in that stage ^^.

DarkStorm652 commented 9 years ago

Me here, hello! Forgot to check notifications on this account. Every time I go to work on 1.8 support I realize I've completely forgotten where I left off and only make a little progress before finding it too tedious and wandering off. I've managed to have bots join 1.8 servers (which is not as much of a milestone as it used to be, considering packets now have lengths), but a decent amount is still missing (the worst part being that I no longer know what is). If anyone is interested in becoming a maintainer, send me a PM and we can talk.

@TheBiblMan pls no troll. I've managed to split apart portions that were too coupled, with the only major changes left to be done being MinecraftBot and protocol structure re-engineering. Aside from that I've realized that the project is actually pretty well structured. I should definitely start documenting things, though.

Unihedro commented 9 years ago

send me a PM and we can talk.

... what?

DarkStorm652 commented 9 years ago

Oh, GitHub doesn't have a messaging feature, my bad. My email: marco@vanhil.st

ElPresidentePro commented 9 years ago

Is there information of their libraries?

Note: I am spanish, my english is bad ;/

Unihedro commented 9 years ago

Yes. MCP has decompiled builds, or you can reverse-engineer the protocol used by Minecraft clients simply by decompiling the Minecraft jar source. Note that their Minecraft jars are obfuscated, which makes it difficult to decypher.

DarkStorm652 commented 9 years ago

Alright, I'm almost done with the structural aspect of parsing this intermediate language for protocols: protocol47x.xml XML and JSON will be supported. It will work as a utility for representing the protocol structure in a less inane way than a hundred Java files. I'm hoping to include a way to write handler method bodies (Java code) straight in the XML file and have it compiled, but if I get lazy, a companion Protocol class will still have to be written for each protocol. This IL API will be able to compile the XML into Java bytecode for packet processing efficiency. I will commit current changes shortly.

I'm starting to feel like I'm over-engineering it. This is getting out of hand

ElPresidentePro commented 9 years ago

I love you @DarkStorm652 <3<3

ElPresidentePro commented 9 years ago

@DarkStorm652 hey men, how is it going?

ElPresidentePro commented 9 years ago

there is already a date for this over?

rom1504 commented 9 years ago

FYI here is a list of files representing the protocol in various project https://gist.github.com/rom1504/7b4c0cc29fb03122b6a5

I think there is room for standardisation, might be useful to think collectively what a format representing the mc protocol need.

PhanaticD commented 8 years ago

Was this abandoned again :/

tenten8401 commented 8 years ago

Check the development branch. There is a 47 protocol xml which is the protocol number for 1.8.x.

I have managed to get a DarkBot.jar to compile from the development branch, although i cant figure out how to use the 47 protocol.

PhanaticD commented 8 years ago

how did you get it to compile

t81lal commented 8 years ago

sigh...

vakkq commented 6 years ago

Oh hi there, two years later. Now 1.8 is of no concern, but how about 1.12?

tenten8401 commented 6 years ago

At this point, just use PrismarineJS/mineflayer and make something cool with it. There's currently rom1504/rbot which uses it.