LetsPlaytest

LetsPlaytest

Let players playtest your server for a short period of time!

151 downloads 1 followers

"ABOUT" Section

LetsPlaytest plugin allows server owners to easily whitelist players for a specified duration, enabling exclusive playtesting. Choose between global access, where all players can join without individual whitelisting, or a per-player whitelist for targeted testing. Perfect for gathering feedback and improving your server!

DEPENDENCIES:

  • Java Version: 17+
  • Server Version: 1.19.4+

FEATURES

  • Playtest Mode: Easily toggle a dedicated playtest mode for server testing.
  • Global Whitelist: Allow all players to join without individual whitelisting for a specified duration.
  • Per-Player Whitelist: Add specific players to the whitelist with customizable expiration times and limits on join counts.
  • Database Support: Choose between SQLite and MySQL for storing player and staff data, with improved structure for ratings and joins.
  • Rating System: Enable players to rate the server with a star system and provide feedback through a user-friendly GUI. Also, reward your players for rating your server!
  • Reset Request System: Allow admins to request a reset of the playtester's ratings, with confirmation and expiration features.
  • HEX Color Support: Use HEX color codes for messages, enhancing visual customization while retaining legacy color codes.
  • Notifications: Inform players of join status and playtest mode activities, including average ratings.
  • Command Management: Intuitive command structure for managing playtests, including adding/removing players and staff, and viewing player lists.

COMMANDS

Playtest Management

  • /playtest toggle - Toggle playtest mode
  • /playtest global - Enable global playtest
  • /playtest disableglobal - Disables global playtest
  • /playtest status - Views the status of the playtest

Player Management

  • /playtest addplayer - Add a player
  • /playtest removeplayer - Remove a player
  • /playtest playerslist - List of playtest players

Staff Management

  • /playtest addstaff - Add a staff member
  • /playtest removestaff - Remove a staff member
  • /playtest stafflist - List of staff members

Review Management

  • /playtest reviews - Views all the playtester’s reviews
  • /playtest requestreset - Request review reset
  • /playtest confirmreset - Accept reset request
  • /playtest denyreset - Deny reset request
  • /letsrateit - Rate your server
    • Aliases: /rate, /lri

Configuration

  • /playtest reload - Reload plugin configuration

Permissions:

  • playtest.admin
    • Default: Op
  • playtest.rate
    • Default: True
  • playtest.reviews
    • Default: Op

Duration Format:

  • d: day(s) // 7d
  • h: hour(s) // 7h
  • m: minute(s) // 7m
  • (t): time(s) // The player will be able to join X times (/playtest addplayer steve 5)

FILES

Default: 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.
Default: 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!"

PLANS

  1. HEX Colors Support (Available in version 1.1.0+)
  2. Players Feedback (Available in version 1.1.0+)
Version Minecraft Loader Download

LetsPlaytest 1.1.0 - Major Release

1.1.0

1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7
paper, purpur, spigot
Download

LetsPlaytest 1.0.0

1.0.0

1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5
paper, purpur, spigot
Download