Skip to content

lukesky19/SkyShop

Repository files navigation

SkyShop

Description

  • SkyShop is a GUI shop plugin with sell commands, a sell GUI, nested categories, page support, and error checking.

Features

  • Supports nested categories.
  • Supports multiple pages.
  • Supports buying and selling for items, commands, and island size.
  • Supports multiple currencies.
    • Currently, only the economy from Vault and PlayerPoints are supported.
  • Features a sellall GUI for quick selling of items.
  • Features a variety of sell commands for quick selling of items.
  • Simple stats tracking for how much of an item has been purchased or sold.

Required Dependencies

Optional Dependencies

  • BentoBox
  • PlayerPoints
  • Vault

Commands

  • /skyshop - Command to open the shop.
    • Alias:
      • /shop
  • /skyshop help - Displays the help message.
  • /skyshop reload - Reloads the plugin.
  • /skyshop sellall - Opens the sellall GUI.
  • /skyshop stats - Opens the stats GUI.
  • /skyshop open - Opens the GUI for a specific category.
  • /sell all - Sells all items inside the player's inventory.
    • Aliases:
      • /sell
      • /sellall
  • /sell hand - Sells the item in the player's hand.
  • /sell hand all - Sells all similar items to the one in the player's hand.

Permisisons

  • skyshop.commands.skyshop - The permission to access the /skyshop base command.
  • skyshop.commands.skyshop.shop - The permission to use /skyshop to open the shop.
  • skyshop.commands.reload - The permission to access /skyshop reload.
  • skyshop.commands.skyshop.help The permission to access /skyshop help.
  • skyshop.commands.skyshop.sellall - The permission to access the sellall GUI (/skyshop sellall).
  • skyshop.commands.skyshop.stats - The permission to access the stats GUI (/skyshop stats).
  • skyshop.commands.skyshop.open - The permission to open a specific shop category. (/skyshop open )
  • skyshop.commands.sell - The permission to access the /sell command.
  • skyshop.commands.sell.hand - The permission to access the /sell hand command.
  • skyshop.commands.sell.hand.all - The permission to access the /sell hand all command.
  • skyshop.commands.sell.all - The permission to access the /sell all command.

Issues, Bugs, or Suggestions

  • Please create a new GitHub Issue with your issue, bug, or suggestion.
  • If an issue or bug, please post any relevant logs containing errors related to SkyShop and your configuration files.
  • I will attempt to solve any issues or implement features to the best of my ability.

FAQ

Q: What versions does this plugin support?

A: 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, and 26.1.2. Note: Java 25 is required even on versions older than 26.1.

Q: I get the following error: "SkyShop has been compiled by a more recent version of the Java Runtime (class file version 69.0), this version of the Java Runtime only recognizes class file versions up to 65.0"

A: SkyShop is compiled using Java 25 as part of it's support of 26.1 and beyond. SkyShop still works on older version as long as Java 25 is used.

Q: Are there any plans to support any other versions?

A: I will always do my best to support the latest versions of the game. I will sometimes support other versions until I no longer use them.

Q: Does this work on Spigot? Paper? (Insert other server software here)?

A: I only support Paper, but this will likely also work on forks of Paper (untested). There are no plans to support any other server software (i.e., Spigot or Folia).

For Server Admins/Owners

  • Download the plugin SkyLib.
  • Download the plugin from the releases tab and add it to your server.

Building

  • Go to SkyLib and follow the "For Developers" instructions.
  • Then run: ./gradlew build

For Developers

./gradlew build

repositories {
  mavenLocal()
}
dependencies {
  compileOnly("com.github.lukesky19:SkyShop:2.1.0.0")
}

How To Access The API

Follow the "For Developers" section above and then add this code to your plugin. Then follow the code example below:

private SkyShopAPI api;

public SkyShopAPI getSkyShopAPI() {
  return api;
}

@Override
public void onEnable() {
  loadSkyShopAPI();
  if(api == null) {
      this.getServer().getPluginManager().disablePlugin(this);
      return;
  }
  
  // The rest of your plugin's onEnable code.
}

private void loadSkyShopAPI() {
  @Nullable RegisteredServiceProvider<SkyShopAPI> rsp = this.getServer().getServicesManager().getRegistration(SkyShopAPI.class);
  if(rsp != null) {
    api = rsp.getProvider();
  }
}

Why AGPL3?

I wanted a license that will keep my code open source. I believe in open source software and in-case this project goes unmaintained by me, I want it to live on through the work of others. And I want that work to remain open source to prevent a time when a fork can never be continued (i.e., closed-sourced and abandoned).

About

SkyShop is a simple inventory based shop plugin with page support, configuration validation and error checking, buying and selling of items and commands, and a sellall GUI

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages