Sueta
RE

Redeemer - Promotion and Voucher Plugin

v0.5

Plugin for command based promotions and vouchers.

·Plugin

Features
As of now this plugin let's you create promotion codes based on commands. You can create a promotion, assign it a specific code, give it a date until this promotion runs and you can also set specific promotion codes to be valid only in specific worlds. Unlimited commands can be assigned to each promotion code.

New with v0.4 are vouchers. You can create vouchers, add unlimited commands to them and set them to be valid only in specific worlds. After you created a voucher and enabled it, you can generate as many one-time usable voucher codes for this type as you want and share them with your players.

Since v0.4 Java 8 is not required anymore and the plugin is running now also in Java 7!

Known Bugs
No known bugs so far. Please tell me if you found one!

Planned Features
If anyone has ideas or suggestions for this plugin, please share it within the discussion section!

  • Ingame buyable voucher-codes (with Vault compability)
  • Webinterface for admins to maintain promotions and voucher codes
  • PHP and Python module for maintaining the promotions and voucher codes
  • Support of other databases (PostgreSQL for example)

Requirements

  • MySQL Database
  • Java 1.7
  • Spigot 1.13.2

Setup
Place the .jar in your plugins folder, restart your server once and after that adjust the configuration file. At the moment there is only a configuration for the prefix which is used by the plugin when it sends messages and the database configuration which should be self explanatory. Once your database is linked up correctly, you can start using this plugin.

Support
If you encounter any issue with my plugin, just post it in the "discussion" on this site.

Permissions
The permissions should explain them self by name:
redeemer.promotion.create Allows the creation of promotion codes
redeemer.promotion.show Allows to show a specific promotion
redeemer.promotion.list Allows to list all existing promotions
redeemer.promotion.remove Allows the removal of promotion codes
redeemer.promotion.config Allows the configuration of promotion codes
redeemer.promotion.use Allows the usage of promotion codes
redeemer.voucher.create Allows the creation of voucher types
redeemer.voucher.show Allows to show a specific voucher
redeemer.voucher.list Allows to list all existing vouchers
redeemer.voucher.remove Allows the removal of vouchers
redeemer.voucher.config Allows the configuration of voucher codes
redeemer.voucher.use Allows the usage of voucher codes

Commands - Promotion
/redeemer promo create <name> Creates a new promotion with name <name>
/redeemer promo <name> valid <date> Sets a date until the promotion is valid. <date> must be in format "yyyy-DD-mm", for example: "2016-12-31"
/redeemer promo <name> world <world> Sets the promotion to be only usable in world <world>
/redeemer promo <name> code <code> Sets the promotion code to be <code>
/redeemer promo <name> enable Enables the promotion so it can be used by players.
/redeemer promo <name> disable Disables the promotion.
/redeemer promo <name> command add <command> Adds the command <command> to be executed for this promotion. A command may contain the string "<player>" to refer to the player using the code.
Example: /redeemer promo aPromotion command add give <player> diamond 1
/redeemer promo <name> command remove <command> Removes the given command <command> from the promotion.
/promotion <code> Redeem a promotion code.
/redeemer promo list Lists all existing promotions
/redeemer promo show <name> Shows details of promotion <name>
/redeemer promo remove <name> Removes the promotion <name>

Commands - Voucher
/redeemer voucher create <name> Creates a new voucher with name <name>
/redeemer voucher <name> world <world> Sets the voucher to be only usable in world <world>
/redeemer voucher <name> enable Enables the voucher so it can be used by players.
/redeemer voucher <name> disable Disables the voucher
/redeemer voucher <name> command add <command> Adds the command <command> to be executed for this voucher. A command may contain the string "<player>" to refer to the player using the code.
Example: /redeemer voucher aVoucher command add give <player> diamond 1
/redeemer voucher <name> command remove <command> Removes the given command <command> from the voucher.
/redeemer voucher <name> generate Generates a voucher vode for the voucher <name>
/voucher <code> Redeem a voucher code
/redeemer voucher list Lists all existing voucher
/redeemer voucher show <name> Shows details of voucher <name>
/redeemer voucher remove <name> Removes the voucher <name>

Example configuration
Note that if you upgraded versions you might to put the new config keys in your existing config on your own. Here is the sample configuration file, showing all configurations.

# Prefix for messages sent by the server

prefix: [Redeemer]
#Enable Vault support for selling Vouchers
enable_vault: false
#Database configuration
database:
#This can only be "mysql" for now.
type: mysql
#url of database host including port
url: localhost:3306
#database name
db: dbname
#database user
user: dbuser
#database password
password: anAwesomePassword
#messages the plugin is using
error_wrong_arguments: "Wrong amount of arguments!"
redeemer_running: "Redeemer plugin is enabled and running."
redeemer_only_player: "This command can only be run by a player."
error_execution: "There was an error while executing the promotion. Please contact Support."
error_promo_not_exist: "This promotion-code does not exist!"
redeemer_promo_command_added: "Successfully added command: <command> to promotion: <promotion>"
error_promo_command_added: "There was an error adding command: <command> to promotion <promotion>"
error_promo_command_removed: "There was an error removing command: <command> from promotion: <promotion>"
redeemer_promo_command_removed: "Successfully removed command: <command> from promotion: <promotion>"
error_promo_command_wrong: "You need to use \"add\" or \"remove\" to add or remove a command."
redeemer_promo_world_set: "Promotion: <promotion> is now only valid in world: <world>"
error_promo_update: "Promotion: <promotion> could not be updated, please check logs."
redeemer_promo_code_set: "Promotion: <promotion> has now the code: <code>"
redeemer_promo_enabled: "Promotion: <promotion> is now enabled."
redeemer_promo_disabled: "Promotion: <promotion> is now disabled."
error_promo_invalid_name: "The words create|remove|list|show are not allowed as promotion name."
redeemer_promo_created: "Promotion: <promotion> created successfully with code: <code>"
error_promo_creation: "Promotion: <promotion> could not be generated, please check in log!"
error_promo_already_exists: "Promotion: <promotion> already exists!"
redeemer_promo_date_set: "Promotion: <promotion> is now valid till <date>"
error_promo_wrong_date: "Provided Date <date> is not a correct date or is not in format yyyy-MM-dd!"
error_promo_inactive: "Promotion: <promotion> is not active at the moment."
error_promo_wrong_world: "Promotion: <promotion> can not be used in this world."
error_promo_outdated: "Promotion: <promotion> is not valid anymore."
error_promo_redeeming_not_working: "Promotion: <promotion> caused an error when redeemed. Please contact your Mod / Admin."
error_promo_already_used: "You already used promotion: <promotion>. You cannot use it again."
error_wrong_permissions: "You don't have the permissions to use this command"
redeemer_promo_word_enable: "enabled"
redeemer_promo_word_disable: "disabled"
redeemer_promo_show: "The promotion <promotion> is valid till <date> and is: <active>"
redeemer_promo_removed: "The promotion <promotion> has been removed successfully."
redeemer_promo_list: "You have the following promotions configured: <promotions>."
error_voucher_invalid_name: "The words create|remove|list|show are not allowed as Voucher name."
redeemer_voucher_list: "You have the following Vouchers configured: <vouchers>."
redeemer_voucher_created: "Voucher has been created successfully."
error_voucher_already_exists: "Voucher already exists."
error_voucher_not_exist: "This Voucher doesn't exist."
redeemer_voucher_enabled: "Voucher is now enabled."
error_voucher_update: "Could not update Voucher."
redeemer_voucher_disabled: "Voucher is now disabled"
redeemer_voucher_world_set: "Voucher is now valid in world: <world>."
redeemer_voucher_command_added: "Successfully added command: <command> to Voucher: <voucher>"
error_voucher_command_added: "Could not add command to Voucher"
redeemer_voucher_command_removed: "Successfully removed command: <command> from Voucher: <voucher>"
error_voucher_command_removed: "Could not remove command from Voucher"
redeemer_voucher_show: "The Voucher <voucher> is: <active>, is valid in <world> and has the following commands configured: <commands>"
redeemer_voucher_word_enable: "enabled"
redeemer_voucher_word_disable: "disabled"
redeemer_word_no_command: "no command"
redeemer_word_no_promotion: "no Promotion"
redeemer_word_no_voucher: "no Voucher"
redeemer_voucher_removed: "Voucher <voucher> has been successfully removed."
redeemer_voucher_generated: "Successfully generated new Voucher code: <code>"
error_voucher_generated: "New Code for Voucher could not be generated."
error_voucher_inactive: "This Voucher is disabled, you need to enable it first."
error_voucher_wrong_world: "This Voucher is not valid in your world."
error_voucher_already_used: "This Voucher has been used already."
error_voucher_redeeming_not_working: "Unknown error in redeeming Voucher code happened."
redeemer_word_all_worlds: "all worlds"
error_unknown_voucher_command: "This is not a valid voucher command"
error_unknown_promotion_command: "This is not a valid promotion command"
error_unknown_redeemer_command: "This is not a valid redeemer command"

Similar projects

Plugin →