Admin360-Reloaded An advanced /helpop option Tickets Rating Leaderboard MySQL 8.1.2

No permission to download
Manage Real-Time Help Requests From Your Players, Assist Them In An Efficient And Professional Way!
Supported software
Supported versions
Tags
Tags
None
xxVOyyN.png
This is a very useful plugin if you know what it does!
Spigot Page

This is an old, free plugin from Spigot. I just port it here so more people will see it and use it.

Where is the support?
Discord: Dennie#8913

Is this just another ticket plugin?
Well, not quite really. Although we call the thing that a player opens a "ticket", it's actually more accurate if we call that a "help request". Admin360 is more like an advanced version of /helpop because it only handles active requests from players that are online. So, technically, it's a real-time queuing system for a busy server that needs to process or manage a lot of player requests. The best thing is that it also includes a feedback and statistics system so that you will know how your staff team performs. And, it's also a good way to keep them motivated to compete for better ratings or numbers. All in all, it's a fully-functional customer experience add-on ready to be deployed onto your production server!

kSNRrC0.gif



nGPzvQi.png

bVWnIoU.png

Have you ever come into a situation when all of a sudden many of your players were just asking for help out of nowhere and you simply had no idea where to begin? It's just so hard to entertain your players and keep them happy! Gosh... Who should I help first? You forgot. Who is the first one asking for help? You also forgot. As an experienced server owner myself, I truly understand how stressful and helpless it can be.

Already feel the pain? Nah, that's not the end of the nightmare. Let's just have a look at your staff system. Humans are so complicated. Without enough motivation, your staff may just start to laze off and stop helping the server. Since then, you may have to do the job of 5 admins and sort out all the things on your own... But what can you do? Don't worry! You've come to the right place! Admin360 is the answer!

Admin360 attempts to solve these kinds of problems in a very systematic way. It includes automated queueing, feedback collecting, together with a staff honour points leaderboard system to provide a standardized workflow for handling help-requests and create a competitive environment for your staff. Admin360 is actually inspired by the Support Ticket System used in the field of project management in many big commercial companies. Such an efficient solution should also be introduced to Minecraft server management as well!

Admin360 is originally developed by vidhu1911 but the project had been abandoned for nearly 6 years. The reloaded version here is a fork, a better complement featuring a lot of code optimization, performance boost, highly customizable configuration, new major functions and many more. The fact that it supports Spigot 1.7 all the way up to 1.16 has made it the best administration solution for global server owners. Admin360-Reloaded has also been stress-tested on several big survival servers (with 100+ concurrent players). No significant performance and technical issues were found. This proves how simple and lightweight it is.

The installation of Admin360-Reloaded is just a drop-and-go process. Simple and Easy. You only have to drag the plugin .jar file into the plugin folder and restart your server. Then, everything just works out-of-the-box!

The config file explains everything. Spend some time to read through all the details and play with the settings as much as you want. There are only a few commands involved in the whole workflow and it is just something very easy to learn! Should be a piece of cake for a smart person like you.

Have you come across any config file that you totally have no ideas what's going on? Don't worry. This will never happen in Admin360-Reloaded, as we have been spending a lot of our efforts on explaining all kinds of settings, messages and how everything works directly inside the config file. Yes! Everything is in the config file! If you spend some time to read through all the comments in the file, you should be good to go.


nGPzvQi.png

Cq64783.png

✔ simple and lightweight
✔ easy-to-understand config.yml
✔ works out-of-the-box
✔ MySQL and Sqlite support
✔ 99% configurable


Support Ticket System:
Foster Disciplined And Quality Service

Automated Queuing, Status Queries, Organised Notifications and Informative Statistics
The support ticket module allows your players (with the correct permission) to seek help from your staff by creating a support ticket when they are online. New tickets are automatically put in the next position of the queue following the principle of "First come, first serve". This allows your staff to focus more on helping instead of having to think about who should be helped first or who should be the next. Peripheral features such as the ability to cancel or delete tickets, and the ability to view the status and statistics of the current system is also included, making it a fully functional and efficient help-request processing system. This makes delivering quality service to your players possible.


Honour Point System:
Create A Competitive Environment For Your Staff

Feedback Collection, Professional Statistics and Competitive Leaderboard
Staff can be awarded an 'honour point' by the feedback system if the users are satisfied with their service by giving a positive rating. It is possible for your staff to check the honour points of their own and the others. This adds some motives for your staff to compete for better ratings. It also helps server owners to evaluate the performance of your staff team.

XNAfwhc.gif



nGPzvQi.png

RKtWfud.png

Left Window: PPT_T (Player)
Right Window: xWindwalker (Staff)
kSNRrC0.gif


  • STEP 1: Creating Tickets (Player)
    A player, named Amy, opens a support ticket using "/ticket create [details]". Her request is then added to the next position of the queue following the principle of "First come, first serve".

    At this stage, Amy can:
    - cancel the ticket using "/ticket cancel".
    - check the ticket status using "/ticket status".

  • STEP2: Picking Tickets (Staff)
    A staff, named David, proceeds to attend the next help-request in the queue, which is Amy's ticket, using "/ticket next".

    Apart from /ticket next, David can:
    - manually pick a ticket from the queue using "/ticket pick <name>" based on the info from "/ticket list".
    [2 options here]

  • STEP3: Processing Tickets (Staff)
    He is then teleported to Amy's location by Admin360. Please note that Admin360 does not provide a chat channel function. Your staff will have to figure out how to help their assigned players before closing the case, e.g. using /msg in-game.

    At this stage, David can:
    - teleport to Amy using "/ticket tp".
    - retrieve information of Amy's ticket using "/ticket info".

  • STEP3: Closing Tickets (Staff)
    After all the conversations, David closes the ticket by using "/ticket close". Amy'sticket is then done-marked. By following this workflow, your staff are able to process tickets one-by-one and to exercise their discretion case-by-case.

    Apart from /ticket close, David can:
    - use "/ticket redirect <name>" to redirect the ticket to another staff if he is not able to handle it.
    - use "/ticket drop" if Amy's request is unreasonable.
    [3 options here]

  • STEP4: Giving Feedback (Player)
    To ensure service quality, Amy is asked to give feedback about her service experience. David receives an honour point because Amy upvotes his service by typing "/ticket yes". A Green Creeper Firework is launched right at David's location to congratulate him.

    Apart from /ticket yes, Amy can:
    - use "/ticket no" to give David a bad rating if he isn't helpful at all.
    [2 options here]

  • Technically, there are 4 kinds of ticket status:
    In Queue : The ticket is still in the queue, awaiting to be processed.
    In Progress : It is when a staff is attending the request.
    Awaiting Feedback : It is when the ticket is closed, but the player still hasn't given any feedback.
    Completed : Eveything is done. The details of that ticket will be stored as a historical record in the database. Tips: /ticket history

  • When a player leaves the server, he/she will be removed from the system even if his/her tickets are in any of the statuses (except for the completed tickets).

  • When a player joins the server, if he/she has the permission "admin360.staff.basic", then he/she will receive staff notifications.

  • It's so hard for me to explain everything here. Just give it a try, then you will know how it works!


nGPzvQi.png

0I6L5wN.png

The following is the updated Commands and Permissions for Admin36-Reloaded 8.1.2. For the permissions to work, a permission plugin (eg. LuckPerms, PermissionEx, GroupManager, etc.) is required.

Commands without Permissions
/ticket, /ticket help - (no permission) - Display a list of commands
/admin360 help - (no permission) - Display a list of commands
/admin360 - (no permission) - Display Admin360 information

Player Commands (admin360.player.*)
[]: Optional; <>: Compulsory
/ticket create [details] - (admin360.player.basic) - Create a new ticket.
/ticket cancel - (admin360.player.basic) - Remove your ticket from the queue.
/ticket status - (admin360.player.status) - Check your ticket status.
/ticket stats - (admin360.player.stats) - View ticket statistics.
/ticket yes - (admin360.player.basic) - Feedback: Upvote a service.
/ticket no - (admin360.player.basic) - Feedback: Downvote a service.

Staff Commands (admin360.staff.*)
[]: Optional; <>: Compulsory

STEP 1: Choosing a ticket

/ticket list - (admin360.staff.basic) - Display a list of tickets in the queue await to be processed. A handy tool for /ticket pick.
/ticket pick <name> - (admin360.staff.basic) - Hand-pick a ticket from the queue, often based on the info from /ticket list.
/ticker next - (admin360.staff.basic) - Proceed to process the next ticket in the queue. Good for those who are indecisive.
[2 options here: You either pick one, or do the next one.]

STEP 2: Processing a ticket
/ticket tp - (admin360.staff.tp) - Teleport to the player who opened the ticket that you are processing
/ticket info - (admin360.staff.info) - Retrieve the details about the ticket that you are processing
[Use other plugins for the communication part. e.g. /msg, /reply, etc.]

STEP 3: Making a decision
/ticket redirect <name> - (admin360.staff.redirect) - Redirect the ticket to another staff if it can only be resolved by staff of senior rank.
/ticket drop - (admin360.staff.drop) - Drop or abandon the ticket, maybe because the one who opened the ticket asked silly questions or raised unreasonable requests. This can avoid receiving a revenge rating from some bad guys.
/ticket close - (admin360.staff.basic) - Close and done-mark the ticket.
[3 options here: You either redirect the ticket to someone else, drop it or close it.]

Removal Tools
/ticket purge - (admin360.staff.purge) - Remove all tickets in the queue.
/ticket delete <name> - (admin360.staff.delete) - Delete silently everything related to a particular player regardless of his/her ticket status (except for completed tickets).

Honor Points System
/ticket hpstats [name] - (admin360.staff.hpstats) - Display honor points statistics.
/ticket hptop [#] - (admin360.staff.hptop) - Display honor points leaderboard.
/ticket history [#] - (admin360.staff.history) - Print honor points history. This can also be used as ticket history.
/ticket hpreset <name> - (admin360.staff.hpreset) - Reset all records of a particular staff. It will also affect his or her records in /ticket history.

Reload Config
/admin360 reload - (admin360.staff.reload) - Reload the config file.

IMPORTANT
These permissions are not given to any user groups by default. You have to add them to the suitable permission group(s) by yourself. Admin360 will recognise those who have the permission "admin360.staff.basic" as staff when they join the server.

To prevent boosting, your staff with permission "admin360.staff.basic" will not be allowed to use the command "/ticket create" by default. This is a hard-coded anti-exploit mechanism.


nGPzvQi.png

l8ArWwP.png

  • Java 7+
  • SQLite (org.sqlite.jdbc) or MySQL (com.mysql.jdbc) Drivers
    (Should have been installed by your hosting providers by default)
  • Permission Plugin (e.g. LuckPerms, PermissionEx, GroupManager, etc.)
  • Spigot 1.7.x/1.8.x/1.9.x/1.10.x/1.11.x/1.12.x/1.13.x/1.14.x/1.15.x/1.16.x (should be working on Bukkit, PaperSpigot or any of their forks)
  • For versions that support Bukkit 1.6 or earlier, download it from the old abandoned project page: https://dev.bukkit.org/bukkit-plugins/admin360/


nGPzvQi.png

Nrl5sI9.png

Code:
############################################################
# +------------------------------------------------------+ #
# |                       Notes                          | #
# +------------------------------------------------------+ #
############################################################

# Version 8.1.2
# Tested on Spigot 1.8.8, 1.12.2, 1.16.5.

# Config version = Plugin version.
# Do not change this unless you know what you're doing.
# This is for the plugin to check whether we should generate a new config for you.
version: '8.1.2'

# Whenever there's an update available, read the upgrade procedures as instructed on our spigot project page.
# If there're any changes made to this config, for example, if we've added several new settings or messages,
# you may have to compare the changes of the new and old config. And, it takes time to apply your old settings
# especially when the update is big.

# Since version 7.1.0, the plugin will auto-rename the old config file into "config_old.yml" on server restart.
# This is to make sure that everything works even if we reworked the config file (which is something I always do).
# But remember to delete the "config_old.yml" after you've migrated all the changes.
# If not, it may break this auto-rename feature on future updates.

# As you can see, the comments can be lengthy because we want to explain everything to you.
# If you really spend time read through this, then you will know how the plugin works.
# If you want to disable some messages, simply make it an empty line using ''.
# All default messages contain all the placeholders that can be used. You can remove it or duplicate it.
# However, placeholders will only work in that particular message.

# We welcome users to make translation of this config. Contact us so that we can put your translation official.
# Project : https://www.spigotmc.org/resources/admin360-reloaded.28285/
# Support : Dennie#8913 @ discord
# Authors : Dennie_Mok, PPT_T, vidhu1911



############################################################
# +------------------------------------------------------+ #
# |      Basic (perms, syntax, help, reload, database)   | #
# +------------------------------------------------------+ #
############################################################

no-permission: '&f[&6ADMIN360&f] &c&nAccess Denied&7 You do not have permission to use this command.'
incorrect-syntax: '&f[&6ADMIN360&f] &c&nIncorrect Syntax&7 Use &6/admin360 &7to display a list of commands.'
is-player-check: '&f[&6ADMIN360&f] &c&nAccess Denied&7 This is a player-only command.'
reload-message: '&f[&6ADMIN360&f] &7The config file has been reloaded successfully.'

# Database
# You MUST restart your server if you've changed the database settings and if you want the changes to apply.
# Admin360 will use SQLite if use-mysql is set to false.
# Drivers that we use: SQLite (org.sqlite.jdbc) and MYSQL (com.mysql.jdbc)
# Your hosting provider should have these installed by default. If you're running your server on Windows, SQLite is preferred.
# The other options such as host, port, database, username and password will only be valid if use-mysql is true.
use-mysql: false
host: 'localhost'
port: '3306'
database: 'database'
username: 'user'
password: 'password'

# Help Section: Player Commands
# This message supports multiple lines.
command-list-player:
  - ''
  - '&7&m------------&r &6ADMIN360 &7&m------------'
  - '&6/ticket create [details] &f- &7Open a ticket.'
  - '&6/ticket cancel &f- &7Cancel your ticket.'
  - '&6/ticket status &f- &7Query ticket status.'
  - '&6/ticket stats &f- &7View ticket statistics.'
  - '&6/ticket help &f- &7Print command list.'
  - '&b/admin360 &f- &7Display plugin info.'
  - '&7*&fParameters: [Optional] <Compulsory>'
  - '&7&m---------------------------------'
  - ''

# Help Section: Staff Commands
# This message supports multiple lines.
command-list-staff:
  - ''
  - '&7&m------------&r &6ADMIN360 &7&m------------'
  - '&fStep 1'
  - '&6/ticket list &f- &7View the ticket list.'
  - '&6/ticket pick <name> &f- &7Pick up a ticket.'
  - '&6/ticket next &f- &7Proceed to the next ticket.'
  - '&fStep 2'
  - '&6/ticket tp &f- &7Teleport to the player.'
  - '&6/ticket info &f- &7View the ticket details.'
  - '&fStep 3'
  - '&6/ticket redirect <name> &f- &7Redirect a ticket.'
  - '&6/ticket drop &f- &7Drop and abandon a ticket.'
  - '&6/ticket close &f- &7Done-mark a ticket.'
  - '&fRemoval'
  - '&6/ticket purge &f- &7Purge all queuing tickets.'
  - '&6/ticket delete <name> &f- &7Delete a ticket.'
  - '&fHonors'
  - '&6/ticket hpstats [name] &f- &7View HP stats.'
  - '&6/ticket hptop [#] &f- &7View HP leaderboard.'
  - '&6/ticket history [#] &f- &7View HP history.'
  - '&6/ticket hpreset <name> &f- &7Reset HP stats.'
  - '&b/admin360 reload &f- &7Reload the config file.'
  - '&7*&fParameters: [Optional] <Compulsory>'
  - '&7&m---------------------------------'
  - ''



############################################################
# +------------------------------------------------------+ #
# |                Create A Ticket (Player)              | #
# +------------------------------------------------------+ #
############################################################

# /ticket create [details] : Open a ticket with or without a description of the request.
# This is a player command which requires the permission "admin360.player.basic".

# create-failed-no-staff : Creation aborted because there are no staff online.
# create-failed-in-queue : Creation aborted because you already have a ticket opened.
# create-failed-in-progress : Creation aborted because a staff is attending your help-request.
# create-failed-require-feedback : Creation aborted because you still haven't submitted a feedback for your previous ticket.
# create-failed-anti-exploit : Creation aborted because you are a staff member. Staff is banned from ticket creation to prevent boosting.
# *boosting: self-ticketing exploit.
# create-succeeded : Creation succeeded. Your ticket has been put in the next position of the queue.

# After a ticket is opened, your staff (with permission "admin360.staff.basic") will be notified.

# Command cooldown to avoid spamming issues.
# The unit of cooldown-timer is seconds.
use-cooldown: true
cooldown-timer: 60
cooldown-message: '&f[&6ADMIN360&f] &7Please wait for &6<SECONDSLEFT>s&7 before opening another ticket.'

# Check if any staff members are currently available.
# If this is set to true, players will not be allowed to open a new ticket if there are no staff in the server.
# How do we determine between a player and a staff? Staff are those who have the permission "admin360.staff.basic".
staff-online-required: true
create-failed-no-staff: '&f[&6ADMIN360&f] &c&nCreate Failed&7 There are no staff currently available.'

create-failed-in-queue: '&f[&6ADMIN360&f] &c&nCreate Failed&7 You already have a ticket opened. (&fTips: &6/ticket status&7)'
create-failed-in-progress: '&f[&6ADMIN360&f] &c&nCreate Failed&7 You have another ticket in progress.(&fTips: &6/ticket status&7)'
create-failed-require-feedback: '&f[&6ADMIN360&f] &c&nCreate Failed&7 You may have forgotten to give us a feedback. (&fTips: &a/ticket yes&7, &c/ticket no&7)'
create-failed-anti-exploit: '&f[&6ADMIN360&f] &c&nCreate Failed&7 Members of the staff team are not allowed to open a ticket to avoid exploits.'

# This message supports multiple lines.
create-succeeded:
  - '&f[&6ADMIN360&f] &7You have opened a ticket (&fPosition: &c<POSITION>&7). Use &6/ticket status &7to check your progress.'
# Do you want to run a custom command right after a ticket is opened? Default example using title-manager.
# Change this to true if you want to use this option.
ticket-created-trigger-custom-command: false
ticket-created-custom-command: 'tm msg <PLAYERNAME> &b\n&6Ticket Created &7(&fPosition: &6<POSITION>&7)'

# Notify your staff when there is a ticket created.
# This message supports multiple lines.
ticket-created-notify-staff:
  - ''
  - '&f[&6ADMIN360&f] &6<PLAYERNAME> &copened a &a&lNEW &cticket.'
  - '&f[&6ADMIN360&f] &cDetails: &f<DETAILS>'
  - '&f[&6ADMIN360&f] &7(&e<TICKETSREMAIN> &fticket(s) remaining&7)'
  - ''



############################################################
# +------------------------------------------------------+ #
# |                Cancel A Ticket (Player)              | #
# +------------------------------------------------------+ #
############################################################

# /ticket cancel: Cancel your submitted request.
# This is a player command which requires the permission "admin360.player.basic".

# cancel-failed-no-ticket : You didn't opened any request. There are no request for you to cancel.
# cancel-failed-in-progress : You can't cancel your request because a staff is now attending it.
# cancel-failed-attending : You are a staff and you are processing a ticket. You cannot cancel any tickets.
# cancel-failed-require-feedback : You cannot cancel your request because you still haven't submitted a feedback for your previous ticket.
# cancel-succeeded : You have cancelled your submitted request successfully.

cancel-failed-no-ticket: '&f[&6ADMIN360&f] &c&nCancel Failed&7 Do you need help? (&fTips: &6/ticket create [details]&7)'
cancel-failed-in-progress: '&f[&6ADMIN360&f] &c&nCancel Failed&7 A staff is attending your help-request. (&fTips: &6/ticket status&7)'
cancel-failed-attending: '&f[&6ADMIN360&f] &c&nCancel Failed&7 Members of the staff team do not need this function.'
cancel-failed-require-feedback: '&f[&6ADMIN360&f] &c&nCancel Failed&7 You may have forgotten to give us a feedback. (&fTips: &a/ticket yes&7, &c/ticket no&7)'
cancel-succeeded: '&f[&6ADMIN360&f] &7You have removed your ticket from the queue successfully.'



############################################################
# +------------------------------------------------------+ #
# |           Check Ticket Status (Player/Staff)         | #
# +------------------------------------------------------+ #
############################################################

# /ticket status: Query the current status of your ticket.
# This is a player command which requires the permission "admin360.player.status".

# status-no-ticket : You didn't submit any help-requests. You can open one.
# status-in-queue : You already have a ticket opened, which is still in the queue at the moment.
# status-in-progress : A staff is attending your request at the moment.
# status-attending : You are a staff and you are currently attending a case.
# status-require-feedback : Your ticket is closed but you still haven't give us a feedback.

status-no-ticket: '&f[&6ADMIN360&f] &7Do you need help? (&fTips: &6/ticket create [details]&7)'
status-in-queue: '&f[&6ADMIN360&f] &7Your ticket is now in position &6<POSITION> &7of the queue.'
status-in-progress: '&f[&6ADMIN360&f] &7Your ticket is now in progress. A staff will contact you soon.'
status-attending: '&f[&6ADMIN360&f] &7You are attending a help-request at the moment. (&fTips: &6/ticket info&7)'
status-require-feedback: '&f[&6ADMIN360&f] &7You may have forgotten to give us a feedback. (&fTips: &a/ticket yes&7, &c/ticket no&7)'



############################################################
# +------------------------------------------------------+ #
# |         View Ticket Statistics (Player/Staff)        | #
# +------------------------------------------------------+ #
############################################################

# /ticket stats: Display tickets statistics.
# This is a player command which requires the permission "admin360.player.stats".

# <INQUEUE> <INPROGRESS> <AWAITING> <COMPLETED> are temporary counters.
# They will be reset once the server restarts. It's because they are stored in RAM.
# <TOTAL> is a counter of records of the database. <PERCENT> is the upvote ratio.
# They will not be reset on server restart.

# This message supports multiple lines.
stats-message:
  - ''
  - '&f[&6ADMIN360&f]     &c<INQUEUE> &fticket(s) in the queue.'
  - '&f[&6ADMIN360&f]     &e<INPROGRESS> &fticket(s) in progress.'
  - '&f[&6ADMIN360&f]     &a<AWAITING> &fticket(s) awaiting feedback.'
  - '&f[&6ADMIN360&f]     &b<COMPLETED> &fticket(s) completed today.'
  - '&f[&6ADMIN360&f]     &d<TOTAL> &ftotal ticket(s) &7(&f<PERCENT>%&a▲&7)'
  - ''



############################################################
# +------------------------------------------------------+ #
# |                 Pick A Ticket (Staff)                | #
# +------------------------------------------------------+ #
############################################################

# /ticket list: List out all the tickets from the queue.
# /ticket pick <name>: Pick a ticket from the queue and proceed.
# /ticket next: Proceed to process the next request in the queue.
# This is a staff command which requires the permission 'admin360.staff.basic".

# "next" and "pick" share the same messages and settings.
# next-failed-no-ticket : Currently, there are no tickets in the queue so you cannot proceed.
# next-failed-attending : You are still attending a request. That's why you can't proceed to process the next ticket.
# After picking a ticket, you will be teleport to the target player by Admin360 (which can be disabled).

# Your staff in the server (with permission "admin360.staff.basic") will be notified when the status of a ticket has
# changed. The player who created the ticket will also be informed.

list-message: '&f[&6ADMIN360&f] &6&l<INDEX> &7[&f<TIME>&7] &f<PLAYERNAME> &7: <DETAILS>'

next-failed-no-ticket: '&f[&6ADMIN360&f] &c&nNext Failed&7 There are no tickets at the moment.'
next-failed-attending: '&f[&6ADMIN360&f] &c&nNext Failed&7 You have to close your current ticket before attending the next one.'

# Do you want Admin360 to teleport your staff to the target player by default?
# Change this to false if you want to disable this option.
use-auto-teleport: true

# This message supports multiple lines.
ticket-in-progress-notify-player:
  - '&f[&6ADMIN360&f] &6<ADMINNAME> &7is now reviewing your request.'
# Do you want to run a custom command right after a ticket changed its status? Default example using title-manager.
# Change this to true if you want to use this option.
ticket-in-progress-trigger-custom-command: false
ticket-in-progress-custom-command: 'tm msg <PLAYERNAME> &b\n&6<ADMINNAME> &fis now reviewing your request.'

# This message supports multiple lines.
ticket-in-progress-notify-staff:
  - ''
  - '&f[&6ADMIN360&f] &6<ADMINNAME> &cis now processing &6<PLAYERNAME>&c''s ticket.'
  - '&f[&6ADMIN360&f] &7(&e<TICKETSREMAIN> &fticket(s) remaining&7)'
  - ''



############################################################
# +------------------------------------------------------+ #
# |             Teleport To The Target (Staff)           | #
# +------------------------------------------------------+ #
############################################################

# /ticket tp: It allows you to teleport to the player who opened the ticket that you are processing now.
# This is a staff command which requires the permission "admin360.staff.tp".

teleport-failed: '&f[&6ADMIN360&f] &c&nTeleport Failed&7 This function is disabled at the moment.'
teleport-succeeded: '&f[&6ADMIN360&f] &7You have been teleported to &6<PLAYERNAME>&7.'



############################################################
# +------------------------------------------------------+ #
# |                View Ticket Info (Staff)              | #
# +------------------------------------------------------+ #
############################################################

# /ticket info: Remember "/ticket create [details]"? This command enables you to read that details again.
# if you are processing that ticket (in case you forgot).
# This is a staff command which requires the permission "admin360.staff.info".

info-failed: '&f[&6ADMIN360&f] &c&nView-Info Failed&7 This function is disabled at the moment.'

# This message supports multiple lines.
info-message:
  - ''
  - '&f[&6ADMIN360&f]     &6Name: &f<PLAYERNAME>'
  - '&f[&6ADMIN360&f]     &6Details: &f<DETAILS>'
  - '&f[&6ADMIN360&f]     &6Time: &f<TIME>'
  - ''



############################################################
# +------------------------------------------------------+ #
# |                Redirect A Ticket (Staff)             | #
# +------------------------------------------------------+ #
############################################################

# /ticket redirect: Redirect and reassign a ticket to another staff.
# This is a staff command which requires the permission "admin360.staff.redirect".

# You will get the fail message either because the name you enter is invalid,
# or that staff is handling a request at the moment.
redirect-failed: '&f[&6ADMIN360&f] &c&nRedirect Failed&7 This ticket cannot be redirected to &6<ADMINNAME>&7.'
redirect-succeeded: '&f[&6ADMIN360&f] &7You have redirected this ticket to &6<ADMINNAME>&7.'



############################################################
# +------------------------------------------------------+ #
# |                 Drop A Ticket (Staff)                | #
# +------------------------------------------------------+ #
############################################################

# /ticket drop: Drop and abandon a ticket without the need to close it.
# This is a staff command which requires the permission "admin360.staff.drop".

drop-failed: '&f[&6ADMIN360&f] &c&nDrop Failed&7 You cannot use this function at the moment.'
drop-message: '&f[&6ADMIN360&f] &7You have cancelled &6<PLAYERNAME>&7''s ticket.'
drop-notify-player: '&f[&6ADMIN360&f] &7Your ticket has been cancelled by &6<ADMINNAME>&7.'



############################################################
# +------------------------------------------------------+ #
# |                 Close A Ticket (Staff)               | #
# +------------------------------------------------------+ #
############################################################

# /ticket close: Close a ticket and done-mark it.
# This is a staff command which requires the permission "admin360.staff.basic".

close-failed: '&f[&6ADMIN360&f] &c&nClose Failed&7 You are not attending any request at the moment.'
close-succeeded: '&f[&6ADMIN360&f] &7You have closed this ticket successfully.'



############################################################
# +------------------------------------------------------+ #
# |                 Give A Feedback (Player)             | #
# +------------------------------------------------------+ #
############################################################

# /ticket yes, /ticket no: After a ticket is closed, your player will be asked to rate the service.
# They can upvote or downvote. /ticket yes: upvote; /ticket no: downvote.
# This is a player command which requires the permission "admin360.player.basic".

# After a player has made a feedback, the ticket details will be stored as a record in the database.
# If not, then the database will not store anything. The details will only be kept in RAM.

# Set this to true if you want to remind your players to give feedback after their ticket are closed.
show-reminder: true

# If the above option (show-reminder) is set to true,
# a timed message (feedback-required) with an interval (reminder-frequency) measured in seconds
# will be set to remind your players to submit a feedback. This option can be disturbing for
# your players if you set the frequency to some low values.
# But sometimes, more annoying = more effective :)
reminder-frequency: 20

feedback-required: '&f[&6ADMIN360&f] &7We have completed your request. Are you satisfied with it? [&a/ticket yes&7, &c/ticket no&7].'
# Do you want to run a custom command if the player needs to give a feedback? Default example using chest-command.
# This can work really well with some plugins that opens a GUI with buttons triggering /ticket yes and /ticket no.
# Change this to true if you want to use this option.
feedback-trigger-custom-command: false
feedback-custom-command: 'chestcommands open feedback.yml <PLAYERNAME>'

feedback-not-required: '&f[&6ADMIN360&f] &7You are not required to submit a feedback at the moment.'
feedback-received: '&f[&6ADMIN360&f] &7Thank you for your feedback. We are looking forward to serving you again.'

# If you do not want your staff to know who actually votes for them, simply remove the placeholder.
upvote-rating-notify-staff: '&f[&6ADMIN360&f] &6<PLAYERNAME> &elikes &7your service. [&f1&a▲&7]'
downvote-rating-notify-staff: '&f[&6ADMIN360&f] &6<PLAYERNAME> &cdislikes &7your service. [&f1&c▼&7]'



############################################################
# +------------------------------------------------------+ #
# |                Remove A Ticket (Staff)              | #
# +------------------------------------------------------+ #
############################################################

# /ticket purge, /ticket delete <name>: Purge all pending tickets or delete a particular ticket.
# They are staff commands which require permission "admin360.staff.purge" and "admin360.staff.delete".

# Difference between purge and delete:
# Purge: Remove all tickets in the queue.
# Delete: Delete everything related to a particular player regardless of status.
# However, you cannot delete a completed ticket.

# This message supports multiple lines.
purge-message:
  - ''
  - '&f[&6ADMIN360&f]     &fPurged &c<AMOUNTPURGED> &fpending ticket(s).'
  - ''

#This message is used for /ticket delete and /ticket abandon.
delete-message: '&f[&6ADMIN360&f] &6<PLAYERNAME>&7''s ticket has been removed successfully.'



############################################################
# +------------------------------------------------------+ #
# |                  Honor Points (Staff)                | #
# +------------------------------------------------------+ #
############################################################

# /ticket hpstats [name]: Honor Points Statistics, /ticket hptop [#]: Honor Points Leaderboard.
# /ticket hpreset <name>: Clear Honor points of a staff.
# They are staff commands which require the permissions "admin360.staff.hptop", "admin360.staff.hpstats"
# and "admin360.staff.hpreset".

# This message supports multiple lines.
hpstats-message:
  - ''
  - '&f[&6ADMIN360&f]     &6<ADMINNAME>&f''s Statistics'
  - '&f[&6ADMIN360&f]     &a<UPVOTE> &fupvote(s) &a▲'
  - '&f[&6ADMIN360&f]     &c<DOWNVOTE> &fdownvote(s) &c▼'
  - '&f[&6ADMIN360&f]     &e<TOTAL> &ftotal ticket(s) &a▲&c▼'
  - '&f[&6ADMIN360&f]     &b<PERCENT>% &fsatisfaction &a▲'
  - ''

# Set the number of records shown in hptop.
default-leaderboard-output: 5

# This message supports multiple lines.
leaderboard-title:
  - ''
  - '&7&m-------------&r &6LEADERBOARD &7&m-------------'
  - '         &7[ &a▲&fUpvote  &c▼&fDownvote  &a▲&c▼&fTotal &7]'
  - ''

# hptop body message
leaderboard-body: '           &6<ADMINNAME>&7: &f<UPVOTE>&a▲ &f<DOWNVOTE>&c▼ &f<TOTAL>&a▲&c▼ &f<PERCENT>%&a▲'

# This message supports multiple lines.
leaderboard-footer:
  - ''
  - '&7&m--------------------------------------'
  - ''

# Names are stored in the database with case preserved. Case-sensitive for name inputs.
reset-hpstats-failed: '&f[&6ADMIN360&f] &c&nReset Failed&7 Player not found. Names are case-sensitive.'
reset-hpstats-succeeded: '&f[&6ADMIN360&f] &7You have reset &6<ADMINNAME>&7''s stats successfully.'



############################################################
# +------------------------------------------------------+ #
# |              Ticket / HP History (Staff)             | #
# +------------------------------------------------------+ #
############################################################

# /ticket history [#]: Honor Points History.
# This is a staff command which requires the permission "admin360.staff.history".

# This command is closely related to the Honor Points system.
# If a /ticket hpreset is executed, all the records related to that staff will also be removed.
# A ticket will only appear in the history as a record when it is completed. That's because tickets
# in other stages (in queue, in progress, awaiting feedback) will not be stored in the database.
# They will only be stored temporarily in RAM.

# Set the number of records shown in history.
default-history-output: 5

# This message supports multiple lines.
history-title:
  - ''
  - '&7&m-----------------&r &6HISTORY &7&m-----------------'
  - '     &7[ &aP: &fPlayer  &cS: &fStaff  &dR: &fRating  &eD: &fDetails &7]'
  - ''

# History body message
#<TIME> is the time that the player opened the ticket.
history-body: '&7[&f<TIME>&7] &aP:&f<PLAYERNAME> &cS:&f<ADMINNAME> &dR:&f<RATING> &eD:&f<DETAILS>'
upvote-indicator: '&a▲'
downvote-indicator: '&c▼'

# This message supports multiple lines.
history-footer:
  - ''
  - '&7&m------------------------------------------'
  - ''



############################################################
# +------------------------------------------------------+ #
# |                      Final Notes                     | #
# +------------------------------------------------------+ #
############################################################

# End of file. You're done with the configuration. Congratulations!

# Project : https://www.spigotmc.org/resources/admin360-reloaded.28285/
# Support : Dennie#8913 @ discord
# Authors : Dennie_Mok, PPT_T, vidhu1911


nGPzvQi.png

LAjPvrM.png

Is this just another ticket plugin?
Well, not quite really. Although we call the thing that a player opens a "ticket", it's actually more accurate if we call that a "help request" (We call it a ticket to make things less complicated to understand). Admin360 is more like an advanced version of /helpop (if you know what that is) because it only handles active requests from players that are online. So, technically, it's a real-time queuing system for a busy server that needs to process a lot of player requests. The best thing is that it also includes a feedback and statistics system so that you will know how your staff team performs. And, it's also a good way to keep them motivated with some number games.

I have made a translation. Can I share it with you?
Of course! If you would like to share it with other users, please contact me. I can make your translation official!

Can I request to add or change something?
Well, it depends, because I'm not that smart. If it's something simple, like you would like me to add some new messages or options, or simply you just want to change some of the commands or permissions, then maybe I'm able to help! I do accept reasonable request to make some minor adjustment to your liking. I can even release a private version just for you if that's something within my ability. Remember, this's just a free plugin, and my primary duty is to make sure it's bug-free. But I'm always happy to help. Just ask me nicely then everything can be discussed.

Can you help me to update my config.yml?
Yes! I'm always happy to help. I know it can be hard for those who are upgrading from previous versions because in every update I always rework the config. It's absolutely normal if you're confused about the changes. Just contact me, and I will personally serve you. If you don't ask support from me, then I'll feel bored. I always want to help people, but no one asks me... But anyway, I recommend using this difference checker tool (https://www.diffchecker.com/) to find the changes between the new and old config.yml. And, use Sublime Text to edit .yml files.

My config.yml keeps regenerating! What can I do?
Opps! It seems that you have made some YAML format mistakes! Try to use a text editor called Sublime Text to edit your .yml files because it has an error detection feature. You may also check your console. It will specify the line number that the YAML format error is located. If you need help, feel free to contact me.

Does this plugin support MySQL and BungeeCord?

Yes and No. We do support MySQL, but it doesn't mean that we have support for BungeeCord. That's because it cannot be run directly on BungeeCord, and the message or teleport is not something that we can integrate into BungeeCord at the moment. If you own a network of servers and want things to be consistent, you may install this plugin independently on a few of your sub-servers, and connect them to the same MySQL database.

How to edit the database file?
Everything is stored in the database, either with SQLite or MySQL. For SQLite users, if you want to reset the whole thing, you just have to delete the .db file and restart the server. But if you want to do more manipulations, like you want to execute some other SQL commands or queries, then I suggest using DB Browser for SQLite. It's a must-have tool for server owners to edit local .db files. Believe me, it's very easy to use. I can help you with that if you really find it difficult. I love playing with SQL commands so I can be the right person to solve your problems.

Does it support UUID change?
No, Admin360-Reloaded stores records based on names of players. To be more accurate, case-sensitive names. If you really insist to do so, try using DB Browser for SQLite for doing the replacement (Tips: Use the UPDATE SQL command).

How to set up a command alias? e.g. Replace /ticket with /request
Let's say you don't want "/ticket" to be the primary command. You want "/request" instead. How to do that? Well, it's something quite simple to do.
Step 1: Find a file called "commands.yml" in your server repository. Open it with a text editor.
Step 2: Edit it according to the example below and save it.
$1 here means parsing all latter arguments from the old command to the new command so that under all conditions /request xxx is the same as /ticket xxx.
Code:
command-block-overrides: []
aliases:
  request:
  - ticket $1-
Step 3: Restart your server.

I got garbled messages â–²! How to solve encoding issues?
If you are having issues with garbled characters in the config.yml because maybe you have typed in some special Unicode symbols or some Chinese texts (e.g. â–² = ▲), then you can try to add the "-Dfile.encoding=UTF-8" java flag to your startup script for your server, which may look like this:
Code:
java -Dfile.encoding=UTF-8 -jar server.jar
This issue often happens if you run your server on Mircosoft Windows. That's because the config is using UTF-8 encoding, but your Windows might not. Trust me, I know what exactly you have to do. Just add the flag and problem solved.

I got the "Plugin Admin360-Reloaded does not specify an api-version." error in the console. Does it matter?
Just ignore that silly warning because the plugin will still work without any problems. Spigot provides a legacy layer for legacy plugins. That warning is to inform you that spigot will run Admin360 on that layer instead of the new API. I know it's very easy to specify the api-version from my side. I've tried that before, but it turns out that if I ever do so, then I will have to make several .jar for each of the version, which is not something I would like to do. But if you want one, I can make one for you. Just contact me so that I could help you.
Crediting original
Dennie (New Author), PPT_T (GitLab), vidhu1911 (Old Author)

Latest updates

  1. Admin360-Reloaded v8.1.2 - Code Refactoring, Patched Critical Bugs, Tested on 1.16.5

    This is a Stable Release. If you are using 8.1.1-DEV, it is highly recommended for you to...

Author

Author
mokdennie26
Downloads
8
Views
182
First release
Last update
Rating
0.00 star(s) 0 ratings
Top
You need to upgrade!
Our dark style is reserved for our Premium members. Upgrade here.