A Spigot plugin to allow adding costs for creating plugin signs
Go to file
EpicKnarvik97 9bb234169d Adds various improvements, fixes and a new feature
Adds and option to match any paid sign condition instead of all conditions
Adds checks for whether line indices are outside the allowed range
Disallows any invalid regular expressions in sign conditions
2022-03-02 00:37:00 +01:00
src/main Adds various improvements, fixes and a new feature 2022-03-02 00:37:00 +01:00
.gitignore Initial commit 2022-02-18 00:28:44 +01:00
pom.xml Updates version to 0.3.0-ALPHA 2022-02-28 15:14:59 +01:00
README.md Adds various improvements, fixes and a new feature 2022-03-02 00:37:00 +01:00

Paid signs

The paid-signs plugin is a plugin that lets you add costs for creating plugin signs. This allows restricting usage of signs such as CraftBook's gate/lift and other signs while still allowing every player to use the signs.

Limitations

As this plugin only listens to sign change events, there are some limitations:

  1. The plugin is not aware of whether the creation of a sign is successful
  2. It is assumed that any protection plugins run before this plugin, but it's not guaranteed
  3. Plugins changing the lines on signs when successful might create confusion and mismatches

Commands

  • /addpaidsign [permission] [ignore case] [ignore color] [match any condition]
  • /addpaidsigncondition <name (of a paid sign)> [executeRegEx] [ignoreCase]
    ignoreColor]
    
  • /listpaidsigns [name (of a paid sign)] [line number]
  • /removepaidsigncondition <name (of a paid sign)>
  • /removepaidsign <name (of a paid sign)>
  • /reload

Command explanation

/addpaidsign

This command adds a new paid sign that does nothing until a condition is added.

  • name - A recognizable name only used to differentiate between registered paid signs
  • cost - The cost a player need to pay to create any sign matching the paid sign
  • permission - If the paid sign is used to represent a plugin sign, the permission should be the permission necessary for creating the plugin sign. This is used to decide if the plugin sign was created, or the player was denied.
  • ignore case - Whether any conditions of the paid sign should ignore case by default, when matching against text ( default uses the config file value).
  • ignore color - Whether any condition of the paid sign should ignore color by default, when matching against text ( default uses the config file value).
  • match any condition - Whether to trigger a paid sign match if a single one of the sign's conditions is true. This is mainly useful if several lines may contain the match string, or if trying to match a word.

/addpaidsigncondition

This adds a condition to a paid sign which is used to decide if a sign created by a player matches the paid sign. Adding a paid sign condition to a line that already has one will replace the previous condition.

  • name - The name of the paid sign to add the condition to
  • line number - The line on the sign (1-4) to search for any matches
  • string to match - The string or regular expression to look for on a sign
  • executeRegEx - Whether to use a regular expression match instead of looking for the exact string
  • ignoreCase - Whether this condition should ignore case when trying to match the string (default uses the "parent" sign's value)
  • ignoreColor - Whether this condition should ignore color when trying to match the string (default uses the "parent" sign's value)

/listpaidsigns

This lists registered paid signs and paid sign conditions. No arguments will print a list of paid signs

  • name - The name of the paid sign to see information about
  • line number - The line number of the condition to see information about

/removepaidsigncondition

Removes a paid sign condition from a sign

  • name - The name of the paid sign to remove the condition from
  • line number - The line the condition is associated with

/removepaidsign

Removes a registered paid sign

  • name - The name of the paid sign to remove

Permissions

  • paidsigns.* - Grants all paid signs permissions
  • paidsigns.manage - Grants the permission to add/remove a paid sign
  • paidsigns.reload - Grants the permissions to reload the plugin
  • paidsigns.paymentexempt - Makes this player exempt from the cost of paid signs

Configuration options

  • language - The language to use for all messages displayed to players
  • ignoreCase - Whether to ignore the case (lowercase/uppercase) of the paid sign text. The option can be set on a per-sign basis, but this value is used if not specified. The correct value depends on whether the plugin signs it should match are case-sensitive or not.
  • ignoreColor - Whether to ignore any color or formatting applied to the text when trying to match a paid sign's text. The option can be set on a per-sign basis, but this value is used if not specified. The correct value depends on whether the plugin signs it should match allow coloring or not.
  • enableRefunds - Whether to enable refunds to the sign creator when a sign detected as a paid sign is broken (payment will always go to the original creator)
  • refundPercentage - The percentage of the paid sign cost to refund (0-100)