Tags
Creators
Details
Licensed ARR
Published 2 years ago
Updated 2 years ago
All versions
1.1.0
Release
LetsPlaytest 1.1.0 - Major Release2 years ago 110
Compatibility
Minecraft: Java Edition
1.21–1.21.7
1.20.x
1.19.x
Platforms
Paper
Purpur
Spigot
Changes
Major:
- Added: Rating system for players to provide feedback.
- Added: GUI for rating with star selection and feedback input.
- Added: Reset request system for players to reset their ratings.
- Added: Support for HEX color codes, allowing server owners to use RGB colors alongside traditional legacy color codes for better customization.
Minor:
- Improved: Database structure with new tables for ratings and global joins.
- Improved: Notification system for player joins and playtest mode status.
- Improved: Command structure for easier management of players and staff.
Fixes:
- Fixed: Various bug fixes and performance improvements.
- Fixed: Adding a duration using time causes the plugin to produce a null error (e.g /playtest addplayer steve 0)
Please update your config.yml & messages.yml:
Updated: config.yml
# LetsPlaytest Plugin Configuration
# Thank you for installing my plugin! <3
# Database Configuration
database:
# Supported types: sqlite, mysql
type: sqlite
# MySQL Configuration (only used if the type is 'mysql')
mysql:
host: localhost
port: 3306
database: minecraft
username: root
password: ''
notifications:
join-alerts: true
rewards:
enabled: true
star-rewards:
5:
- "give %player% diamond 3"
- "eco give %player% 1000"
4:
- "give %player% diamond 1"
- "eco give %player% 500"
3:
- "give %player% gold 32"
2:
- "give %player% iron 3"
1:
- "give %player% coal 1" # No hard feelings :)
rating:
# Whether feedback is required after rating
feedback-required: true
feedback-min-length: 10 # Minimum characters (0 to disable)
feedback-max-length: 200 # Maximum characters (0 to disable)
# Rating items configuration
# Hex code support is available
# Format: &#FFFFFF
rating-items:
1:
material: "RED_STAINED_GLASS_PANE"
custom-model-data: 1001
name: "&fPoor" # Do not add any color other than white, it will be removed automatically.
lore:
- "&7Click to rate 1 star"
- "&eLowest rating"
2:
material: "ORANGE_STAINED_GLASS_PANE"
custom-model-data: 1002
name: "&fDecent" # Do not add any color other than white, it will be removed automatically.
lore:
- "&7Click to rate 2 stars"
- "&eBelow average"
3:
material: "YELLOW_STAINED_GLASS_PANE"
custom-model-data: 1003
name: "&fOkay" # Do not add any color other than white, it will be removed automatically.
lore:
- "&7Click to rate 3 stars"
- "&eAverage experience"
4:
material: "LIME_STAINED_GLASS_PANE"
custom-model-data: 1004
name: "&fGood" # Do not add any color other than white, it will be removed automatically.
lore:
- "&7Click to rate 4 stars"
- "&eAbove average"
5:
material: "BLUE_STAINED_GLASS_PANE"
custom-model-data: 1005
name: "&fExcellent" # Do not add any color other than white, it will be removed automatically.
lore:
- "&7Click to rate 5 stars"
- "&ePerfect experience"
confirm-button:
material: "LIME_DYE"
custom-model-data: 1010
name: "&aConfirm Rating" # Color can be changeable
lore:
- "&7Click to confirm your rating"
- "&eYou can't edit your review later"
close-button:
material: "BARRIER"
custom-model-data: 0
name: "&cClose" # Color can be changeable
lore:
- "&7Click to cancel rating"
- "&7No rating will be saved"
# To change the GUI title check messages.yml
# And find "rating-gui-title" all the way down.
Updated: messages.yml
# LetsPlaytest Plugin Messages Configuration
# Hex code support is available
# Format: &#FFFFFF
# Player-related messages
player-add-success: '&6[LetsPlaytest] &aAdded {0} to playtest list.'
player-remove-success: '&6[LetsPlaytest] &aRemoved {0} from playtest list.'
player-not-found: '&6[LetsPlaytest] &cPlayer not found.'
player-already-in-list: '&6[LetsPlaytest] &cPlayer is already in the playtest list.'
player-not-in-list: '&6[LetsPlaytest] &cPlayer is not in the playtest list.'
# Staff-related messages
staff-add-success: '&6[LetsPlaytest] &aAdded {0} to staff list.'
staff-remove-success: '&6[LetsPlaytest] &aRemoved {0} from staff list.'
staff-not-found: '&6[LetsPlaytest] &cStaff member not found.'
staff-already-in-list: '&6[LetsPlaytest] &cPlayer is already a staff member.'
staff-not-in-list: '&6[LetsPlaytest] &cPlayer is not a staff member.'
# Playtest mode messages
playtest-mode-enabled: '&6[LetsPlaytest] &ePlaytest mode &aEnabled'
playtest-mode-disabled: '&6[LetsPlaytest] &ePlaytest mode &cDisabled'
# New notification messages with status placeholder
playtest-mode-active-notification: '&6[LetsPlaytest] &ePlaytest mode is currently &6{status}!'
playtest-mode-inactive-notification: '&6[LetsPlaytest] &ePlaytest mode is currently &c{status}.'
playtest-join-notification: "&6[LetsPlaytest] This server is in playtest mode with an overall rating of &e{average}&6/&e5"
playtest-join-staff-notification: "&6[LetsPlaytest] &ePlaytest mode is currently &6ACTIVE"
# Global playtest messages
global-playtest-notification: "&6[LetsPlaytest] &aGlobal playtest has been enabled for {duration}."
global-playtest-disabled-notification: "&6[LetsPlaytest] &cGlobal playtest has been disabled."
global-playtest-enabled: '&6[LetsPlaytest] &eGlobal playtest &aenabled &efor {duration}'
global-playtest-disabled: '&6[LetsPlaytest] &eGlobal playtest &cdisabled &epermanently.'
global-playtest-error: '&6[LetsPlaytest] &cError setting global playtest.'
# Command usage messages
command-usage-addplayer: '&6[LetsPlaytest] &cUsage: /playtest addplayer <player> <duration>'
command-usage-removeplayer: '&6[LetsPlaytest] &cUsage: /playtest removeplayer <player>'
command-usage-addstaff: '&6[LetsPlaytest] &cUsage: /playtest addstaff <player>'
command-usage-removestaff: '&6[LetsPlaytest] &cUsage: /playtest removestaff <player>'
command-usage-global: '&6[LetsPlaytest] &cUsage: /playtest global <duration>'
command-usage-invalid-duration: '&6[LetsPlaytest] &cInvalid duration format. Use 5d, 3h, 30m, or just a number.'
command-usage-invalid: '&6[LetsPlaytest] &cUnknown subcommand. Use /playtest for help.'
command-no-permissions: '&6[LetsPlaytest] &cYou don''t have enough permissions to do this.'
# Kick messages
playtest-kick-message: '&6This server is currently in playtest mode. You are not authorized to join yet.'
playtest-expired-message: '6Your playtest access has expired.'
playtest-join-limit-message: '&6You have reached your maximum number of joins.'
# Database error messages
database-error-general: '&6[LetsPlaytest] &cA database error occurred. Please contact an administrator.'
database-error-connection: '&6[LetsPlaytest] &cFailed to establish database connection.'
# Help command messages
help-header: '&6[LetsPlaytest] &fCommands:'
help-toggle: '&6/playtest toggle &7- Toggle playtest mode'
help-addplayer: '&6/playtest addplayer <player> <duration> &7- Add a player'
help-removeplayer: '&6/playtest removeplayer <player> &7- Remove a player'
help-addstaff: '&6/playtest addstaff <player> &7- Add a staff member'
help-removestaff: '&6/playtest removestaff <player> &7- Remove a staff member'
help-global: '&6/playtest global <duration> &7- Enable global playtest'
help-disableglobal: '&6/playtest disableglobal &7- Disables global playtest'
help-status: '&6/playtest status &7- Views the status of the playtest'
help-reviews: '&6/playtest reviews &7- Views all the playtester''s reviews'
help-requestreset: "&6/playtest requestreset <player> &7- Request review reset"
help-confirmreset: "&6/playtest confirmreset &7- Accept reset request"
help-denyreset: "&6/playtest denyreset &7- Deny reset request"
help-playerslist: '&6/playtest playerslist &7- List of playtest players'
help-stafflist: '&6/playtest stafflist &7- List of staff members'
help-reload: '&6/playtest reload &7- Reload plugin configuration'
# Reload
reload-message: '&6[LetsPlaytest] Playtest plugin configuration reloaded successfully.'
# List headers
playtest-players-header: '&6--- Playtest Players ---'
playtest-status-header: "&#FFAA00--- Playtest Status ---"
staff-members-header: '&6--- Staff Members ---'
player-list-format: "&7{player} - {expiration_info}"
staff-list-format: "&7{staff_member}"
# Status Messages
playtest-mode-status: "&ePlaytest Mode: &f{0}"
global-playtest-active: "&eGlobal Playtest: &6Active for {time}"
global-playtest-expired: "&eGlobal Playtest: &fExpired"
global-playtest-not-active: "&eGlobal Playtest: &fNot Active"
active-player-count: "&eActive Playtest Players: &f{0}"
staff-count: "&eStaff Members: &f{0}"
playtest-expiration: "&eYour access expires in: &f{time}"
# Rating Summary Messages
overall-rating: "&6Overall Rating: &#FFFFFF{average}/5 (from {count} reviews)"
rating-distribution: "&6Rating Distribution:"
rating-stars: "&6{stars} &f{count} reviews"
# Review Command Messages
reviews-header: "&6--- Player Reviews ---"
review-format: "&6{player}: {rating}/5 - &7{feedback}"
no-reviews: "&6No reviews found."
reviews-usage: "&6Usage: /playtest reviews [page]"
review-page: "&6Page {current}/{total}"
# Rating and Feedback Messages
rating-gui-title: "&8Rate this Server" # <- it's right here
rating-message: "&6[LetsPlaytest] Please rate your experience with /letsrateit"
rating-overall-message: "&6[LetsPlaytest] This server is in playtest mode with the overall rating of {rating}/5"
rating-success: "&6[LetsPlaytest] Thank you for your rating of {0}/5!"
rating-error: "&6[LetsPlaytest] &cThere was an error saving your review! Please contact an administrator."
reward-message: "&6[LetsPlaytest] You received rewards for your {rating}-star review! ({rewards_count} items)"
feedback-prompt: "&6[LetsPlaytest] Please type your feedback in chat (or type 'cancel' to skip):"
feedback-success: "&6[LetsPlaytest] Thank you for your feedback!"
feedback-cancelled: "&6[LetsPlaytest] Feedback submission cancelled."
rating-already-given: "&6[LetsPlaytest] You've already rated this server."
rating-no-permission: "&6[LetsPlaytest] You don't have permission to rate this server."
feedback-too-short: "&6[LetsPlaytest] Your feedback must be at least {0} characters long."
feedback-too-long: "&6[LetsPlaytest] Your feedback cannot exceed {0} characters."
reset-request-sent: "&6[LetsPlaytest] &eSent review reset request to &6{player}"
reset-request-received: "&6[LetsPlaytest] &eAdmin wants to reset your review. Type &6/playtest confirmreset &eor &6/playtest denyreset"
reset-success: "&6[LetsPlaytest] Your review has been reset! You can submit a new one now."
reset-denied: "&6[LetsPlaytest] Review reset request denied."
reset-expired: "&6[LetsPlaytest] Reset request is either expired or doesn't exist."
admin-reset-cancelled: "&6[LetsPlaytest] Player {player} has &cdenied &6the review reset."
admin-reset-confirmed: "&6[LetsPlaytest] Player {player} has &aaccepted &6the review reset!"
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:GAf1zb9F:15z8a76b"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:GAf1zb9F:15z8a76b"
}

