Player Reviewer
Features
This plugin allows users to apply for ranks, which are then rated by users with permissions to do so. The ratings are scored of 0-100 in criteria set within the config. An example of possible custom criteria is:
- Quality
- Size
- Creativity
The default config options for criteria are:
- Atmosphere
- Originality
- Terrain
- Structure
- Layout
The application logs the user's location and any user with permissions can teleport to the location to view a build relating to the application (for example). Another option is to log the location of the plot the user is currently in (Requires PlotSquared dependency).
When a staff member (with permissions to approve) has reviewed the application and the ratings given they can approve or deny, ultimately resulting in either the rank being granted or not.
The applications and ratings are logged either locally within the applications.yml file in the plugin folder or to a database, which can be configured within the applications.yml file too.
As it stands, currently the only permissions plugin supported are PermissionsEx and LuckPerms. Similarly, the only plot plugin supported at the moment is PlotSquared.
A GitLab project can be linked to use the issue system as a way of displaying applications and their related content such as position, render links, name, etc. You can also specify a Discord channel to send notifications to about new projects with a link to GitLab issue (if its used) and also application finalisation (approve or deny).
If you have a suggestion for a feature to be added, drop a comment below and ill have a look into it
Commands
/pr apply - Apply For The Specified Rank
/pr validranks [ALIASES: vr, ranks]- Displays All Rank Names On The Server
/pr rate … - Rate An Open Application With A Rating of 0-100 In Each Criteria
/pr gotoplot [ALIASES: plot] - Teleport To Location Or Plot Of Open Application
/pr ratings - View Ratings Of Open Application (Requires Perm pr.ratings To View Other Users Applications)
/pr approval <name> <approve/deny> - Approve Or Deny Open Applications
/pr removeapplication <name> [ALIASES: ra, remap] - Remove An Open Application By Specifying Relevant Player Name
/pr version - Displays Plugin Version Information
/pr help - Displays Plugin Help Information
/pr apphelp - Displays application submission help
/pr status - Displays player application status
/pr pos1 - Register chunky position 1
/pr pos1 - Register chunky position 2
/pr cam - Register a chunky camera
/pr chunkysettings [ALIASES: cs] - Returns position, chunk and parameter details
/pr setparam [ALIASES: sp] - Sets a chunky JSON parameter
/pr removeparam[ALIASES: rp] - Removes a chunky JSON parameter
/pr viewparams <raw/list> [ALIASES: vp] - View currently set chunky JSON parameters
/pr clearparams [<confirm/deny>] [ALIASES: rp] - Clear all currently set chunky JSON parameters (requires confirmation)
Permissions
pr.use - Allows the use of the pr command
pr.apply - Allows the use of the /pr apply command
pr.validranks - Allows the use of the /pr validranks command
pr.rate - Allows the use of the /pr rate command
pr.gotoplot - Allows the use of the /pr gotoplot command
pr.ratings - Allows the use of the /pr ratings command for other users applications
pr.approval - Allows the use of the /pr approval command
pr.removeapplication - Allows the use of the /pr removeapplication command
pr.version - Allows the use of /pr version
pr.help - allows the use of /pr help
pr.apphelp - allows the use of /pr apphelp
pr.status - allows the use of /pr status
pr.pos1 - allows the use of /pr pos1
pr.pos2 - allows the use of /pr pos2
pr.cam - allows the use of /pr cam
pr.chunkysettings - allows the use of /pr chunkysettings
pr.setparam - allows the use of /pr setparam
pr.removeparam - allows the use of /pr removeparam
pr.viewparams - allows the use of /pr viewparams
pr.clearparams - allows the use of /pr clearparams
Configuration and Installation
Drag and drop the most recent version of the plugin into your plugins folder. Restart or start the server, the config file will generate.
The config file contains:
Discord:
Notifications: true
Use-Main-Text-Channel: false
Channel: channel_name
Player-Applications:
External-Renders:
Use-External: true
Render-Command-Prefix: rs
User-Details:
UseSQL: false
HOSTNAME: hostname
DATABASE: database name
PORT: port number
USER: username
PASS: password
Application-Settings:
Max-Application-Count: 10
In-Game-Rating: false
Use-Ranks-In-Application: false
SQL-Table: playerapplications
Use-Plot-Locations: true
Criteria:
- atmosphere
- originality
- terrain
- structure
- layout
Use-Config-Ranks: true
Application-Ranks: guest[GUEST:guest],squire,knight,baron,builder,head_builder,senior_builder
Chunky-Config:
Use-Chunky: true
Max-Camera-Count: 4
GitLab-Config:
In-Progress-Apps:
Use-GitLab: false
Logins:
Render-Link: https://you.api.service/service/get/<UUID>/json
Render-Link-Queries: ?noFontReplace=1&limit=1
Address: https://your.git.server.com
Project-ID: 1
Access-Token: accesstoken
Here you can specify:
- Whether to use SQL databases or local files for application storage
- Specify SQL database connection parameters
- Whether to use plot locations (PlotSquared dependency) or player locations
- Specify custom criteria for applications (Requires SQL database use)
- Specify whether to use/allow ranks in applications
- Specify the name of the SQL table applications are stored in
- Whether to use server ranks or specify specific ranks for application availability
- Specify ranks that can be applied for via an application (must be a valid rank on the server)
- Specify the maximum application count per user
- Whether to export chunky render parameters and cameras set by users
- Maximum camera count for chunky renders
- Specify whether to use Discord notifications and which channel to send to
- Configure GitLab logins, links and project related content
SQL Database Configuration
If you are using an SQL database to store the applications, there are a few naming conventions that need to be followed (this will be user defined in the future):
The table name that you use must be set within the config file to match.
The columns must be as follows (replace 'criteria 1, criteria 2, etc' with the names of your criteria):
settings | status | name | rank | criteria 1 | criteria 2| … | criteria n | plotloc | totalRatings | ratinglist
Chunky
Chunky parameters and cameras are exported in JSON format to the SQL table column "settings", from here you can process them and generate a render of the chunky specified within the JSON.
Cameras are labelled in the following fahsion: "camera_n" where 'n' denotes the camera number.
All of the chunky parameters can be set from in game with the /pr setparams command. As a standard with just two positions captured and a camera set, the JSON will be as follows (any additional parameters are added in prior to export):
{ "camera_1": { "position": { "x": 39.26309100906894, "y": 65.49390748022948, "z": -236.876800963328 }, "orientation": { "roll": 0.0, "pitch": -0.8635957187819827, "yaw": 0.7880137870620696 }, "projectionMode": "PINHOLE", "fov": 90.0, "dof": "Infinity", "focalOffset": 2.0 }, "chunkList": [[0,-15],[0,-14],[1,-15],[1,-14],[2,-15],[2,-14]] }
Planned Additions
- Expanding compatibility to other permissions plugins
Added chunky supportCustom criteria for locally stored applications and SQL stored applications
Comments