A Spigot plugin loosely based on the old Permission Signs plugin
Go to file
2022-01-22 15:38:59 +01:00
src/main Makes sure to cancel placing events when a permission sign is interacted with 2022-01-22 15:38:59 +01:00
.gitignore Initial commit 2022-01-08 16:57:12 +01:00
pom.xml Adds tab completion for the creation command, and fixes several bugs 2022-01-14 15:19:27 +01:00
README.md Adds information about config options and language customization to the README 2022-01-22 15:03:57 +01:00

Permission Signs

This is a plugin based on the permission signs plugin created by _ForgeUser7294733. As the previous plugin does not offer source code and has a restrictive license, this plugin is written from scratch, but trying to somewhat imitate the original plugin's behavior. It's not possible to load previous permission signs as they are stored without any coordinates.

Basically permission signs is a plugin that allows for the sale of permissions using signs as the interface. A sign is created with a displayed name, a set of permissions, a time limit (can be infinite) and a cost (can be zero). If a player uses the sign to buy the permission, they will be granted the permission for the defined duration. Vault is used to set permissions. Permanent permissions are set normally through Vault, but permissions with a duration set as not "0" are treated as transient permissions to avoid any problems, such as the player having been granted the permission permanently by another cause, when they expire.

Commands

  • /ps about - Displays information about the plugin
  • /ps create <permission,permission> - Creates a new permission sign. The name is used to describe what the permission sign does. The permission,permission is the list of comma-separated permissions the permission sign will grant to the using player. The cost is the cost to use the permission sign. The duration is the number of seconds the player should keep the permission for. Use 0 for permanent.
  • /ps cancel - Used to manually cancel the creation of a permission sign (it will also time out after 60 seconds)
  • /ps reload - Used to reload all data and config settings from disk

Permissions

  • permissionsigns.* - Grants all PermissionSigns permissions
  • permissionsigns.use - Allows players to use the permission signs
  • permissionsigns.admin - Allows all administrative tasks such as creating permission signs and reloading
  • permissionsigns.admin.reload - Allows the usage of the /reload command
  • permissionsigns.admin.create - Allows players to create/destroy permissionsigns

Configuration options

  • language - The language used for the plugin (en, nb-no)
  • perWorldPermissions - Sets permissions for the current world instead of setting them globally
  • enableExtensiveSignProtection - Whether to protect signs on "unstable" blocks such as sand or anvils. Does not protect signs on "lag pyramids" or similar, but protects signs on top of, or attached to a pillar of sand.

Language customization

All strings, even time units, are customizable. If you place a strings.yml file in the plugin folder, it will take priority over built-in languages. If you want to change strings, look at PermissionSigns/src/main/resources/strings.yml for the proper keys. All strings have the format: ENUM: "Displayed string". The enum must be identical as it defines which string you have changed. All strings belonging to a language are beneath the language code and indented with two spaces.

The easiest way to add a new language is to copy an existing language and paste it into your custom strings.yml and change strings as necessary. If you don't include all strings, the remaining will use the built-in English translation. Remember to change the language code to whichever you use for your custom language.