Plugin Request Can anyone update BKCommonLib to spigot 1.8 hack?

Discussion in 'Plugin Help/Development/Requests' started by dandwhit, Oct 7, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    dandwhit

    Hi there,
    I'm wondering does anyone have a copy of BkCommonLib for the Spigot 1.8 Protocol hack? If not, could anyone update it for me?
    Thanks
    Dan
     
  2. Offline

    MoseMister

    With most plugins it is illegal to modify code unless you have permission from the author (Its called Copyright). I do not know what licence BkCommonLib uses nor do I want to know. I'm just saying to anyone who wants to 'update' it to be careful of this.
    Thanks fashizzles and timbragg12 for pointing out my typo
     
    timbragg12 likes this.
  3. Offline

    timtower Administrator Administrator Moderator

    dandwhit Tried it already? We aren't allowed to update it anyways. The developer has to do that.
     
  4. Offline

    dandwhit

    timtower No I haven't tried it, I don't know how.
     
  5. Offline

    timtower Administrator Administrator Moderator

    How about installing? I was talking about trying the plugin on the server.
    There is a reason that bukkit doesn't has protocol hacks build in: packets, you are pretty much breaking that system here.
     
  6. Offline

    AronTheGamer

    Should just work, as Spigot 1.8 is just running on 1.7.10
     
  7. Offline

    fashizzles

    Didn't want to be that guy but I guess no one else noticed, but for future references, it's "Copyright" not "CopyWrite"
    ;)
     
    timbragg12 likes this.
  8. Offline

    timbragg12

    I noticed but I
    either :)
     
  9. Offline

    momar

    Update for Protocol hack: probably possible, but not that easy.
    Update for Spigot 1.8 release: I tried it. Oh my god. Such code... :)

    The problem is that BKCommonLib uses extremely much NMS (this means it accesses the MC server itself, not just Bukkit).
    NMS is obfuscated, this means you have things like Entity.W instead of Entity.canFly (probably a wrong example). As the names were updated to 1.8, Entity.W could now be Entity.P - and you don't know what which is...

    Okay, you could say: that's not that hard, there's still MCP that tells you what each function is named. That's true, but you have to understand what every single function does to find the equivalent in 1.8 (or write a pretty complicated script).
    For small plugins, this is pretty easy. But the BKCommonLib alone has almost a 100 megabytes of source files - plain Java text where an NMS function is used pretty much in every third line.
    Also, the BKCommonLib is not documented that well, at least regarding the NMS usage, so there really is just Entity.X(), not Entity.X() //This lets pigs fly which would be easier to replace.

    TL;DR: BKCommonLib is huge, complex and uses obfuscated NMS which changed a lot in 1.8. It's a great piece of code (props to @bergerkiller), but unfortunately probably nobody can update it quickly in under a few months of hard work.
    The solution: wait for Sponge, BKCommonLib will be updated for that - Bukkit is dead if you want to use BKCommonLib, it's just not worth the effort.

    By the way: BKCommonLib is licensed under GPL, that means you can do pretty much anything you want with it...
     
    Last edited: Dec 21, 2014
Thread Status:
Not open for further replies.

Share This Page