Skip to content

Latest commit

 

History

History
95 lines (68 loc) · 4.51 KB

README.md

File metadata and controls

95 lines (68 loc) · 4.51 KB

Logo

Cornerstone

Open source interactive Minecraft inventory designer with event hooks, minimal packet usage, smooth transitions between menus, and loads of easy-to-use features.

Explore the docs »

Downloads Contributors Issues License

Table Of Contents

About The Project

Screen Shot

Cornerstone is a developer resource to create interactive GUIs with multiple translations and lores with uniform line lengths. It was created originally for the Project X minigame network, but we are bringing it to the Minecraft community to help other developers kickstart their projects.

Built With

This plugin is 100% built on Java, with minimal packets and event handlers. The only dependency required is org.json's JSON parsing library for configuration/custom API response integration.

Getting Started

There are no steps to install the sub-plugin, simply import the jar as library in your editor and make sure it is extracted to the final artifact. All dependencies are pre-installed in release jar.

Usage

Each of the elements of the plugin have builders designed to make using and opening the GUIs a breeze. In order to create an Inventory instance you will need to have an EndUser object (PlayerBuilder) and a CornerstoneInventory (InventoryBuilder) [with ItemTemplate (ItemBuilder) templates in slots.]

Next, you can create an InventoryModifier (InstanceBuilder) with the template. Use .open(EndUser/PlayerBuilder) from the builder to execute the opening of a menu. It's really that simple.

Example Usage

InstanceBuilder.with(InventoryBuilder
    .type(InventoryType.CHEST)
    .rows(3)
    .title("§a§lSuper Cool Inventory")
    .place(9, ItemBuilder
        .material(Material.GOLD_BLOCK)
        .name("§c§lSuper Cool Item")
        .lore("§4Place your lore with one line. Cornerstone will
            automatically generate your lore in the correct locale
            with uniformly-sized lines in the §cright color."))
    .open(PlayerBuilder
        .from(player)
        .variable("custom_variables", "Can go here!")
        .connectMap(connectLinkedHashMap.forExistingVariables)));

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  • If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
  • Please make sure you check your spelling and grammar.
  • Create individual PR for each suggestion.
  • Please also read through the Code Of Conduct before posting your first idea as well.

Creating A Pull Request

Pull requests are always accepted! Please submit your forks with ideas of features and/or fixes of bugs.

License

This project is licensed under the Creative Commons' Attribution Share Alike 4.0 license. Read more about the abilities and limitations in the license file or at choosealicense.com

Authors

  • Annabella Proctor - CEO of Project X, LLC. and Lead Developer - Annabella Proctor
  • Project X - The team that works on the Project X network. - Project X