WolfyUtilities | Core plugin API [1.15 - 1.17] 1.7.3.0

Utils and APIs: Config, Language and Inventory API, Protection Utils: WorldGuard, LWC, PlotSquared

  1. WolfyScript
    Native Minecraft Version:
    1.15
    Tested Minecraft Versions:
    • 1.15
    • 1.16
    • 1.17
    Source Code:
    https://github.com/WolfyScript/WolfyUtilities
    [​IMG]
    [​IMG] [​IMG]


    Minecraft 1.15 - 1.16.x

    Java 16 required

    With WolfyUtilities you can easily create your in-game GUIs

    You can easily create configs and create a Language system for your plugins.

    It also includes Util-classes for WorldGuard, PlotSquared,
    LWC (More info see below)



    Usage
    Getting an instance of the API is very easy. e.g. in onEnable().
    And you need to set the chat and console prefix of your plugin.

    Code (Java):
    public void onEnable() {
        api = WolfyUtilities.get(this);
        Chat chat = api.getChat();
        chat.setCHAT_PREFIX("§3[§7AST§3] §7");
        chat.setCONSOLE_PREFIX("[AST] ");
    }
    After that you can get all the APIs:
    Code (Java):

    public void onEnable() {
        ConfigAPI configAPI = api.getConfigAPI();
        LanguageAPI languageAPI = api.getLanguageAPI();
        InventoryAPI inventoryAPI = api.getInventoryAPI();
    }
    There are different constructures for creating a config:
    Be aware you import the Config class from my API!

    Code (Java):

    public void onEnable() {
        ConfigAPI configAPI = api.getConfigAPI();
        //This will create a config that has a default file in the package "me/wolfyscript/armorstandtool/configs" called "config.yml"
        //It will be saved in the Plugin Folder
        //The config can now be called in the code via the name "config"
        Config config = new Config(configAPI, "me/wolfyscript/armorstandtool/configs", getDataFolder().getPath(), "config");
        //Now it must be registered
        configAPI.registerConfig(config);
    }
    Now when you registered the config it can be called via the name you gave it e.g. "config":
    Code (Java):

    //Get the config by name
    configAPI.getConfig("config");
     //The defaults are loaded whenever the file doesn't exist already
    //But it can be called whenever you want
    configAPI.getConfig("config").loadDefaults();

    //Get values from config
    configAPI.getConfig("config").getString("language");
     

    Getting values from the Config:
    Code (Java):

    //There are couple of methods for Boolean, Int, Double, etc.
    //e.g. to get a String value
    String lang = configAPI.getConfig("config").getString("language");
     
    More documentation on languages and inventories will follow!!

Recent Reviews

  1. UberSuperBoss
    UberSuperBoss
    4/5,
    Version: 1.7.1.0
    Very nice API, especially important for his customcrafting plugin. However it is lacking good documentation so I have to harass the author for the knowledge.
  2. sadman375
    sadman375
    5/5,
    Version: 1.6.3.25
    love it.now, i may just be writing this so it can be added to ploudOS plugin list, but yall would never know... even if i am, is it really a bad thing? lots of plugins need this plugin to run so, this is kinda necisary. anyways im at 80 characters now, bye!
  3. Marc_Seamus
    Marc_Seamus
    2/5,
    Version: 1.6.3.25
    I've been using WolfyUtilities for years now to handle GUIs in my own plugins. Worked great!

    Except for a highly frustrating issue; It seems almost every year the API receives a complete and total overhaul, completely eliminating all backwards compatibility with itself and forcing me to make SIGNIFICANT changes to my plugins. The functionality is great and it's relatively easy to use, but not worth using due to the frequent code-breaking updates.
    1. WolfyScript
      Author's Response
      Thanks for the review,

      I can understand your frustration.
      I also need to update my plugins to the constant API changes and it's very time-consuming and it annoys me so much.

      The reason for these changes is that a few years ago I wasn't really experienced enough with good code practice.
      Now I try to resolve this messy code and fix broken mechanics.

      The next major update (1.6.4.0) will remove the methods that are currently deprecated and change the CustomCache.
      After that, the GUI and also Chat API will be stable enough so future updates won't break backward compatibility.
      Other APIs already use better code practice and don't require any breaking changes.

      I also prepared JavaDocs and the wiki is already in progress.

      I can understand if you do not want to use it because of the constant changes. I mean you need to choose something that is best for your workflow.

      I just wanted to let you know that I am aware (this messy code is absolutely my fault) and that I am working on a solution.

      WolfyScript
  4. MrMineToons
    MrMineToons
    5/5,
    Version: 1.6.3.25
    Awesome Developer and Awesome plugin! Constanting fixing errors and making it best possible! Thx <3
  5. BunnyRabite
    BunnyRabite
    4/5,
    Version: 1.6.3.16
    Awsome plugin, works realy well, but I had a bit of trouble with the installation for devs.
  6. Lautje
    Lautje
    4/5,
    Version: 1.6.3.16
    Ok, I found out how to use the API, It works realy well, the only thing is that you could add a tutorial for developers, but otherwise realy good!
  7. Lautje
    Lautje
    3/5,
    Version: 1.6.3.14
    It looks good, but I cant find the maven dependency. I would like to use the chat and config APIs.
  8. Kendyman
    Kendyman
    5/5,
    Version: 1.6.2.10
    Thanks for fixing the error :) Here's the positive rating you deserve..........!
  9. Foz1212121212
    Foz1212121212
    3/5,
    Version: 1.5.6.4
    [19:39:31] [Server thread/ERROR]: Could not pass event InventoryClickEvent to WolfyUtilities v1.5.3.0
    org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:541) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:528) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:2148) ~[?:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.PacketPlayInWindowClick.a(SourceFile:32) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:918) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:911) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:895) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:828) [spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    Caused by: java.lang.NullPointerException
    at me.wolfyscript.utilities.main.listeners.EquipListener.onClickInventory(EquipListener.java:160) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor162.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_231]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_231]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.15.2.jar:git-Spigot-c574e08-37f32da]
    ... 17 more
  10. EchocallingEarth
    EchocallingEarth
    5/5,
    Version: 1.5.6.1
    Fantastic, the plugin works great and if any issues arise the Dev is on the spot-fixing them. The Discord is watched closely by the Dev and though you may not get a reply at that moment(I mean people do have to sleep, even awesome Devs) You will get one and 99% of the time I would wager it is the reply you need with the fix coming shortly. The overall rating is a 10 out of 10 extremely satisfied.