MineCICD added "plugins"

This commit is contained in:
minster586
2024-10-05 22:23:51 -04:00
committed by minster586
parent 15691e7567
commit a7c7616624
198 changed files with 59954 additions and 1 deletions

1
.gitignore vendored
View File

@@ -18,6 +18,7 @@
# Line 10-11 is used for INSERTING new files or directories to be unignored, done by MineCICD!
# MineCICD GITIGNORE PART BEGIN MARKER
!/plugins/
# MineCICD GITIGNORE PART END MARKER
# Any manual exclusions / inclusions shall be done below this line

View File

@@ -0,0 +1,22 @@
#░█████╗░░█████╗░███╗░░░███╗███╗░░░███╗░█████╗░███╗░░██╗██████╗░░██████╗
#██╔══██╗██╔══██╗████╗░████║████╗░████║██╔══██╗████╗░██║██╔══██╗██╔════╝
#██║░░╚═╝██║░░██║██╔████╔██║██╔████╔██║███████║██╔██╗██║██║░░██║╚█████╗░
#██║░░██╗██║░░██║██║╚██╔╝██║██║╚██╔╝██║██╔══██║██║╚████║██║░░██║░╚═══██╗
#╚█████╔╝╚█████╔╝██║░╚═╝░██║██║░╚═╝░██║██║░░██║██║░╚███║██████╔╝██████╔╝
#░╚════╝░░╚════╝░╚═╝░░░░░╚═╝╚═╝░░░░░╚═╝╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░╚═════╝░
## Run a list of commands seconds before the restart executes
## This feature is made for specific type of users, most plugins will execute save functions on disable
## Main branch
commands:
## Enable or disable commands to execute before the server restarts
enabled: false
## The amount of time to give to execute commands
seconds: 5
## The list of commands to run
list:
- 'say This is a test command'
- 'say I think it works?'
## DO NOT TOUCH!!
version: 2

View File

@@ -0,0 +1,29 @@
#███████╗░█████╗░██████╗░███╗░░░███╗░█████╗░████████╗
#██╔════╝██╔══██╗██╔══██╗████╗░████║██╔══██╗╚══██╔══╝
#█████╗░░██║░░██║██████╔╝██╔████╔██║███████║░░░██║░░░
#██╔══╝░░██║░░██║██╔══██╗██║╚██╔╝██║██╔══██║░░░██║░░░
#██║░░░░░╚█████╔╝██║░░██║██║░╚═╝░██║██║░░██║░░░██║░░░
#╚═╝░░░░░░╚════╝░╚═╝░░╚═╝╚═╝░░░░░╚═╝╚═╝░░╚═╝░░░╚═╝░░░
## These are the formatting tags your can use in all text/messages and popups
## They are configurable to suit your needs when formatting text
## Main Branch
format:
## Hours till server restart
hours: '%h'
## Minutes till server restart
minutes: '%m'
## Seconds till server restart
seconds: '%s'
## Max players amount. This formats the text to `max_players.amount`
maxplayers_amount: '%a'
## Max players amount. This formats the text to `max_players.delay`
maxplayers_delay: '%d'
## DO NOT TOUCH!!
version: 1

View File

@@ -0,0 +1,187 @@
#░██████╗░██╗░░░░░░█████╗░██████╗░░█████╗░██╗░░░░░
#██╔════╝░██║░░░░░██╔══██╗██╔══██╗██╔══██╗██║░░░░░
#██║░░██╗░██║░░░░░██║░░██║██████╦╝███████║██║░░░░░
#██║░░╚██╗██║░░░░░██║░░██║██╔══██╗██╔══██║██║░░░░░
#╚██████╔╝███████╗╚█████╔╝██████╦╝██║░░██║███████╗
#░╚═════╝░╚══════╝░╚════╝░╚═════╝░╚═╝░░╚═╝╚══════╝
#
#██████╗░██████╗░░█████╗░░█████╗░██████╗░░█████╗░░█████╗░░██████╗████████╗░██████╗
#██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██╔════╝
#██████╦╝██████╔╝██║░░██║███████║██║░░██║██║░░╚═╝███████║╚█████╗░░░░██║░░░╚█████╗░
#██╔══██╗██╔══██╗██║░░██║██╔══██║██║░░██║██║░░██╗██╔══██║░╚═══██╗░░░██║░░░░╚═══██╗
#██████╦╝██║░░██║╚█████╔╝██║░░██║██████╔╝╚█████╔╝██║░░██║██████╔╝░░░██║░░░██████╔╝
#╚═════╝░╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝╚═════╝░░░░╚═╝░░░╚═════╝░
## Broadcasts adds flexibility on what you want your players to see!
## Everyone will see these messages, except the person initiating the command.
## They will receive their own Private Message.
## You have the option to enabled/disable these functions, as well as individually enabling/disabling
## the text message or the title popup.
## Global broadcasts include the prefix in "main.prefix" config.
## Messages have multi line support!
## All messages can use the format tags specified in the format.yml config
## To understand ticks. 1 second is relevant to 20 ticks! So a second and a half (1.5s) is 30 ticks!
## timing is displayed as fadein:stay:fadeout
## Example: 20:40:20
## fadein: 20 (ticks) (1 second)
## stay: 40 (ticks) (2 second)
## fadeout: 20 (ticks) (1 second)
## Fadein, stay, fadeout are the 3 arguments. You can edit how long it takes to fadein, fadeout etc.
## You can also put the fade numbers to 0, and then the popup's will be instant!
## Get creative!
## Main Branch
global_broadcasts:
##▒█▀▄▀█ ▀█▀ ▒█▄░▒█ ▒█░▒█ ▀▀█▀▀ ▒█▀▀▀ ▒█▀▀▀█
##▒█▒█▒█ ▒█░ ▒█▒█▒█ ▒█░▒█ ░▒█░░ ▒█▀▀▀ ░▀▀▀▄▄
##▒█░░▒█ ▄█▄ ▒█░░▀█ ░▀▄▄▀ ░▒█░░ ▒█▄▄▄ ▒█▄▄▄█
## Broadcast message for the minute reminder
minutes:
message:
enabled: true
text:
- 'Server Will Restart In %m Minutes!'
popup:
enabled: true
title:
text: '&cServer Restarting In'
timing: '20:40:20'
subtitle:
text: '&f%m &cMinutes!'
timing: '20:40:20'
##▒█▀▀▀█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀▀█ ▒█▄░▒█ ▒█▀▀▄ ▒█▀▀▀█
##░▀▀▀▄▄ ▒█▀▀▀ ▒█░░░ ▒█░░▒█ ▒█▒█▒█ ▒█░▒█ ░▀▀▀▄▄
##▒█▄▄▄█ ▒█▄▄▄ ▒█▄▄█ ▒█▄▄▄█ ▒█░░▀█ ▒█▄▄▀ ▒█▄▄▄█
## Broadcast message for the second reminder
seconds:
message:
enabled: true
text:
- 'Server is restarting in %s Seconds!'
popup:
enabled: true
title:
text: '&cServer Restarting In'
timing: '5:20:5'
subtitle:
text: '&f%s &cSeconds!'
timing: '5:20:5'
##▒█▀▀▀█ ▀▀█▀▀ ░█▀▀█ ▀▀█▀▀ ▒█░▒█ ▒█▀▀▀█
##░▀▀▀▄▄ ░▒█░░ ▒█▄▄█ ░▒█░░ ▒█░▒█ ░▀▀▀▄▄
##▒█▄▄▄█ ░▒█░░ ▒█░▒█ ░▒█░░ ░▀▄▄▀ ▒█▄▄▄█
## Show the broadcast when '/autore resume' or '/autore pause' is called
status:
## Show the broadcast when typed '/autore resume'
resume:
message:
enabled: true
text:
- '&cAutoRestart timer has resumed!'
popup:
enabled: true
title:
text: '&cAutoRestart has started!'
timing: '20:40:20'
subtitle:
text: ''
timing: '20:40:20'
## Show the broadcast when typed '/autore pause'
pause:
message:
enabled: true
text:
- '&cAutoRestart timer has been paused'
popup:
enabled: true
title:
text: '&cAutoRestart has been paused!'
timing: '20:40:20'
subtitle:
text: ''
timing: '20:40:20'
##▒█▀▀█ ▒█░▒█ ░█▀▀█ ▒█▄░▒█ ▒█▀▀█ ▒█▀▀▀
##▒█░░░ ▒█▀▀█ ▒█▄▄█ ▒█▒█▒█ ▒█░▄▄ ▒█▀▀▀
##▒█▄▄█ ▒█░▒█ ▒█░▒█ ▒█░░▀█ ▒█▄▄█ ▒█▄▄▄
## Show the broadcast when '/autore in' is called
change:
message:
enabled: true
text:
- '&cServer now is restarting in &f%h&cH &f%m&cM &f%s&cS!'
popup:
enabled: true
title:
text: '&cServer Restarting In'
timing: '20:40:20'
subtitle:
text: '&f%h&cH &f%m&cM &f%s&cS!'
timing: '20:40:20'
##▒█▀▄▀█ ░█▀▀█ ▀▄▒▄▀ ▒█▀▀█ ▒█░░░ ░█▀▀█ ▒█░░▒█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀▀█
##▒█▒█▒█ ▒█▄▄█ ░▒█░░ ▒█▄▄█ ▒█░░░ ▒█▄▄█ ▒█▄▄▄█ ▒█▀▀▀ ▒█▄▄▀ ░▀▀▀▄▄
##▒█░░▒█ ▒█░▒█ ▄▀▒▀▄ ▒█░░░ ▒█▄▄█ ▒█░▒█ ░░▒█░░ ▒█▄▄▄ ▒█░▒█ ▒█▄▄▄█
## Show the Maxplayers broadcast
max_players:
## The message broadcasted when too many players are online on restart!
alert:
message:
enabled: true
text:
- '&bToo many players online for restart. Max &f%a&b amount of players allowed for a restart. Waiting for players to leave!'
popup:
enabled: true
title:
text: '&bToo many players online for restart.'
timing: '20:40:20'
subtitle:
text: 'Max &f%a&b amount of players allowed for a restart.'
timing: '20:40:20'
## This message appears when the amount of players requirement is met!
pre_shutdown:
message:
enabled: true
text:
- '&aServer now restarting in &f%d&a seconds!'
popup:
enabled: true
title:
text: '&aServer now restarting in &f%d&a seconds!'
timing: '20:40:20'
subtitle:
text: ''
timing: '20:40:20'
## This message appears when the timeout has been reached
timeout:
message:
enabled: true
text:
- '&aPlayers took too long to leave!'
popup:
enabled: true
title:
text: '&aPlayers took too long to leave!'
timing: '20:40:20'
subtitle:
text: '&aServer now restarting in &f%d&a seconds!'
timing: '20:40:20'
##▒█▀▀▀█ ▒█░▒█ ▒█░▒█ ▀▀█▀▀ ▒█▀▀▄ ▒█▀▀▀█ ▒█░░▒█ ▒█▄░▒█
##░▀▀▀▄▄ ▒█▀▀█ ▒█░▒█ ░▒█░░ ▒█░▒█ ▒█░░▒█ ▒█▒█▒█ ▒█▒█▒█
##▒█▄▄▄█ ▒█░▒█ ░▀▄▄▀ ░▒█░░ ▒█▄▄▀ ▒█▄▄▄█ ▒█▄▀▄█ ▒█░░▀█
## Global shutdown message
shutdown:
message:
enabled: true
text:
- '&cServer Restarting!'
popup:
enabled: true
title:
text: '&cServer is now'
timing: '20:80:20'
subtitle:
text: '&cRestarting!'
timing: '20:80:20'
## DO NOT TOUCH!!
version: 2

View File

@@ -0,0 +1,38 @@
#███╗░░░███╗░█████╗░██╗███╗░░██╗
#████╗░████║██╔══██╗██║████╗░██║
#██╔████╔██║███████║██║██╔██╗██║
#██║╚██╔╝██║██╔══██║██║██║╚████║
#██║░╚═╝░██║██║░░██║██║██║░╚███║
#╚═╝░░░░░╚═╝╚═╝░░╚═╝╚═╝╚═╝░░╚══╝
## Main branch
main:
## Sets the restart command after players have been kicked
execution: 'restart'
## This will recalculate the restart countdown when using '/autore reload'
recalculate_onreload: false
## Restart modes available 'interval', and 'timestamp'
restart_mode: 'interval'
## Restart mode specific settings
modes:
## Restart server in intervals
interval:
## Set the multiplication factor
## Options are 'hours' or 'days'
factor: 'hours'
## Set the value of the interval
## Decimals are allowed
value: 3.0
## Set the timestamp in 24 hour time format HH:MM
## Multiple timestamps allowed
timestamp:
- '0:00'
- '6:00'
- '12:00'
- '18:00'
## Server wide prefix for all chat broadcasts
prefix: '&f[&7AutoRestart&f] &e'
## Client restart message in game chat
kick_message: '&cServer Restarting! We will be back up any minute!'
## DO NOT TOUCH!!
version: 4

View File

@@ -0,0 +1,32 @@
#███╗░░░███╗░█████╗░██╗░░██╗  ██████╗░██╗░░░░░░█████╗░██╗░░░██╗███████╗██████╗░░██████╗
#████╗░████║██╔══██╗╚██╗██╔╝  ██╔══██╗██║░░░░░██╔══██╗╚██╗░██╔╝██╔════╝██╔══██╗██╔════╝
#██╔████╔██║███████║░╚███╔╝░  ██████╔╝██║░░░░░███████║░╚████╔╝░█████╗░░██████╔╝╚█████╗░
#██║╚██╔╝██║██╔══██║░██╔██╗░  ██╔═══╝░██║░░░░░██╔══██║░░╚██╔╝░░██╔══╝░░██╔══██╗░╚═══██╗
#██║░╚═╝░██║██║░░██║██╔╝╚██╗  ██║░░░░░███████╗██║░░██║░░░██║░░░███████╗██║░░██║██████╔╝
#╚═╝░░░░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝  ╚═╝░░░░░╚══════╝╚═╝░░╚═╝░░░╚═╝░░░╚══════╝╚═╝░░╚═╝╚═════╝░
## This will stop your server from shutting down if you have more than X amount of players configured in "amount".
## This is a beta feature. If you have any ideas, or recommendations about this feature you would like to
## add. Do not hesitate to message me on SpigotMC. I would love to hear what your think I should change/add!
## I love feedback and ideas.
## Main branch
max_players:
## Enable or Disable this feature
enabled: false
## The max amount of players allowed for a restart. If you set this to 10, and your server has 11 people online
## your server will not shutdown until the amount of players is less than of equal to the amount set.
amount: 10
## The delay for the server to restart once player count as been met.
## If players join the server during this delay, the server will continue to restart.
## This is in seconds
delay: 10
## The timeout is the amount of time AutoRestart will give to the players to log out.
## If the amount is never reached within X minutes, then the server
## Will force restart. This prevents the server from never restarting due to high player traffic,
## but will give players time to wrap up their tasks.
## This is in minutes.
timeout: 15
## DO NOT TOUCH!!
version: 4

View File

@@ -0,0 +1,67 @@
#██████╗░███████╗██████╗░███╗░░░███╗██╗░██████╗░██████╗██╗░█████╗░███╗░░██╗░██████╗
#██╔══██╗██╔════╝██╔══██╗████╗░████║██║██╔════╝██╔════╝██║██╔══██╗████╗░██║██╔════╝
#██████╔╝█████╗░░██████╔╝██╔████╔██║██║╚█████╗░╚█████╗░██║██║░░██║██╔██╗██║╚█████╗░
#██╔═══╝░██╔══╝░░██╔══██╗██║╚██╔╝██║██║░╚═══██╗░╚═══██╗██║██║░░██║██║╚████║░╚═══██╗
#██║░░░░░███████╗██║░░██║██║░╚═╝░██║██║██████╔╝██████╔╝██║╚█████╔╝██║░╚███║██████╔╝
#╚═╝░░░░░╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝╚═╝╚═════╝░╚═════╝░╚═╝░╚════╝░╚═╝░░╚══╝╚═════╝░
## Nothing will happen if you edit this file, this is to help you setup
## the permissions for AutoRestart.
#▒█▀▀▄ ▒█▀▀▀ ▒█▀▀▀ ░█▀▀█ ▒█░▒█ ▒█░░░ ▀▀█▀▀
#▒█░▒█ ▒█▀▀▀ ▒█▀▀▀ ▒█▄▄█ ▒█░▒█ ▒█░░░ ░▒█░░
#▒█▄▄▀ ▒█▄▄▄ ▒█░░░ ▒█░▒█ ░▀▄▄▀ ▒█▄▄█ ░▒█░░
autorestart:
default: true
command: '/autore'
autorestart.help:
default: true
command: '/autore help'
autorestart.time:
default: true
command: '/autore time'
#░█▀▀█ ▒█▀▀▄ ▒█▀▄▀█ ▀█▀ ▒█▄░▒█
#▒█▄▄█ ▒█░▒█ ▒█▒█▒█ ▒█░ ▒█▒█▒█
#▒█░▒█ ▒█▄▄▀ ▒█░░▒█ ▄█▄ ▒█░░▀█
autorestart.admin:
- autorestart.in
- autorestart.now
- autorestart.pause
- autorestart.resume
autorestart.in:
default: false
command: '/autore in'
autorestart.now:
default: false
command: '/autore now'
autorestart.pause:
default: false
command: '/autore pause'
autorestart.resume:
default: false
command: '/autore resume'
#░█▀▀█ ▒█░░░ ▒█░░░
#▒█▄▄█ ▒█░░░ ▒█░░░
#▒█░▒█ ▒█▄▄█ ▒█▄▄█
autorestart.*:
- autorestart.help
- autorestart.time
- autorestart.resume
- autorestart.pause
- autorestart.in
- autorestart.reload
- autorestart.now
## DO NOT TOUCH!!
version: 1

View File

@@ -0,0 +1,123 @@
#██████╗░██████╗░██╗██╗░░░██╗░█████╗░████████╗███████╗
#██╔══██╗██╔══██╗██║██║░░░██║██╔══██╗╚══██╔══╝██╔════╝
#██████╔╝██████╔╝██║╚██╗░██╔╝███████║░░░██║░░░█████╗░░
#██╔═══╝░██╔══██╗██║░╚████╔╝░██╔══██║░░░██║░░░██╔══╝░░
#██║░░░░░██║░░██║██║░░╚██╔╝░░██║░░██║░░░██║░░░███████╗
#╚═╝░░░░░╚═╝░░╚═╝╚═╝░░░╚═╝░░░╚═╝░░╚═╝░░░╚═╝░░░╚══════╝
#
#███╗░░░███╗███████╗░██████╗░██████╗░█████╗░░██████╗░███████╗░██████╗
#████╗░████║██╔════╝██╔════╝██╔════╝██╔══██╗██╔════╝░██╔════╝██╔════╝
#██╔████╔██║█████╗░░╚█████╗░╚█████╗░███████║██║░░██╗░█████╗░░╚█████╗░
#██║╚██╔╝██║██╔══╝░░░╚═══██╗░╚═══██╗██╔══██║██║░░╚██╗██╔══╝░░░╚═══██╗
#██║░╚═╝░██║███████╗██████╔╝██████╔╝██║░░██║╚██████╔╝███████╗██████╔╝
#╚═╝░░░░░╚═╝╚══════╝╚═════╝░╚═════╝░╚═╝░░╚═╝░╚═════╝░╚══════╝╚═════╝░
## These are private messages sent to the player when the event is triggered. If the same task is enabled in
## "global_broadcast", this player will not see the global message, but his own.
## You have the option to enabled/disable these functions, as well as individually enabling/disabling
## the text message or the title popup.
## Global broadcasts include the prefix in "main.prefix" config.
## Messages have multi line support!
## All messages can use the format tags specified in the format.yml config
## To understand ticks. 1 second is relevant to 20 ticks! So a second and a half (1.5s) is 30 ticks!
## timing is displayed as fadein:stay:fadeout
## Example: 20:40:20
## fadein: 20 (ticks) (1 second)
## stay: 40 (ticks) (2 second)
## fadeout: 20 (ticks) (1 second)
## Fadein, stay, fadeout are the 3 arguments. You can edit how long it takes to fadein, fadeout etc.
## You can also put the fade numbers to 0, and then the popup's will be instant!
## Get creative!
## Main Branch
private_messages:
##▀▀█▀▀ ▀█▀ ▒█▀▄▀█ ▒█▀▀▀
##░▒█░░ ▒█░ ▒█▒█▒█ ▒█▀▀▀
##░▒█░░ ▄█▄ ▒█░░▒█ ▒█▄▄▄
## Show the message when type /autore time
time:
message:
enabled: true
text:
- '&cServer restarting in &f%h&cH &f%m&cM &f%s&cS!'
popup:
enabled: true
title:
text: '&cServer Restarting In'
timing: '20:40:20'
subtitle:
text: '&f%h&cH &f%m&cM &f%s&cS!'
timing: '20:40:20'
##▒█▀▀▀█ ▀▀█▀▀ ░█▀▀█ ▀▀█▀▀ ▒█░▒█ ▒█▀▀▀█
##░▀▀▀▄▄ ░▒█░░ ▒█▄▄█ ░▒█░░ ▒█░▒█ ░▀▀▀▄▄
##▒█▄▄▄█ ░▒█░░ ▒█░▒█ ░▒█░░ ░▀▄▄▀ ▒█▄▄▄█
## Show the message when typed '/autore resume' or '/autore pause'
status:
## Show the message when typed '/autore resume'
resume:
message:
enabled: true
text:
- '&cYou have resumed AutoRestart timer!'
popup:
enabled: true
title:
text: '&cYou started AutoRestart back up!'
timing: '20:40:20'
subtitle:
text: ''
timing: '20:40:20'
## Show the message when typed '/autore pause'
pause:
message:
enabled: true
text:
- '&cYou have paused AutoRestart timer'
popup:
enabled: true
title:
text: '&cYou have paused AutoRestart!'
timing: '20:40:20'
subtitle:
text: ''
timing: '20:40:20'
##▒█▀▀█ ▒█░▒█ ░█▀▀█ ▒█▄░▒█ ▒█▀▀█ ▒█▀▀▀
##▒█░░░ ▒█▀▀█ ▒█▄▄█ ▒█▒█▒█ ▒█░▄▄ ▒█▀▀▀
##▒█▄▄█ ▒█░▒█ ▒█░▒█ ▒█░░▀█ ▒█▄▄█ ▒█▄▄▄
## Show the broadcast when the server time has been changed!
change:
message:
enabled: true
text:
- '&cServer now is restarting in &f%h&cH &f%m&cM &f%s&cS!'
popup:
enabled: true
title:
text: '&cYou Changed Restart Time to'
timing: '20:40:20'
subtitle:
text: '&f%h&cH &f%m&cM &f%s&cS!'
timing: '20:40:20'
##▒█▀▀█ ░█▀▀█ ▒█░▒█ ▒█▀▀▀█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀▀ ▒█▀▄▀█ ▀█▀ ▒█▄░▒█ ▒█▀▀▄ ▒█▀▀▀ ▒█▀▀█
##▒█▄▄█ ▒█▄▄█ ▒█░▒█ ░▀▀▀▄▄ ▒█▀▀▀ ▒█▄▄▀ ▒█▀▀▀ ▒█▒█▒█ ▒█░ ▒█▒█▒█ ▒█░▒█ ▒█▀▀▀ ▒█▄▄▀
##▒█░░░ ▒█░▒█ ░▀▄▄▀ ▒█▄▄▄█ ▒█▄▄▄ ▒█░▒█ ▒█▄▄▄ ▒█░░▒█ ▄█▄ ▒█░░▀█ ▒█▄▄▀ ▒█▄▄▄ ▒█░▒█
## This shows a reminder to 'autorestart.admin' players that the server is still paused.
## This is to prevent the staff from forgetting to leave the server paused.
pause_reminder:
message:
enabled: true
text:
- "&cDon't forget that the server countdown is still paused!"
popup:
enabled: true
title:
text: "&cDon't forget that"
timing: '20:40:20'
subtitle:
text: '&cAutoRestart timer is still paused!'
timing: '20:40:20'
## DO NOT TOUCH!!
version: 2

View File

@@ -0,0 +1,29 @@
#██████╗░███████╗███╗░░░███╗██╗███╗░░██╗██████╗░███████╗██████╗░
#██╔══██╗██╔════╝████╗░████║██║████╗░██║██╔══██╗██╔════╝██╔══██╗
#██████╔╝█████╗░░██╔████╔██║██║██╔██╗██║██║░░██║█████╗░░██████╔╝
#██╔══██╗██╔══╝░░██║╚██╔╝██║██║██║╚████║██║░░██║██╔══╝░░██╔══██╗
#██║░░██║███████╗██║░╚═╝░██║██║██║░╚███║██████╔╝███████╗██║░░██║
#╚═╝░░╚═╝╚══════╝╚═╝░░░░░╚═╝╚═╝╚═╝░░╚══╝╚═════╝░╚══════╝╚═╝░░╚═╝
## Reminders will execute in the specified times to let players know when is the next restart
## Main Branch
reminder:
## Enables or Disables restart reminder
enabled:
minutes: true
seconds: true
## minutes before restart
minutes:
- 15
- 10
- 5
- 1
## AutoRestart will countdown the seconds till restart start
seconds: 5
## This will remind you that the server timer is paused. This message will be sent to
## people with 'autorestart.admin' permission
## This is set in minutes
pause_reminder: 10
## DO NOT TOUCH!!
version: 2

View File

@@ -0,0 +1,32 @@
#░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░░██████╗
#██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗██╔════╝
#╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║╚█████╗░
#░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║░╚═══██╗
#██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝██████╔╝
#╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░╚═════╝░
## This file will allow you to enable/disable sound effects in AutoRestart
## If the message AND the popup is disabled the sound will not play!
## Main Branch
sounds:
## This is the sound that is played when everyone receives a message.
## For example, an automated (Server restarting in 15 minutes) is a global broadcast
broadcast:
## Enables or disables the sound
enabled: true
## This is the sound that is played when a player requests information from the plugin.
## For example, when typing `/autore time`, this is a player requested popup.
private:
## Enables or disables the sound
enabled: true
## This is the dramatic restart sound that is played seconds before the server restarts.
## You can configure when the sound will start to play, "Its a little long and dramatic"
shutdown:
## Enables or disables the sound
enabled: true
## I recommend having it at 5 seconds, this is the perfect duration of the sound
## But if you want to make it earlier, that is up to you.
seconds: 5
## DO NOT TOUCH!
version: 1

View File

@@ -0,0 +1,21 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=true
crackshot_weapon_*
crossbow
bow
*_sword
trident
shield

View File

@@ -0,0 +1,19 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=true
*_pickaxe
*_axe
*_shovel
*_hoe

View File

@@ -0,0 +1,21 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
flint_and_steel
fishing_rod
compass
clock
shears
lead

View File

@@ -0,0 +1,48 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
apple
baked_potato
beef
beetroot
beetroot_soup
bread
mushroom_stew
porkchop
cooked_porkchop
cod
carrots
salmon
cooked_cod
sweet_berries
cooked_salmon
cake
cookie
melon_slice
dried_kelp
honey_bottle
cooked_beef
chicken
cooked_chicken
carrot
potato
pumpkin_pie
rabbit
cooked_rabbit
rabbit_stew
mutton
cooked_mutton
wheat
*_seeds

View File

@@ -0,0 +1,62 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
diamond
emerald
diamond_ore
emerald_ore
emerald_block
iron_ingot
iron_ore
gold_ingot
gold_ore
gold_block
diamond_block
iron_block
lapis_lazuli
lapis_block
lapis_ore
obsidian
nether_quartz_ore
nether_star
beacon
prismarine_crystals
conduit
scute
elytra
enchanted_golden_apple
enchanting_table
experience_bottle
firework_rocket
firework_star
glowstone*
name_tag
jukebox
golden_apple
ender_chest
end_crystal
end_gateway
end_portal_frame
end_rod
ender_pearl
ender_eye
*_horse_armor
music_disc_*
heart_of_the_sea
nautilus_shell
gold_nugget
iron_nugget
saddle
enchanted_book

View File

@@ -0,0 +1,24 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
turtle_helmet
arrow
*_helmet
*_chestplate
*_leggings
*_boots
spectral_arrow
tipped_arrow
totem_of_undying

View File

@@ -0,0 +1,33 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
ghast_tear
potion
glass_bottle
blaze_rod
fermented_spider_eye
blaze_powder
magma_cream
brewing_stand
nether_wart
nether_wart_block
cauldron
glistering_melon_slice
golden_carrot
rabbit_foot
dragon_breath
splash_potion
lingering_potion
phantom_membrane

View File

@@ -0,0 +1,38 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
dispenser
note_block
sticky_piston
piston
tnt
lever
*_pressure_plate
redstone
*_button
redstone_lamp
redstone_torch
tripwire_hook
trapped_chest
daylight_detector
redstone_block
redstone_ore
hopper
dropper
iron_trapdoor
observer
iron_door
repeater
comparator

View File

@@ -0,0 +1,75 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
*_planks
*_log
*_wood
*_leaves
*_sign
barrel
oak_sapling
spruce_sapling
birch_sapling
jungle_sapling
acacia_sapling
dark_oak_sapling
acacia_slab
birch_slab
jungle_slab
oak_slab
dark_oak_slab
spruce_slab
acacia_fence
birch_fence
jungle_fence
campfire
chest
composter
stick
ladder
crafting_table
oak_fence
dark_oak_fence
spruce_fence
acacia_fence_gate
birch_fence_gate
jungle_fence_gate
oak_fence_gate
dark_oak_fence_gate
spruce_fence_gate
acacia_trapdoor
birch_trapdoor
jungle_trapdoor
oak_trapdoor
dark_oak_trapdoor
spruce_trapdoor
acacia_stairs
birch_stairs
jungle_stairs
oak_stairs
dark_oak_stairs
spruce_stairs
acacia_door
birch_door
jungle_door
oak_door
dark_oak_door
spruce_door
acacia_boat
birch_boat
jungle_boat
oak_boat
dark_oak_boat
spruce_boat

View File

@@ -0,0 +1,53 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
stone
cobblestone
granite
polished_granite
diorite
polished_diorite
andesite*
diorite*
granite*
end_stone*
brick
brick_wall
*sandstone
terracotta
mossy_stone_brick_wall
netherrack
nether_brick*
polished_andesite_*
polished_diorite_*
polished_granite_*
*_terracotta
polished_andesite
stone_brick_wall
stone_stairs
*stone_bricks
stone_slab
cobblestone_slab
stone_brick_slab
smooth_stone
mossy_cobblestone
cobblestone_stairs
*_stone_bricks
stone_brick_stairs
cobblestone_wall
mossy_cobblestone_wall
brick_stairs
bricks
brick_slab

View File

@@ -0,0 +1,65 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
grass
bamboo
fern
dead_bush
seagrass
sea_pickle
dandelion
poppy
blue_orchid
allium
azure_bluet
red_tulip
orange_tulip
white_tulip
pink_tulip
oxeye_daisy
brown_mushroom
red_mushroom
chorus_plant
chorus_flower
cactus
vine
lily_pad
sunflower
beetroots
bone_meal
chorus_fruit
kelp
kelp_plant
lily_of_the_valley
popped_chorus_fruit
potatoes
potted_*
sweet_berry_bush
tall_seagrass
cocoa
cocoa_beans
dried_kelp_block
hay_block
flower_pot
cornflower
lilac
rose_bush
peony
tall_grass
large_fern
pumpkin
carved_pumpkin
melon
sugar_cane

View File

@@ -0,0 +1,16 @@
#
# ChestSort Default Category File
#
# If you want to change this file, rename it.
# Please do NOT use file prefixed between 900 and 999 for
# your custom files because ChestSort will overwrite them
#
# When sticky is set to true, order the items in this
# category exactly as defined in this file.
# When set to false, the items are only grouped together
# and then sorted according to the other variables
# in your sorting-method
sticky=false
*_coral* # This should get everything related to corals!

View File

@@ -0,0 +1,23 @@
#############
# ChestSort #
#############
You can define custom category files for ChestSort using simple .txt files.
If you have {category} in your sorting-method, it will get replaced with the category name.
Category names are determined by the file names. The name must start with a number ranging
from 000 to 899 and end with .txt
Default categories are prefixed with 900 to 999. Please do not edit the default categories.
You can instead copy or rename the default files and edit those instead.
WARNING: All files with names starting between 900 and 999 will be deleted on start.
If you put {keepCategoryOrder} behind {category} in the sorting-method, the items will be
ordered exactly as listed in the category files. Otherwise, they will be grouped by category
and then sorted according to the remaining variables in your sorting-method.
Category files can contain asterisks (*) as wildcard character at the beginning and/or end
of an expression, but not in the middle.
Category files can also contain comments using the hashtag (#) symbol

View File

@@ -0,0 +1,866 @@
#########################
##### ChestSort #####
#########################
#
# www.jeff-media.de
#
#
# This config file will be updated automatically with every new release of ChestSort.
# Don't worry! Your changes will be kept after every update.
#
###############################
####### Commands #######
###############################
# /sort (or /chestsort) Shows the player settings GUI
# /sort on Enable automatic sorting for containers
# /sort off Disable automatic sorting for containers
# /sort hotkeys Open a GUI to change the sorting hotkeys
# /sort help Display help about the /sort (or /chestsort) command
# /sort reload Reloads the config file
# /sort resetplayersettings Resets every player's sorting settings. You should consider
# running this after changing the default hotkey settings.
# /isort (or /invsort) Sort the player's inventory
# /isort hotbar Sort the player's hotbar
# /isort all Sort the player's inventory and hotbar
# /isort toggle Toggle automatic sorting for the player's inventory
# /isort on Enable automatic sorting for the player's inventory
# /isort off Disable automatic sorting for the player's inventory
# /isort help Display help about the /isort (or /invsort) command
###############################
####### Permissions #######
###############################
# chestsort.use Allows to sort containers using automatic sorting (/sort) or via hotkeys.
# chestsort.use.inventory Allows to sort the player's inventory using automatic sorting (/isort) or via hotkeys
# chestsort.reload Allows to reload the config using /sort reload
# chestsort.automatic Allows to use automatic inventory sorting. Given to all players by default. Players
# still need to have the chestsort.use or chestsort.use.inventory permission.
# chestsort.hotkey.<hotkey> Allows to use a specific hotkey. Given to all players by default. Players still need
# to have the chestsort.use or chestsort.use.inventory permission.
# Available hotkeys are: shiftclick, middleclick, doubleclick, shiftrightclick,
# leftclick, rightlick, outside
###############################
####### Placeholders #######
###############################
# When using PlaceholderAPI, you can use the following placeholders:
# %chestsort_sortingenabled% - true if this player has automatic sorting enabled for containers
# %chestsort_invsortingenabled% - true if this player has automatic sorting enabled for the player's inventory
############################
##### Default settings #####
############################
# If you don't want to use a permission plugin, you can set
# this to false to allow every player to use ChestSort.
# If you use a permissions plugin, set this to true.
# There are two permissions used by ChestSort:
# - chestsort.use (allow chest sorting by hotkeys and via /chestsort)
# - chestsort.use.inventory (allow inventory sorting by hotkeys and via /invsort)
use-permissions: true
# when set to false, no player is allowed to enable automatic chest sorting
# hotkeys will still work if enabled
allow-automatic-sorting: true
# when set to false, no player is allowed to enable automatic inventory sorting
# hotkeys will still work if enabled
allow-automatic-inventory-sorting: true
# when set to false, new players will have to run /chestsort
# once to enable automatic chest sorting.
sorting-enabled-by-default: false
# when set to false, new players will have to run /invsort on
# once to enable automatic inventory sorting.
inv-sorting-enabled-by-default: false
# You can prevent players from using the /chestsort and /invsort commands by setting
# this to false.
allow-commands: true
# You can prevent players from using the GUI. When set to "false", /sort behaves like /sort toggle
allow-gui: true
# when set to true, players with sorting DISABLED will be
# shown a message on how to enable automatic chest sorting
# when they use a chest for the first time.
# consider setting this to true when you disable sorting by default.
# see also -> message-when-using-chest
show-message-when-using-chest: true
# when set to true, players with sorting ENABLED will be
# shown a message on how to disable automatic chest sorting
# when they use a chest for the first time.
# consider setting this to true when you enable sorting by default.
# see also -> message-when-using-chest2
show-message-when-using-chest-and-sorting-is-enabled: false
# when set to true, the messages are shown again when a player
# logs out and back in and then uses a chest again.
show-message-again-after-logout: true
# to sort by category, we need category files. ChestSort comes
# with a number of pregenerated category files, named
# 900-valuables.txt, 910-tools.txt, 920-combat.txt, ...
# If you wish to edit those, you can disable the generation of these
# files, because otherwise all your changes in the pregenerated
# files will be overwritten on each server startup.
# However, a much smarter option is to copy the default files
# and rename them to from 900... to 800... and edit those instead.
auto-generate-category-files: true
# you can choose when ChestSort should sort chests.
# The default option is to sort when an inventory is closed.
# This is useful, because the onInventoryClose event never gets fired
# when access to the chest is forbidden by another plugin, e.g. WorldGuard
# You can also sort whenenver a chest is opened. ChestSort will then check
# if the onInventoryOpenEvent gets cancelled. If it does get cancelled,
# ChestSort will not sort the chest. However, if a plugin uses the
# MONITOR event priority, ChestSort cannot detect this.
# If you have problems with unaccessible chests being sorted, set this
# option to "close". If you want, you can sort twice, however this is not
# very useful.
# If you don't know what to put here, just use the default "close"
# Available options: open, close, both
sort-time: close
# when set to true, show some verbose information on startup
verbose: true
###########################
##### Default Hotkeys #####
###########################
# Instead of automatic sorting, you can also use hotkeys (see below)
# when using an inventory to have it sorted immediately.
# You can disable this by setting this to false.
allow-sorting-hotkeys: true
# You can define which sorting hotkeys are enabled by default.
# Players can also enable/disable these shortcuts individually via /chestsort hotkeys
# Hotkeys that could interfere with Minecraft's normal behaviour (e.g.
# shift+left-click) only work on empty slots, so don't worry about them.
#
# IMPORTANT! I get this question asked every day on my Discord, so please read:
# SETTING A HOTKEY TO FALSE WILL NOT(!) DISABLE IT!
# This are only the default values used for NEW players.
# Every player can disable/enable the hotkeys individually using
# /chestsort hotkeys
#
sorting-hotkeys:
# Use middle click (mousewheel) on ANY inventory slot as hotkey. Permission: chestsort.hotkey.middleclick
middle-click: true
# Use shift + left-click on any EMPTY inventory slot as hotkey. Permission: chestsort.hotkey.shiftclick
shift-click: true
# Use double left-click on any EMPTY inventory slot as hotkey. Permission: chestsort.hotkey.doubleclick
double-click: true
# Use shift + right-click on any EMPTY inventory slot as hotkey. Permission: chestsort.hotkey.shiftrightclick
shift-right-click: true
# Amount in seconds that players have to wait between using hotkeys to prevent them from spamming the
# sorting mechanism
hotkey-cooldown: 0.2
# When enabled, players can leftclick on chests, barrels etc.
# to sort them without having to open them.
# Permission: chestsort.hotkey.outside
allow-left-click-to-sort: true
# When set to true, sorting a chest by left-clicking it is enabled by default
left-click-to-sort-enabled-by-default: false
# Additionally to sorting hotkeys, you can quickly unload your inventory into a chest and vice versa
# using left-click or right-click outside of a chest's inventory.
# A single click will only affect matching items (items that are already present in the other inventory)
# and a double click will try to store/take all items.
allow-additional-hotkeys: true
# You can define which additional hotkeys are enabled by default.
# Players can also enable/disable these shortcuts individually via /chestsort hotkeys
additional-hotkeys:
# Use left-click outside inventory to quickly put matching items from your inventory (except hotbar)
# into the chest. Use left-double-click to put everything except your hotbar into the chest.
# Permission: chestsort.hotkey.leftclick
left-click: false
# Use right-click outside inventory to quickly take all matching items from the chest into your
# inventory. Use right-double-click to take all items out of the chest.
# Permission: chestsort.hotkey.leftclick
right-click: false
##########################
##### Update Checker #####
##########################
# Checks for updates (asynchronously).
# When enabled, a message is printed in the console if a new
# version has been found, and OPs will be notified when they join the server
# When set to true, check for updates on startup and every X hours (see "check-interval" below)
# When set to on-startup, only check on server startup
# When set to false, don't check for updates
check-for-updates: true
# When you set "check-for-updates" to true, you can define the amount
# of hours inbetween each update check.
check-interval: 4
#########################
#### Disabled Worlds ####
#########################
# You can disable automatic chest sorting for certain worlds. Each world's name has to
# be on a separate line, starting with a hyphen and followed by a space.
# You can also use the YAML array notation: [world1, world2, world3]
# Example:
#
# disabled-worlds:
# - world_nether
# - world_the_end
disabled-worlds:
##########################
##### Plugin hooks #####
##########################
# ChestSort can hook into other plugins to allow better sorting
# for items belonging to 3rd party plugins.
# You do NOT have to disable the hooks for plugins you don't have
# installed. ChestSort will automatically check if the plugins
# are installed.
##### CrackShot ##### -> https://www.spigotmc.org/resources/crackshot-guns.48301/
# When CrackShot is installed, all CrackShot weapons will be
# grouped together and sorted by their name
hook-crackshot: true
# You can define a custom name that will be used as prefix
# for all CrackShot weapon names.
# E.g. when you set this to "crackshot_weapon", an AK-47
# will be called "crackshot_weapon_AK-47"
hook-crackshot-prefix: "crackshot_weapon"
##### InventoryPages ##### -> https://www.spigotmc.org/resources/inventorypages.32432/
# When InventoryPages is installed, ChestSort will not sort
# the "Next Page" and "Prev Page" buttons. You should not
# disable this behaviour unless you know what you are doing!
hook-inventorypages: true
##### Minepacks ##### -> https://www.spigotmc.org/resources/minepacks-backpack-plugin-mc-1-7-1-15.19286/
# When Minepacks version 2.3.8+ is installed, ChestSort can detect your
# backpacks and sort them like a regular chest.
hook-minepacks: true
##### PlayerVaults and similar plugins #####
# When PlayerVaults or similar plugins are installed, ChestSort can sort your
# player vaults just like regular chests.
hook-playervaults: true
##### EnderContainers ##### -> https://www.spigotmc.org/resources/endercontainers.4750/
# When EnderContainers version 2.2.1+ is installed, ChestSort can detect your
# enderchests and sort them like regular chests.
hook-endercontainers: true
##### CrateReloaded #####
# Prevents the player from using hotkeys on a crate
hook-cratereloaded: true
##### GoldenCrates #####
# Prevents the player from using hotkeys on a crate
hook-goldencrates: true
##### HeadDatabase #####
# Prevents the player from using hotkeys on the HeadDatabase GUI
hook-headdatabase: true
##### Slimefun #####
# Some versions of Slimefun fail to prevent putting the backpack into itself
# when you do so immediately after ChestSort moved a backpack. You can
# prevent ChestSort from moving Slimefun backpacks until they fixed this.
dont-move-slimefun-backpacks: false
##### AdvancedChests #####
# When AdvancedChests is installed, ChestSort will not sort
# the buttons from the bottom row. You should not
# disable this behaviour unless you know what you are doing!
hook-advancedchests: true
##### Other backpack plugins #####
# ChestSort is able to detect backpacks from most backpack
# plugins like ShulkerPacks or Better Shulker Boxes.
# This detection is always enabled, you cannot turn it off.
##### Other GUI plugins #####
# ChestSort tries to detect if an inventory belongs to a
# 3rd party plugin's GUI and then prevents it from being sorted.
# If you encounter any problems, like a sortable GUI inventory,
# please open a new issue at Github:
# https://github.com/JEFF-Media-GbR/Spigot-ChestSort/issues
hook-generic: true
##### Plugins not using an InventoryHolder #####
# When you have a plugin that uses "null" as InventoryHolder for their
# GUIs, you can prevent those from being sorted. Please note that this
# will also disable sorting for certain other inventories, so only use
# it if it's the only possibility.
prevent-sorting-null-inventories: false
##### Protection Plugins #####
# ChestSort checks whether a player is allowed to interact with a block
# before attempting to sort a container when using the "outside"/"left-click-block"
# hotkey. This can result in messages from WorldGuard, CoreProtect, etc. being
# send to the player. To avoid this, set the following setting to true.
# This can however lead to some warnings from other plugins that do not
# properly check a Players' class before casting it to "CraftPlayer".
# Although this should NOT cause ANY problems, it's disabled by default.
mute-protection-plugins: false
##### Generic Detection by InventoryHolder #####
# ChestSort can detect inventories from other plugins by their InventoryHolder.
# If you encounter duplication issues with other plugins, or want to disabe sorting
# for certain inventories for any other reason, you can do that here.
# To find out the InventoryHolder name of an inventory, do the following:
# 1. Run /chestsort debug
# 2. Open the inventory and use a hotkey to sort
# 3. Check the console for the InventoryHolder name, it should say something
# like "Holder class: class com.someplugin.InventoryHolder"
# 4. Note the name of the InventoryHolder class, e.g. "com.someplugin.InventoryHolder"
# 5. Add \Q at the beginning, and \E at the end of the name, e.g. \Qcom.someplugin.InventoryHolder\E
# 6. Add that to the list below. You can also use advanced regexes, e.g. ".*[Bb]ack[Pp]ack.*" would blacklist all holders
# that contain the word "Backpack"
blocked-inventory-holders-regex:
- ".*[Bb]ack[Pp]ack.*"
##########################
##### Sorting Method #####
##########################
# Advanced: how to sort things! See below for examples.
# Only change this if you know what you are doing.
#
# Available variables:
# {category} order stuff by category as defined in plugins/ChestSort/categories/<category>.txt
# {keepCategoryOrder} orders stuff in the same category according to their line numbers in the category file
# {itemsFirst} put items before blocks
# {blocksFirst} put blocks before items
# {tier} orders by material type from best to worst (netherite, diamond, gold, iron, stone, wood, then all remaining items)
# {name} returns the name (e.g. DIRT, GRASS_BLOCK, BIRCH_LOG, DIAMOND_SWORD, ...)
# {color} returns the color, e.g. light_blue for wool. Empty if block/item is not dyeable
# {customName} returns the display name if set (e.g. with an anvil)
# {lore} returns the lore if set
#
# Warning: You must not use spaces and fields have to be separated by commas.
#
# Examples:
# sort by name and color:
# '{name},{color}'
#
# sort by name and color, but put items before blocks:
# '{itemsFirst},{name},{color}'
#
# sort by name and color, but put blocks before items:
# '{blocksFirst},{name},{color}'
#
# sort by category, then put items before blocks and sort by name and color
# '{category},{itemsFirst},{name},{color}'
#
# sort by category, but keep exactly the same order as defined in each category file, then sort any undefined items by name and color
# '{category},{keepCategoryOrder},{name},{color}
#
sorting-method: '{category},{itemsFirst},{name},{color},{customName}'
#########################
##### Localization ######
#########################
# Available color codes:
# &0 Black &6 Gold &c Red
# &1 Dark Blue &7 Gray &d Light Purple
# &2 Dark Green &8 Dark Gray &e Yellow
# &3 Dark Aqua &9 Blue &f White
# &4 Dark Red &a Green
# &5 Dark Purple &b Aqua
# Available formatting codes:
# &k Obfuscated &m Strikethrough
# &l Bold &o Italic
# &n Underline &r Reset
# IMPORTANT NOTE:
# Some messages contain placeholders (%s). You must not remove those, or you will get exceptions in the console
##### You can edit these messages yourself or uncomment the existing translations (see below)
message-when-using-chest: "&7Hint: Type &6/chestsort&7 to enable automatic chest sorting."
message-when-using-chest2: "&7Hint: Type &6/chestsort&7 to disable automatic chest sorting."
message-sorting-disabled: "&7Automatic chest sorting has been &cdisabled&7."
message-sorting-enabled: "&7Automatic chest sorting has been &aenabled&7."
message-inv-sorting-disabled: "&7Automatic inventory sorting has been &cdisabled&7."
message-inv-sorting-enabled: "&7Automatic inventory sorting has been &aenabled&7."
message-player-inventory-sorted: "&7Your inventory has been sorted."
message-error-players-only: "&cError: This command can only be run by players."
message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."
message-container-sorted: "&aContainer sorted!"
message-gui-enabled: "&aEnabled"
message-gui-disabled: "&cDisabled"
message-gui-middle-click: "Middle-Click"
message-gui-shift-click: "Shift + Click"
message-gui-double-click: "Double-Click"
message-gui-shift-right-click: "Shift + Right-Click"
message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
message-gui-left-click-outside: "Left-Click from outside"
##### English
#message-when-using-chest: "&7Hint: Type &6/chestsort&7 to enable automatic chest sorting."
#message-when-using-chest2: "&7Hint: Type &6/chestsort&7 to disable automatic chest sorting."
#message-sorting-disabled: "&7Automatic chest sorting has been &cdisabled&7."
#message-sorting-enabled: "&7Automatic chest sorting has been &aenabled&7."
#message-inv-sorting-disabled: "&7Automatic inventory sorting has been &cdisabled&7."
#message-inv-sorting-enabled: "&7Automatic inventory sorting has been &aenabled&7."
#message-player-inventory-sorted: "&7Your inventory has been sorted."
#message-error-players-only: "&cError: This command can only be run by players."
#message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."
#message-container-sorted: "&aContainer sorted!"
#message-gui-enabled: "&aEnabled"
#message-gui-disabled: "&cDisabled"
#message-gui-middle-click: "Middle-Click"
#message-gui-shift-click: "Shift + Click"
#message-gui-double-click: "Double-Click"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Bulgarian
#message-when-using-chest: "&7Подсказка: Напишете &6/chestsort&7, за да активирате автоматичното сортиране на сандъци."
#message-when-using-chest2: "&7Подсказка: Напишете &6/chestsort&7, за да деактивирате автоматичното сортиране на сандъци."
#message-sorting-disabled: "&7Автоматичното сортиране на сандъци беше &cдеактивирано&7."
#message-sorting-enabled: "&7Автоматичното сортиране на сандъци беше &aактивирано&7."
#message-inv-sorting-disabled: "&7Автоматичното сортиране на инвентар беше &cдеактивирано&7."
#message-inv-sorting-enabled: "&7Автоматичното сортиране на инвентар беше &aактивирано&7."
#message-player-inventory-sorted: "&7Вашият инвентар беше сортиран."
#message-error-players-only: "&cГрешка: Тази команда може да бъде използвана само от играчи."
#message-error-invalid-options: "&cГрешка: Непозната опция %s. Валидните опции са %s."
#message-container-sorted: "&aКонтейнерът беше сортиран!"
#message-gui-enabled: "&aАктивирано"
#message-gui-disabled: "&cДеактивирано"
#message-gui-middle-click: "Среден-Клик"
#message-gui-shift-click: "Шифт + Клик"
#message-gui-double-click: "Двоен-Клик"
#message-gui-shift-right-click: "Шифт + Десен-Клик"
#message-gui-left-click: "Запълни Сандък (Ляв-Клик/Двоен-Ляв-Клик)"
#message-gui-right-click: "Изпразни Сандък (Дясен-Клик/Двоен-Дясен-Клик)"
#message-gui-left-click-outside: "Ляв-Клик извън"
##### Chinese (Simplified) 简体中文 - Thanks to qsefthuopq, Aira-Sakuranomiya BackWheel and flandretw for translating!
#message-when-using-chest: "&7提示: 输入 &6/chestsort&7 来启用自动整理箱子。"
#message-when-using-chest2: "&7提示: 输入 &6/chestsort&7 来关闭自动整理箱子。"
#message-sorting-disabled: "&7自动整理箱子已 &c关闭&7。"
#message-sorting-enabled: "&7自动整理箱子已 &a启用&7。"
#message-inv-sorting-disabled: "&7自动整理背包已 &c关闭&7。"
#message-inv-sorting-enabled: "&7自动整理背包已 &a开启&7。"
#message-player-inventory-sorted: "&7已成功整理你的背包。"
#message-error-players-only: "&c错误: 指令只能由玩家运行。"
#message-error-invalid-options: "&c错误: 未知的选项 %s有效的选项为 %s。"
#message-container-sorted: "&a已成功整理箱子"
#message-gui-enabled: "&a开启"
#message-gui-disabled: "&c关闭"
#message-gui-middle-click: "中键"
#message-gui-shift-click: "Shift + 左键"
#message-gui-double-click: "双击左键"
#message-gui-shift-right-click: "Shift + 右键"
#message-gui-left-click: "填充箱子 (左键/双击左键)"
#message-gui-right-click: "清空箱子 (右键/双击右键)"
#message-gui-left-click-outside: "对着箱子点击左键"
##### Chinese (Traditional) 繁體中文 - Thanks to flandretw for translating!
#message-when-using-chest: "&7提示輸入 &6/chestsort&7 來啟用自動整理儲物箱。"
#message-when-using-chest2: "&7提示輸入 &6/chestsort&7 來停用自動整理儲物箱。"
#message-sorting-disabled: "&c已停用 &7自動整理儲物箱。"
#message-sorting-enabled: "&a已啟用 &7自動整理儲物箱。"
#message-inv-sorting-disabled: "&c已停用 &7自動整理物品欄。"
#message-inv-sorting-enabled: "&a已啟用 &7自動整理物品欄。"
#message-player-inventory-sorted: "&7已成功整理你的物品欄。"
#message-error-players-only: "&c錯誤此指令只能由玩家執行。"
#message-error-invalid-options: "&c錯誤未知的選項 %s有效的選項為 %s。"
#message-container-sorted: "&a已成功整理儲物箱"
#message-gui-enabled: "&a啟用"
#message-gui-disabled: "&c停用"
#message-gui-middle-click: "點擊中鍵"
#message-gui-shift-click: "Shift + 點擊左鍵"
#message-gui-double-click: "雙重點擊左鍵"
#message-gui-shift-right-click: "Shift + 點擊右鍵"
#message-gui-left-click: "填滿儲物箱(點擊左鍵/雙重點擊左鍵)"
#message-gui-right-click: "清空儲物箱(點擊右鍵/雙重點擊右鍵)"
#message-gui-left-click-outside: "對著儲物箱點擊左鍵"
##### Dutch
#message-when-using-chest: "&7Hint: Type &6/chestsort&7 om het automatisch sorteren van kisten in te schakelen."
#message-when-using-chest2: "&7Hint: Type &6/chestsort&7 om het automatisch sorteren van kisten uit te schakelen."
#message-sorting-disabled: "&7Automatisch sorteren van kisten is &cuitgeschakeld&7."
#message-sorting-enabled: "&7Automatisch sorteren van kisten is &aingeschakeld&7."
#message-inv-sorting-disabled: "&7Automatisch sorteren van inventaris is &cuitgeschakeld&7."
#message-inv-sorting-enabled: "&7Automatisch sorteren van inventaris is &aingeschakeld&7."
#message-player-inventory-sorted: "&7Je inventaris is gesorteerd."
#message-error-players-only: "&cFout: Dit commando kan alleen door spelers worden gebruikt."
#message-error-invalid-options: "&cFout: Onbekende optie %s. Geldige opties zijn %s."
#message-container-sorted: "&aContainer sorted!"
#message-gui-enabled: "&aUitgeschakeld"
#message-gui-disabled: "&cIngeschakeld"
#message-gui-middle-click: "Middel-Klik"
#message-gui-shift-click: "Shift + Klik"
#message-gui-double-click: "Dubbel-Klik"
#message-gui-shift-right-click: "Shift + Rechter-Klik"
#message-gui-left-click: "Vul Kist (Linker-Klik/Dubbele-Linker-Klik)"
#message-gui-right-click: "Leeg Kist (Rechter-Klik/Dubbele-Rechter-Klik)"
#message-gui-left-click-outside: "Linker-Klik vanaf buiten"
##### French / Français - Thanks to automatizer, demon57730, FichdlMaa and Stalk3r77 for translating!
# Note: The following messages have been changed in version 8.11 and need a new translation
#message-when-using-chest: "&7Astuce : Tape &6/chestsort&7 pour activer le classement automatique."
#message-when-using-chest2: "&7Astuce : Tape &6/chestsort&7 pour désactiver le classement automatique."
#message-sorting-disabled: "&7Le classement automatique a été &cdésactivé&7."
#message-sorting-enabled: "&7Le classement automatique a été &aactivé&7."
#message-inv-sorting-disabled: "&7Le classement automatique d'inventaire a été &cdésactivé&7."
#message-inv-sorting-enabled: "&7Le classement automatique d'inventaire a été &aactivé&7."
#message-player-inventory-sorted: "&7Ton inventaire a été trié."
#message-error-players-only: "&cErreur : Cette commande ne peut être utilisée que par des joueurs."
#message-error-invalid-options: "&cErreur : Option inconnue %s. Les options valides sont %s."
#message-container-sorted: "&aContainer sorted!"
#message-gui-enabled: "&aActivé"
#message-gui-disabled: "&cDésactivé"
#message-gui-middle-click: "Clic molette"
#message-gui-shift-click: "Maj. + Clic"
#message-gui-double-click: "Double-Clic"
#message-gui-shift-right-click: "Shift + Clic droit"
#message-gui-left-click: "Remplir le coffre (Clic-gauche)"
#message-gui-right-click: "Vider le coffre (Clic-droit)"
#message-gui-left-click-outside: "Left-Click from outside"
##### German
#message-when-using-chest: "&7Hinweis: Benutze &6/chestsort&7 um die automatische Kistensortierung zu aktivieren."
#message-when-using-chest2: "&7Hinweis: Benutze &6/chestsort&7 um die automatische Kistensortierung zu deaktivieren."
#message-sorting-disabled: "&7Automatische Kistensortierung &cdeaktiviert&7."
#message-sorting-enabled: "&7Automatische Kistensortierung &aaktiviert&7."
#message-inv-sorting-disabled: "&7Automatische Inventarsortierung &cdeaktiviert&7."
#message-inv-sorting-enabled: "&7Automatische Inventarsortierung &aaktiviert&7."
#message-player-inventory-sorted: "&7Dein Inventar wurde sortiert."
#message-error-players-only: "&cFehler: Dieser Befehl ist nur für Spieler verfügbar."
#message-error-invalid-options: "&cFehler: Unbekannte Option %s. Gültige Optionen sind %s."
#message-container-sorted: "&aBehälter sortiert!"
#message-gui-enabled: "&aAktiviert"
#message-gui-disabled: "&cDeaktiviert"
#message-gui-middle-click: "Mittel-Klick"
#message-gui-shift-click: "Shift + Klick"
#message-gui-double-click: "Doppelklick"
#message-gui-shift-right-click: "Shift + Rechtsklick"
#message-gui-left-click: "Kiste füllen (Linksklick/doppelter Linksklick)"
#message-gui-right-click: "Kiste leeren (Rechtsklick/doppelter Rechtsklick)"
#message-gui-left-click-outside: "Linksklick von außen"
##### Hebrew / עברית
#message-when-using-chest: "&7רמז: &fהקלידו &e/chestsort&f בשביל להפעיל מיון תיבות."
#message-when-using-chest2: "&7רמז: &fהקלידו &e/chestsort&7 בשביל לכבות מיון תיבות."
#message-sorting-disabled: "&fמיון תיבות &cלא פועל&f."
#message-sorting-enabled: "&fמיון תיבות &aפועל&f."
#message-inv-sorting-disabled: "&fמיון אינבנטורי &cלא פועל&f."
#message-inv-sorting-enabled: "&fמיון אינבנטורי &aפועל&f."
#message-player-inventory-sorted: "&fהאינבנטורי שלך סודר."
#message-error-players-only: "&c&lשגיאה: הפקודה הזאת היא לשימוש השחקנים בלבד."
#message-error-invalid-options: "&c&lשגיאה: Unknown option %s. Valid options are %s."
#message-container-sorted: "&a&lסודר מחדש!"
#message-gui-enabled: "&aפועל&f"
#message-gui-disabled: "&cלא פועל"
#message-gui-middle-click: "לחיצה בעמצא(עכבר)"
#message-gui-shift-click: "Shift + קליד"
#message-gui-double-click: "לחיצה כפולה"
#message-gui-shift-right-click: "Shift + לחיצה ימנית"
#message-gui-left-click: "למלא תיבה (לחיצה שמאלית/לחיצה שמאלית כפולה)"
#message-gui-right-click: "לרוקן תיבה (לחיצה ימנית/לחיצה ימנית כפולה)"
#message-gui-left-click-outside: "לחיצה שמאלית מבחוץ"
##### Hungarian
#message-when-using-chest: "&7Automatikus láda rendezés bekapcsolás: &6/chestsort"
#message-when-using-chest2: "&7Automatikus láda rendezés bekapcsolás: &6/chestsort"
#message-sorting-disabled: "&7Automatikus láda rendezés kikapcsolva."
#message-sorting-enabled: "&7Automatikus láda rendezés bekapcsolva."
#message-inv-sorting-disabled: "&7Automatikus leltár rendezés &ckikapcsolva&7."
#message-inv-sorting-enabled: "&7Automatikus leltár rendezés &cbekapcsolva&7."
#message-error-players-only: "&cHiba: Ezt a parancsot csak játékos használhatja."
#message-player-inventory-sorted: "&7A leltárad rendezve lett."
#message-error-invalid-options: "&cHiba: Ismeretlen opció %s. Helyes opció %s."
#message-container-sorted: "&aLáda rendezve!"
#message-gui-enabled: "&aEngedélyezve"
#message-gui-disabled: "&cKikapcsolva"
#message-gui-middle-click: "Középső egérgomb"
#message-gui-shift-click: "Shift + Klikk"
#message-gui-double-click: "Dupla Kattintás"
#message-gui-shift-right-click: "Shift + Jobb klikk"
#message-gui-left-click: "Láda feltöltés (Bal klikk)"
#message-gui-right-click: "Láda ürítés (Jobb klikk)"
#message-gui-left-click-outside: "Bal klikk a ládán kívül"
##### Italian / Italiano
#message-when-using-chest: "&7Nota: inserire &6/chestsort&7 per abilitare l'ordinamento automatico dei bauli."
#message-when-using-chest2: "&7Nota: inserire &6/chestsort&7 per disabilitare l'ordinamento automatico dei bauli."
#message-sorting-disabled: "&7L'ordinamento automatico dei bauli è stato &cdisattivato&7."
#message-sorting-enabled: "&7L'ordinamento automatico dei bauli è stato &aattivato&7."
#message-inv-sorting-disabled: "&7L'ordinamento automatico dell'inventario è stato &cdisattivato&7."
#message-inv-sorting-enabled: "&7L'ordinamento automatico dell'inventario è stato &aattivato&7."
#message-player-inventory-sorted: "&7Il tuo inventario è stato ordinato."
#message-error-players-only: "&cErrore: questo comando è disponibile solo per i giocatori."
#message-error-invalid-options: "&cErrore: Parametro sconosciuto %s. I parametri validi sono %s."
#message-container-sorted: "&aContenitore ordinato!"
#message-gui-enabled: "&aAttivato"
#message-gui-disabled: "&cDisattivato"
#message-gui-middle-click: "Click Centrale"
#message-gui-shift-click: "Maiusc + Click"
#message-gui-double-click: "Doppio Click"
#message-gui-shift-right-click: "Maiusc + Click Destro"
#message-gui-left-click: "Cassa Piena (Click Sinistro/Doppio Click Sinistro)"
#message-gui-right-click: "Cassa Vuota (Click Destro/Doppio Click Destro)"
#message-gui-left-click-outside: "Click Sinistro sull'esterno"
##### Japanese - Thanks to Sefyy for translating!
# Note: The following messages have been changed in version 8.11 and need a new translation:
# - message-gui-left-click
# - message-gui-right-click
#message-when-using-chest: "&7ヒント: &6/chestsort&7 と入力して自動チェスト整理を有効にできます。"
#message-when-using-chest2: "&7ヒント: &6/chestsort&7 と入力すると自動チェスト整理を無効にできます。"
#message-sorting-disabled: "&7自動チェスト整理は現在&c無効&7です。"
#message-sorting-enabled: "&7自動チェスト整理は現在&a有効&7です。"
#message-inv-sorting-disabled: "&7自動インベントリ整理は現在&c無効&7です。"
#message-inv-sorting-enabled: "&7自動インベントリ整理は現在&a有効&7です。"
#message-error-players-only: "&cエラー: このコマンドはプレイヤーのみ実行できます。"
#message-player-inventory-sorted: "&7あなたのインベントリは整理されました。"
#message-error-invalid-options: "&cエラー: 不明なオプションです%s 有効なオプションは%s"
#message-container-sorted: "&aContainer sorted!"
#message-gui-enabled: "&a有効"
#message-gui-disabled: "&c無効"
#message-gui-middle-click: "ミドルクリック"
#message-gui-shift-click: "シフト+左クリック"
#message-gui-double-click: "ダブルクリック"
#message-gui-shift-right-click: "シフト+右クリック"
#message-gui-left-click: "チェストを埋める(左クリック)"
#message-gui-right-click: "チェストを空ける(右クリック)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Korean (한국어) - Thanks to kf12 for translating!
#message-when-using-chest: "&7정보 : &6/chestsort&7 명령어로 자동 창고 정리를 활성화 할 수 있습니다."
#message-when-using-chest2: "&7정보 : &6/chestsort&7 명령어로 자동 창고 정리를 비활성화 할 수 있습니다."
#message-sorting-disabled: "&7자동 창고 정리가 &c비활성화&7 되었습니다."
#message-sorting-enabled: "&7자동 창고 정리가 &a활성화&7 되었습니다."
#message-inv-sorting-disabled: "&7자동 인벤토리 정리가 &c비활성화 &7되었습니다."
#message-inv-sorting-enabled: "&7자동 인벤토리 정리가 &a활성화 &7되었습니다."
#message-player-inventory-sorted: "&7인벤토리가 정리 되었습니다."
#message-error-players-only: "&c에러 : 이 명령은 플레이어만 실행할 수 있습니다."
#message-error-invalid-options: "&c에러 : 알 수 없는 옵션 %s. 올바른 옵션은 %s 입니다."
#message-gui-enabled: "&a활성화"
#message-gui-disabled: "&c비활성화"
#message-gui-middle-click: "휠 클릭"
#message-gui-shift-click: "쉬프트 + 클릭"
#message-gui-double-click: "더블 클릭"
#message-gui-shift-right-click: "쉬프트 + 우클릭"
#message-gui-left-click: "창고 내용물 채우기 (좌클릭 / 좌측 버튼 더블 클릭)"
#message-gui-right-click: "창고 내용물 비우기 (우클릭 / 우측 버튼 더블 클릭)"
#message-gui-left-click-outside: "GUI 외부 파트를 좌클릭 하기"
##### Polish - Thanks to PLKaratusPL for translating!
#message-when-using-chest: "&7Wskazówka: Wpisz &6/chestsort&7 by włączyć automatyczne sortowanie skrzyń."
#message-when-using-chest2: "&7Wskazówka: Wpisz &6/chestsort&7 by wyłączyć automatyczne sortowanie skrzyń."
#message-sorting-disabled: "&7Automatyczne sortowanie skrzyń zostało &cwyłączone&7."
#message-sorting-enabled: "&7Automatyczne sortowanie skrzyń zostało &awłączone&7."
#message-inv-sorting-disabled: "&7Automatyczne sortowanie ekwipunku zostało &cwyłączone&7."
#message-inv-sorting-enabled: "&7Automatyczne sortowanie ekwipunku zostało &awłączone&7."
#message-player-inventory-sorted: "&7Twój ekwipunek został posortowany."
#message-error-players-only: "&cBłąd: To polecenie może być używane tylko przez graczy."
#message-error-invalid-options: "&cBłąd: Nieznana opcja %s. Prawidłowe opcje to %s."
#message-container-sorted: "&aKontener posortowany!"
#message-gui-enabled: "&aWłączone"
#message-gui-disabled: "&cWyłączone"
#message-gui-middle-click: "Środkowy Przycisk Myszy"
#message-gui-shift-click: "Shift + Kliknięcie"
#message-gui-double-click: "Podwójne Kliknięcie"
#message-gui-shift-right-click: "Shift + PPM"
#message-gui-left-click: "Wypełnienie Skrzyni (LPM/Podwójny LPM)"
#message-gui-right-click: "Opróżnienie Skrzyni (PPM/Podwójny PPM)"
#message-gui-left-click-outside: "Kliknij LPM z zewnątrz"
##### Portuguese - Thanks to wildastral for translating!
#message-when-using-chest: "&7Dica: Digite &6/chestsort&7 para habilitar a organização automática."
#message-when-using-chest2: "&7Dica: Digite &6/chestsort&7 para desabilitar a organização automática."
#message-sorting-disabled: "&7AOrganização automática de baús foi &cdesabilitada&7."
#message-sorting-enabled: "&7AOrganização automática de baús foi &ahabilitada&7."
#message-inv-sorting-disabled: "&7Organização automática foi &cdesabilitada&7."
#message-inv-sorting-enabled: "&7Organização automática foi &adesabilitada&7."
#message-player-inventory-sorted: "&7Seu inventário foi organizado."
#message-error-players-only: "&cErro: Esse comando não pode ser executado por jogadores."
#message-error-invalid-options: "&cErro: Opção desconhecida %s. Opções validas são %s."
#message-container-sorted: "&aRecipiente organizado!"
#message-gui-enabled: "&aHabilitado"
#message-gui-disabled: "&cDesabilitado"
#message-gui-middle-click: "Middle-Click"
#message-gui-shift-click: "Shift + Click"
#message-gui-double-click: "Double-Click"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Preencher baú (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Esvaziar baú (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click por fora"
##### Russian
#message-when-using-chest: "&7Подсказка: введите &6/chestsort&7, чтобы включить автоматическую сортировку вещей в сундуках."
#message-when-using-chest2: "&7Подсказка: введите &6/chestsort&7, чтобы отключить автоматическую сортировку вещей в сундуках."
#message-sorting-disabled: "&7Автоматическая сортировка вещей в сундуках &cотключена&7."
#message-sorting-enabled: "&7Автоматическая сортировка вещей в сундуках &aвключена&7."
#message-inv-sorting-disabled: "&7Автоматическая сортировка вещей в инвентаре &cотключена&7."
#message-inv-sorting-enabled: "&7Автоматическая сортировка вещей в инвентаре &aвключена&7."
#message-player-inventory-sorted: "&7Ваш инвентарь был отсортирован."
#message-error-players-only: "&cОшибка: эта команда может быть использована только игроками."
#message-error-invalid-options: "&cОшибка: Неизвестный параметр %s. Допустимые параметры: %s."
#message-container-sorted: "&aХранилище отсортировано!"
#message-gui-enabled: "&aВключено"
#message-gui-disabled: "&cОтключено"
#message-gui-middle-click: "Колесо мыши"
#message-gui-shift-click: "Shift + Клик"
#message-gui-double-click: "Двойной клик"
#message-gui-shift-right-click: "Shift + Правый клик"
#message-gui-left-click: "Выложить вещи в сундук (ЛКМ/Двойной ЛКМ)"
#message-gui-right-click: "Забрать вещи из сундука (ПКМ/Двойной ПКМ)"
#message-gui-left-click-outside: "Левый клик за пределами инвентаря"
##### Spanish
#message-when-using-chest: "&7Usa &6/chestsort &7para activar la ordenación automática de contenedores."
#message-when-using-chest2: "&7Usa &6/chestsort &7para desactivar la ordenación automática de contenedores."
#message-sorting-disabled: "&7Se ha &cdesactivado &7la ordenación automática de contenedores."
#message-sorting-enabled: "&7Se ha &aactivado &7la ordenación automática de contenedores."
#message-inv-sorting-disabled: "&7Se ha &cdesactivado &7la ordenación automática del inventario."
#message-inv-sorting-enabled: "&7Se ha &aactivado &7la ordenación automática del inventario."
#message-player-inventory-sorted: "&7Tu inventario ha sido ordenado."
#message-error-players-only: "&cEste comando solo puede ser ejecutado por jugadores."
#message-error-invalid-options: "&c%s no es una opción válida. Las opciones válidas son: %s."
#message-hotbar-container-sorted: "&a¡Contenedor ordenado!"
#message-gui-enabled: "&aActivado"
#message-gui-disabled: "&cDesactivado"
#message-gui-middle-click: "&7Botón Central"
#message-gui-shift-click: "&7Mayús + Botón Izquierdo"
#message-gui-double-click: "&7Doble Pulsación con Botón Izquierdo"
#message-gui-shift-right-click: "&7Mayús + Botón Derecho"
#message-gui-left-click: "&7Llenar Cofre (Doble Pulsación / Botón Izquierdo)"
#message-gui-right-click: "&7Vaciar Cofre (Doble Pulsación / Botón Derecho)"
#message-gui-left-click-outside: "&7Botón Izquierdo en el exterior."
##### Swedish
#message-when-using-chest: "&7Tips: Skriv &6/chestsort&7 för att starta automatisk kist sortering."
#message-when-using-chest2: "&7Tips: Skriv &6/chestsort&7 för att stänga av automatisk kist sortering."
#message-sorting-disabled: "&7Automatisk kist sortering har &cstängts av&7."
#message-sorting-enabled: "&7Automatisk kist sortering har &astartatsd&7."
#message-inv-sorting-disabled: "&7Automatisk inventarium sortering har &cstängts avd&7."
#message-inv-sorting-enabled: "&7Automatisk inventarium sortering har &astartats&7."
#message-player-inventory-sorted: "&7Ditt inventarium har blivit sorterad."
#message-error-players-only: "&cFel: Detta kommando kan endast användas av spelare."
#message-error-invalid-options: "&cFel: Okänt alternativ %s. Giltiga alternativ är %s."
#message-container-sorted: "&aBehållare sorterad!"
#message-gui-enabled: "&aStartats"
#message-gui-disabled: "&cStängts av"
#message-gui-middle-click: "Mitten-Klick"
#message-gui-shift-click: "Shift + Klick"
#message-gui-double-click: "Dubbel-Klick"
#message-gui-shift-right-click: "Shift + Höger-Klick"
#message-gui-left-click: "Fyll Kistan (Vänster-Klick/Dubbel-Vänster-Klick)"
#message-gui-right-click: "Töm Kistan (höger-Klick/Dubbel-Höger-Klick)"
#message-gui-left-click-outside: "Vänster-Klick från utsidan"
##### Turkish
#message-when-using-chest: "&7İpucu: &6/chestsort&7 yazarak otomatik sandık düzenlemesini aktif edebilirsiniz"
#message-when-using-chest2: "&7İpucu: &6/chestsort&7 yazarak otomatik sandık düzenlemesini deaktif edebilirsiniz."
#message-sorting-disabled: "&7Otomatik sandık düzenlemesi &cdeaktifleştirildi&7."
#message-sorting-enabled: "&7Otomatik sandık düzenlemesi &aaktifleştirildi&7."
#message-inv-sorting-disabled: "&7Otomatik envanter düzenlemesi &cdeaktifleştirildi&7."
#message-inv-sorting-enabled: "&7Otomatik envanter düzenlemesi &aaktifleştirildi&7."
#message-player-inventory-sorted: "&7Envanteriniz Düzenlendi."
#message-error-players-only: "&cHata: Bu komut yalnızca oyuncular tarafından kullanılabilir."
#message-error-invalid-options: "&cHata: Bilinmeyen Ayar %s. Geçerli seçenekler %s."
#message-container-sorted: "&aContainer sorted!"
#message-gui-enabled: "&aAktifleştirildi"
#message-gui-disabled: "&cDeaktifleştirildi"
#message-gui-middle-click: "Orta tık"
#message-gui-shift-click: "Shift + Sol tık"
#message-gui-double-click: "Çift sol tık"
#message-gui-shift-right-click: "Shift + Sağ tık"
#message-gui-left-click: "Sandığı doldur (Sol tık/Çift sol tık)"
#message-gui-right-click: "Sandığı boşalt (Sağ tık/Çift sağ tık)"
#message-gui-left-click-outside: "Dışarıdan sol tıkla"
##### Vietnamese
#message-when-using-chest: "&7Gợi ý: Nhập &6/chestsort&7 để bật tự động sắp xếp rương."
#message-when-using-chest2: "&7Gợi ý: Nhập &6/chestsort&7 để tắt tự động sắp xếp rương."
#message-sorting-disabled: "&7Sắp xếp rương tự động đã được &ctắt&7."
#message-sorting-enabled: "&7Sắp xếp rương tự động đã được &abật&7."
#message-inv-sorting-disabled: "&7Sắp xếp túi đồ tự động đã được &ctắt&7."
#message-inv-sorting-enabled: "&7Sắp xếp túi đồ tự động đã được &abật&7."
#message-player-inventory-sorted: "&7Túi đồ của bạn đã được sắp xếp."
#message-error-players-only: "&cLỗi: Lệnh này chỉ có thể thực hiện bởi người chơi."
#message-error-invalid-options: "&cLỗi: Lựa chọn không hợp lệ %s. Lựa chọn đúng phải là %s."
#message-container-sorted: "&aContainer sorted!"
#message-gui-enabled: "&aĐã bật"
#message-gui-disabled: "&cĐã tắt"
#message-gui-middle-click: "Chuột giữa"
#message-gui-shift-click: "Shift + Chuột trái"
#message-gui-double-click: "Nhấn đúp"
#message-gui-shift-right-click: "Shift + Chuột phải"
#message-gui-left-click: "Lấp đầy rương (Chuột trái/nhấn đúp chuột trái)"
#message-gui-right-click: "Empty Chest (Chuột phải/nhấn đúp chuột phải)"
#message-gui-left-click-outside: "Nhấn chuột trái bên ngoài"
##### Romanian
#message-when-using-chest: "&7Sugestie: Foloseste &6/chestsort&7 pentru a activa sortarea automata a cufarului."
#message-when-using-chest2: "&7Sugestie: Foloseste &6/chestsort&7 pentru a dezactiva sortarea automata a cufarului."
#message-sorting-disabled: "&7Sortarea automata a fost &cdezactivata&7."
#message-sorting-enabled: "&7Sortarea automata a fost &aactivata&7."
#message-inv-sorting-disabled: "&7Sortarea automata a inventarului a fost &cdezactivata&7."
#message-inv-sorting-enabled: "&7Sortarea automata a inventarului a fost &aactivata&7."
#message-player-inventory-sorted: "&7Inventarul tau a fost sortat."
#message-error-players-only: "&cEroare: Comanda aceasta poate fii folosita doar de catre jucatori."
#message-error-invalid-options: "&cEroare: Optiune necunoscuta %s. Optiunile valide sunt %s."
#message-container-sorted: "&aRecipient sortat!"
#message-gui-enabled: "&aActivat"
#message-gui-disabled: "&cDezactivat"
#message-gui-middle-click: "Middle-Click"
#message-gui-shift-click: "Shift + Click"
#message-gui-double-click: "Double-Click"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Umple cufarul (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Goloseste cufarul (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click din afara"
############################
##### Technical stuff! #####
############################
# If you want to reorganize your category files, you can temporarily enable
# the dump option to get a .csv file that includes EVERY available material
# with its associated category. This way, you can easily find items that
# have not yet been assigned to a category.
dump: false
# Debug mode - you probably do not want this.
debug: false
debug2: false
# Enable log - you probably do not want this.
log: false
# Do not change the following lines!
config-version: 202406140918
plugin-version: 14.1.0

299
plugins/ChestSort/gui.yml Normal file
View File

@@ -0,0 +1,299 @@
# You can customize the GUI here. Every single item is 100% customizable, including
# their slot numbers, custom model data, custom base64 strings for heads, etc.
# The default config uses Yaml Anchors so you don't have to define the same item
# over and over again. I wrote a tiny explanation about them here:
# https://wiki.jeff-media.com/books/general-information/page/yaml-anchors
# Items can be defined inside the "items" section using the following values:
# material: DIAMOND
# display-name: "My Diamond"
# lore:
# - "First line"
# - "Second line, etc."
# - "&cRed line"
# - "<#ff0000>Red hex color"
# - "<#ff0000>Hex gradient<#/ffffff>"
# amount: 1
# base64: "<base64 string for player heads>"
# custom-model-data: 2
# damage: 0
# enchantments:
# unbreaking: 3
# efficiency: 5
# commands:
# player:
# - "say Hello" # command that will be run as the player
# console:
# - "tell {player} Hello" # command that will be run as the console
# You can then reference the item in the "slots" section using their defined name.
title: "<#000000>&l[<#007700>&lChest<#339933>&lSort<#000000>&l] &rSettings"
size: 45
items:
autosorting-enabled:
display-name: &autosorting-name "<#2e86c1>&lAutomatic Sorting<#/85c1e9>"
material: PLAYER_HEAD
base64: &base64-enabled "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWZmMzE0MzFkNjQ1ODdmZjZlZjk4YzA2NzU4MTA2ODFmOGMxM2JmOTZmNTFkOWNiMDdlZDc4NTJiMmZmZDEifX19"
lore:
- &lore-enabled "<#229954>&lEnabled<#/7dcea0>"
- &autosorting-lore-1 "<#d5dbdb>Automatically sorts all chests,"
- &autosorting-lore-2 "<#d5dbdb>barrels etc when you use them."
autosorting-disabled:
display-name: *autosorting-name
material: PLAYER_HEAD
base64: &base64-disabled "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGU0YjhiOGQyMzYyYzg2NGUwNjIzMDE0ODdkOTRkMzI3MmE2YjU3MGFmYmY4MGMyYzViMTQ4Yzk1NDU3OWQ0NiJ9fX0="
lore:
- &lore-disabled "<#a93226>&lDisabled<#/e74c3c>"
- *autosorting-lore-1
- *autosorting-lore-2
autosorting-nopermission: &nopermission
display-name: *autosorting-name
material: BARRIER
lore:
- "<#a93226>No Permission<#/e74c3c>"
autoinvsorting-enabled:
display-name: &autoinvsorting-name "<#2e86c1>&lAutomatic Inventory Sorting<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &autoinvsorting-lore-1 "<#d5dbdb>Automatically sorts your player"
- &autoinvsorting-lore-2 "<#d5dbdb>inventory when you open it."
autoinvsorting-disabled:
display-name: *autoinvsorting-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *autoinvsorting-lore-1
- *autoinvsorting-lore-2
autoinvsorting-nopermission:
<<: *nopermission
display-name: *autoinvsorting-name
shiftclick-enabled:
display-name: &shiftclick-name "<#2e86c1>&lShift-Click<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &shiftclick-lore-1 "<#d5dbdb>Sorts an inventory using Shift-click"
- &shiftclick-lore-2 "<#d5dbdb>on an empty slot."
shiftclick-disabled:
display-name: *shiftclick-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *shiftclick-lore-1
- *shiftclick-lore-2
shiftclick-nopermission:
<<: *nopermission
display-name: *shiftclick-name
middleclick-enabled:
display-name: &middleclick-name "<#2e86c1>&lMiddle-Click<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &middleclick-lore-1 "<#d5dbdb>Sorts an inventory using Middle-click"
- &middleclick-lore-2 "<#d5dbdb>(mousewheel) on any slot."
middleclick-disabled:
display-name: *middleclick-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *middleclick-lore-1
- *middleclick-lore-2
middleclick-nopermission:
<<: *nopermission
display-name: *middleclick-name
doubleclick-enabled:
display-name: &doubleclick-name "<#2e86c1>&lDouble-Click<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &doubleclick-lore-1 "<#d5dbdb>Sorts an inventory using Double-click"
- &doubleclick-lore-2 "<#d5dbdb>on an empty slot."
doubleclick-disabled:
display-name: *doubleclick-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *doubleclick-lore-1
- *doubleclick-lore-2
doubleclick-nopermission:
<<: *nopermission
display-name: *doubleclick-name
shiftrightclick-enabled:
display-name: &shiftrightclick-name "<#2e86c1>&lShift-Right-Click<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &shiftrightclick-lore-1 "<#d5dbdb>Sorts an inventory using Shift-Right-click"
- &shiftrightclick-lore-2 "<#d5dbdb>on an empty slot."
shiftrightclick-disabled:
display-name: *shiftrightclick-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *shiftrightclick-lore-1
- *shiftrightclick-lore-2
shiftrightclick-nopermission:
<<: *nopermission
display-name: *shiftrightclick-name
outside-enabled:
display-name: &outside-name "<#2e86c1>&lLeft-Click Block<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &outside-lore-1 "<#d5dbdb>Sorts a chest, barrel etc. by"
- &outside-lore-2 "<#d5dbdb>left-clicking it."
outside-disabled:
display-name: *outside-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *outside-lore-1
- *outside-lore-2
outside-nopermission:
<<: *nopermission
display-name: *outside-name
leftclick-enabled:
display-name: &leftclick-name "<#2e86c1>&lFill Chest<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &leftclick-lore-1 "<#d5dbdb>Fill a chest with matching items by"
- &leftclick-lore-2 "<#d5dbdb>left-clicking outside the opened inventory."
- &leftclick-lore-3 "<#d5dbdb>Fill a chest with all items (except your"
- &leftclick-lore-4 "<#d5dbdb>hotbar) by double-left-clicking outside"
- &leftclick-lore-5 "<#d5dbdb>the opened inventory."
leftclick-disabled:
display-name: *leftclick-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *leftclick-lore-1
- *leftclick-lore-2
- *leftclick-lore-3
- *leftclick-lore-4
- *leftclick-lore-5
leftclick-nopermission:
<<: *nopermission
display-name: *leftclick-name
rightclick-enabled:
display-name: &rightclick-name "<#2e86c1>Empty Chest<#/85c1e9>"
material: PLAYER_HEAD
base64: *base64-enabled
lore:
- *lore-enabled
- &rightclick-lore-1 "<#d5dbdb>Take matching items from a chest by"
- &rightclick-lore-2 "<#d5dbdb>right-clicking outside the opened"
- &rightclick-lore-3 "<#d5dbdb>inventory. Take all items from a chest"
- &rightclick-lore-4 "<#d5dbdb>by double-left-clicking outside the"
- &rightclick-lore-5 "<#d5dbdb>opened inventory"
rightclick-disabled:
display-name: *rightclick-name
material: PLAYER_HEAD
base64: *base64-disabled
lore:
- *lore-disabled
- *rightclick-lore-1
- *rightclick-lore-2
- *rightclick-lore-3
- *rightclick-lore-4
- *rightclick-lore-5
rightclick-nopermission:
<<: *nopermission
display-name: *rightclick-name
slots:
0: &placeholder
material: BLACK_STAINED_GLASS_PANE
display-name: "&a" # Prevents showing the item's name
1: *placeholder
2: *placeholder
3: *placeholder
4: *placeholder
5: *placeholder
6: *placeholder
7: *placeholder
8: *placeholder
9: *placeholder
10: *placeholder
11: autosorting
12: *placeholder
13: *placeholder
14: *placeholder
15: autoinvsorting
16: *placeholder
17: *placeholder
18: *placeholder
19: shiftclick
20: *placeholder
21: middleclick
22: *placeholder
23: doubleclick
24: *placeholder
25: shiftrightclick
26: *placeholder
27: *placeholder
28: *placeholder
29: leftclick
30: *placeholder
31: outside
32: *placeholder
33: rightclick
34: *placeholder
35: *placeholder
36: *placeholder
37: *placeholder
38: *placeholder
39: *placeholder
40: *placeholder
41: *placeholder
42: *placeholder
43: *placeholder
44: *placeholder
45: *placeholder
46: *placeholder
47: *placeholder
48: *placeholder
49: *placeholder
50: *placeholder
51: *placeholder
52: *placeholder
53: *placeholder

View File

@@ -0,0 +1,2 @@
updateCheck: true
verifyUpdateCertificate: false

View File

@@ -0,0 +1,8 @@
permission: commandspy.receive
identifier: '0500'
familiar: ignore
effect: REJECT
rules:
- ruleType: COMMAND
messagePatternFamiliar: /list
senderPatternFamiliar: CONSOLE

View File

@@ -0,0 +1,5 @@
permission: commandspy.use
identifier: 00000000-0000-0000-0000-000000000000
familiar: CONSOLE
effect: ACCEPT
rules: []

View File

View File

@@ -0,0 +1,148 @@
# CoreProtect Config
# CoreProtect is donationware. Obtain a donation key from coreprotect.net/donate/
donation-key:
# MySQL is optional and not required.
# If you prefer to use MySQL, enable the following and fill out the fields.
use-mysql: false
table-prefix: co_
mysql-host: 127.0.0.1
mysql-port: 3306
mysql-database: database
mysql-username: root
mysql-password:
# If modified, will automatically attempt to translate languages phrases.
# List of language codes: https://coreprotect.net/languages/
language: en
# If enabled, CoreProtect will check for updates when your server starts up.
# If an update is available, you'll be notified via your server console.
check-updates: true
# If enabled, other plugins will be able to utilize the CoreProtect API.
api-enabled: true
# If enabled, extra data is displayed during rollbacks and restores.
# Can be manually triggered by adding "#verbose" to your rollback command.
verbose: true
# If no radius is specified in a rollback or restore, this value will be
# used as the radius. Set to "0" to disable automatically adding a radius.
default-radius: 10
# The maximum radius that can be used in a command. Set to "0" to disable.
# To run a rollback or restore without a radius, you can use "r:#global".
max-radius: 100
# If enabled, items taken from containers (etc) will be included in rollbacks.
rollback-items: true
# If enabled, entities, such as killed animals, will be included in rollbacks.
rollback-entities: true
# If enabled, generic data, like zombies burning in daylight, won't be logged.
skip-generic-data: true
# Logs blocks placed by players.
block-place: true
# Logs blocks broken by players.
block-break: true
# Logs blocks that break off of other blocks; for example, a sign or torch
# falling off of a dirt block that a player breaks. This is required for
# beds/doors to properly rollback.
natural-break: true
# Properly track block movement, such as sand or gravel falling.
block-movement: true
# Properly track blocks moved by pistons.
pistons: true
# Logs blocks that burn up in a fire.
block-burn: true
# Logs when a block naturally ignites, such as from fire spreading.
block-ignite: true
# Logs explosions, such as TNT and Creepers.
explosions: true
# Track when an entity changes a block, such as an Enderman destroying blocks.
entity-change: true
# Logs killed entities, such as killed cows and enderman.
entity-kills: true
# Logs text on signs. If disabled, signs will be blank when rolled back.
sign-text: true
# Logs lava and water sources placed/removed by players who are using buckets.
buckets: true
# Logs natural tree leaf decay.
leaf-decay: true
# Logs tree growth. Trees are linked to the player who planted the sapling.
tree-growth: true
# Logs mushroom growth.
mushroom-growth: true
# Logs natural vine growth.
vine-growth: true
# Logs the spread of sculk blocks from sculk catalysts.
sculk-spread: true
# Logs when portals such as Nether portals generate naturally.
portals: true
# Logs water flow. If water destroys other blocks, such as torches,
# this allows it to be properly rolled back.
water-flow: true
# Logs lava flow. If lava destroys other blocks, such as torches,
# this allows it to be properly rolled back.
lava-flow: true
# Allows liquid to be properly tracked and linked to players.
# For example, if a player places water which flows and destroys torches,
# it can all be properly restored by rolling back that single player.
liquid-tracking: true
# Track item transactions, such as when a player takes items from
# a chest, furnace, or dispenser.
item-transactions: true
# Logs items dropped by players.
item-drops: true
# Logs items picked up by players.
item-pickups: true
# Track all hopper transactions, such as when a hopper removes items from a
# chest, furnace, or dispenser.
hopper-transactions: true
# Track player interactions, such as when a player opens a door, presses
# a button, or opens a chest. Player interactions can't be rolled back.
player-interactions: true
# Logs messages that players send in the chat.
player-messages: true
# Logs all commands used by players.
player-commands: true
# Logs the logins and logouts of players.
player-sessions: true
# Logs when a player changes their Minecraft username.
username-changes: true
# Logs changes made via the plugin "WorldEdit" if it's in use on your server.
worldedit: true

View File

@@ -0,0 +1,203 @@
# CoreProtect Language File (en)
ACTION_NOT_SUPPORTED: "That action is not supported by the command."
AMOUNT_BLOCK: "{0} {block|blocks}"
AMOUNT_CHUNK: "{0} {chunk|chunks}"
AMOUNT_ENTITY: "{0} {entity|entities}"
AMOUNT_ITEM: "{0} {item|items}"
API_TEST: "API test successful."
CACHE_ERROR: "WARNING: Error while validating {0} cache."
CACHE_RELOAD: "Forcing reload of {mapping|world} caches from database."
CHECK_CONFIG: "Please check config.yml"
COMMAND_CONSOLE: "Please run the command from the console."
COMMAND_NOT_FOUND: "Command \"{0}\" not found."
COMMAND_THROTTLED: "Please wait a moment and try again."
CONSUMER_ERROR: "Consumer queue processing already {paused|resumed}."
CONSUMER_TOGGLED: "Consumer queue processing has been {paused|resumed}."
CONTAINER_HEADER: "Container Transactions"
DATABASE_BUSY: "Database busy. Please try again later."
DATABASE_INDEX_ERROR: "Unable to validate database indexes."
DATABASE_LOCKED_1: "Database locked. Waiting up to 15 seconds..."
DATABASE_LOCKED_2: "Database is already in use. Please try again."
DATABASE_LOCKED_3: "To disable database locking, set \"database-lock: false\"."
DATABASE_LOCKED_4: "Disabling database locking can result in data corruption."
DATABASE_UNREACHABLE: "Database is unreachable. Discarding data and shutting down."
DEVELOPMENT_BRANCH: "Development branch detected, skipping patch scripts."
DIRT_BLOCK: "Placed a dirt block under you."
DISABLE_SUCCESS: "Success! Disabled {0}"
ENABLE_FAILED: "{0} was unable to start."
ENABLE_SUCCESS: "{0} has been successfully enabled!"
ENJOY_COREPROTECT: "Enjoy {0}? Join our Discord!"
FINISHING_CONVERSION: "Finishing up data conversion. Please wait..."
FINISHING_LOGGING: "Finishing up data logging. Please wait..."
FIRST_VERSION: "Initial DB: {0}"
GLOBAL_LOOKUP: "Don't specify a radius to do a global lookup."
GLOBAL_ROLLBACK: "Use \"{0}\" to do a global {rollback|restore}"
HELP_ACTION_1: "Restrict the lookup to a certain action."
HELP_ACTION_2: "Examples: [a:block], [a:+block], [a:-block] [a:click], [a:container], [a:inventory], [a:item], [a:kill], [a:chat], [a:command], [a:sign], [a:session], [a:username]"
HELP_COMMAND: "Display more info for that command."
HELP_EXCLUDE_1: "Exclude blocks/users."
HELP_EXCLUDE_2: "Examples: [e:stone], [e:Notch], [e:stone,Notch]"
HELP_HEADER: "{0} Help"
HELP_INCLUDE_1: "Include specific blocks/entities."
HELP_INCLUDE_2: "Examples: [i:stone], [i:zombie], [i:stone,wood,bedrock]"
HELP_INSPECT_1: "With the inspector enabled, you can do the following:"
HELP_INSPECT_2: "Left-click a block to see who placed that block."
HELP_INSPECT_3: "Right-click a block to see what adjacent block was broken."
HELP_INSPECT_4: "Place a block to see what block was broken at that location."
HELP_INSPECT_5: "Place a block in liquid (etc) to see who placed it."
HELP_INSPECT_6: "Right-click on a door, chest, etc, to see who last used it."
HELP_INSPECT_7: "Tip: You can use just \"/co i\" for quicker access."
HELP_INSPECT_COMMAND: "Turns the block inspector on or off."
HELP_LIST: "Displays a list of all commands."
HELP_LOOKUP_1: "Command shortcut."
HELP_LOOKUP_2: "Use after inspecting a block to view logs."
HELP_LOOKUP_COMMAND: "Advanced block data lookup."
HELP_NO_INFO: "Information for command \"{0}\" not found."
HELP_PARAMETER: "Please see \"{0}\" for detailed parameter info."
HELP_PARAMS_1: "Perform the {lookup|rollback|restore}."
HELP_PARAMS_2: "Specify the user(s) to {lookup|rollback|restore}."
HELP_PARAMS_3: "Specify the amount of time to {lookup|rollback|restore}."
HELP_PARAMS_4: "Specify a radius area to limit the {lookup|rollback|restore} to."
HELP_PARAMS_5: "Restrict the {lookup|rollback|restore} to a certain action."
HELP_PARAMS_6: "Include specific blocks/entities in the {lookup|rollback|restore}."
HELP_PARAMS_7: "Exclude blocks/users from the {lookup|rollback|restore}."
HELP_PURGE_1: "Delete data older than specified time."
HELP_PURGE_2: "For example, \"{0}\" will delete all data older than one month, and only keep the last 30 days of data."
HELP_PURGE_COMMAND: "Delete old block data."
HELP_RADIUS_1: "Specify a radius area."
HELP_RADIUS_2: "Examples: [r:10] (Only make changes within 10 blocks of you)"
HELP_RELOAD_COMMAND: "Reloads the configuration file."
HELP_RESTORE_COMMAND: "Restore block data."
HELP_ROLLBACK_COMMAND: "Rollback block data."
HELP_STATUS: "View the plugin status and version information."
HELP_STATUS_COMMAND: "Displays the plugin status."
HELP_TELEPORT: "Teleport to a location."
HELP_TIME_1: "Specify the amount of time to lookup."
HELP_TIME_2: "Examples: [t:2w,5d,7h,2m,10s], [t:5d2h], [t:2.50h]"
HELP_USER_1: "Specify the user(s) to lookup."
HELP_USER_2: "Examples: [u:Notch], [u:Notch,#enderman]"
INCOMPATIBLE_ACTION: "\"{0}\" can't be used with that action."
INSPECTOR_ERROR: "Inspector already {enabled|disabled}."
INSPECTOR_TOGGLED: "Inspector now {enabled|disabled}."
INTEGRATION_ERROR: "Unable to {initialize|disable} {0} logging."
INTEGRATION_SUCCESS: "{0} logging successfully {initialized|disabled}."
INTEGRATION_VERSION: "Invalid {0} version found."
INTERACTIONS_HEADER: "Player Interactions"
INVALID_ACTION: "That is not a valid action."
INVALID_BRANCH_1: "Invalid plugin version (branch has not been set)."
INVALID_BRANCH_2: "To continue, set project branch to \"development\"."
INVALID_BRANCH_3: "Running development code may result in data corruption."
INVALID_CONTAINER: "Please inspect a valid container first."
INVALID_DONATION_KEY: "Invalid donation key."
INVALID_INCLUDE: "\"{0}\" is an invalid block/entity name."
INVALID_INCLUDE_COMBO: "That is an invalid block/entity combination."
INVALID_RADIUS: "Please enter a valid radius."
INVALID_SELECTION: "{0} selection not found."
INVALID_USERNAME: "\"{0}\" is an invalid username."
INVALID_WORLD: "Please specify a valid world."
LATEST_VERSION: "Latest Version: {0}"
LINK_DISCORD: "Discord: {0}"
LINK_DOWNLOAD: "Download: {0}"
LINK_PATREON: "Patreon: {0}"
LINK_WIKI_BLOCK: "Block Names: {0}"
LINK_WIKI_ENTITY: "Entity Names: {0}"
LOGGING_ITEMS: "{0} items left to log. Please wait..."
LOGGING_TIME_LIMIT: "Logging time limit reached. Discarding data and shutting down."
LOOKUP_BLOCK: "{0} {placed|broke} {1}."
LOOKUP_CONTAINER: "{0} {added|removed} {1} {2}."
LOOKUP_HEADER: "{0} Lookup Results"
LOOKUP_INTERACTION: "{0} {clicked|killed} {1}."
LOOKUP_ITEM: "{0} {picked up|dropped} {1} {2}."
LOOKUP_LOGIN: "{0} logged {in|out}."
LOOKUP_PAGE: "Page {0}"
LOOKUP_PROJECTILE: "{0} {threw|shot} {1} {2}."
LOOKUP_ROWS_FOUND: "{0} {row|rows} found."
LOOKUP_SEARCHING: "Lookup searching. Please wait..."
LOOKUP_STORAGE: "{0} {deposited|withdrew} {1} {2}."
LOOKUP_TIME: "{0} ago"
LOOKUP_USERNAME: "{0} logged in as {1}."
MAXIMUM_RADIUS: "The maximum {lookup|rollback|restore} radius is {0}."
MISSING_ACTION_USER: "To use that action, please specify a user."
MISSING_LOOKUP_TIME: "Please specify the amount of time to {lookup|rollback|restore}."
MISSING_LOOKUP_USER: "Please specify a user or {block|radius} to lookup."
MISSING_PARAMETERS: "Please use \"{0}\"."
MISSING_ROLLBACK_RADIUS: "You did not specify a {rollback|restore} radius."
MISSING_ROLLBACK_USER: "You did not specify a {rollback|restore} user."
MYSQL_UNAVAILABLE: "Unable to connect to MySQL server."
NETWORK_CONNECTION: "Connection by {0} {successful|failed}. Using {1} {2}."
NETWORK_TEST: "Network test data has been successful sent."
NO_DATA: "No data found at {0}."
NO_DATA_LOCATION: "No {data|transactions|interactions|messages} found at this location."
NO_PERMISSION: "You do not have permission to do that."
NO_RESULTS: "No results found."
NO_RESULTS_PAGE: "No {results|data} found for that page."
NO_ROLLBACK: "No {pending|previous} rollback/restore found."
PATCH_INTERRUPTED: "Upgrade interrupted. Will try again on restart."
PATCH_OUTDATED_1: "Unable to upgrade databases older than {0}."
PATCH_OUTDATED_2: "Please upgrade with a supported version of CoreProtect."
PATCH_PROCESSING: "Processing new data. Please wait..."
PATCH_SKIP_UPDATE: "Skipping {table|index} {update|creation|removal} on {0}."
PATCH_STARTED: "Performing {0} upgrade. Please wait..."
PATCH_SUCCESS: "Successfully upgraded to {0}."
PATCH_UPGRADING: "Database upgrade in progress. Please wait..."
PLEASE_SELECT: "Please select: \"{0}\" or \"{1}\"."
PREVIEW_CANCELLED: "Preview cancelled."
PREVIEW_CANCELLING: "Cancelling preview..."
PREVIEW_IN_GAME: "You can only preview rollbacks in-game."
PREVIEW_TRANSACTION: "You can't preview {container|inventory} transactions."
PURGE_ABORTED: "Purge failed. Database may be corrupt."
PURGE_ERROR: "Unable to process {0} data!"
PURGE_FAILED: "Purge failed. Please try again later."
PURGE_IN_PROGRESS: "Purge in progress. Please try again later."
PURGE_MINIMUM_TIME: "You can only purge data older than {0} {days|hours}."
PURGE_NOTICE_1: "Please note that this may take some time."
PURGE_NOTICE_2: "Do not restart your server until completed."
PURGE_OPTIMIZING: "Optimizing database. Please wait..."
PURGE_PROCESSING: "Processing {0} data..."
PURGE_REPAIRING: "Attempting to repair. This may take some time..."
PURGE_ROWS: "{0} {row|rows} of data deleted."
PURGE_STARTED: "Data purge started on \"{0}\"."
PURGE_SUCCESS: "Data purge successful."
RELOAD_STARTED: "Reloading configuration - please wait."
RELOAD_SUCCESS: "Configuration successfully reloaded."
ROLLBACK_ABORTED: "Rollback or restore aborted."
ROLLBACK_CHUNKS_FOUND: "Found {0} {chunk|chunks} to modify."
ROLLBACK_CHUNKS_MODIFIED: "Modified {0}/{1} {chunk|chunks}."
ROLLBACK_COMPLETED: "{Rollback|Restore|Preview} completed for \"{0}\"."
ROLLBACK_EXCLUDED_USERS: "Excluded {user|users}: \"{0}\"."
ROLLBACK_INCLUDE: "{Included|Excluded} {block|entity|target} {type|types}: \"{0}\"."
ROLLBACK_IN_PROGRESS: "A rollback/restore is already in progress."
ROLLBACK_LENGTH: "Time taken: {0} {second|seconds}."
ROLLBACK_MODIFIED: "{Modified|Modifying} {0}."
ROLLBACK_RADIUS: "Radius: {0} {block|blocks}."
ROLLBACK_SELECTION: "Radius set to \"{0}\"."
ROLLBACK_STARTED: "{Rollback|Restore|Preview} started on \"{0}\"."
ROLLBACK_TIME: "Time range: {0}."
ROLLBACK_WORLD_ACTION: "Restricted to {world|action} \"{0}\"."
SIGN_HEADER: "Sign Messages"
STATUS_CONSUMER: "Consumer: {0} {item|items} in queue."
STATUS_DATABASE: "Database: Using {0}."
STATUS_INTEGRATION: "{0}: Integration {enabled|disabled}."
STATUS_LICENSE: "License: {0}"
STATUS_VERSION: "Version: {0}"
TELEPORTED: "Teleported to {0}."
TELEPORTED_SAFETY: "Teleported you to safety."
TELEPORT_PLAYERS: "Teleport command can only be used by players."
TIME_DAYS: "{0} {day|days}"
TIME_HOURS: "{0} {hour|hours}"
TIME_MINUTES: "{0} {minute|minutes}"
TIME_SECONDS: "{0} {second|seconds}"
TIME_WEEKS: "{0} {week|weeks}"
UPDATE_ERROR: "An error occurred while checking for updates."
UPDATE_HEADER: "{0} Update"
UPDATE_NOTICE: "Notice: {0} is now available."
UPGRADE_IN_PROGRESS: "Upgrade in progress. Please try again later."
USER_NOT_FOUND: "User \"{0}\" not found."
USER_OFFLINE: "The user \"{0}\" is not online."
USING_MYSQL: "Using MySQL for data storage."
USING_SQLITE: "Using SQLite for data storage."
VALID_DONATION_KEY: "Valid donation key."
VERSION_NOTICE: "Version {0} is now available."
VERSION_REQUIRED: "{0} {1} or higher is required."
WORLD_NOT_FOUND: "World \"{0}\" not found."

View File

@@ -0,0 +1,82 @@
Plugin:
Updates: true
Metrics: true
Event:
Join:
Enable: true
Message: '&6%Player &9joined the game!'
Quit:
Enable: true
Message: '&6%Player &9left the game!'
Whitelist:
Enable: true
Message: '&4Sorry. &6You are not on the Whitelist!'
ServerFull:
Enable: true
Message: '&4Sorry. &6The Server is full, try again Later!'
Server:
Motd:
Enable: true
Messages:
- '&bA minecraft server'
- '&4A minecraft server'
- '&1A minecraft server'
- '&7A minecraft server'
- '&6A minecraft server'
- '&aA minecraft server'
- '&2A minecraft server'
Command:
Say:
# DISABLE CURRENTLY NOT WORKING
Enable: true
# TIP: Replace %Player with SERVER if you don"t like the Players name there!
Message: '&6[%Player] >>> &b%Message'
Me:
# DISABLE CURRENTLY NOT WORKING
Enable: true
Message: '&6* %Player &b%Message'
Plugins:
Enable: true
Message: '&4You dont have Permissions to see the Plugins!'
Version:
Enable: true
Message: '&4You dont have Permissions to see the Version!'
Seed:
Enable: true
Message: '&4You dont have Permissions to see the Seed!'
DeathMessages:
Enable: true
Messages:
Drowned: '&6%Player &9drowned'
FallDamage: '&6%Player &9hit the ground too hard'
Void: '&6%Player &9fell out of the world'
Lava: '&6%Player &9tried to swim in lava'
Fire: '&6%Player &9went up in flames'
Explosion: '&6%Player &9blew up'
Magic: '&6%Player &9was killed by magic'
Suffocated: '&6%Player &9suffocated in a wall'
Projectile: '&6%Player &9was pricked to death'
Starved: '&6%Player &9starved to death'
Withered: '&6%Player &9withered away'
Died: '&6%Player &9died'
Player: '&6%Killer &9killed &6%Killed &9with a %Item'
Slain:
Pigman: '&6%Player &9was slain by Zombie Pigman'
Zombie: '&6%Player &9was slain by Zombie'
Spider: '&6%Player &9was slain by Spider'
Silverfish: '&6%Player &9was slain by Silverfish'
Slime: '&6%Player &9was slain by Slime'
Creeper: '&6%Player &9was blown up by Creeper'
MagmaCube: '&6%Player &9was slain by Magma Cube'
Enderman: '&6%Player &9was slain by Enderman'
EnderDragon: '&6%Player &9was slain by EnderDragon'
CaveSpider: '&6%Player &9was slain by CaveSpider'
IronGolem: '&6%Player &9was slain by IronGolem'
Wolf: '&6%Player &9was slain by Wolf'
Giant: '&6%Player &9was slain by Giant'
Wither: '&6%Player &9was slain by Wither'
Skeleton: '&6%Player &9was shot by Skeleton'
Blaze: '&6%Player &9was fireballed by Blaze'
Ghast: '&6%Player &9was fireballed by Ghast'
Witch: '&6%Player &9was slain by Witch'
WitherSkeleton: '&6%Player &9was slain by WitherSkeleton'

View File

@@ -0,0 +1,123 @@
# This is an /advanced/ feature of DiscordSRV that allows you to send messages to Discord when a game event happens
# or when a command is run. You will need a working knowledge of how Bukkit events work and their properties.
# If you aren't sure about what you're doing here, maybe ask a developer or join our support server @ discordsrv.com/discord
# Made something you'd like to share? You can do so in our Discord server's #alerts forum (invite above)
#
# Refer to the Bukkit API javadoc to find events & properties to use:
# https://hub.spigotmc.org/javadocs/bukkit
# Helpful resources for learning how to use SpEL:
# https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html
# https://dzone.com/articles/learn-spring-expression-language-with-examples
#
# You can use the following placeholders:
# {tps} - server TPS
# {time} - formatted time
# {date} - formatted date
# {name} - if alert is for a player event, the name of the player
# {ping} - if alert is for a player event, the ping of the player
# {username} - if alert is for a player event, the username of the player
# {displayname} - if alert is for a player event, the display name of the player
# {usernamenoescapes} - if alert is for a player event, the username of the player without escaping discord format (for use in inline code & code block markdown)
# {displaynamenoescapes} - if alert is for a player event, the display name of the player without escaping discord format (for use in inline code & code block markdown)
# {world} - if alert is for a player event, the world the player is in
# {embedavatarurl} - if alert is for a player event, the avatar url for the player's head, otherwise, the bot's avatar url
# {botavatarurl} - the bot's avatar url
# {botname} - the bot's name
# %placeholder% - any PlaceholderAPI placeholders, can only use player ones when alert is for a player event
#
# You can also use SpEL expressions with ${expression...}, such as...
# - Getting a player's IP: ${#player.address.address.hostAddress}
# - Getting a player's game mode: ${#player.gameMode.name()}
# - Getting a player's linked Discord account ID: ${#discordsrv.accountLinkManager.getDiscordId(#player.uniqueId)}
# - Getting the online player count: ${#server.onlinePlayers.size()}
# - Getting the status of DiscordSRV's connection to Discord: ${#jda.status.name()}
# - Checking if a player is in a specific world: ${#player.world.name == 'world_the_end'}
# - Checking if it's day in the world that the player is in: ${#player.world.time > 0 && #player.world.time < 13000}
# You can use the following expression placeholders, as seen above:
# #plugins.<plugin> - the specified plugin instance, null if doesn't exist
# #event - the event that's triggering the alert if this alert is an event alert
# #server - the Bukkit API server instance, equivalent to Bukkit#getServer
# #discordsrv - the DiscordSRV plugin instance
# #player - the player that the event is for, if this is a player event or command
# #sender - the command sender, if this is a command alert
# #command - the full command, with no leading slash, if this is a command alert
# #args - the command arguments, if this is a command alert
# #allArgs - the command arguments as one string, if this is a command alert
# #channel - the destination channel for this alert
# #jda - DiscordSRV's JDA instance that it uses to communicate with Discord
#
# Syntax/defaults:
# - Trigger: <event name or /command>
# Async: true # optional, defaults to true, you should almost never have to change this
# Conditions:
# - property == < > <= >= value etc
# Channel: <discordsrv channel name>
# IgnoreCancelled: true # only for event alerts
# Content: ""
# Webhook:
# Enabled: false
# AvatarUrl: "{botavatarurl}"
# Name: "{botname}"
# Embed:
# Enabled: true
# Color: "#00ff00" # accepts a hex color code (eg. "#ffffff") or a rgb integer (eg. 0)
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} did... something."
# Url: ""
# ThumbnailUrl: ""
# Title:
# Text: ""
# Url: ""
# Description: ""
# Fields: [] # format is "title;value;inline" (eg. "Who joined?;%displayname%;true") or "blank" to add a blank field
# ImageUrl: ""
# Footer:
# Text: ""
# IconUrl: ""
# Timestamp: false # set to true to use the time the message was sent or use a epoch timestamp for a specific time (https://www.epochconverter.com/)
#
Alerts:
# Example config to send messages to the "fish" DiscordSRV channel when a player successfully catches a fish
#- Trigger: PlayerFishEvent
# Channel: fish
# Conditions:
# - state.name() == 'CAUGHT_FISH'
# Embed:
# Color: "#00ff00"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{name} caught a ${caught.itemStack.type.name()}!"
# Example config to send Matrix anti-cheat messages
#- Trigger: PlayerViolationEvent
# Channel: matrix
# Conditions:
# - violations >= 5 # don't send events for players with < 5 violations
# Embed:
# Color: "#ff0000"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} failed ${hackType.name().toLowerCase()} check | ${component} | vl:${violations} ping:${player.handle.ping} tps:{tps}"
# Example config to send /gamemode messages
#- Trigger: /gamemode
# Channel: gamemode
# Conditions:
# - '#player.hasPermission("minecraft.command.gamemode") == true'
# Embed:
# Color: "#ff0000"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} changed gamemode to ${#args.get(0)}"
# Example config to send /me commands
#- Trigger: /me
# Channel: me
# Conditions:
# - '#player.hasPermission("minecraft.command.me") == true || #player.hasPermission("essentials.me") == true'
# Embed:
# Color: "#00ff00"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "* {username} ${#allArgs}"

View File

@@ -0,0 +1,354 @@
# DiscordSRV Configuration
# Need help? Join our Discord, https://discordsrv.com/discord
# Don't touch pls
ConfigVersion: 1.28.0
# Bot token; don't know what this is? Look at the video on the plugin page for instructions
# You must restart your server after changing this option
BotToken: "BOTTOKEN"
# The proxy to be used for Discord
# Leave this alone if you don't understand what it does
ProxyHost: "https://example.com"
ProxyPort: 1234
ProxyUser: "USERNAME"
ProxyPassword: "PASSWORD"
# Channel links from game to Discord
# syntax is Channels: {"in-game channel name from Minecraft": "numerical channel ID from Discord", "another in-game channel name from Minecraft": "another numerical channel ID from Discord"}
#
# All of DiscordSRV's messages will go to the first channel unless there's a channel for that type of messages defined:
# when using a compatible chat plugin, the channel name will be the one from that plugin (for chat messages)
# - If you're using TownyChat, the default channel is usually called "general" instead of "global"
# for player chat messages (when not using a chat plugin): global
# for server start/stop messages: status
# for achievement/advancement messages: awards
# for death messages: deaths
# for join messages: join
# for leave messages: leave
# for dynmap messages: dynmap
# for watchdog messages: watchdog
# for /discord broadcast: broadcasts (unless specified in the command)
# for account linking: link
#
# The first part of channel pairs is not the Discord channel name!
# Run "/discord reload" after changing this option to apply
Channels: {"global": "000000000000000000"}
# Console channel numerical ID (NOT NAME), leave blank to disable the console channel all together
DiscordConsoleChannelId: "000000000000000000"
# Invitation link shown to players when using /discord and on the message shown to unlinked players when linking is enforced
DiscordInviteLink: "https://discord.gg/changethisintheconfig.yml"
# Debug information
# Don't enable these unless you're attempting to locate an issue
#
# Available Debug categories:
# MINECRAFT_TO_DISCORD - Messages coming from Minecraft
# DISCORD_TO_MINECRAFT - Messages coming from Discord
# GROUP_SYNC - Group synchronization
# PRESENCE - The bot's game status or presence
# VOICE - The voice module (see voice.yml)
# REQUIRE_LINK - The require link to join module (see linking.yml)
# NICKNAME_SYNC - Nickname synchronization
# ALERTS - Alerts (see alerts.yml)
# WATCHDOG - The watchdog
# BAN_SYNCHRONIZATION - Ban synchronization
# LP_CONTEXTS - LuckPerm's contexts
# ACCOUNT_LINKING - discord/minecraft account linking
#
# UNCATEGORIZED - Anything not in any of the above categories
# ALL - All the above categories (including UNCATEGORIZED)
#
# JDA - JDA's debug messages
# JDA_REST_ACTIONS - For debugging JDA's rest actions
# CALLSTACKS - Displays the stack trace for DiscordSRV debug calls
#
# Ex. "Debug: [GROUP_SYNC, PRESENCE]"
#
Debug: []
# Experiments
# These features are not fully optimized; use at your own risk
# JDBC (MySQL/MariaDB)
Experiment_JdbcAccountLinkBackend: "jdbc:mysql://HOST:PORT/DATABASE?autoReconnect=true&useSSL=false"
Experiment_JdbcTablePrefix: "discordsrv"
Experiment_JdbcUsername: "username"
Experiment_JdbcPassword: "password"
# Webhook Delivery
Experiment_WebhookChatMessageDelivery: false
Experiment_WebhookChatMessageUsernameFormat: "%displayname%"
Experiment_WebhookChatMessageFormat: "%message%"
Experiment_WebhookChatMessageUsernameFromDiscord: false
Experiment_WebhookChatMessageAvatarFromDiscord: false
Experiment_WebhookChatMessageUsernameFilters: {}
# Embed & webhook image/avatar url format
# Leave blank to use a default value
# Available placeholders: {texture} {username} {uuid} {uuid-nodashes} {size}
AvatarUrl: ""
# Reserializer
# Converts formatting (bold, italics, underline, strikethrough) between Minecraft and Discord
Experiment_MCDiscordReserializer_ToDiscord: false
Experiment_MCDiscordReserializer_ToMinecraft: false
Experiment_MCDiscordReserializer_InBroadcast: false
# Other
CancelConsoleCommandIfLoggingFailed: true
ForcedLanguage: none
ForceTLSv12: true
NoopHostnameVerifier: false
MaximumAttemptsForSystemDNSBeforeUsingFallbackDNS: 3
TimestampFormat: EEE, d. MMM yyyy HH:mm:ss z
DateFormat: yyyy-MM-dd
# https://docs.discordsrv.com/config/#Timezone
Timezone: default
# MinecraftMentionSound: Whether a sound should be sent to the player in Minecraft when they are mentioned from Discord
MinecraftMentionSound: true
# Plugin hooks
# You must restart your server after changing these options
#
# DisabledPluginHooks: plugin hooks that will not be used (usually just the name of the plugin).
# VentureChatBungee: enables the VentureChat hook's BungeeCord functionality (messages are received from every server, requires atleast 1 player to be online)
# EnablePresenceInformation: enabled presence information, which is required for some of our PlaceholderAPI placeholders. Keep in mind this requires the "Presence Intent" from the Discord developer portal
# UseModernPaperChatEvent: only use this if you have a chat plugins that SPECIFICALLY utilizes Paper's "AsyncChatEvent"
DisabledPluginHooks: []
VentureChatBungee: false
EnablePresenceInformation: false
UseModernPaperChatEvent: false
# Game Information
# Sets the user status for the bot
# Can be a single, static value, or cycle through multiple different options
# You can preface the status with "playing", "watching", "listening to", or "competing" to set the activity type
# You can set your own custom status by not including the prefixes
# %online%: number of online players
# PlaceholderAPI placeholders are supported
#
# DiscordGameStatus: Text to display. Can be a single value e.g. "Minecraft", or multiple values e.g. ["Minecraft", "yourip.changeme.com"]
# DiscordOnlineStatus: Activity status to display. This must be one of the following: ONLINE, DND, IDLE or INVISIBLE
# StatusUpdateRateInMinutes: How frequently to cycle the status
DiscordGameStatus: ["playing Minecraft"]
DiscordOnlineStatus: ONLINE
StatusUpdateRateInMinutes: 2
# Chat channel information
# The chat channel is the text channel that all messages in-game will be sent to and all messages sent
# to this channel on Discord will be sent in-game
#
# DiscordChatChannelDiscordToMinecraft: whether to send messages in the chat channel to the server chat
# DiscordChatChannelMinecraftToDiscord: whether to send messages in the server chat to the chat channel
# DiscordChatChannelTruncateLength: the maximum length of messages from Discord to be sent to Minecraft
# DiscordChatChannelTranslateMentions: whether to translate mentions like @Person for Minecraft to Discord messages
# DiscordChatChannelAllowedMentions: types of mentions allowed in Minecraft to Discord messages; types missing from the default value are "role", "here", & "everyone"
# DiscordChatChannelEmojiBehavior: how emojis should be sent to Minecraft. Can be "show", "name" or "hide"
# DiscordChatChannelEmoteBehavior: how emotes should be sent to Minecraft. Can be "name" or "hide"
# DiscordChatChannelPrefixRequiredToProcessMessage: the character(s) required to prefix a message for it to be sent from Minecraft to Discord (example "!")
# DiscordChatChannelPrefixActsAsBlacklist: Whether the prefix should act as a blacklist
# DiscordChatChannelRolesAllowedToUseColorCodesInChat: list of roles allowed to use color/format codes in Discord to Minecraft chat
# DiscordChatChannelBroadcastDiscordMessagesToConsole: whether to print processed discord messages to the console
# DiscordChatChannelRequireLinkedAccount: whether to require players have their Discord account linked to their Minecraft to have their Discord messages sent to Minecraft
# DiscordChatChannelBlockBots: whether bots should be blocked from Discord -> MC chat
# DiscordChatChannelBlockWebhooks: whether webhooks should be blocked from Discord -> MC chat
# DiscordChatChannelBlockedIds: ids of discord users (or bots) that should not have their messages processed & sent to MC
# DiscordChatChannelBlockedRolesAsWhitelist: if the following list should be treated as a whitelist (true) or a blacklist (false)
# DiscordChatChannelBlockedRolesIds: ids of discord roles that should not have their messages processed & sent to MC
# DiscordChatChannelRolesSelectionAsWhitelist: if the following list should be treated as a whitelist (true) or a blacklist (false)
# DiscordChatChannelRolesSelection: list of roles that should be filtered from all of a user's roles
# DiscordChatChannelRoleAliases: list of role aliases (alternate names for roles to use in Minecraft messages)
#
DiscordChatChannelDiscordToMinecraft: true
DiscordChatChannelMinecraftToDiscord: true
DiscordChatChannelTruncateLength: 256
DiscordChatChannelTranslateMentions: true
DiscordChatChannelAllowedMentions: [user, channel, emote]
DiscordChatChannelEmojiBehavior: "name"
DiscordChatChannelEmoteBehavior: "name"
DiscordChatChannelPrefixRequiredToProcessMessage: ""
DiscordChatChannelPrefixActsAsBlacklist: false
DiscordChatChannelRolesAllowedToUseColorCodesInChat: ["Developer", "Owner", "Admin", "Moderator"]
DiscordChatChannelBroadcastDiscordMessagesToConsole: true
DiscordChatChannelRequireLinkedAccount: false
DiscordChatChannelBlockBots: false
DiscordChatChannelBlockWebhooks: true
DiscordChatChannelBlockedIds: ["000000000000000000", "000000000000000000", "000000000000000000"]
DiscordChatChannelBlockedRolesAsWhitelist: false
DiscordChatChannelBlockedRolesIds: ["000000000000000000", "000000000000000000", "000000000000000000"]
DiscordChatChannelRolesSelectionAsWhitelist: false
DiscordChatChannelRolesSelection: ["Don't show me!", "Misc role"]
DiscordChatChannelRoleAliases: {"Developer": "Dev"}
# Console channel information
# The console channel is the text channel that receives messages which are then run as server commands
# by the console as well as having the server's console being streamed to line by line
#
# You can customize the message including removing timestamps in messages.yml
#
# DiscordConsoleChannelLogRefreshRateInSeconds: rate in seconds between sending lines from the console
# DiscordConsoleChannelUsageLog:
# %date%: current date
# example: 2017-01-01
# PlaceholderAPI placeholders are supported
# DiscordConsoleChannelBlacklistActsAsWhitelist: whether the blacklisted commands list acts as a whitelist instead of blacklist
# DiscordConsoleChannelBlacklistedCommands: phrases wrapped in quotation marks that users should not be able to send as commands to the console
# DiscordConsoleChannelFilters: regex filters to be applied to console lines being sent to Discord, if the result is empty the message won't be sent at all
# DiscordConsoleChannelLevels: levels to send to console channel via appender
# DiscordConsoleChannelUseCodeBlocks: if the console should be wrapped in code blocks and colored
# DiscordConsoleChannelBlockBots: whether bots should be allowed to send commands in the console channel
#
DiscordConsoleChannelLogRefreshRateInSeconds: 5
DiscordConsoleChannelUsageLog: "Console-%date%.log"
DiscordConsoleChannelBlacklistActsAsWhitelist: false
DiscordConsoleChannelBlacklistedCommands: ["?", "op", "deop", "execute"]
DiscordConsoleChannelFilters: {".*(?i)async chat thread.*": "", ".*There are \\d+ (?:of a max of|out of maximum) \\d+ players online.*": ""}
DiscordConsoleChannelLevels: [info, warn, error]
DiscordConsoleChannelUseCodeBlocks: true
DiscordConsoleChannelBlockBots: true
# Chat channel command execute command
# These options control the ability to say "!c kick Notch", or whatever the prefix is to run a command,
# as the console, from a registered chat channel.
#
# DiscordChatChannelConsoleCommandEnabled: whether to allow console commands from a chat channel.
# DiscordChatChannelConsoleCommandNotifyErrors: whether to send a user who tries to run a command without permission that they don't have permission
# DiscordChatChannelConsoleCommandPrefix: prefix to use for console commands. e.g. "!c tps"
# DiscordChatChannelConsoleCommandRolesAllowed: the user roles that are allowed to execute server commands from the chat channel
# DiscordChatChannelConsoleCommandWhitelist: list of commands that are able to be ran with DiscordChatChannelConsoleCommandPrefix
# DiscordChatChannelConsoleCommandWhitelistBypassRoles: list of roles that bypass the whitelist
# DiscordChatChannelConsoleCommandWhitelistActsAsBlacklist: should the command whitelist act as a blacklist instead
# DiscordChatChannelConsoleCommandExpiration: time in seconds until a sent command output is automatically removed by the bot. set to 0 to disable expiration.
# DiscordChatChannelConsoleCommandExpirationDeleteRequest: whether to delete the message of the person that originally issued the command
#
DiscordChatChannelConsoleCommandEnabled: true
DiscordChatChannelConsoleCommandNotifyErrors: true
DiscordChatChannelConsoleCommandPrefix: "!c"
DiscordChatChannelConsoleCommandRolesAllowed: ["Owner", "Developer"]
DiscordChatChannelConsoleCommandWhitelist: ["say", "lag", "tps"]
DiscordChatChannelConsoleCommandWhitelistBypassRoles: ["Owner", "Developer"]
DiscordChatChannelConsoleCommandWhitelistActsAsBlacklist: false
DiscordChatChannelConsoleCommandExpiration: 0
DiscordChatChannelConsoleCommandExpirationDeleteRequest: true
# Chat channel player list command
# All the config stuff for the player list command
#
# DiscordChatChannelListCommandEnabled: whether the command is enabled
# DiscordChatChannelListCommandMessage: the command people can type to get the player list
# DiscordChatChannelListCommandExpiration: time in seconds until a sent player list message is automatically removed by the bot. set to 0 to disable expiration.
# DiscordChatChannelListCommandExpirationDeleteRequest: whether to delete the message of the person that originally requested for the player list
#
DiscordChatChannelListCommandEnabled: true
DiscordChatChannelListCommandMessage: "playerlist"
DiscordChatChannelListCommandExpiration: 10
DiscordChatChannelListCommandExpirationDeleteRequest: true
# Chat channel blacklisted phrases & regex
#
# DiscordChatChannelGameFilters: regex filters to be applied to chat messages being sent to Discord, if the result is empty the message won't be sent at all
# DiscordChatChannelDiscordFilters: regex filters to be applied to chat messages being sent to Minecraft, if the result is empty the message won't be sent at all
#
DiscordChatChannelGameFilters: {}
DiscordChatChannelDiscordFilters: {".*Online players \\(.*": "", ".*\\*\\*No online players\\*\\*.*": ""}
# Channel topic updater settings
#
# ChannelTopicUpdaterChannelTopicsAtShutdownEnabled: whether the channel topics should be changed at server shutdown at all
# ChannelTopicUpdaterRateInMinutes: amount of minutes between automatically updating the channel topics with fresh information
#
ChannelTopicUpdaterChannelTopicsAtShutdownEnabled: true
ChannelTopicUpdaterRateInMinutes: 10
# Channel Updater
# This feature changes the name of specified channels to comply with in-game placeholders
# Options:
# ChannelId: The ID of the channel to change (required)
# Format: The format for the channel (required). Available placeholders:
# %playercount%: current player count
# %playermax%: maximum player count
# %date%: current date and time
# %totalplayers%: total number of players to ever join the main world
# %uptimemins%: number of minutes since DiscordSRV has started
# %uptimehours%: number of hours since DiscordSRV has started
# %motd%: motd of the server
# %serverversion%: server version such as Spigot-1.9
# %freememory%: free memory of the JVM in MB
# %usedmemory%: used memory of the JVM in MB
# %totalmemory%: total memory of the JVM in MB
# %maxmemory%: max memory of the JVM in MB
# %freememorygb%: free memory of the JVM in GB
# %usedmemorygb%: used memory of the JVM in GB
# %totalmemorygb%: total memory of the JVM in GB
# %maxmemorygb%: max memory of the JVM in GB
# %tps%: average TPS of the server
# PlaceholderAPI placeholders are also supported
# ShutdownFormat: The format the channel should take when the server has shut down. Available placeholders:
# %time% or %date%: current date and time
# %serverversion%: server version
# %totalplayers%: total number of players to ever join the main world
# %timestamp%: current unix timestamp
# UpdateInterval: Time in minutes to wait between updating the channel's name (minimum is 10 due to rate limits)
ChannelUpdater:
- ChannelId: "0000000000000000"
Format: "%playercount% players online"
ShutdownFormat: "Server is offline"
UpdateInterval: 10
- ChannelId: "0000000000000000"
Format: "Current TPS: %tps%"
ShutdownFormat: "Server is offline"
UpdateInterval: 10
# Discord canned responses
# These are triggers (commands in a way) that will trigger a "canned response" to be sent as a reply to them
# You should probably change these from their defaults or add your own
#
# Syntax is {"TRIGGER": "RESPONSE", "TRIGGER": "RESPONSE", ...}
# If you do not want any canned responses, set this to just {}
# PlaceholderAPI placeholders are supported for the values
#
DiscordCannedResponses: {"!ip": "yourserveripchange.me", "!site": "http://yoursiteurl.net"}
# Minecraft to Discord account linking
# These are the options pertaining to how linking a Minecraft account to a Discord account functions
#
# MinecraftDiscordAccountLinkedConsoleCommands: commands to run when an account is linked, see below for possible placeholders
# MinecraftDiscordAccountUnlinkedConsoleCommands: commands to run when an account is unlinked, see below for possible placeholders
# %minecraftplayername%: player's Minecraft username
# example: Notch
# %minecraftuuid%: player's uuid
# example: you know what a uuid looks like
# %discordid%: linked discord account's id
# example: 12345678901234567890
# %discordname%: linked discord account's username
# example: Notch
#
# MinecraftDiscordAccountLinkedRoleNameToAddUserTo: the name or id of a discord role to add a discord user to when they link their account
# MinecraftDiscordAccountLinkedAllowRelinkBySendingANewCode: allows sending a new code to the bot to unlink and relink with the new code
# MinecraftDiscordAccountLinkedUsePM: link accounts using PMs
# MinecraftDiscordAccountLinkedMessageDeleteSeconds: Time (in seconds) before deleting the message when linked in a text channel. Set to 0 if you do not want to delete the message.
#
MinecraftDiscordAccountLinkedConsoleCommands: ["", "", ""]
MinecraftDiscordAccountUnlinkedConsoleCommands: ["", "", ""]
MinecraftDiscordAccountLinkedRoleNameToAddUserTo: "Linked"
MinecraftDiscordAccountLinkedAllowRelinkBySendingANewCode: false
MinecraftDiscordAccountLinkedUsePM: true
MinecraftDiscordAccountLinkedMessageDeleteSeconds: 0
# Server watchdog
#
# The watchdog constantly monitors the last time your server performed a game tick
# If the time since the last tick goes above the set interval in seconds, Discord messages can be triggered
#
# ServerWatchdogEnabled: whether the watchdog is enabled at all
# ServerWatchdogTimeout: time in seconds that need to elapse before the watchdog takes action (Spigot's crash detection uses 60 for this)
# the minimum for this value is 10
# ServerWatchdogMessageCount: the amount of times ServerWatchdogMessage is sent. useful if you *really* want to make sure you know something's up
#
ServerWatchdogEnabled: true
ServerWatchdogTimeout: 30
ServerWatchdogMessageCount: 3

View File

@@ -0,0 +1,57 @@
Require linked account to play:
Enabled: false
# If you don't know what these mean, don't touch them
#
# The priority that the join listener should be on
# In order of first to last, available values are LOWEST, LOW, NORMAL, HIGH, HIGHEST
# You might need to change this to a later priority for a ban plugin to kick the player before DiscordSRV denies them
Listener priority: LOWEST
# The event that the link module should listen and disallow logins on
# Some whitelist plugins use AsyncPlayerPreLoginEvent (good), some use PlayerLoginEvent (not as good)
Listener event: AsyncPlayerPreLoginEvent
#
# If you don't know what these mean, don't touch them
# Minecraft IGNs to always allow whether linked or subscriber or not
Bypass names: [Scarsz, Vankka]
# Whether players on the VANILLA whitelist will bypass the need to link their accounts/have a sub role
Whitelisted players bypass check: true
# Whether to let players in the VANILLA banlist be able to link their accounts
Check banned players: false
# Whether players not in the VANILLA banlist will bypass the need to link their accounts/have a sub role
Only check banned players: false
# Message to kick players with telling them to link their accounts
# Use {BOT} as a placeholder for the bot's name
# Use {CODE} as a placeholder for the code people need to DM the bot
# Use {INVITE} as a placeholder for the invite link people need to join the Discord server, uses DiscordInviteLink configured in config.yml
Not linked message: "&7You must link your &9Discord &7account to play.\n\n&7Send a DM to &b{BOT}&7 in the Discord server containing just &b{CODE}&7 to link your account.\n\n&7Discord Invite » &b{INVITE}"
# If enabled, players will not only need to have their accounts linked but will also be required
# to be a member of a Discord server that the bot is also in.
#
# Acceptable formats:
# true/false: linked account must be in at least one Discord server that the bot is also in
# ex: true
# <server id>: linked account must be in the given Discord server
# ex: 135634590575493120
# [<server id>, <server id>, ...]: linked account must be in ALL of the given Discord servers
# ex: [135634590575493120, 690411863766466590]
#
# This option's value is superseded when you have subscriber roles enforced below.
Must be in Discord server: true
# Optionally require people to not only be linked but also to have a one of or all specified roles like a Twitch sub role
Subscriber role:
Require subscriber role to join: false
Subscriber roles: ["00000000000000000", "00000000000000000", "00000000000000000"]
Require all of the listed roles: false # when false, only one of the above roles is required
Kick message: "&cYou must be subscribed on Twitch to be able to play."
Messages:
DiscordSRV still starting: "&cCurrently unavailable to check link status because the server is still connecting to Discord.\n\nTry again in a minute."
Not in server: "&cYou are currently not a part of our Discord server.\n\nJoin at {INVITE}!"
Failed to find subscriber role: "&cFailed to find any subscriber role on Discord.\n\nContact your server admins about this issue."
Failed for unknown reason: "&cAn error occurred while trying to verify your account.\n\nContact your server admin about this issue."
Kicked for unlinking: "&cYou have been kicked from the server for unlinking your accounts.\n\nPlease rejoin the server to link your accounts again."

View File

@@ -0,0 +1,444 @@
# Discord -> Minecraft message
#
# DiscordToMinecraftChatMessageFormat: the format used when sending messages from Discord to Minecraft
# DiscordToMinecraftChatMessageFormatNoRole: the format used when sending messages from Discord to Minecraft when the person doesn't have any roles
#
# You can specify a different format per channel. Let's say you have a channel named: "mychannel".
# If you want it to have other formatting than the one defined globally you can add following properties:
#
# DiscordToMinecraftChatMessageFormat_mychannel: "[&bDiscord From MyChannel &r| %toprolecolor%%toprole%&r] %name% » %message%"
# DiscordToMinecraftChatMessageFormatNoRole_mychannel: "[&bDiscord From MyChannel&r] %name% » %message%"
#
# Available placeholders:
# %allroles%: all of the person's roles combined with DiscordToMinecraftAllRolesSeparator between them all
# example: Owner | Developer | Boss man
# %message%: message content
# example: Hello!
# %toprole%: person's highest ranking role
# example: Owner
# %toprolealias%: the alias for the role from DiscordChatChannelRoleAliases, otherwise the role's name
# example: Dev
# %toproleinitial%: first letter of the person's highest ranking role
# example: O
# %toprolecolor%: approximate color of person's highest ranking role
# example: &4
# %name%: person's effective name on Discord (nickname if present, username otherwise)
# example: NotchIsMe
# %username%: person's username on Discord
# example: Notch
# %channelname%: name of the channel that the message is coming from
# example: server-chat
# %reply%: the message displayed when the message is a reply to another message.
# The message format can be configured with DiscordToMinecraftMessageReplyFormat,
# this will be empty if the message isn't a reply to another message
#
# DiscordToMinecraftAllRolesSeparator: the separator used in between roles in %allroles%
#
# DiscordToMinecraftMessageReplyFormat: the format for the message displayed to indicate that the message is a reply
#
# Available placeholders:
# %name%: the effective name of the user that is being replied to on Discord (nickname if present, username otherwise)
# example: NotchIsMe
# %username%: the username of the user that is being replied to on Discord
# example: Notch
# %message%: the content of the message that is being replied to
#
# NOTE: The %reply% placeholder needs to be present in the format if you want the DiscordToMinecraftMessageReplyFormat to display in your message.
#
DiscordToMinecraftChatMessageFormat: "[<aqua>Discord</aqua> | %toprolecolor%%toprolealias%<reset>] %name%%reply% » %message%"
DiscordToMinecraftChatMessageFormatNoRole: "[<aqua>Discord</aqua>] %name%%reply% » %message%"
DiscordToMinecraftAllRolesSeparator: " | "
DiscordToMinecraftMessageReplyFormat: " (replying to %name%)"
# Minecraft -> Discord message
#
# MinecraftChatToDiscordMessageFormat: the format used when sending messages from Minecraft to Discord
# MinecraftChatToDiscordMessageFormatNoPrimaryGroup: used in place of MinecraftChatToDiscordMessageFormat
# when no primary group for the player was found
#
# Available placeholders:
# %username%: raw player username
# example: jeb_
# %displayname%: display name from things like nicknames
# example: BigBossManJeb
# %usernamenoescapes%: raw player username without escaping discord format (for use in inline code & code block markdown)
# example: jeb_
# %displaynamenoescapes%: display name from things like nicknames without escaping discord format (for use in inline code & code block markdown)
# example: BigBossManJeb
# %message%: message content
# example: Hello!
# %primarygroup%: the name of the user's primary group
# %world%: name of world player is in
# example: world
# %worldalias%: alias of world player is in via Multiverse-Core
# example: Mainland
# %date%: current date & time
# example: Sun Jan 1 15:30:45 PDT 2017
# %channelname%: the name of the channel that the message was sent in, if the message was sent in a channel at all
# example: Global
# PlaceholderAPI placeholders are also supported
#
MinecraftChatToDiscordMessageFormat: "**%primarygroup%** %displayname% » %message%"
MinecraftChatToDiscordMessageFormatNoPrimaryGroup: "%displayname% » %message%"
# Chat channel plugin message
# This is a special message that's only used when a supported chat channel plugin is hooked
# It modifies what the message would be like in-game to include information related to the channel the message is from
#
# Available placeholders:
# %channelcolor%: the color character corresponding to the channel
# example: messages from the channel are in red, this would replace with the red color
# %channelname%: the literal name of the channel, usually the name only the server sees internally
# example: staff
# %channelnickname%: the formal nickname of the channel, usually the name of the channel that players see
# example: Staff
# %message%: the message after processing through DiscordToMinecraftChatMessageFormat / DiscordToMinecraftChatMessageFormatNoRole
# example: jeb_ > Hello from the server!
#
ChatChannelHookMessageFormat: "%channelcolor%[%channelnickname%]&r %message%"
# Dynmap messages
#
# DynmapNameFormat: the format for the username part of the message sent to Dynmap (this may be hidden depending on dynmap settings)
# DynmapChatFormat: the format for the message part of the message sent to Dynmap
#
# Available placeholders:
# Same as Discord -> Minecraft placeholders
#
# DynmapDiscordFormat: the format for Dynmap messages going to Discord
#
# Available placeholders:
# %message%: message content
# example: Hello!
# %name%: the username for the message sent on the Dynmap web chat (could be blank)
# example: Notch
# PlaceholderAPI placeholders are also supported
#
DynmapNameFormat: "[Discord | %toprolealias%] %username%"
DynmapChatFormat: "%message%"
DynmapDiscordFormat: "[Dynmap] %name% » %message%"
# Discord console channel message
# This is the format used when sending a line from the console to the console channel, if enabled
#
# Available placeholders:
# {level}: message severity level
# example: INFO, WARN, ERROR
# {name}: logger name
# example: Server
# {datetime}: current date & time
# example: Sun Jan 1 15:30:45 PDT 2017
# PlaceholderAPI placeholders are also supported
#
# DiscordConsoleChannelTimestampFormat: The date format that will be used for the {date} and {datetime} placeholders
# DiscordConsoleChannelPrefix: The prefix to prepend
# DiscordConsoleChannelSuffix: The suffix to append
#
DiscordConsoleChannelTimestampFormat: "EEE HH:mm:ss"
DiscordConsoleChannelPrefix: "[{date} {level}{name}] "
DiscordConsoleChannelSuffix: ""
DiscordConsoleChannelPadding: 0
# Discord chat channel !c command error message
# Used when an error occurs with permissions for the player to run the command, not an error running the command itself
# This is sent as a PM to the user
#
# Available placeholders:
# %user%: the name of the user that tried running the command
# example: Notch
# %error%: the reason for the error
# example: no permission
#
DiscordChatChannelConsoleCommandNotifyErrorsFormat: "**%user%**, you tried running a command. Unfortunately, there was an error: %error%"
# Discord chat channel player list command
# Messages used for when someone runs the playerlist command in a chat channel
#
# DiscordChatChannelListCommandFormatOnlinePlayers: the message at the beginning of the list, before all of the player names
# DiscordChatChannelListCommandFormatNoOnlinePlayers: used instead for when no players are online
# DiscordChatChannelListCommandPlayerFormat: the format of how each player should appear in the list
# Available placeholders:
# %username%: raw player username
# %displayname%: display name from things like nicknames
# %primarygroup%: the name of the user's primary group
# %world%: name of world player is in
# %worldalias%: alias of world player is in via Multiverse-Core
# PlaceholderAPI placeholders are also supported
# DiscordChatChannelListCommandAllPlayersSeparator: the separator used in between players
#
DiscordChatChannelListCommandFormatOnlinePlayers: "**Online players (%playercount%):**"
DiscordChatChannelListCommandFormatNoOnlinePlayers: "**No online players**"
DiscordChatChannelListCommandPlayerFormat: "%displayname%"
DiscordChatChannelListCommandAllPlayersSeparator: ", "
# Minecraft -> Discord notification messages
#
#
# Embed information:
# Color: accepts a hex color code (eg. "#ffffff") or a rgb integer (eg. 0)
# Fields: format is "title;value;inline" (eg. "Who joined?;%displayname%;true") or "blank" to add a blank field
# Timestamp: set to true to use the time the message was sent or use a epoch timestamp for a specific time (https://www.epochconverter.com/)
#
# Available placeholders for PlayerJoin/PlayerFirstJoin/PlayerLeave/PlayerDeath/PlayerAchievement:
# %displayname%: display name from things like nicknames
# %username%: raw player username
# %displaynamenoescapes%: display name from things like nicknames without escaping discord format (for use in inline code & code block markdown)
# %usernamenoescapes%: raw player username without escaping discord format (for use in inline code & code block markdown)
# %date%: current date & time
# %embedavatarurl%: the user's avatar
# %botavatarurl%: the bot's avatar
# %botname%: the bot's name
# PlaceholderAPI placeholders are also supported
#
# Available placeholders for PlayerJoin messages:
# %message%: join message as seen in-game
#
MinecraftPlayerJoinMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#00ff00"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% joined the server"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Available placeholders for PlayerFirstJoin messages:
# %message%: join message as seen in-game
#
MinecraftPlayerFirstJoinMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#ffd700"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% joined the server for the first time"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Available placeholders for PlayerLeave messages:
# %message%: leave message as seen in-game
#
MinecraftPlayerLeaveMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#ff0000"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% left the server"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Available placeholders for PlayerDeath messages:
# %deathmessage%: raw death message
# %world%: the name of the world the user died in
#
MinecraftPlayerDeathMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#000000"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%deathmessage%"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Available placeholders for PlayerAchievement messages:
# %achievement%: title of the achievement/advancement
# %world%: the name of the world the user is in
#
MinecraftPlayerAchievementMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#ffd700"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% has made the advancement %achievement%!"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
# Channel topic updater messages
# This is all the stuff related to automatically updating the chat or console channel's topics with server information
#
# ChannelTopicUpdater______ChannelTopicFormat: message to set the channel's topic to every X seconds
# ChannelTopicUpdater______ChannelTopicAtShutdownFormat: message to set the channel's topic when the server shuts down
#
# Available placeholders:
# %playercount%: current player count
# %playermax%: maximum player count
# %date%: current date
# %totalplayers%: total amount of players to ever join the main world
# %uptimemins%: amount of minutes since DiscordSRV has started
# %uptimehours%: amount of hours since DiscordSRV has started
# %motd%: motto of the day of the server
# %serverversion%: server version such as Spigot-1.9
# %freememory%: free memory of the JVM in MB
# %usedmemory%: used memory of the JVM in MB
# %totalmemory%: total memory of the JVM in MB
# %maxmemory%: max memory of the JVM in MB
# %freememorygb%: free memory of the JVM in GB
# %usedmemorygb%: used memory of the JVM in GB
# %totalmemorygb%: total memory of the JVM in GB
# %maxmemorygb%: max memory of the JVM in GB
# %tps%: average TPS of the server
# PlaceholderAPI placeholders are also supported
#
ChannelTopicUpdaterChatChannelTopicFormat: "%playercount%/%playermax% players online | %totalplayers% unique players ever joined | Server online for %uptimemins% minutes | Last update: %date%"
ChannelTopicUpdaterConsoleChannelTopicFormat: "TPS: %tps% | Mem: %usedmemorygb%GB used/%freememorygb%GB free/%maxmemorygb%GB max | %serverversion%"
# AtServerShutdownFormats ONLY supports %totalplayers%, %serverversion%, & %date% / %time%
ChannelTopicUpdaterChatChannelTopicAtServerShutdownFormat: "Server is offline | %totalplayers% unique players ever joined"
ChannelTopicUpdaterConsoleChannelTopicAtServerShutdownFormat: "Server is offline | %serverversion%"
# Discord command message
# This is the message sent to players when they run "/discord". It's recommended to leave command syntax as a part of this
# Use {INVITE} as a placeholder for the invite link people need to join the Discord server, uses DiscordInviteLink configured in config.yml
#
DiscordCommandFormat: "&bJoin us on Discord at {INVITE}&b. For command help, do \"/discord ?\""
# No permission message
NoPermissionMessage: "&cYou do not have permission to perform this command."
# Unknown command message
UnknownCommandMessage: "&bThat command doesn't exist!"
# Server startup/shutdown messages
# DiscordChatChannelServerStartupMessage: message to be sent when server starts; leave blank to disable
# DiscordChatChannelServerShutdownMessage: message to be sent when server shuts down; leave blank to disable
#
DiscordChatChannelServerStartupMessage: ":white_check_mark: **Server has started**"
DiscordChatChannelServerShutdownMessage: ":octagonal_sign: **Server has stopped**"
# Server watchdog message
#
# The watchdog constantly monitors the last time your server performed a game tick
# If the time since the last tick goes above the set interval in seconds, Discord messages can be triggered
#
# ServerWatchdogMessage: the message to be sent the the main chat channel.
# you can @mention users by using "<@USERID>", i.e. "<@12345678901234567890>"
# you can @mention roles by using "<@&ROLEID>", i.e. "<@&12345678901234567890>"; see console when discordsrv loads for role ids
# you can @mention the owner of the server by using "%guildowner%"
# you can put the date and time of the crash in the message by using %date%
# you can use ServerWatchdogTimeout as a placeholder by using %timeout%
# you can use the %timestamp% placeholder for use in discord's timestamp format
#
ServerWatchdogMessage: "<t:%timestamp%:R> %guildowner%, the server hasn't ticked in %timeout% seconds :fire::bangbang:"
# Account link messages
# These are messages used when accounts are linked
#
# Available placeholders:
# UnknownCode/InvalidCode: %code%: the code generated for the player to link their account with
# %mention%: the mention to Discord account
# DiscordAccountLinked: %name%: the name of the Minecraft player that the user's Discord account was linked to
# %displayname%: the display name of the Minecraft player that the user's Discord account was linked to
# %uuid%: the uuid of the Minecraft player that the user's Discord account was linked to
# %mention%: the mention to Discord account
# DiscordAccountAlreadyLinked: %uuid%: the Minecraft uuid of the user's linked Minecraft account
# %username%: the Minecraft username of the user's linked Minecraft account
# %mention%: the mention to Discord account
# DiscordLinkedAccountRequired %message%: the message the user was not able to send because they were not linked
# CodeGenerated: %code%: the code generated for the player to link their account with
# %botname%: the name of the bot on Discord
# MinecraftAccountLinked: %id%: the discord id of the Discord user that the user's Minecraft account was linked to
# %username%: the discord name of the Discord user that the user's Minecraft account was linked to
# LinkedCommandSuccess: %name%: the discord username of the Discord user that the user's Minecraft account is linked to
# UnlinkCommandSuccess: %name%: the discord username of the Discord user that the user's Minecraft account was linked to
# MinecraftNobodyFound: %target%: the input that led to no results being found
#
# Discord
UnknownCode: "I don't know of such a code, try again."
InvalidCode: "Are you sure that's your code? Link codes are 4 numbers long."
DiscordAccountLinked: "Your Discord account has been linked to %name% (%uuid%)"
DiscordAccountAlreadyLinked: "You are already linked to %username% (%uuid%)"
DiscordLinkedAccountRequired: "You attempted to say the following message to the game chat but this server requires that you have your Minecraft account linked to your Discord account. Link it in-game by typing `/discord link`. \n```%message%```"
DiscordLinkedAccountCheckFailed: "Unable to check if your account is linked, please try again later"
# Minecraft
CodeGenerated: "Your link code is %code%. PM the bot on Discord (%botname%) containing just this code as the message to link your accounts."
ClickToCopyCode: "Click to copy"
MinecraftAccountLinked: "&bYour UUID has been linked to Discord user %username% (%id%)"
MinecraftAccountAlreadyLinked: "&bYour Minecraft account is already associated with a Discord account. Should you have permission to, you can unlink your account with /discord unlink."
LinkedCommandSuccess: "&bYour Minecraft account is associated with %name%."
UnlinkCommandSuccess: "&bYour Minecraft account is no longer associated with %name%."
MinecraftNoLinkedAccount: "&cYour Minecraft account isn't associated with a Discord account."
LinkingError: "&cCurrently unable to link accounts due to an internal error. Contact your server administration team."
MinecraftNobodyFound: "&cNobody found with Discord ID/Discord name/Minecraft name/Minecraft UUID matching \"%target%\" to look up."

View File

@@ -0,0 +1,55 @@
# Minecraft -> Discord nickname synchronization
# Can be controlled per player through the use of the 'discordsrv.nicknamesync' permission (granted by default)
#
# NicknameSynchronizationEnabled: whether to set the discord user's nickname to the nickname format automatically
# NicknameSynchronizationCycleTime: amount of minutes between repeatedly triggering synchronization for all online players
# NicknameSynchronizationFormat: the nickname format (keep in mind this shouldn't go over 32 characters)
# %displayname%: player's display name
# example: Jeb
# %username%: player's username
# example: Jeb_
# %discord_name%: player's discord username
# example: Jeb
# %discord_discriminator%: player's discord discriminator
# example: 4988
# PlaceholderAPI placeholders are supported for the values
#
NicknameSynchronizationEnabled: false
NicknameSynchronizationCycleTime: 3
NicknameSynchronizationFormat: "%displayname%"
# Minecraft group <-> Discord role synchronization
# Requires Vault
#
# GroupRoleSynchronizationGroupsAndRolesToSync: these are roles/groups you'd like synchronized between Discord and Minecraft
# {"MC_GROUP_NAME": "DISCORD_ROLE_ID"} is the format to go by when adding more group/role pairs
# to get your Discord guild's role IDs, run "/discord debug" and look at the first section
# GroupRoleSynchronizationMinecraftIsAuthoritative: whether Minecraft group changes override Discord role changes
# GroupRoleSynchronizationOneWay: whether to synchronise only one way, the way it is synchronised depends on the value
# of GroupRoleSynchronizationMinecraftIsAuthoritative.
# GroupRoleSynchronizationEnableDenyPermission: whether discordsrv.sync.deny.<group> permissions are enabled
# GroupRoleSynchronizationPrimaryGroupOnly: if true, only the player's primary group is counted for synchronization,
# otherwise, group sync counts all groups the player is in, including parent groups
# GroupRoleSynchronizationOnLink: whether to resync when a player links
# GroupRoleSynchronizationCycleTime: amount of minutes between repeatedly triggering synchronization for all online players
# GroupRoleSynchronizationCycleCompletely: whether synchronizations running on a timer should synchronize every member in the bots Discord servers
#
GroupRoleSynchronizationGroupsAndRolesToSync: {"trusted": "000000000000000000", "vip": "000000000000000000"}
GroupRoleSynchronizationMinecraftIsAuthoritative: true
GroupRoleSynchronizationOneWay: false
GroupRoleSynchronizationEnableDenyPermission: false
GroupRoleSynchronizationPrimaryGroupOnly: false
GroupRoleSynchronizationOnLink: true
GroupRoleSynchronizationCycleTime: 5
GroupRoleSynchronizationCycleCompletely: false
# Ban synchronization
# When a player gets banned on the server when they have a linked Discord account you can optionally ban them on the Discord server and vice versa
#
# BanSynchronizationDiscordToMinecraft: whether to ban people on the Minecraft server if they get banned from the Discord server
# BanSynchronizationDiscordToMinecraftReason: the message to be used as the ban reason for banning players from the Minecraft server
# BanSynchronizationMinecraftToDiscord: whether to ban people on the Discord server if they get banned from the Minecraft server
#
BanSynchronizationDiscordToMinecraft: false
BanSynchronizationDiscordToMinecraftReason: "&cYou have been banned until further notice from the server because you were banned on our Discord server."
BanSynchronizationMinecraftToDiscord: false

View File

@@ -0,0 +1,31 @@
# This is the configuration file for DiscordSRV's voice module.
# It is an experimental feature. Things may not work properly.
# If you do play around with this module, please send us feedback about any
# issues on our Discord. https://discordsrv.com/discord
#
# Whether to enable the proximity voice chat feature of DiscordSRV
# You must restart your server after changing this option
Voice enabled: false
# Amount of ticks between network updates
Tick speed: 5
# The main category that the voice module will create/delete/move voice channels in
# No channels other than the lobby channel (below) should be in this category
Voice category: 000000000000000000
# The lobby channel (inside the voice category) that people will be moved to
# when they are not in range of any networks. This is also the channel people will
# join to be connected to the proximity voice network.
Lobby channel: 000000000000000000
# Mutes users in the lobby who have the Speak and Mute Others permissions in the lobby
Mute users who bypass speak permissions in the lobby: true
Network:
# Maximum distance between players in order to be connected
Vertical Strength: 40
Horizontal Strength: 80
# Once a player has joined a network, they can be
# strength + falloff blocks away before being disconnected
Falloff: 5
# Whether voice network channels are visible to everyone, even those not connected
# Helps let players know if people are actually using the voice network at the moment
Channels are visible: false

View File

@@ -0,0 +1,169 @@
#
# EcoEnchants
# by Auxilor
#
# Options for enchanting items in the enchanting table
enchanting-table:
enabled: true # If custom enchantments should be available from enchanting tables
book-multiplier: 0.5 # Multiplier applied to the chance of getting an enchantment on a book (to balance enchant numbers)
maximum-obtainable-level: 30 # The max level for the enchanting table. EcoEnchants doesn't change the limit, but if you have a plugin that does, adjust this to match.
cap: 5 # The maximum amount of enchantments to get at any given time
reduction: 2.2 # The chance to get each subsequent enchantment is divided by this number, e.g. 2nd enchant is 2.2x less likely than 1st, 3rd is 2.2x less likely again, etc
# Options for obtaining custom enchants from villagers
villager:
enabled: true # If custom enchantments should be available from villagers
pass-through-chance: 25 # The chance to leave the book as-is with a vanilla/no enchantment applied.
book-multiplier: 0.14 # Multiplier applied to the chance of getting an enchantment on a book (to balance enchant numbers)
reduction: 5 # The chance to get each subsequent enchantment is divided by this number, e.g. 2nd enchant is 5x less likely than 1st, 3rd is 5x less likely again, etc
# Options for obtaining custom enchants in natural loot
loot:
enabled: true # If custom enchantments should be available from natural loot
book-multiplier: 0.5 # Multiplier applied to the chance of getting an enchantment on a book (to balance enchant numbers)
reduction: 7.5 # The chance to get each subsequent enchantment is divided by this number, e.g. 2nd enchant is 7.5x less likely than 1st, 3rd is 7.5x less likely again, etc
# Options for merging items in an anvil
anvil:
cost-exponent: 0.95 # The exponent for each enchant level to prevent constant "Too Expensive!" problems
enchant-limit: -1 # The limit for the amount of enchantments on an item (-1 to disable)
use-rework-penalty: true # If the rework penalty should be applied
max-repair-cost: 40 # Override the maximum repair cost (-1 to make it infinite). "Too Expensive" message cannot be removed, but this is purely visual.
# Options for how enchantments are displayed on items
display:
# If you disable display, enchantments will not show up on items. Only disable if you are handling display elsewhere.
# Changing this will require a server restart.
enabled: true
numerals:
enabled: true # If numerals should be used for the enchantment levels
threshold: 10 # Above this, numbers will be used instead of numerals
# Options for not met lines: https://plugins.auxilor.io/effects/configuring-a-condition#example-condition-config
not-met:
format: "<strikethrough>" # Enchantments with any not-met-lines active will have this format added to them
above-max-level:
enabled: true # If enchantments above their max level should have a custom format
format: "<gradient:#1D976C:#93F9B9>" # The format to apply
level-only: true # If only the level should be formatted
sort:
type: false # If enchantments should be sorted by time
type-order: # The order for types to be sorted in. Types not in this list will not be displayed if type sorting is enabled.
- normal
- special
- curse
length: false # If enchantments should be sorted by length
rarity: false # If enchantments should be sorted by rarity
rarity-order: # The order for rarities to be sorted in. Rarities not in this list will not be displayed if rarity sorting is enabled.
- common
- uncommon
- rare
- epic
- legendary
- special
- veryspecial
collapse:
enabled: true # If enchantments should be collapsed in lore
threshold: 9 # Above this amount, enchantments will be collapsed
per-line: 2 # The amount of enchantments to put in each line
delimiter: ",&r " # The delimiter between enchantments
descriptions:
enabled: true # If enchantment descriptions should be shown in lore
threshold: 5 # Above this amount, enchantment descriptions will not be shown
word-wrap: 27 # Number of characters to have on each line
format: "&8"
require-enchantable: true # If EcoEnchants should not display on non-enchantable items.
# Options for the /enchantinfo GUI
enchantinfo:
rows: 3 # How many rows for the GUI
mask: # The background material
items:
- black_stained_glass_pane
pattern: # 1 for the first item, 2 for the second item, etc
- "111111111"
- "111101111"
- "111111111"
item:
row: 2
column: 5
show-max-level: true # Whether the book should be the max level or level 1
lore: # The description is automatically appended
- ""
- "&fMax Level: &a%max_level%"
- "&fRarity: &a%rarity%"
- "&fApplicable to: &a%targets%"
- "&fConflicts with: &a%conflicts%"
# Custom GUI slots; see here for a how-to: https://plugins.auxilor.io/all-plugins/custom-gui-slots
custom-slots: [ ]
# Options for the enchant GUI.
enchant-gui:
rows: 6 # How many rows to have in the GUI
title: "Enchant GUI" # The title of the GUI
mask: # The background material
items:
- black_stained_glass_pane
pattern: # 1 for the first item, 2 for the second item, etc
- "111101111"
- "111111111"
- "100000001"
- "100000001"
- "100000001"
- "111111111"
# Empty item to show when there is no enchanted book
empty-item: gray_stained_glass_pane name:""
# Options for the info item
info:
item: player_head name:"&aHow do I use this?" texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjcwNWZkOTRhMGM0MzE5MjdmYjRlNjM5YjBmY2ZiNDk3MTdlNDEyMjg1YTAyYjQzOWUwMTEyZGEyMmIyZTJlYyJ9fX0=
lore:
- "&fPlace an item in the slot at the top,"
- "&fand all the enchantments you can add"
- "&fto to this item will show up in the"
- "&farea below!"
row: 1
column: 9
item-row: 1 # The row for the slot to drop in the item
item-column: 5 # The column
# Options for the page change buttons
page-change:
forwards:
item: arrow name:"&fNext Page" # The item. Will not show if on the last page.
row: 6
column: 6
backwards:
item: arrow name:"&fPrevious Page" # The item. Will not show if on the first page.
row: 6
column: 4
# Options for the area where the enchantments are shown
enchant-area:
width: 7 # The width of the enchantment area
height: 3 # The height of the enchantment area
row: 3 # The row of the top-left corner of the area
column: 2 # The column of the top-left corner of the area
# Custom GUI slots; see here for a how-to: https://plugins.auxilor.io/all-plugins/custom-gui-slots
custom-slots: [ ]
# Options for converting lore-based enchants (from other plugins) with EcoEnchants enchantments
# with the same names. If you're switching over from another plugin and don't want your players to
# lose their enchantments, just switch this on.
lore-conversion:
enabled: false # If lore conversion should be enabled
aggressive: false # Will convert all items in all inventories when opened, likely to use a lot of performance

View File

@@ -0,0 +1,42 @@
# The ID of the enchantment is the name of the .yml file,
# for example razor.yml has the ID of razor
# You can place enchantments anywhere in this folder,
# including in subfolders if you want to organize your enchantment configs
# _example.yml is not loaded.
display-name: "Example" # The name of the enchantment in-game
description: "Gives a &a%placeholder%%&r and a &a+%damage%&r bonus to damage" # The description of the enchantment
placeholder: "%level% * 20" # The placeholder to show in the enchantment description (optional, can only use custom placeholders)
placeholders: # Extra placeholders to show in the enchantment description (optional)
damage: "%level% * 2" # Here, %damage% would be the extra placeholder to use
type: normal # The enchantment type, from types.yml
targets: # The items that the enchantment can be applied to, see targets.yml
- sword
conflicts: # The enchantments that conflict with this
- sharpness
rarity: common # The rarity of the enchantment, see rarity.yml
max-level: 4 # The max level of the enchantment
tradeable: true # If the enchantment can be obtained from villagers
discoverable: true # If the enchantment can generate naturally in chests
enchantable: true # If the enchantment can be obtained from enchanting tables
# The effects of the enchantment (i.e. the functionality)
# See here: https://plugins.auxilor.io/effects/configuring-an-effect
# Use %level% as a placeholder for the enchantment level
effects:
- id: damage_multiplier
args:
multiplier: "1 + 0.2 * %level%"
triggers:
- melee_attack
- id: damage_victim
args:
damage: "2 * %level%"
triggers:
- melee_attack
# The conditions required to use the enchantment,
# you can use %level% as a placeholder here too
conditions: [ ]

View File

@@ -0,0 +1,25 @@
display-name: "Abrasion"
description: "Deals &a%placeholder% &rdamage to your opponents armor"
placeholder: "%level%"
type: normal
targets:
- sword
- axe
conflicts: [ ]
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_armor
args:
damage: "%level%"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,27 @@
display-name: "Adrenaline"
description: "Gain strength for &a%placeholder%&r seconds when blocking hits"
placeholder: "1 + %level% / 2"
type: normal
targets:
- shield
conflicts: [ ]
rarity: epic
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: potion_effect
args:
effect: increase_damage
level: 2
duration: "20 + 10 * %level%"
apply-to-player: true
cooldown: 10
triggers:
- shield_block
conditions: [ ]

View File

@@ -0,0 +1,27 @@
display-name: "Arcane Defence"
description: "Gives a &a%placeholder%%&r chance to ignore potion damage"
placeholder: "%level% * 4"
type: normal
targets:
- armor
conflicts: [ ]
rarity: epic
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: cancel_event
args:
chance: "%level% * 4"
triggers:
- take_damage
filters:
damage_cause:
- poison
- magic
conditions: [ ]

View File

@@ -0,0 +1,45 @@
display-name: "Ascend"
description: "Levitates you in the air for &a%placeholder%&r seconds"
placeholder: "%level% / 4"
type: spell
targets:
- sword
conflicts: [ ]
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- effects:
- id: potion_effect
args:
effect: levitation
level: 25
duration: "5 * %level%"
apply_to_player: true
- id: potion_effect
args:
effect: slow_falling
level: 1
duration: 10
delay: "18 * %level%"
apply_to_player: true
- id: play_sound
args:
sound: entity_firework_rocket_large_blast
pitch: 1
volume: 1
args:
cooldown: 90
send_cooldown_message: true
triggers:
- alt_click
conditions: [ ]

View File

@@ -0,0 +1,31 @@
display-name: "Aura"
description: "Players within &a%radius%&r blocks of you take &a%reduction%%&r less damage"
placeholders:
reduction: "%level% * 10"
radius: "3 + %level% * 2"
type: special
targets:
- chestplate
- leggings
conflicts: [ ]
rarity: special
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_permanent_holder_in_radius
args:
radius: "3 + %level% * 2"
effects:
- id: damage_multiplier
args:
multiplier: "1 - %level% * 0.1"
triggers:
- take_damage
conditions: []
conditions: [ ]

View File

@@ -0,0 +1,29 @@
display-name: "Blackout"
description: "Gives a &a%chance%%&r chance to give your opponent darkness for &a%seconds%&r seconds"
placeholders:
chance: "6 + %level%"
seconds: "4 + ceil(%level% / 2)"
type: normal
targets:
- sword
conflicts: [ ]
rarity: legendary
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: potion_effect
args:
effect: darkness
level: 1
duration: "80 + ceil(%level% / 2) * 20"
apply-to-player: false
chance: "6 + %level%"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,43 @@
display-name: "Blast Mining"
description: "&a%placeholder%% &rchance to mine blocks in a 3x3 area"
placeholder: "5 * %level%"
type: special
targets:
- pickaxe
conflicts:
- veinminer
rarity: special
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- effects:
- id: create_explosion
args:
power: 0
amount: 1
- id: mine_radius
args:
radius: 1
blacklisted_blocks:
- bedrock
- obsidian
- crying_obsidian
- chest
- barrel
- barrier
- reinforced_deepslate
check_hardness: true
disable_on_sneak: true
args:
chance: "5 * %level%"
cooldown: 0.05
send_cooldown_message: false
triggers:
- mine_block
conditions: [ ]

View File

@@ -0,0 +1,26 @@
display-name: "Bleed"
description: "Gives a &a%placeholder%%&r chance to cause your opponent to bleed, damaging them repeatedly"
placeholder: "1.5 * %level%"
type: normal
targets:
- sword
conflicts: [ ]
rarity: legendary
max-level: 7
tradeable: true
discoverable: true
enchantable: true
effects:
- id: bleed
args:
chance: "1.5 * %level%"
damage: 1
interval: 15
amount: "2 * %level%"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,26 @@
display-name: "Block Breather"
description: "&a%placeholder%% &rchance to ignore suffocation damage"
placeholder: "%level% * 15"
type: normal
targets:
- helmet
conflicts: [ ]
rarity: common
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: cancel_event
args:
chance: "%level% * 15"
triggers:
- take_damage
filters:
damage_cause:
- suffocation
conditions: [ ]

View File

@@ -0,0 +1,26 @@
display-name: "Boss Hunter"
description: "Deal &a%placeholder%% &rmore damage against bosses"
placeholder: "10 * %level%"
type: normal
targets:
- bow
- crossbow
conflicts: [ ]
rarity: rare
max-level: 8
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1 + 0.1 * %level%"
triggers:
- bow_attack
filters:
is_boss: true
conditions: [ ]

View File

@@ -0,0 +1,26 @@
display-name: "Curse of Breaklessness"
description: "Gives a &a%placeholder%%&r chance to fail to break blocks"
placeholder: "15 * %level%"
type: curse
targets:
- axe
- hoe
- pickaxe
- shovel
conflicts: []
rarity: legendary
max-level: 1
tradeable: true
discoverable: true
enchantable: false
effects:
- id: cancel_event
args:
chance: "15 * %level%"
triggers:
- mine_block
conditions: []

View File

@@ -0,0 +1,35 @@
display-name: "Brightness"
description: "Deal &a%placeholder%%&r more damage to the warden while in the deep dark"
placeholder: "4 * %level%"
type: common
targets:
- sword
conflicts:
- sharpness
- smite
- bane_of_arthropods
- introversion
- slaughter
rarity: legendary
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_damage
args:
damage: "4 * %level%"
triggers:
- melee_attack
filters:
entities:
- warden
conditions:
- id: in_biome
args:
biomes:
- deep_dark

View File

@@ -0,0 +1,23 @@
display-name: "Caffeinated"
description: "Gives a &a%placeholder%%&r bonus to attack speed while sprinting"
placeholder: "5 * %level%"
type: normal
targets:
- sword
conflicts: [ ]
rarity: rare
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: attack_speed_multiplier
args:
multiplier: "1 + %level% * 0.05"
triggers: [ ]
conditions:
- id: is_sprinting

View File

@@ -0,0 +1,28 @@
display-name: "Carve"
description: "Give &a%damage%&r damage to entities within &a%radius%&r blocks when you swing"
placeholders:
radius: "1 + %level%"
damage: "%level% * 2"
type: normal
targets:
- axe
conflicts: [ ]
rarity: legendary
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_nearby_entities
args:
damage: "%level% * 2"
radius: "0.5 * %level%"
damage_as_player: true
damage_self: false
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,34 @@
display-name: "Charge"
description: "Launches you forwards at &a%placeholder%x&r speed"
placeholder: "5 * %level%"
type: spell
targets:
- sword
conflicts: [ ]
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- effects:
- id: pull_to_location
args:
velocity: "1.5 * %level%"
- id: play_sound
args:
sound: ENTITY_FIREWORK_ROCKET_LAUNCH
pitch: 2
volume: 1
args:
cooldown: 40
send_cooldown_message: true
triggers:
- alt_click
conditions: [ ]

View File

@@ -0,0 +1,23 @@
display-name: "Confusion"
description: "Gives a &a%placeholder%% &rchance to shuffle your opponents hotbar"
placeholder: "2 * %level%"
type: special
targets:
- sword
conflicts: [ ]
rarity: special
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: shuffle_hotbar
args:
chance: "2 * %level%"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,33 @@
display-name: "Contagion"
description: "Gives a &a%placeholder%%&r chance to spawn a cloud of poison around where your trident lands"
placeholder: "5 * %level%"
type: normal
targets:
- trident
conflicts: [ ]
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: spawn_potion_cloud
args:
effect: poison
level: 1
duration: 60
triggers:
- projectile_hit
- id: play_sound
args:
sound: entity_splash_potion_break
pitch: 0.7
volume: 1
triggers:
- projectile_hit
conditions: [ ]

View File

@@ -0,0 +1,24 @@
display-name: "Criticals"
description: "Increases critical damage by &a%placeholder%%"
placeholder: "10 * %level%"
type: normal
targets:
- sword
- axe
conflicts: [ ]
rarity: epic
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: crit_multiplier
args:
multiplier: "1 + 0.1 * %level%"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,31 @@
display-name: "Cubism"
description: "Deal &a%placeholder%% &rmore against slimes and magma cubes"
placeholder: "5 * %level%"
type: normal
targets:
- sword
- axe
- bow
- crossbow
conflicts: [ ]
rarity: rare
max-level: 7
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1 + 0.05 * %level%"
triggers:
- melee_attack
- bow_attack
filters:
entities:
- slime
- magma_cube
conditions: [ ]

View File

@@ -0,0 +1,22 @@
display-name: "Dexterity"
description: "Increases attack speed by &a%placeholder%%"
placeholder: "%level% * 10"
type: normal
targets:
- sword
- axe
conflicts: []
rarity: epic
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: attack_speed_multiplier
args:
multiplier: "1 + 0.1 * %level%"
conditions: []

View File

@@ -0,0 +1,46 @@
display-name: "Dynamite"
description: "Mines blocks in a &a%placeholder%x%placeholder%&r area"
placeholder: "1 + %level% * 4"
type: spell
targets:
- pickaxe
conflicts: []
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- effects:
- id: create_explosion
args:
power: 0
amount: "%level% * 2"
- id: mine_radius
args:
radius: "2 * %level%"
blacklisted_blocks:
- obsidian
- barrier
- bedrock
check_hardness: false
- id: play_sound
args:
sound: entity_dragon_fireball_explode
pitch: 1
volume: 1
- id: break_block
args:
cooldown: 60
send_cooldown_message: true
triggers:
- click_block
conditions: []

View File

@@ -0,0 +1,24 @@
display-name: "Hard Worker"
description: "Gives a &a%placeholder%%&r boost to job experience"
placeholder: "%level% * 2"
type: normal
targets:
- armor
conflicts: [ ]
rarity: legendary
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: job_xp_multiplier
args:
multiplier: "1 + 0.02 * %level%"
conditions: [ ]
dependencies:
- EcoJobs

View File

@@ -0,0 +1,24 @@
display-name: "Petkeeper"
description: "Gives a &a%placeholder%%&r boost to pet experience"
placeholder: "%level%"
type: normal
targets:
- armor
conflicts: [ ]
rarity: epic
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: pet_xp_multiplier
args:
multiplier: "1 + 0.01 * %level%"
conditions: [ ]
dependencies:
- EcoPets

View File

@@ -0,0 +1,27 @@
display-name: "Adventurer"
description: "Gives a &a%placeholder%%&r boost to Adventurer experience"
placeholder: "2 * %level%"
type: normal
targets:
- boots
conflicts:
- enriched_plating
rarity: uncommon
max-level: 6
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.02 * %level%"
skills:
- exploration
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,26 @@
display-name: "Angler"
description: "Gives a &a%placeholder%%&r boost to Fishing experience"
placeholder: "8 * %level%"
type: normal
targets:
- fishing_rod
conflicts: [ ]
rarity: uncommon
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.05 * %level%"
skills:
- fishing
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,28 @@
display-name: "Chemist"
description: "Gives a &a%placeholder%%&r boost to Alchemy experience"
placeholder: "12.5 * %level%"
type: normal
targets:
- helmet
conflicts:
- enriched_plating
- sorcery
rarity: uncommon
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.125 * %level%"
skills:
- alchemy
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,26 @@
display-name: "Combatant"
description: "Gives a &a%placeholder%%&r boost to Combat experience"
placeholder: "10 + 2.5 * %level%"
type: normal
targets:
- pickaxe
conflicts: [ ]
rarity: uncommon
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1.1 + 0.025 * %level%"
skills:
- combat
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,25 @@
display-name: "Crit Luck"
description: "Gives &a+%placeholder%&r %ecoskills_crit_chance_name%"
placeholder: "4 * %level%"
type: normal
targets:
- sword
conflicts: [ ]
rarity: uncommon
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: crit_chance
amount: "4 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,29 @@
display-name: "Enriched Plating"
description: "Gives a &a%placeholder%%&r boost to Armory experience"
placeholder: "3 * %level%"
type: normal
targets:
- armor
conflicts:
- sorcery
- chemist
- adventurer
rarity: uncommon
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.03 * %level%"
skills:
- alchemy
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,25 @@
display-name: "Forceful Crit"
description: "Gives &a+%placeholder%&r %ecoskills_crit_damage_name%"
placeholder: "3 + 2 * %level%"
type: normal
targets:
- sword
conflicts: [ ]
rarity: rare
max-level: 6
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: crit_damage
amount: "3 + 2 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,26 @@
display-name: "Green Thumb"
description: "Gives a &a%placeholder%%&r boost to Farming experience"
placeholder: "2 + 4 * %level%"
type: normal
targets:
- hoe
conflicts: [ ]
rarity: uncommon
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1.02 + 0.04 * %level%"
skills:
- farming
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,25 @@
display-name: "Might"
description: "Gives &a+%placeholder%&r %ecoskills_strength_name%"
placeholder: "-1 + 4 * %level%"
type: normal
targets:
- sword
conflicts: [ ]
rarity: rare
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: strength
amount: "-1 + 4 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,32 @@
display-name: "Neptune"
description: "Gives &a+%crit_damage%&r to %ecoskills_crit_damage_name%&r but reduces %ecoskills_crit_chance_name%&r by &c%crit_chance%%"
placeholders:
crit_damage: "20 + 10 * %level%"
crit_chance: "40 - 5 * %level%"
type: normal
targets:
- trident
conflicts: [ ]
rarity: legendary
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: crit_damage
amount: "20 + 10 * %level%"
- id: multiply_stat
args:
stat: crit_chance
multiplier: "0.6 + %level% * 5"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,30 @@
display-name: "Overload"
description: "Gives &a+%placeholder%&r %ecoskills_crit_chance_name%&r and &a+%placeholder%&r %ecoskills_crit_damage_name%"
placeholder: "1 * %level%"
type: normal
targets:
- bow
- crossbow
conflicts: [ ]
rarity: rare
max-level: 7
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: crit_chance
amount: "1 * %level%"
- id: add_stat
args:
stat: crit_damage
amount: "1 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,26 @@
display-name: "Prospector"
description: "Gives a &a%placeholder%%&r boost to Mining experience"
placeholder: "3 * %level%"
type: normal
targets:
- pickaxe
conflicts: [ ]
rarity: uncommon
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.03 * %level%"
skills:
- mining
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,28 @@
display-name: "Sorcery"
description: "Gives a &a%placeholder%%&r boost to Enchanting experience"
placeholder: "10 * %level%"
type: normal
targets:
- helmet
conflicts:
- enriched_plating
- chemist
rarity: uncommon
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.1 * %level%"
skills:
- enchanting
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,26 @@
display-name: "Steel String"
description: "Gives &a+%placeholder%&r %ecoskills_strength_name%"
placeholder: "3 + 2 * %level%"
type: normal
targets:
- bow
- crossbow
conflicts: [ ]
rarity: rare
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: strength
amount: "3 + 2 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,44 @@
display-name: "Stimulating"
description: "Gives a &a%bonus%%&r bonus to all stats for &a%seconds%&r seconds"
placeholders:
bonus: "10 * %level%"
seconds: "3 * %level%"
type: spell
targets:
- sword
conflicts: [ ]
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- effects:
- id: add_holder
args:
effects:
- id: multiply_all_stats
args:
multiplier: "1 + 0.1 * %level%"
conditions: [ ]
duration: "3 * %level% * 20"
- id: play_sound
args:
sound: entity_allay_death
pitch: 1.2
volume: 1
args:
cooldown: 180
send_cooldown_message: true
triggers:
- alt_click
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,25 @@
display-name: "Strongarm"
description: "Gives &a+%placeholder%&r %ecoskills_strength_name%"
placeholder: "2 + 4 * %level%"
type: normal
targets:
- trident
conflicts: [ ]
rarity: rare
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: strength
amount: "2 + 4 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,24 @@
display-name: "Superior"
description: "Gives a &a%placeholder%%&r boost to all stats"
placeholder: "%level% * 2"
type: special
targets:
- armor
conflicts: [ ]
rarity: veryspecial
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: multiply_all_stats
args:
multiplier: "1 + 0.02 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,25 @@
display-name: "Vicious"
description: "Gives &a+%placeholder%&r %ecoskills_ferocity_name%"
placeholder: "5 + 5 * %level%"
type: normal
targets:
- sword
conflicts: [ ]
rarity: legendary
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_stat
args:
stat: ferocity
amount: "5 + 5 * %level%"
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,26 @@
display-name: "Woodworker"
description: "Gives a &a%placeholder%%&r boost to Woodcutting experience"
placeholder: "4 * %level%"
type: normal
targets:
- axe
conflicts: [ ]
rarity: uncommon
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: skill_xp_multiplier
args:
multiplier: "1 + 0.04 * %level%"
skills:
- woodcutting
conditions: [ ]
dependencies:
- EcoSkills

View File

@@ -0,0 +1,31 @@
display-name: "End Affinity"
description: "Increases damage dealt in the end by &a%placeholder%%"
placeholder: "20 + %level% * 10"
type: normal
targets:
- sword
- bow
- trident
conflicts:
- nether_affinity
rarity: epic
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1.2 + %level% * 0.1"
triggers:
- melee_attack
- bow_attack
- trident_attack
conditions:
- id: in_world
args:
world: world_the_end

View File

@@ -0,0 +1,29 @@
display-name: "Ender Slayer"
description: "Gives a &a%placeholder%&r bonus to melee damage against end mobs"
placeholder: "1 + 0.5 * %level%"
type: normal
targets:
- sword
- axe
conflicts: [ ]
rarity: uncommon
max-level: 6
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_damage
args:
damage: "1 + 0.5 * %level%"
triggers:
- melee_attack
filters:
entities:
- enderman
- endermite
- ender_dragon
conditions: [ ]

View File

@@ -0,0 +1,27 @@
display-name: "Escape"
description: "Gain a short burst of speed &a%placeholder%%&r after taking damage"
placeholder: "%level%"
type: normal
targets:
- boots
conflicts:
- streamlining
rarity: epic
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: potion_effect
args:
effect: speed
level: "%level%"
duration: 30
apply_to_player: true
triggers:
- take_entity_damage
conditions: [ ]

View File

@@ -0,0 +1,25 @@
display-name: "Excavation"
description: "Digs &a%placeholder%&r extra blocks"
placeholder: "%level%"
type: normal
targets:
- shovel
conflicts: [ ]
rarity: legendary
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: drill
args:
amount: "%level%"
check-hardness: true
disable-on-sneak: true
triggers:
- mine_block
conditions: [ ]

View File

@@ -0,0 +1,18 @@
display-name: "Feather Step"
description: "Prevents trampling crops by jumping on them"
type: normal
targets:
- boots
conflicts: [ ]
rarity: legendary
max-level: 1
tradeable: true
discoverable: true
enchantable: true
effects:
- id: feather_step
conditions: [ ]

View File

@@ -0,0 +1,24 @@
display-name: "Finishing"
description: "Increases damage dealt by &a%placeholder%%&r for each percent of health missing on your opponent"
placeholder: "0.2 * %level%"
type: normal
targets:
- sword
- axe
conflicts: [ ]
rarity: uncommon
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1 + ((1 - %victim_health% / %victim_max_health%) * 0.2 * %level%)"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,26 @@
display-name: "First Strike"
description: "Deal &a%placeholder%% &rmore damage against victims on max health"
placeholder: "30 + 20 * %level%"
type: normal
targets:
- sword
- axe
conflicts: [ ]
rarity: uncommon
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1.3 + 0.2 * %level%"
triggers:
- melee_attack
filters:
on_max_health: true
conditions: [ ]

View File

@@ -0,0 +1,37 @@
display-name: "Flashbang"
description: "Gives a &a%placeholder%%&r chance of blinding your opponent"
placeholder: "%level%"
type: normal
targets:
- bow
- crossbow
conflicts: [ ]
rarity: rare
max-level: 6
tradeable: true
discoverable: true
enchantable: true
effects:
- effects:
- id: potion_effect
args:
effect: blindness
level: 3
duration: 50
apply_to_player: false
- id: play_sound
args:
sound: entity_dragon_fireball_explode
pitch: 1.5
volume: 4
mutators:
- id: victim_as_player
args:
chance: "%level%"
triggers:
- bow_attack
conditions: [ ]

View File

@@ -0,0 +1,25 @@
display-name: "Foraging"
description: "Gives a &a%placeholder%%&r boost to apple drops from leaves"
placeholder: "ceil(((1 / (%level% + 2)) + ((%level% + 1) / 2)) * 100 - 100)"
type: normal
targets:
- shears
conflicts: [ ]
rarity: common
max-level: 4
tradeable: true
discoverable: true
enchantable: true
effects:
- id: multiply_drops
args:
on_items:
- apple
fortune: "%level%"
triggers:
- block_item_drop
conditions: [ ]

View File

@@ -0,0 +1,25 @@
display-name: "Fortitude"
description: "Gives a &a%placeholder%%&r bonus to damage dealt"
placeholder: "%level% * 2"
type: normal
targets:
- armor
conflicts: [ ]
rarity: legendary
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1 + %level% * 0.02"
triggers:
- melee_attack
- bow_attack
- trident_attack
conditions: [ ]

View File

@@ -0,0 +1,26 @@
display-name: "Frost"
description: "Gives a &a%chance%%&r chance to make your opponent feel as if they've been frozen for &a%seconds%&r seconds"
placeholders:
chance: "3 + 2 * %level%"
seconds: "2 + %level%"
type: normal
targets:
- bow
conflicts: [ ]
rarity: legendary
max-level: 3
tradeable: true
discoverable: true
enchantable: true
effects:
- id: set_freeze_ticks
args:
ticks: "60 + 20 * %level%"
chance: "3 + 2 * %level%"
triggers:
- bow_attack
conditions: [ ]

View File

@@ -0,0 +1,25 @@
display-name: "Getaway"
description: "Gain a &a%placeholder%%&r bonus to movement speed below &a20%&r health"
placeholder: "10 * %level%"
type: normal
targets:
- boots
conflicts: [ ]
rarity: rare
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: movement_speed_multiplier
args:
multiplier: "1 + 0.1 * %level%"
triggers: [ ]
conditions:
- id: below_health_percent
args:
percent: 20

View File

@@ -0,0 +1,25 @@
display-name: "Goliath"
description: "Deal &a%damage%x &rmore damage for each times your opponent has more health than you, up to &a%limit%x"
placeholders:
damage: "0.5 + %level% * 0.1"
limit: "1.6 + %level% * 0.4"
type: normal
targets:
- sword
conflicts: [ ]
rarity: rare
max-level: 6
tradeable: true
discoverable: true
enchantable: true
effects:
- id: damage_multiplier
args:
multiplier: "1 + min(max(%victim_health% / %player_health% - 1, 0) * (0.5 + %level% * 0.1), 1.6 + %level% * 0.4)"
triggers:
- melee_attack
conditions: [ ]

View File

@@ -0,0 +1,24 @@
display-name: "Curse of Harmlessness"
description: "Gives a &a%placeholder%% &rchance for attacks to do nothing"
placeholder: "15 * %level%"
type: curse
targets:
- sword
- axe
conflicts: []
rarity: legendary
max-level: 1
tradeable: true
discoverable: true
enchantable: false
effects:
- id: cancel_event
args:
chance: "15 * %level%"
triggers:
- melee_attack
conditions: []

View File

@@ -0,0 +1,25 @@
display-name: "Haunting"
description: "Dying spawns a harming cloud for &a%placeholder%&r seconds"
placeholder: "1 + %level%"
type: normal
targets:
- helmet
conflicts: [ ]
rarity: epic
max-level: 2
tradeable: true
discoverable: true
enchantable: true
effects:
- id: spawn_potion_cloud
args:
effect: harm
level: 1
duration: "20 + %level% * 20"
triggers:
- death
conditions: [ ]

View File

@@ -0,0 +1,21 @@
display-name: "Curse of Hunger"
description: "Increases hunger loss by &a%placeholder%%"
placeholder: "50 * %level%"
type: curse
targets:
- helmet
conflicts: []
rarity: legendary
max-level: 1
tradeable: true
discoverable: true
enchantable: false
effects:
- id: hunger_multiplier
args:
multiplier: "1 + 0.5 * %level%"
conditions: []

View File

@@ -0,0 +1,23 @@
display-name: "Infernal Touch"
description: "Automatically smelts mined blocks"
type: normal
targets:
- pickaxe
conflicts:
- silk_touch
rarity: legendary
max-level: 1
tradeable: true
discoverable: true
enchantable: true
effects:
- id: autosmelt
args:
drop_xp: true
triggers:
- block_item_drop
conditions: [ ]

View File

@@ -0,0 +1,31 @@
display-name: "Introversion"
description: "Gives a &a%placeholder%&r bonus to melee damage against players"
placeholder: "2.5 * %level%"
type: normal
targets:
- sword
conflicts:
- sharpness
- smite
- bane_of_arthropods
- slaughter
- brightness
rarity: common
max-level: 5
tradeable: true
discoverable: true
enchantable: true
effects:
- id: add_damage
args:
damage: "2.5 * %level%"
triggers:
- melee_attack
filters:
entities:
- player
conditions: [ ]

Some files were not shown because too many files have changed in this diff Show More