GiveRandom - Give players random rewards, or run random commands against them!

This is a discussion topic for the Ore project, GiveRandom. View the full project on Ore for downloads and more information.


GiveRandom

GiveRandom is a plugin made to allow for a non-complicated, no nonsense way of distributing random items (or commands) to players.
This plugin’s purpose was to provide a server utility that could be used by other plugins that are available to call commands.

Permissions

GiveRandom has a few permissions, these include:

  • giverandom.command.user.base - Access to the base command
  • giverandom.admin.command.reload - Reloads the GiveRandom config
  • giverandom.admin.command.base - Gives permission to run the /giverandom command
  • giverandom.command.user.listitems - Lists items you can obtain via the giverandom command

Command Usage

  • /giverandom reload - Reloads the GiveRandom config
  • /giverandom give - Gives a random item to the specified player. Defaults to the current player if no player is specified, and if not ran from console. Defaults to default group in config
  • /giverandom list - Iterates through and shows all possible obtainable items. Defaults to the first page. Defaults to default group in config

Config

This plugin uses a YAML configuration file.
To ensure the yaml is valid you can put it through any yaml linter, such as this one.
This is formatted like the below:

mode: message
defaultGroup: rewards
items:
    rewards:
      diamond: {displayname: diamond, type: item, id: 'minecraft:diamond', weight: 100}
      gold: {displayname: gold, type: item, id: 'minecraft:gold_ingot', quantity: 1, weight: 100}
      stone: {displayname: stone, type: item, id: 'minecraft:stone', quantity: 64, weight: 200, message: '&6{player} &ahas won &6{quantity} {displayname}'}
      emerald: {displayname: emerald, type: item, id: 'minecraft:emerald', quantity: 1, weight: 10}
      commandtest: {displayname: commandTest, type: command, command: 'give {player} minecraft:cobblestone 1', weight: 200}
    secondaryrewards:
      diamond: {displayname: diamond, type: item, id: 'minecraft:diamond', weight: 100}
      gold: {displayname: gold, type: item, id: 'minecraft:gold_ingot', quantity: 1, weight: 100, mode: message}
      stone: {displayname: stone, type: item, id: 'minecraft:stone', quantity: 64, weight: 200}
      emerald: {displayname: emerald, type: item, id: 'minecraft:emerald', quantity: 1, weight: 10}
      commandtest: {displayname: commandTest, type: command, command: 'give {player} minecraft:cobblestone 1', weight: 200, mode: broadcast}
  • mode - Either ‘message’ or ‘broadcast’. ‘broadcast’ requires a plugin (such as nucleus) with the ability to do /broadcast.
    ‘message’ sends notification of what was won directly to the player.
  • defaultGroup - The default group for commands to run against
  • items - items is a multi-item map containing groups of rewards. Each reward should consist of:
    • The reward group name, e.g. ‘rewards’ or ‘secondary rewards’. Each of these groups should contain each item with:
      • displayname - The name you want shown once a reward is won. For items of anything more than quantity 1 an ‘s’ is appended to this.
      • type - The type of reward, options are item or command
      • weight - The weight at which the player wins this item. See ‘Weight System’ section below.
      • id (Required when type=item) - The minecraft item ID to give the player
      • quantity (Required when type=item) - The quantity of the items to give the player, defaults to 1, optionally can be a range, e.g. 1-10 which will chose a random number between the range
      • command (required when type=command) - The command you want to run from the console against the player. For substituting player use {player}
      • message (optional for both item, and command types) - Optionally override the message broadcasted or that players receive. For substituting use {player} {quantity} and {displayname}
      • skipnotification: true - Optional to allow sending a reward with no notification, useful for rewards that call other reward groups
      • mode: Either ‘message’ or ‘broadcast’ - used to overide the default setting

Weight System

For calculating chance of getting an item or plugin, this plugin uses a ‘weight’ system. For example if you have 100 items all with a ‘Weight’ of 1, they will all be equally likely to be drawn.

If you have one item with a weight of 1, and one with a weight of 2, the item with the weight of two is twice as likely to be drawn.

A new version has been released for GiveRandom, it is available for download here.


GiveRandom is a plugin made to allow for a non-complicated, no nonsense way of distributing random items (or commands) to players.
This plugin’s purpose was to provide a server utility that could be used by other plugins that are available to call commands.

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

Update to test publishing via gitlab

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

NOTE: If you used a previous version of this plugin and are updating to this version, you need to delete your config and let it re-create in the new format. Be sure to copy your rewards out to a separate text file before doing so.

  • Adds in multiple reward groups
  • Updates to the readme
  • Bit of cleanup done
  • Fix to allow colors in yaml file.

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

  • Adds in multiple reward groups
  • Updates to the readme
  • Bit of cleanup done
  • Fix to allow colors in yaml file.

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

  • Adds an override for broadcast / message to the player

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

  • Adds in quantity range per item (optional)
    use via something like quantity: 1-64

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

Updates sponge repository.
Update to Sponge 7.3

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

Added @a to give command

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

Added override for mode per item. Can now broadcast rare items and default the rest to message
Code cleanup

A new version has been released for GiveRandom, it is available for download here.


GiveRandom Changelog

Config example update