GithubHelp home page GithubHelp logo

arcaneplugins / arcaneframework Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 121 KB

Shaded plugin development library for ArcanePlugins software.

License: GNU General Public License v3.0

Java 100.00%
bukkit framework java lib library minecraft paper papermc plugin plugins spigot spigotmc

arcaneframework's People

Contributors

lokka30 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

mrivanplays

arcaneframework's Issues

Discontinue MicroLib

Once ArcaneFramework is sufficiently complete, MicroLib will be declared as a discontinued resource.

Work on Item Builder class

  • don't annotate vars with nullability. oops
  • getters setters etc
  • fix incorrect types. enchantments and attribute modifiers should be maps and multimaps respectively.

Write Wiki

A baseline should be provided so projects can at least get acquainted with setting up AF for their resource (plugin.yml libraries feature, etc). Later on, the Wiki can be expanded.

Add TitleWrapper class

TitleWrapper will be a rewrite of MicroLib's WholeTitle class which allows titles to be easily assembled, sent and stored within a plugin, everything done in a single variable rather than multiple.

Add a plugin lockdown system

AF should have a plugin lockdown system. This system is designed to make it easy for a plugin to effectively 'soft-shut-down' itself when a major issue occurs which it cannot rescue from (e.g., the administrator has mis-configured the plugin). In lockdown mode, the plugin frequently warns that it is in the mode, why, how to fix it, and what to do once a fix has been attempted (reload the plugin). Lockdown mode has a separate command system which has no configurable components to be as simple as possible. This command system offers /<plugin_base_command> reload, e.g., /lm reload, so that the server owner can try to fix the issue without having to restart their entire server. During lockdown mode, a plugin might want to have some listeners or commands still available in case it is used to try limit potential issues that could arise if the plugin itself was shut down completely, e.g., a land claiming plugin could limit build access whilst it is in lockdown mode.

Add a 'Support Checker' system notifying the console if the plugin is supported on the server

Allow a plugin to declare a list of supported MC versions, unsupported plugins, etc.

new SupportCheckerBuilder(Plugin)
    // plugin works from 1.7 - 1.19. auto generates varargs via fromRange
    .withCompatibleVersions(CraftVersion.fromRange(CraftVerison.1_7, CraftVersion.1_19))

    // only 1.18 and 1.19 are supported
    .withSupportedVersions(CraftVersion.1_18, CraftVersion.1_19) 

    // any unsuppored classpaths
    // if reflection detects these exist then the plugin will not be happy
    // e.g. classpaths of unsupported plugins
    .withUnsupportedClasspaths(
        new String[]{
            // title of the issue
            "LevelledMobs", 

            // description of issue
            "Plugin is too awesome",

            // classpaths
            "me.lokka30.levelledmobs.LevelledMobs", // LM1, LM2, LM3
            "me.lokka30.levelledmobs.plugin.bukkit.LevelledMobs" // LM4
        },
        new String[]{
            "SleepFixer",
            "Plugin is too lightweight",
            "me.lokka30.sleepfixer.SleepFixer"
        },
        new String[]{
            "Bukkit",
            "no idea",
            "org.bukkit.Bukkit"
        }
    )
    .checkAll();

Work on configuration classes

  • add Configurate-YAML stuff to YamlConfigFile
  • add Configurate-JSON stuff to JsonDataFile
  • Explore whether HOCON is worth using
    • Report findings to Penal, Oath, JLM
    • Add if worth using

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.