BungeeYAML = End of life

Discussion in 'BungeeCord Plugin Development' started by externo6, Mar 3, 2014.

  1. externo6

    Supporter

    Hello, im sure you are all aware that Yamler has now replaced BungeeYAML.

    A fewplugins that we use no longer get updated / the developer is away (or in Lax's case got his plugins removed) depend on BungeeYAML.
    The plugins I cant seem to find an alternative: SwiftMOTD and StaffWhitelist

    No source has been released to update to use Yamler (I wouldnt know where to start the source of the plugins was available)

    If anyone has any advice it would be much appreciated.

    Thanks!
     
  2. Tux

    Tux

    Yamler is even worse than BungeeYAML.

    BungeeYAML will continue to work for the foreseeable future, so I don't think a premature dropping-the-ball event is needed.
     
  3. LiLChris

    LiLChris Retired Moderator
    Retired

    Maybe md5 will surprise us with a configuration API? :eek:
     
    • Like Like x 3
  4. geNAZt

    Supporter

    How is Yamler even worse as BungeeYAML ?
     
    • Agree Agree x 2
  5. I have to agree with geNAZt, you must be doing something extremely wrong to find Yamler worse. With just a little customization, it has got to be the easiest config handler I have ever used.
     
  6. geNAZt

    Supporter

    If you can show me that custom modification i may implement it inside the Yamler Source itself :)
     
  7. All I did was incorporate CONFIG_FILE and CONFIG_HEADER into the constructor. So instead of assigning them manually, I just do:

    Code (Text):
    super("file", "here is where", "you can put some", "header lines");
    Code (Text):
    public Config(String fileName, String... header) {
        CONFIG_FILE = fileName + (fileName.endsWith(".yml") ? "" : ".yml");
        CONFIG_HEADER = header;
    }
    Since it doesn't make sense to not have a filename when using the class, it should be required. And since header isn't required, use a variable string argument. You can keep a standard empty constructor, incase people don't like calling super() as well.

    PS: I forgot to point out, that I pass a plugin as well, so that it correctly grabs the plugin directory.
     
  8. geNAZt

    Supporter

    Looks like a nice addition. Thanks
     
  9. Tux

    Tux

    • This class is a complete joke. You know, you already have a LinkedHashMap already in ConfigurationSection. Why do you need a "fast lookup cache" class with that? My gosh.
    • Using concrete implementation classes as types. You know, sometimes I like to use Collections.newSetFromMap() or ImmutableCollection classes from Guava.
    • Package names use uppercase letters.
    • Highly crude use of the transient keyword.
    The Yamler source code is therefore a cruel joke.
    Right, when has this bastardized "bean" approach been easy? I know the power of JavaBeans, I don't dispute that. However, Yamler requires more effort than using Gson to deserialize the same bean. It also doesn't support custom bean classes (suppose your MainConfig class references another bean, Announcements), when I examined the code. But Gson and SnakeYAML do.
    We've been using BungeeYAML for months now, and this has never occurred to us.
     
  10. geNAZt

    Supporter

    The fast lookup cache is there to be able to jump in YML Keys without needing to loop through all ConfigSections in the Config itself.

    newSetFromMap works. Guava support is on the todo list.

    And does it break anything ? I don't think so.

    I only transient the protected Fields which should never be serialized into the Config. Where is a problem in that ?
     
  11. I have been using Yamler since its been released and I love it, when there's a bug I report it and it gets fixed within a day. Also the support is great ask a question and he answers it with out fret.
     
  12. @externo6 Roflmao, BungeeYAML isn't the direct cause of this issue. By removing BungeeYAML, these guys just broke another plugin (the broken one) that depended on it, and so it magically fixed their issue. BungeeYAML on it's own doesn't do anything, so how could it cause players to get kicked ? The answer : it can't.

    @Tux, you seem to hate Yamler a lot for some reason, but I'm going to say "if you don't like it, don't use it". SnakeYAML is harder to use than Yamler, and outputs horrible configurations by default, unless you setup shortcuts, which I'd rather not have to think about when all I want is a quick'n dirty config. Gson outputs JSON, which isn't the standard configuration type, so it ain't a goo alternative either. Yamler works in a rock-solid way, and appart from the non-standard capital package name (oh wow, big deal), it's all just about you looking for a reason to hate. Oh and also, I love the @Comment annotation. You can't find that in either of those libraries.

    Also, to people afraid bungeeyaml will magically stop working, if it ever breaks for some reason (and it has no reason to break unless md-5 does it on purpose), I will update it. Even if just to support old, outdated plugins. Although it's still deprecated and you should still not use it, because it has a few bugs (only in the way config is handled, buzz off, it doesn't kick players), and I will not fix those.
     
    • Agree Agree x 2