Description of issue or feature request: If a new player join to server firstly
ERROR (DELETE IF YOU HAVE NO ERROR):
[15:22:50] [Craft Scheduler Thread - 1939/INFO]: [0;33;22m[CMI] [0;36;22m SEVERE SAVE ERROR WHILE SAVING DeringDoo PLAYER DATA (player_uuid)[m
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: java.lang.NullPointerException
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3124)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4529)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.proccessForSaveField(PlayerManager.java:1158)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.savePlayerToDB(PlayerManager.java:972)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBDAO.updatePlayer(DBDAO.java:589)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager.saveBatch(DBManager.java:294)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager$1$1.run(DBManager.java:238)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.lang.Thread.run(Thread.java:748)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: java.lang.NullPointerException
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3124)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4529)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.proccessForSaveField(PlayerManager.java:1158)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.savePlayerToDB(PlayerManager.java:972)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBDAO.updatePlayer(DBDAO.java:589)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager.saveBatch(DBManager.java:294)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager$1$1.run(DBManager.java:238)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.lang.Thread.run(Thread.java:748)
[15:22:50] [Craft Scheduler Thread - 1939/INFO]: [0;33;22m[CMI] [0;36;22m SEVERE SAVE ERROR WHILE SAVING DeringDoo PLAYER DATA (player_uuid)[m
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: java.lang.NullPointerException
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3124)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4529)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.proccessForSaveField(PlayerManager.java:1158)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.savePlayerToDB(PlayerManager.java:972)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBDAO.updatePlayer(DBDAO.java:589)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager.saveBatch(DBManager.java:294)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager$1$1.run(DBManager.java:238)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.lang.Thread.run(Thread.java:748)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: java.lang.NullPointerException
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3124)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4529)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.proccessForSaveField(PlayerManager.java:1158)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.PlayerManager.savePlayerToDB(PlayerManager.java:972)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBDAO.updatePlayer(DBDAO.java:589)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager.saveBatch(DBManager.java:294)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager$1$1.run(DBManager.java:238)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.lang.Thread.run(Thread.java:748)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:382)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1213)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3101)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1419)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBDAO.executeTempBatch(DBDAO.java:782)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager.saveBatch(DBManager.java:330)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at com.Zrips.CMI.Modules.DataBase.DBManager$1$1.run(DBManager.java:238)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[15:22:50] [Craft Scheduler Thread - 1939/WARN]: at java.lang.Thread.run(Thread.java:748)
CONFIG SECTION (DELETE IF NOT RELEVANT):
# Language file you want to use
Language: RU
storage:
# storage method, can be MySQL or sqlite
method: MySQL
mysql:
# Requires Mysql.
username:
password:
hostname: ..tech:3306
database:
tablePrefix:
# If you have no clue what these values does, then keep it at default values
autoReconnect: true
useSSL: false
verifyServerCertificate: true
# Auto save interval in seconds
# This will define how often to write down data into data base
# Save operation will not be performed if there is no changes to save
# !ATTENTION! Keep it in low numbers, around 60 seconds
# Minimal interval is 10 seconds
AutoSaveInterval: 20
# Player data will be recorded straight after he logs out, without any delay
ForceSaveOnLogOut: false
# EXPERIMENTAL. This is not fully tested yet and some minor issues can happen when ussing on bungee network
# Player data will be loaded from database each time player joins server
# When its set to false then precached data will be uses which is more efficient
ForceLoadOnLogIn: true
Economy:
# Enable or disable CMI economy in general
# In case CMIInjector is present, then this will be set to true automatically.
Enabled: true
# Determines if player needs to confirm money payment by clicking on chat message
Confirmation: true
# Set to true if you want to log money transfers between players
LogEnabled: true
log:
Unknown: true
Transfer: true
# Determines max amount of cheque player can create
# Set it to 0 to remove limit
MaxChequeValue: 1000.0
BalTop:
# List of players to exclude from baltop list
Exclude:
- Notch
# List of names to exclude from baltop
# Can be used to filter out towny towns
ExcludeStartingWith: []
Global:
# Starting amount of money players will have
StartingAmount: 130.0
# Minimal amount, can go into negative if needed
MinimalAmount: 0.0
# Maximal amount of money player can have. Set to -1 to disable this limit
MaximumAmount: -1
# Currency symbol to be used when showing balance or similar
CurrencySymbol: ₵
# Format used for displaying money
MoneyFormat: '###,###.00'
# Converts long numbers to short ones, like 12305122 to 12.3m
UseShortNumners: false
# Suffixes for short numbers
ShortNumbersSuffixes:
- ''
- k
- m
- b
- t
- q
# Replaces to western format where decimals are separated by , and thousands by . In example 1,000,000.00 changes to 1.000.000,00
SwitchPlaces: true
# Placing of currency symbol
Placing: '[money][symbol]'
FileSave:
# Change this to true only if you have issues with drives I/O and you need to save players files in async mode to lower waiting time for mc server
Async: true
Optimizations:
# Enables or disables maintenance mode
Maintenance: false
ArmorStands:
# When set to true, plugin will check if player can manipulate armor stand by sending fake block place event and checking if any plugin would want to prevent this action
# This can help out to minimize posibility for players to manipulate armor stands when they dont have build permission in area where armorstand is standing
CheckBlockPlace: false
AutoDownload:
# In case you dont have GeoIP.dat it will be downloaded automatically on server start. Restart can be needed for it to take effect
GeoIp: false
# In case you dont have GeoLiteCity.dat it will be downloaded automatically on server start. Restart can be needed for it to take effect
GeoLiteCity: false
# Sets indicator when creating elevator signs. Its case insensitive
ElevatorIndicator: '[CMIElevator]'
# Defines elevator type. If this is used on second line of sing, then player will be teleported directly in front of it instead of keeping original players x and z coordinates
ElevatorStaticIndicator: '[*]'
# Used to show date in places like mail, checkban, infopage and similar locations
LongDateFormat2: dd/MM/yy HH:mm:ss
# Used to show date in places like inv gui and similar locations
ShortDateFormat: dd/MM/yy
# Do you want to record sell hand actions into file
SellLog: true
# When this set to true by using any command, requiring players name, in case plugin cant determine player by given full name, then partial matches from online players will be used. In example: /cmi heal rips can heal player Zrips
# Useful when you have players with complicated names
PartialPlayerName: false
# Enables DiscordSRV plugin support for messages
DiscordSRVSupport: false
# When set to true, commands in help page will be sorted alphabeticaly
# If set to false, commands will be sorted by priority
CommandSorting: true
# Percentage value (1-100) to pick best command match if command cant be found
# Example: /cmi spawnmb will have 87.5% match with /cmi spawnmob
# Set to 0 to disable
SimilarCommandChecker: 0
# When set to true, if player enters incorrect command, then command will not gonna be performed
# But message informing about incorrect usage and best match will be shown in any case
SimilarCommandPrevention: true
# When set to true, commands in help page starting with /cmi will get shortened by hiding base command. Example /cmi back becomes /back
# Keep in mind that this is automatic feature if alias or custom alias is set to that command
# And keep in mind that this is only cosmetic change and will not impact command usage
RemoveLabel: true
# When set to true, all players can see missing permission node by hovering over error message
# When set to false only players with cmi.permisiononerror permission node can see missing permission node
# Keep in mind that by default players have acces to permission node, so negate it if you want to hide missing permission nodes from them
PermisionOnError: true
# When set to true, each time player tries to use something he doesnthave permission, message will be shown in console
PermisionInConsole: true
Teleport:
# When true then while checking for safe location, we will try to determin it goind down and if it fails, then up from target location
# When set to false, then first of all location above target location will be checked, then down
SafeLocationDownThenUp: false
# Set this to true if you having issues with entities not being teleported with you
# Keep in mind that this is work arround for some plugins (AKA Towny) and can have undesired results in some situations
VehicleWorkArround: false
# Set to true if you want to use tp commands as /cmi tp [WhoYouWantToTeleport] [WhereToTeleport] when its false, its /cmi tp [whereToTeleport] [WhoYouWantToTeleport]
SwitchPlaces: true
# Applies for tpa, tpahere and tpaall only
# If set to true then player will be teleported to current player position after accepting teleport request
# If set to false then player will be teleported to player at which teleport request was issued
CurrentLoc: true
# Default distance for jump command. Can be overriden with cmi.command.jump.[amount] permission node
JumpDefault: 50
# Defines time in seconds for accepting tpa or tpahere requests
TpaTime: 60
# Defines time in seconds for player being teleported after tpa or tpahere is being accepted
TpaWarmup: 5
# Defines if player can move when tpa or tpahere is being accepted
TpaMove: false
# Defines time in seconds for blocking player teleport offers after denying their request
TpaBlock: 120
# Defines time in seconds for bypassing prevented teleportation to unsafe location
TpBypass: 15
BlackListedItems:
# Option to prevent player teleportation when he has blacklisted items in his inventory. Can be bypassed with cmi.teleport.bypassblacklist
Enabled: false
EnabledFor:
tp: true
tpa: true
tpahere: true
warp: true
home: true
spawn: true
# Item and amount (if not defined, defaults to 0) we want to protect
# Separate amount with : in example IronOre:5 what will limit ironOre block in players inventory up to 5, more than that and player cant teleport
List:
- Diamond
- DiamondBlock
- DiamondOre
- ironore:5
# Back location will not be triggered if player teleports closer than defined amount of blocks
BackMinDistance: 5
# List of worlds to whichones player can't go back with /back command
BackBlackList:
- TeztWorldz
IP:
# When set to true, players ip will be recorded for future use, like recognizing players other accounts
# Some commands will have limited usage when this is disabled
Record: true
# How long in second to wait until players ip is being recorded into data base
# This only applies for offline servers to allow for player first of all to login before recording ip
# Try to keep this value lower than your login plugin's allowed login time
delay: 10
# Max amount of hp you can get when using /cmi maxhp command
MaxHp: 200
# When set to true, player play time will be grabbed from user stats file instead of from CMI user data file
# This can help to get more accurate play time if you have older server and using players stats feature
PlayTimeFromStats: false
# When set to true, playtimetop list will be loaded on server startup
PreloadTopPlaytime: false
# Do you want to use CMI playtime tracking
# While this is enabled, player play time will be record for each hour he playied in server
CMIPlayTimeTracking: false
# Player names to be excluded from playtimetop list
PlaytimeTopExclude:
- Some
- Names
- Here
ItemName:
# List of materials to block from itemName command
TypeBlackList:
- gold_nugget
ItemLore:
# List of materials to block from itemName command
TypeBlackList:
- gold_nugget
OnDurabilityLoss:
# Do you want to inform player when item durability gets lower than set treshhold
# Player should have cmi.informDurability
Use: false
Percentage: 10
OnLimitedItemUse:
# Informs about left uses of item
Inform: false
# Can disable messages outputed durring start for world chunk checks
DisableWorldChunkCheckInfo: false
# Can prevent animals or monsters entering boats
PreventEntityBoatEnter:
Monsters: false
Animals: false
PreventBedExplosion:
Nether: false
TheEnd: false
# Will teleport players down from nether 'roof'
PreventPlayersOnNetherRoof: false
PreventIronGolem:
# When set to true, iron golems will not drop roses on death
Roses: false
# When set to true, fishing rod will not move grabed entity towards you
PreventHook: false
# Use aproximate distances instead of exact
# This will use separate locale line which includes direction to player
NearCommand: true
Multicraft:
# When set to true, will prevent multicraft servers to console. This will disable /list command usage in general
DisableList: false
Commands:
Clear:
# When set to true, /cmi clear comamnd will require confirmation for it to be finalized
Confirmation: true
PlaytimeRewards:
# Enable or disable playtime rewards
Enabled: true
# When enabled, while player is in afk mode, repeatable playtime rewards will not increase in playtime
# ATENTION! this setting will not have any effect if you have Afk.StopPlayTime set to true
# When StopPlayTime set to true, afk will be expluded automatically
ExcludeAfk: true
# Defines time in minutes to inform player about pending reward which needs to be claimed
RewardInform: 15
# Defines how many one time rewards you want to show in list
# This will show next X amount rewards from your current playtime
# No point in listing all rewards if player is still far away
OneTimeAmount: 2
# When set to true player will be required to have cmi.prewards.[name] permission node to get particular playtime reward
RequiresPermission: false
Sleeping:
Speedup:
# When set to true, players can speedup night by sleeping in bed
# This will allow to speed up night in percentage depending how many players are sleeping in beds in that world
Enabled: false
# Type of speedup information, can be: none, title, bossbar
InfoType: title
# When set to true, players who are in afk mode will be excluded from speed calculations
ExcludeAfk: true
# Defines speed to go throw night, bigger numbers will make it go faster and less players you will need to go throw night
# 100 will result in 100 times faster time
BaseSpeed: 100
# Defines minimal speed to go throw night, this is in case there are more players than base speed and calculation return default speed
MinSpeed: 5
# Minimal amount of players sleeping in beds before speeding it up
# Can be defined in 2 formats. When using clean number like 3, then 3 players will have to be sleeping before speedup kicks in
# If amount is defined with % like 50% then half of server population will have to be sleeping before speedup kicks in
MinBeforeSpeeding: 50%
ExploitPatcher:
PreventItemPickup: true
# When enabled this will prevent exp bootles being destroyied on portal edge and duplicating them in result of that
PreventExpPortals: true
Vault:
# If your having issues with vault grabbing correct players' group or balance, consider to turn this to false
Money: true
Group: true
Worth:
# Defines lore that will prevent an item from being sold using /cmi sell.
# Color codes and capitalization are being ignored
BadLore:
- Creative item by Gasha
BossBar:
# Enables or disbales bossbar hp bar on 1.9+ servers
# Only players with cmi.bossbar.hpbar permission node can see it
# Permission node is been rechecked no more often than every minute for efficiency
HpBarEnabled: false
# List of mob types which will be excluded from hp boss bar
HpBarBlackList:
- Ender_dragon
Ban:
# When set to true players who are banned will get messages modified by CMI instead of seying vanilla type of message
OverrideLoginMessage: false
Homes:
# Open gui when using /cmi home command if you have more then one home in your saved list
Gui: false
# Homes groups to define max amount homes player can have. Permission: cmi.command.sethome.[groupname]
# If players home group if not find then amount will be set to 1
# To have unlimited homes use cmi.command.sethome.unlimited permission
# In adition to this you can use simple numeric permission node cmi.command.sethome.[number] which will define max number of homes player can have
Groups:
newbies: 0
jailer: 0
default: 1
alariy: 1
strategist: 2
navarch: 2
polemarch: 3
# Requires cmi.bedhome permission node
# When set to true by interacting with bed, regular home location will be created
# When set to false vanilla bed home location will be set
BedInteraction: false
# Removes bed location when home location was created by clicking on that bed
RemoveBedLocationOnBedBreak: true
# When enabled, plugin will check if player can break block in that area before creating new home location
# This allows to prevent setting homes in protected areas
# Can be bypassed with cmi.command.sethome.bypass
CheckBlockBreak: false
# Name for default home location. By default its "Home"
DefaultName: Home
ReSpawn:
# Time in seconds to make player immortal after he respawns
# Can be used to prevent respawn camping
# Set to 0 if you want to disable it
Immortality: 5
# If you want 3rd party plugin to handle player respawning, simply set this to false and reload plugin
Enabled: false
Global:
# Defines respawn order if defined world is not present in Specific list
# Possible respawn locations: spawn, bedLocation, homeLocation, worldSpawn, warp![warpName]
# Spawn is preset spawnlocation with /cmi setspawn command, that location should have RespawnLocation set to true
# bedLocation is location set by interacting with bed, BedInteraction should be set to false and players requires cmi.bedhome to set bed location
# homeLocation is location set by player which is with default (Home) name, if that one doesnt exist then first in the list will be used if posible
# worldSpawn is location preset to this world, this is not CMI location but default world spawn location
# warp![warpName] can be any valid warp you set for players to be teleported, they will bypass any requirements for that warp
PriorityOrder:
- spawn
- bedLocation
- homeLocation
- worldSpawn
# Defines respawn order for defines worlds
# Remove world if you want to leave respawn handling for server or 3rd party plugin
Specific:
world:
- spawn
- bedLocation
- homeLocation
- worldSpawn
DIM-17:
- spawn
- bedLocation
- homeLocation
- worldSpawn
DIM1:
- spawn
- bedLocation
- homeLocation
- worldSpawn
DIM-1:
- spawn
- bedLocation
- homeLocation
- worldSpawn
dungeonworld:
- spawn
- bedLocation
- homeLocation
- worldSpawn
rpgworld:
- spawn
- bedLocation
- homeLocation
- worldSpawn
teworld:
- spawn
- bedLocation
- homeLocation
- worldSpawn
Afk:
# Enable or disable auto afk system entirely
Enabled: true
# Prevents jumping in one place to avoid afk status
PreventJumping: true
# Prevents damage while afk
PreventDamage: false
# Defines how often in seconds plugin will check for afk players state
CheckInterval: 10
# When set to true, players playtime counter stops
# As of nature how this system works you can see +-1second jumping up and down while chekcing players playtime
StopPlayTime: false
# Defines how long to wait after player stops moving to set him as afk
# Player needs to have cmi.command.afk.auto permission node
AutoAfkIn: 480
# Defines commands to be performed when player enters afk mode
# Supports specialized commands
AutoAfkCmds:
- cmi broadcast !&6[playerDisplayName] &eis now AFK
# Defines commands to be performed when player leaves afk mode
AfkLeaveCmds:
- cmi broadcast !&6[playerDisplayName] &eis no longer AFK
# Defines how long to wait after player stops moving to kick player
# This can be used not only to kick but to perform repeating action every x seconds if needed
# Keep it at -1 to disable auto kick
# Can be bypassed with cmi.command.afk.kickbypass permission node
AutoKickIn: -1
# This will define how long to wait before performing kick commands again
RepeatingAutoKickInterval: 900
# When set to true, kick command will be repeated each RepeatingAutoKickInterval seconds
RepeatKickCommand: false
# Defines commands to be performed when player can be kicked
# If player is not kicked then commands will be repeated every RepeatingAutoKickInterval seconds
AutoKickCmds:
- cmi kick [playerName] &eYou have been kicked for idling more than [time]
# Disables afk on interaction
DisableOnInteract: true
# Prevents player from going bypassing afk mode while continuously holding one button with particular items or on particular blocks
SmartInteractCheck: true
# Prevents from players abusing afk by constantly moving in afk machine
AntiAfkMachines: true
# Disables afk on inventory click
DisableOnInventoryClick: true
# Disables afk on command usage
DisableOnCommand: true
# Disables afk on public chat message
DisableOnPublicChat: true
# Disables afk on private chat message
DisableOnPrivateChat: true
# Disables afk on move
DisableOnMove: true
# Disables item pickup while afk
DisableItemPickup: false
Votifier:
# When set to true votifier votes will be counted for player
CountVotes: false
# Number of votes one IP can make in last 24 hours
# Set it to 0 to have unlimited amount
MaxVotesInADay: 0
# Cooldown between votes from same service
# In most cases voting service will have its own cooldown settup
# But if you need extra one to prevent rapid voting you can define time in seconds over here
GeneralCooldown: 0
# When set to false, commands on sucessfull vote will not be performed
PerformCommands: false
# Defines commands to be performed when player votes
# Supports specialized commands and placeholders
# [serviceName] variable can be used to insert address
CommandsOnVote:
- cmi broadcast !&6[playerDisplayName] &evoted!
- cmi give [playerName] diamond
# Keep it at false if you dont want to give out extra rewards
ExtraRewardsEnabled: false
# Commands will be performed when player collect determined amount of votes
ExtraRewards:
'10':
- cmi heal [playerName]
- cmi money give [playerName] 100
'100':
- cmi heal [playerName]
- cmi money give [playerName] 1000
- cmi give [playerName] diamond 32
# List of players to be excluded from top voter list
ExcludeList:
- None
Ranks:
AutoRankUp:
# Defines how often in seconds plugin will check for posible player rankups
# Set it to 0 or less to disable auto rankup checks
Delay: 60
# EXPERIMENTAL. When set to true, player rankup checks will be done in async mode
# In case of errors related to this feature being turned on, turn it off and report issue with error log to github
Async: true
# Defines how often in seconds each separate player will be checked for rankup
# This is different than general check just to avoid couple players ranking up at same time
# This also defines how often player will be notified about posible rankup and it will proportionaly increase with each time player get notification to avoid annoying spam in chat
# Keep it longer or same as general delay time
PlayerDelay: 120
# Enable or disable progression bar in rank info window
progressBar: true
# When set to true, command /cmi ranklist will output ranks from your rankup path which will exclude any rank from different paths or different rankup trees all together
# When set to false, all set ranks will be shown in the list
ListSamePathOnly: false
Signs:
# Defines in milliseconds how often to check if player entered Dynamic Sign trigger area
# Bigger numbers can help slightly lower server load
# This is not essential to keep in low numbers
CheckInterval: 5000
# List of colors to be translated from one to another to avoid unreadable text
# Only applies for Dynamic Signs feature
TranslateColors:
- '&6-&8'
- '&e-&f'
- '&7-&8'
Skins:
# Enable or disable skin management
Enabled: false
# Applies skin to player automatically on his login to server if he doesnt have one already set
# This will always set to skin by target player name
AutoApply: false
# Sets player sking to Steve when turning skin off and lets server to handle it
# If its false, then skin will be changed to online one
SteveOnOff: false
# Requests from player specific permission for that skin cmi.command.skin.perm.[skinName]
RequireSpecificPerm: false
Notes:
# When enebled, when player logs in who has alert set on him, staff member will get notification that this player have some notes attached to him
ShowOnAlertEvent: true
GroundClean:
# List of item types not to be removed on ground clean action
WhiteList:
- itemType
Chat:
# Will try to modify chat to display it in defined format
ModifyChatFormat: true
# When set to true, regular and private messages (excludes clean messages) will have aditional information when hovering over it (PlaceHolderAPI supported) and can be clicked for quick reply option
# To change default hover over messages seen on sent message, go to your locale file to Chat section
ClickHoverMessages: true
# Enables support for DiscordSRV plugin
DiscordSRVPublicChat: false
# Enables support for DynMap web chat
DynMapChat: false
# When set to false, each time you will use /r you will reply to person you previously sent message directly or to person who sent you message if there is none you have conversion before
# When this set to true, players with /r will reply to person who last sent private message. This can result in confusion when using /r while getting private messages from multiple players
ReplyToLastMessenger: true
# If ReplyToLastMessenger is set to false, then timeOut will be taken into consideration to who you should reply
# If you had conversation in last 120 seconds (default) then even receiving message from 3rd person, you will still reply to original player
# If you had conversation in longer then 120 seconds period, then you will reply to latest person who send you a message
LastMessengerTimeOut: 120
# Defines regex when replacing url in chat with short word
# Examples:
# (https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,})
# ((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?
# ((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?([^\s]+)
LinkRegex2: ((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?([^\s]+)
# When set to true, particular variables in chat will be translated into items player are holding. List of variables belove
HoverItems: true
# Defines regex when replacing item line in chat with players item in hand information. Only works when CMI hover over chat format is enabled
ItemRegex:
- (\%item\%)
- (\[item\])
- (\%i\%)
# Do you want to enable private messaging over bungeecord
BungeeMessages: false
# Do you want to enable public messaging over bungeecord
BungeePublicMessages: false
# Do you want to enable staff messaging over bungeecord
BungeeStaffMessages: true
# Used for simple chat messages. Optional variables: {world} {prefix} {suffix} {group}. Supporting PlaceHolderAPI variables like %player_server%
GeneralFormat: '{prefix} {displayName} {suffix} > {message}'
# Defines range of regular messages to travel
# Set to -1 to disable range restriction
GeneralRange: -1
# Defines range of shout messages to travel
# Shout messages should start with ! and player should have cmi.chat.shout permission
# GeneralRange should be enabled
# set to 0 to shout across all worlds, -1 to disable
ShoutRange: 0
# Defines cost for each shout message
ShoutCost: 0
# Use numeric increments to separate groups from each other. If player has more than one, then line with higher number will be used
# Add as many lines as you need too
# cmi.chatgroup.[id] permnission node to use
GroupFormat:
'1': '&b&l[&8{prefix}&b&l] &7{displayName} {suffix} &2> &7{message}'
'2': '&7[&8{prefix}&7] &7{displayName} {suffix} &2> &7{message}'
'3': '&7&l[&3{prefix}&7&l] &b{displayName} {suffix} &2> &3{message}'
'4': '&7&l[&a{prefix}&7&l] &2{displayName} {suffix} &2> &a{message}'
'5': '&7&l[&d{prefix}&7&l] &5{displayName} {suffix} &2> &d{message}'
'6': '&7&l[&e{prefix}&7&l] &6{displayName} {suffix} &2> &e{message}'
'7': '&7[&9Помощник&7] &b{displayName} {suffix} &f> &a{message}'
'8': '&7&l[&9Советник&7&l] &b{displayName} {suffix} &f> &a{message}'
'9': '&6&l[&9Придворный советник&6&l] &b&l{displayName} {suffix} &e> &a{message}'
'10': '&7[&c{prefix}&7] &7{displayName} &2> {suffix} &7{message}'
'20': '&6&l[&4{prefix}&6&l] &4{displayName} &6> &e{message}'
'21': '&6&l[&c{prefix}&6&l] &2{displayName} &6> &c{message}'
Colors:
# If set to true then all public messages will be filtered from color codes and will allow to colorize them with appropriate permission node
# cmi.colors.publicmessage.[colorName]
# Colors: black(&0), darkblue(&1), darkgreen(&2), darkaqua(&3), darkred(&4), darkpurple(&5), gold(&6), gray(&7), darkgray(&8), blue(&9), green(&a), aqua(&b), red(&c), lightpurple(&d), yellow(&e), white(&f), magic(&k), bold(&l), strikethrough(&m), underline(&n), italic(&o), reset(&r)
PublicMessage: true
PrivateMessage: true
# If set to true then /me messages will be filtered from color codes and will allow to colorize them with appropriate permission node
# cmi.colors.me.[colorName]
me: false
# If set to true, then color codes will get removed from text instead of leaving them if player dont have appropriate permission node for that color
CleanUp:
publicmessage: true
privatemessage: true
me: true
signs: false
books: false
# List of strings to ignore when checkign chat for color codes player cant use.
# This will bypass players colorcode restrictions and will allow usage of particular chat formats
# Applies only for public and private messages
WhiteList:
- '&c❤&7'
# If set to true then nickName will be filtered from color codes when player changes it
# cmi.colors.nickname.[colorName]
NickName: true
ChatFilter:
Enabled: false
Deny:
ipBlock:
# If not set to true, this filter will not be used
Enabled: true
# Defines filter group and defines required permission node to bypass this filter: cmi.chatfilter.bypass.[groupName]
Group: Advertising
# Regex expresion to filter by. How to use regex https://regexone.com/
Regex:
- '[a-zA-Z0-9\-\.]+\s?(\.|dot|\(dot\)|-|;|:|,|_|\/)\s?([a-zA-Z]{2}|aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel)\b'
# With what we need to replace word, if not defined found expresion will not be changed
ReplaceWith: ''
# posible: none, orhers, all
# Where 'none' means everyone will receive this message
# 'others' means that sender will get message but not other players, this is usefull to prevent advertising and silently block it
# 'all' means that no one will receive sent message
BlockType: others
# Players with cmi.chatfilter.inform permisison will receive defined message when rule is broken
msgToStaff: '&4!&6[playerName] &4advertising with: &r[message]'
# List of commands to perform when rule is broken. Use [senderName] to include message sender name. Supports global variales same as locale file
Commands: []
swearing1:
Enabled: true
Group: Swearing
Regex:
- \bass\b|\basshole
ReplaceWith: dude
BlockType: none
msgToStaff: '&4!&6[playerName] &4swearing'
Commands:
- msg [senderName] &eDon't swear!
swearing2:
Enabled: true
Group: Swearing
Regex:
- \bfu+ck
ReplaceWith: not good
BlockType: none
msgToStaff: '&4!&6[playerName] &4swearing'
Commands:
- msg [senderName] &eDon't swear!
# List of regex filter to exlude from block list. Usefull if you want to block all ip/host address but want to allow usage of your own server.
WhiteList:
- \bgoogle.\s?([a-zA-Z]{2,4})\b
- \bspigotmc.\s?([a-zA-Z]{2,4})\b
DuplicatedMessagePrevention:
# When set to true, plugin will prevent spaming of same or similar messages in short time range. Can be bypased with cmi.chatfilter.spambypass permission
Use: false
# How much in percentage message is counted as same
Percentage: 80
# Defines how often in seconds you can send same/similar message
Interval: 5
# How many commands you can repeat before stopped for cooldown
MinAmount: 2
# If set to true, players public message who is in your ignore list will not be shown
IgnorePublicMessage: false
Tag:
# Enable or not tag system. This will inform player with his name mentioning in public chat if name have @ in front of it
Enabled: true
# When this is set to true, any player mentionings in public messages will be colorized and player will get informed as usual
# This is allot more heavier on server than usual tagging with @, so enable if you know what you are doing
HardCoreMode: false
# Determines color of taged user name in chat with @ in front of name/nickname. Sender should have cmi.tag.color
Color: '&c'
Sound:
# Sound name
Name: BLOCK_NOTE_HARP
Volume: 1
Pitch: 3
# Will play tag sound only when player is afk
OnlyWhenAfk: false
# When set to true, @ simbol will be removed
RemoveEta: false
Command:
CommandFilter:
Duplicate:
# When set to true, plugin will prevent spaming of same or similar command in short time range. Can be bypased with cmi.commandfilter.bypass permission
Use: false
# How much in percentage command is counted as same
Percentage: 80
# Defines how often in seconds you can send same/similar commands
Interval: 5
# How many commands you can repeat before stopped for cooldown
MinAmount: 2
# Whitelisted commands to ignore
WhiteList:
- msg
- tell
- login
- register
Spy:
# Commands in this list will not be shown when command spy is enabled for player for security/privacy reasons
BlackListed:
- register
- login
- l
# Players without cmi.security.admin will only see commands from this list with command spy feature
CommandList:
- cmi spawn
- cmi tp
- cmi tpa
- cmi heal
- cmi feed
- cmi fly
PlayerNotes:
# For how long to keep players notes in days
ExpiresIn: 12
PlayerMail:
# For how long to keep players mail in days
ExpiresIn: 12
# Mailing to all players will send mails to players who loged into server in last x days
mailAllDays: 7
DisplayName:
# If you have 3rd party plugin changing players display name, set this to false
Change: false
# Format of players display name. By default only nick name will be visible, if its set, if not, then players name
# Posible custom varibales: {prefix} {suffix} {nicknameprefix}
# Supports placeholders
Format: '{nickName}'
# Defines regex for valid nick name
# By default only letters and numbers are allowed
ValidNicknameRegex: '[^\p{L}0-9\-\_]'
NickName:
# Prevents players to change their nick name to one of defined without permission
# Use lower case
# cmi.command.nick.bypassblacklist
# to bypass protection against already in use name/nickname use cmi.command.nick.bypassinuse
BlackList:
- admin
- administrator
- server
- staff
- staf
# Min length of nick name, can be bypassed with cmi.command.nick.bypass.length
MinLength: 3
# Max length of nick name, can be bypassed with cmi.command.nick.bypass.length
MaxLength: 15
# Adds prefix for players nickname to indicate that its not real name. This can be added to display name with {nicknameprefix}
Prefix: ''
# When true, will only add nickname prefix when its not same as original name. This can allow colorization or capitalization change without addign prefix
PrefixWhenDifferent: false
# When true, online players nick name will be included into tabcomplete
IncludeInTabComplete: true
# Shows if there is an available new version on login with cmi.versioncheck permission node
ShowNewVersion: true
Spawners:
# If you experiencing issues with spawner handling, set this to true to avoid any spawner manipulations from CMI side
# This will disable features like, spawner placement, spawner drops, spawner charges and so on
FullDisable: true
Break:
# Enable or disable spawner handler for spawner break
# If enabled player will get spawner if using silktouch pickaxe and have cmi.dropspawner permission node
# If player has cmi.dropspawner.nosilk permission node, player is not required to use silk touch pickaxe to get droped spawner
Enabled: true
# If set to true, player will need to have particular permission node to break and get particular spawner.
# In example: player should have cmi.dropspawner.pig to break pig spawner and get it dropped, or cmi.dropspawner.zombie to get zombie spawner
RequiresExactPermission: true
# When set tp fa;se, exp will not be dropped from broken spawner independent if spawner it self is being dropped
# When set to true exp will be dropped only if spawner is not
DropExp: false
# Minimal silktouch level required to get spawner back
SilkTouchLevel: 2
Place:
# Enable or disable spawner handler for spawner place
# If enabled player will place spawner depending from what it is by its type
# If disabled then spawner will be placed in normal way and it will allow other plugins to handle its placement
Enabled: true
# If set to true, player will need to have appropriate permission node to place spawner by its type
RequiresPermission: true
# RequiresPermission should be set to true for this to work. If set to true, player will need to have particular permission node to place particular spawner.
# In example: player should have cmi.placespawner.pig to place pig spawner, or cmi.placespawner.zombie to place zombie spawner
# If set to false, then player will need to have basic cmi.placespawner permission to place any type of spawner
RequiresExactPermission: false
Interact:
# When set to true, players trying to change spawner with monster egg will require appropriate permission node
# In example: player should have cmi.egginteract.pig to change spawner into pig, or cmi.egginteract.zombie to change into zombie spawner
EggRequiresPermission: true
# If set to true, spawners will have chance to be dropped when destroying with tnt
TnTExplosionDrop:
use: false
# Chance in percentage for spawner to drop
Chance: 30
# If set to true, spawners will have chance to be dropped when destroyed by creeper
CreeperExplosionDrop:
use: false
Chance: 30
Charges:
# When enabled players will be assigned to particular spawner charges group who have cmi.spawners.charge.[groupName] permission node
# Players will be limited to how many spawners they can mine
# StartingCharge will determine how many charges they will have on first time joining group
# MaxCharge will limit to how many charges you can have at one time
# Cooldown determines how often new charge will be given
# Bonus is optional and it will determine by how many seconds to lower cooldown for next charge when placing spawner
# Option to bypass limitations with cmi.spawners.charge.bypass
Use: false
# If set to true when player runs out of spawner charges spawner will be destroyed without droping it
BreakWithoutCharge: false
List:
Noob:
Use: false
StartingCharge: 2
MaxCharge: 5
Cooldown: 3600
Bonus: 10
Advanced:
Use: false
StartingCharge: 3
MaxCharge: 6
Cooldown: 3000
Bonus: 10
Proximity:
# Allws to limit how tight spawners can be placed from each other
Use: true
# Radius in blocks from blaced block. Max range is 16
# Can bypass with cmi.spawners.proximity.bypass
Range: 3
ItemRenaming:
# When set to true, players will be denyied from renaming defined items
# Option to define specific name by using regex format
Prevent: false
List:
- mobspawner:([A-z]+ (?i)\w*spawner)
SpawnMob:
# Defines how many passengers entities can be spawned at once
MaxQuantity: 10
MaxPassengers: 10
Counter:
# Default range to use when performing /counter start
Range: 10
Mirror:
# Defines how far in blocks from mirror center you can build
# This is mainly to protect from forgeting to turn off mirror and starting to build on different side of map
MaxRange: 50
NetherPortal:
# Can prevent nether portal creation entirely. Option to bypass with cmi.netherportalbypass
PreventCreation: false
# Maximum height nether portal can be created. Vanilla size is 23
MaxHeight: 23
# Maximum width nether portal can be created. Vanilla size is 23
MaxWidth: 23
Portals:
# Defines in milliseconds how often to check if player entered portal or not
# Bigger numbers can help slightly lower server load but small portals, 1 block depth without back wall can be passed through without teleportations if player moves fast enought
CheckInterval: 300
# Defines in milliseconds how often to check if player entered portal range for particles to apear
CheckParticleInterval: 500
# Perform commands on teleport or not
PerformCommands: true
# Commands to be performed on teleport event
Commands:
- cmi effect [playerName] blindness 2 1 -s
Animations:
# Enable siting on stair block by clicking on them with empty hand or by looking and using command
# Requires cmi.command.sit.stairs
SitOnStairs: false
StairsAsChairs: false
SlabsAsChairs: false
CarpetsAsChairs: false
RemoveFromChairOnDamage: true
# Player will sit on chair only after rapid double click
DoubleClick: false
# Delay in milliseconds between clicks to sit on chair when double click is enabled
DoubleClickDelay: 200
# Range in blocks from player to look up for valid chair block
ChairRange: 4
# All posible damage causes: contact, entity_attack, projectile, suffocation, fall, fire, fire_tick, melting, lava, drowning, block_explosion, entity_explosion, void, lightning, suicide, starvation, poison, magic, wither, falling_block, thorns, custom,
# Syntax should be [permissionNode]:[damageCause]:[multiplier]
# Example: nolavadamage:lava:0 will prevent lava damage with cmi.damagecontrol.nolavadamage permission node
# Negative values will heal player instead of damaging him
# If player have more than one permission node for same damage cause, then last one in list will be used to determine final damage
DamageControl:
- nowalldamage:fly_into_wall:0
- lowermagmacubedamage:hot_floor:0.5
Totem:
# When this set to true, on players death totem will be used even if he is not holding it in hand
RemoveFromInventory: false
Cooldown:
# When this set to true player can use totem only every X second's
Use: false
Time: 600
Warmup:
# When this set to true player can use totem to have X amount of second's, during which he can die and be resurected
# Totem will be consumed durring activation and wont be returned even if resurection is not used during warmup time
Use: false
Time: 10
# If player falls into void while having totem, he will be teleported to respawn location and totem gets consumed
ProtectFromVoid: true
Elytra:
# cmi.elytra - allows usage of elytra
# cmi.elytra.boost - allows usage of boost
# cmi.elytra.superboost - allows ussage of super boost
# cmi.elytra.speedometer - allows to see speedometer
Boost:
# Max speed until player wont get any boost
SpeedLimit: 200
# When enabled items/exp wont be consumed if player is over speed limit
SpeedLimitStop: false
# Do you want to show decimals in speed
SpeedDecimals: true
# By how much boost player on each use
GeneralMultyplier: 0.1
# By how much boost player on each super boost use
# Use shift while using simple boost
SuperMultyplier: 0.3
# Uses defined items instead of exp
UseItems: false
# item id
Item: '288'
# Requires to hold defined item in hand. Only when UseItems is set to false
RequiresItem: true
# Amount consumed on each boost
Amount: 1
# Amount consumed on each super boost
SuperAmount: 5
# Shows particles when flying
ShowParticles: true
Launch:
Time: 2
# 1.13+ servers. Do you want to disble riptide enchant usage while flying with elytra and trident which has riptide enchant
# This combination is dangerous as player can reach extreme speed's if allowed to use it
DisableRiptide: false
Fix:
# Disables option to damage yourself while flying with arrows to boost up
PreventSelfDamage: false
FlightCharge:
# When set to true, each time player gets flight charge or relogs, his fly mode will be toggled on
# If set to false, then players will have to manualy turn on flight with /cmi flyc
EnabledByDefault: false
# When set to true, in event of player changing his game mode from survival/adventure to creative/spectator his flight charge mode will get disabled
# Same applies when changind game mode from creative/spectator to survival/adventure
AutoSwitch: false
# How much it costs for one recharge point in exp points. Value can be in decimals, like 0.2 but it cant be equal or lower than 0
# Set to 0 to disable this type of recharge
ExpRechargeCost: 1.0
# How much it costs for one recharge point. Value can be in decimals, like 0.2 but it cant be equal or lower than 0
# Set to 0 to disable this type of recharge
MoneyRechargeCost: 1.0
# Defines maximum amount of charge player can have
# One charge is one traveled block while flying
# if player dosent move, then one charge for each second while hovering
MaxChargeLevel: 1000
# Defines multiplier when player doesnt move but is hovering. For each second player hovers.
# Set to 0 to disable
DeductOnIdling: 1
# Defines multiplier when player falls down of charge to be taken
# This only effects when player falls from above 3 blocks of hight
# In example if player falls from 10 blocks height, then 7 * 2 = 14 charges will be taken
# This is to prevent avoiding no penealty from jumping from clifs
# Set to 0 if you want to disable it
DeductOnFallMulti: 2
# Defines if you want to damage player when he falls down from higher than 3 blocks height
# This will not kill player even if he would drop from 200 block height, but will leave him with 1 hp
# This will only effect players who jumped down and not those who disabled fly mode in mid air
DamageOnFall: true
# DamageOnFall should be enabled for this to work
# This will define if you want to damage player when he deactivates fly mode in mid air
DamageOnToggle: false
# DamageOnFall should be enabled for this to work
# This will define if you want to kill player if fall damage if higher than his health amount
KillOnFall: false
Point:
# Default particle for point command. Options: fireworks_spark, crit, magic_crit, potion_swirl, potion_swirl_transparent, spell, instant_spell, witch_magic, note, portal, flying_glyph, flame, lava_pop, footstep, splash, particle_smoke, explosion_huge, explosion_large, explosion, void_fog, small_smoke, cloud, coloured_dust, snowball_break, waterdrip, lavadrip, snow_shovel, slime, heart, villager_thundercloud, happy_villager, large_smoke, water_bubble, water_wake, suspended, barrier, mob_appearance, end_rod, damage_indicator, sweep_attack, totem, spit, squid_ink, bubble_pop, current_down, bubble_column_up, nautilus, dolphin,
DefaultParticle: COLOURED_DUST
Messages:
Login:
# If set to true, login message wont be shown
Disabled: false
# Defines number of players from which to automatically start hiding join messages
# Set to -1 to disable this
AutoHideFrom: -1
Custom:
# If set to true, custom login message will be used. cmi.messages.disablelogin can be used to disable message for player
Use: false
Logout:
# If set to true, logout message wont be shown
Disabled: false
# Defines number of players from which to automatically start hiding logout messages
# Set to -1 to disable this
AutoHideFrom: -1
Custom:
# If set to true, custom logout message will be used. cmi.messages.disablequit can be used to disable message for player
Use: false
# Check locale file for translation and custom placeholders: [playername], [totalUsers], [onlinePlayers]
FirstJoinMessage:
Use: true
DeathMessage:
# Defines number of players from which to automatically start hiding death messages
# Set to -1 to disable this
AutoHideFrom: -1
Books:
# Defines default creator name for books when using getbook command
DefaultAuthor: Server
# Defines name of customtext on players login to server. To disable just set name to non existing customText
Motd: welcomeMessage
Warnings:
Default:
LifeTime: 86400
Points: 1
DefaultReason: '&7Violated server rules'
Categories:
Swear:
LifeTime: 86400
Points: 3
DefaultReason: '&7Swearing'
Grief:
LifeTime: 86400
Points: 10
DefaultReason: '&7Griefing'
Bug:
LifeTime: 86400
Points: 30
DefaultReason: '&7Using bugs'
Cheat:
LifeTime: 86400
Points: 50
DefaultReason: '&7Using cheats'
Perform:
'3':
- cmi mute [playerName] 10m
- cmi msg [playerName] !&cMuted for &710 &cminutes for getting &73 &cwarnings!
'5':
- cmi kick [playerName] &cKicked for getting 5 warnings!
'10':
- cmi tempban [playerName] 5m &cTemporary banned for getting 10 warnings!
Spawn:
# Forces players to login in defined spawn point when logging into server
SpawnOnJoin: false
# Defines players spawn point after death if set to true, if not, then it will be used only for /cmi spawn command
# RespawnLocation will indicate if you want to use this location as posible respawn point for player after death
Main:
World: None
X: 0.0
Y: 0.0
Z: 0.0
Pitch: 0.0
Yaw: 0.0
RespawnLocation: false
Rng: 0
# Defines players first spawn point when he logs into server for the first time
FirstSpawn:
Use: true
World: None
X: 0.0
Y: 0.0
Z: 0.0
Pitch: 0.0
Yaw: 0.0
Newbie:
# Kit name to give for new players joining server
Kit: None
Kits:
# When set to true, kit list will be shown in GUI instead of chat list
GUI: false
# When set to true, kit selection gui empty fields will get filled with definet item
FillEmptyFields: true
Buttons:
Cooldown: Watch
Usages: STONE_PLATE
Money: GOLD_INGOT
Exp: EXP_BOTTLE
Desc: WOOL:13
Back: Fence
Warps:
# When set to true, warps list will be shown in GUI instead of chat list
GUI: false
# Automatically opens GUI when created new warp point
GUIOnCreation: false
# Minimal lenght of warp name
MinLenght: 2
# Maximal lenght of warp name
MaxLenght: 32
# How many warps to show in each page
perPage: 10
# Do you want to show creator in warp list
showCreator: true
# When set to true, new warps by default will require permission node to use them
requirePerm: true
GlobalGui:
# Defines item type in empty fields in GUI when its needed to be filled up
EmptyField: STAINED_GLASS_PANE:15
DynamicViewRange:
# By setting to true will enable dynamic view range feature. Its still in beta stage and can result in some CPU load increase.
# Don't enable if you are not using this feature on your server
Enabled: false
WorldLimits:
# By setting to true fly and gamemode limitations per world will be aplied for player on world change if they dont have appropiate permission node
Enabled: true
# World list with default game modes
# If player will have cmi.worldlimit.gamemode.bypass permission node, game mode wont be changed
# Posible modes: not_set, creative, survival, adventure,
Gamemode:
- world:Survival
# If player will have cmi.worldlimit.fly.bypass permission node, fly mode wont be changed
Fly:
- rpgworld:False
# When set to false, only players with cmi.worldlimit.fly.aboveroof can fly above world build limit
FlyAboveRoof: false
# When set to false, only players with cmi.worldlimit.fly.aboveroof can fly above world build limit
FlyAboveRoofLimitations:
- world-256
- DIM-17-256
- DIM1-256
- DIM-1-128
- dungeonworld-256
- rpgworld-256
- teworld-256
# If player will have cmi.worldlimit.god.bypass permission node, fly mode wont be changed
GodMode:
- world:False
# Prevents particular entity spawn reasons in defined worlds. All posible reasons: NATURAL, JOCKEY, CHUNK_GEN, SPAWNER, EGG, SPAWNER_EGG, LIGHTNING, BED, BUILD_SNOWMAN, BUILD_IRONGOLEM, BUILD_WITHER, VILLAGE_DEFENSE, VILLAGE_INVASION, BREEDING, SLIME_SPLIT, REINFORCEMENTS, NETHER_PORTAL, DISPENSE_EGG, INFECTION, CURED, OCELOT_BABY, SILVERFISH_BLOCK, MOUNT, CUSTOM, DEFAULT
SpawnReasons:
world:
- None
DIM-17:
- None
DIM1:
- None
DIM-1:
- None
dungeonworld:
- None
rpgworld:
- None
teworld:
- None
# Checks and shows on players login if he have been changed hes name over Mojang
# Looks to be working only with online servers, duhhhh
CheckForNameChange:
OnLogin: false
AmountToShow: 3
OnInfoShow: true
# Do you want to perform commands
PerformCommandsOnNewName: false
# Command list to be performed in case player logs in with new name
NameChangeCommands:
- 'asConsole! cmi broadcast !&2[oldname] logged in with new name: [newname]'
inv:
# Do you want to save the player's inventory on his death
SaveOnDeath: false
# When set to true, empty inventories (no items in inventory) will not be saved on players death
IgnoreEmpty: false
# If set to true then player should have cmi.saveinv permission node for inventory to be saved on death
RequiresPermission: false
# How many inventories, we will keep for each player
SavedInventories: 4
hunger:
# Do you want to give more than 20 hunger for players
overide: true
heal:
RemoveNegative:
# Do you want to remove negative potion effects from player on heal
use: false
List:
- blindness
- confusion
- harm
- hunger
- poison
- slow
- slow_digging
- weakness
- wither
Cuff:
# When set to false will allow players to talk who is cuffed
Mute: true
AllowedCommands:
- msg
- r
- tell
Mute:
# When set to true, player will not be allowed to send private messages while he is muted
DenyPrivateMessages: true
Dispose:
# defines how big is dispose ui 1-6
UILines: 4
ItemRepair:
RepairShare:
# When enabled will prevent players repairing items for others in anvil regular way. They still can use items and repairs normaly for them selfs
# Can be bypassed with cmi.command.repair.repairshare.bypass
ProtectNormalRepair: false
# When enabled will prevent players repairing items for others with CMI command. They still can use items and repairs normaly for them selfs
ProtectCommandRepair: false
# Sets durability on item when another picks it up or selects in inventory. Set to 0 or less if you don't want to change durability
Durability: 1
# When set to true, player who have cmi.command.repair permission will bypass this protection and can use other user repaired items without any aditional actions
BypassWithRepairPermission: true
# When enabled aditional lore line will be added when player can't use that item. This will not be shown for owner of item
AddLore: true
# When set to true, interact event will be canceled to prevent item usage
CancelEvent: true
# When set to true, player will get message informing about item usage he dint repaired him self
InformWithMessage: true
Cooldowns:
# You can enable any command cooldown to prevent instant usage of it
# cmi heal:180 means that player can use /cmi heal command only once every 180 seconds
# if cooldown set to -1 then this command can be performed only one time
# Administration can bypass limitations with cmi.command.[comandName].cooldownbypass permission node
# Always use full command name and not its alias
Enabled: true
List:
- cmi heal:21600
- cmi near:3600
- cmi feed:3600
- cmi me:1800
- name tag:86400
- cmi tpa:10
- roll:8
Combat:
# Defines combat timer to be used in particular features
Timer: 0
# If set to true, then atacked player will be included into combat mode even if he doesnt fight back
# If set to false then only attacker will be marked for pvp mode
IncludeVictim: true
Heads:
Player:
Drop: false
# Percentage from 0 to 100 for head to be dropped. Decimals are acceptable, like 0.2
# 100 will mean that head will be dropped every time player kills another player
# 1 will mean that there is 1% that player will drop head if he is killed by another player
Percentage: 1.0
# Percentage from 0 to 100 for lowering chance in getting second head of same player
# This will reset on each server restart
LowerChanceOfterDrop: 50.0
Mob:
# Enables custom mob heads dropping from mobs with particular chance
# Check customHeads.yml for customization by entityType
Drop: false
ShulkerBoxes:
# When set to true, players will not have option to open shulker boxes while in combat
# Combat timer can be defined under combat section
PreventInCombat: false
WarmUps:
# You can enable any command warmup to prevent instant command usage
# tp:5:false means that when player performs /tp command he will need to wait 5 sec
# false variable is optional and when its set to false player cant move while warmup is counting
# If you dont want to deny empty warp command but want to deny any extra variable after that, then just add space, in example 'warp :5:false'
# When setting warmups for CMI commands, use full command name and not allias, in example 'cmi warp:5false'
# Administration can bypass limitations with cmi.command.[comandName].warmupbypass permission node
# ATTENTION! cmi home command is being handled in special way and to prevent double warmup, add space, example: - cmi home :5:false
# Experimental: add GlyphHead to the warmup to show particle effect while command is on warmup period. Like
# - cmi warp :3:false:GlyphHead
Enabled: true
InformOnNoMove: true
List:
- cmi spawn:5:true
- cmi tpaccept :5:true
- cmi near:8:true
- cmi back:3:true
- cmi warp :3:true
- cmi home :3:true
Jail:
# Defines in milliseconds how often to check if player leaves jail area
# Bigger numbers can help slightly lower server load
CheckInterval: 500
# Defines default jail time when time is not povided with command
DefaultTime: 300
# Chat range in blocks while player is in jail
# Set to 0 to allow talking
# set to -1 to prevent talking in general while jailed
ChatRange: 20
# When set to true jail time will decreese while player is offline
# When set to false jail time will only be counted while player is online
CountWhileOffline: false
# When set to true jail time will not decreese if player gets into afk mode while being jailed
# When set to false, time will pass normally
NoAfk: false
WhiteListedCmds:
- cmi msg
- cmi reply
scan:
# Tps cap from which to start adjusting scan speed
SoftCap: 19.0
# Staring speed when scanning. Range from 1 to 30
DefaultSpeed: 15
# When this set to true, when using scan feature and not providing range, whole map will be scanned
GlobalRangeByDefault: false
# Range in chunks. 2 is 25 chunks, 1 is 9 and 0 is only chunk you are standing in
DefaultRange: 2
# When this set to true, all found items in containers will be removed automatically durring scan. Ex: /scan id 7 purge
EnablePurge: true
search:
# When this set to true, all found items in inventories will be deleted durring search. Ex: /cmi search id 7 purge
EnablePurge: true
lfix:
# Tps cap from which to start adjusting light fix speed
SoftCap: 19.0
# Staring speed when fixing light. Range from 1 to 100
DefaultSpeed: 15
# Removeuser command will use same configurations when removing player data files or moving them to new place
purge:
# Cleans files on server startup
CleanOnStart: true
# How long player should be offline for his data to be moved
OfflineDays: 400
PlayerData:
# Do you want to enable player data file cleaning
Enabled: true
# Source folder to take files from
SourceFolder: world/playerdata
# When this is false, data files will be moved to backup folder. When its true files will be deleted
DeleteFiles: true
# Target folder to put files into if DeleteFiles set to false
DestinationFolder: world/playerdata_backup
PlayerStats:
# Do you want to enable player stats file cleaning
Enabled: true
# Source folder to take files from
SourceFolder: world/stats
# When this is false, data files will be moved to backup folder. When its true files will be deleted
DeleteFiles: true
# Target folder to put files into if DeleteFiles set to false
DestinationFolder: world/stats_backup
PlayerAdvancements:
# Do you want to enable player Advancements file cleaning
Enabled: false
# Source folder to take files from
SourceFolder: world/Advancements
# When this is false, data files will be moved to backup folder. When its true files will be deleted
DeleteFiles: false
# Target folder to put files into if DeleteFiles set to false
DestinationFolder: world/Advancements_backup
Essentials:
# Do you want to enable essentials playerdata file cleaning
Enabled: false
# Source folder to take files from
SourceFolder: plugins/Essentials/userdata
# When this is false, data files will be moved to backup folder. When its true files will be deleted
DeleteFiles: false
# Target folder to put files into if DeleteFiles set to false
DestinationFolder: plugins/Essentials/userdata_backup
LWC:
# Do you want to enable lwc protection cleaning
Enabled: false
Selection:
# Tool id to use for selection actions
Tool: wooden_shovel
Time:
# Defines preset time
Day: '12:00'
Night: '24:00'
Morning: 06:00
Dusk: '18:00'
AutoTime:
# Time in seconds time in game will be adjusted to match real
# Keep it at arround one minute
Interval: 60
# Enables by default smooth sun transition to new time
# You can always override this setting with -smooth variable in time command
Smooth: false
# Speed of smooth transition
# 100 will mean that sun moves 100 times faster than usual until it reaches target time
SmoothSpeed: 100
# Worlds effected by autotime adjustment
Worlds:
- ''
# Allows you to change vanilla time speed to your own liking and needs
TimeSpeed:
# Time is defined in seconds. Vanilla 24 hour ingame duration is 1200 seconds of real time
world:
Enabled: true
# Default value: 600 Starts from tick: 0 Ends at tick: 12000
day: 10000
# Default value: 90 Starts from tick: 12000 Ends at tick: 13800
sunset: 3100
# Default value: 420 Starts from tick: 13800 Ends at tick: 22200
night: 5400
# Default value: 90 Starts from tick: 22200 Ends at tick: 24000
sunrise: 3100
# Time is defined in seconds. Vanilla 24 hour ingame duration is 1200 seconds of real time
dungeonworld:
Enabled: false
# Default value: 600 Starts from tick: 0 Ends at tick: 12000
day: 600
# Default value: 90 Starts from tick: 12000 Ends at tick: 13800
sunset: 90
# Default value: 420 Starts from tick: 13800 Ends at tick: 22200
night: 420
# Default value: 90 Starts from tick: 22200 Ends at tick: 24000
sunrise: 90
# Time is defined in seconds. Vanilla 24 hour ingame duration is 1200 seconds of real time
rpgworld:
Enabled: false
# Default value: 600 Starts from tick: 0 Ends at tick: 12000
day: 600
# Default value: 90 Starts from tick: 12000 Ends at tick: 13800
sunset: 90
# Default value: 420 Starts from tick: 13800 Ends at tick: 22200
night: 420
# Default value: 90 Starts from tick: 22200 Ends at tick: 24000
sunrise: 90
# Time is defined in seconds. Vanilla 24 hour ingame duration is 1200 seconds of real time
teworld:
Enabled: false
# Default value: 600 Starts from tick: 0 Ends at tick: 12000
day: 600
# Default value: 90 Starts from tick: 12000 Ends at tick: 13800
sunset: 90
# Default value: 420 Starts from tick: 13800 Ends at tick: 22200
night: 420
# Default value: 90 Starts from tick: 22200 Ends at tick: 24000
sunrise: 90
RandomTeleportation:
Worlds:
# World name to use this feature. Add annother one with appropriate name to enable random teleportation
DIM-17:
Enabled: false
# Max coordinate to teleport, setting to 1000, player can be teleported between -1000 and 1000 coordinates
MaxRange: 1000
# If maxcord set to 1000 and mincord to 500, then player can be teleported between -1000 to -500 and 1000 to 500 coordinates
MinRange: 500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
teworld:
Enabled: false
MaxRange: 1000
MinRange: 500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
DIM-1:
Enabled: false
MaxRange: 1000
MinRange: 500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
dungeonworld:
Enabled: false
MaxRange: 1000
MinRange: 500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
world:
Enabled: true
MaxRange: 3000
MinRange: 1500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
DIM1:
Enabled: false
MaxRange: 1000
MinRange: 500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
rpgworld:
Enabled: false
MaxRange: 1000
MinRange: 500
CenterX: 0
CenterZ: 0
Circle: false
IgnoreWater: true
IgnoreLava: true
minY: 0
maxY: 256
# How long force player to wait before using command again.
Cooldown: 10
# How many times to try find correct location for teleportation.
# Keep it at low number, as player always can try again after delay
MaxTries: 5
# List of biomes to exclude from random teleportation
ExcludedBiomes:
- Ocean
- Deep ocean
Enchanting:
enchantLimits:
# By disabling this, no limitation to enchanting will be applied
Enabled: false
MaxLevel:
protection_environmental: 4
protection_fire: 4
protection_fall: 4
protection_explosions: 4
protection_projectile: 4
reading: 1
oxygen: 3
!!binary "ZGVhdAFfAm9tcGFzcw==": 1
water_worker: 1
thorns: 3
damage_all: 5
damage_undead: 5
damage_arthropods: 5
knockback: 2
fire_aspect: 2
loot_bonus_mobs: 3
dig_speed: 5
silk_touch: 1
durability: 3
loot_bonus_blocks: 3
!!binary "bm9wcGVzX25wY3NfZW5jaGFudHNfZW5jaGFuAV8CYW1hZ2U=": 5
!!binary "bm9wcGVzX25wY3NfZW5jaGFudHNfZW5jaGFuAV8Cb2lzb24=": 2
!!binary "bm9wcGVzX25wY3NfZW5jaGFudHNfZW5jaGFuAV8Cb25mdXNpb24=": 2
!!binary "bWFnaQFfAndvcmQ=": 4
!!binary "bm9wcGVzX25wY3NfZW5jaGFudHNfZW5jaGFuAV8CbmZpbml0ZQ==": 1
timed: 4
timed_2: 4
timed_3: 4
arrow_damage: 5
arrow_knockback: 2
arrow_fire: 1
arrow_infinite: 1
luck: 3
lure: 3
BungeeCord:
# List of information about BungeeCord servers to be used when getting information like max players, current player count and motd
# Information should match with what you have in bungeeCord config file under servers section
ServerList:
- server1-127.0.0.1:25565
- server2-127.0.0.2:25566
# If you want to disable particular sound entirely, set it to ""
Sounds:
Enabled: true
WarpGuiOpen: entity_bat_takeoff:0.5:1
TeleportHome: block_beacon_activate:2:1
TeleportWarp: entity_enderman_teleport:0.5:1
TeleportFail: entity_villager_no:2:1
PrivateMessage: entity_endermite_death:2:1
TpaRequest: block_anvil_land:0.5:2
MailNotification: entity_creeper_hurt:1:0.5
TeleportUp: entity_enderman_teleport:2:1
TeleportDown: entity_enderman_teleport:0.2:1
# If you want to disable particular particle entirely, set it to ""
Particles:
Enabled: true
Healing: circle;effect:heart;dur:0.1;part:1;offset:0,1.7,0;radius:0.3
GlyphHead: circle;effect:flying_glyph;dur:5;pitchc:15;part:10;offset:0,1.7,0;radius:0.5;yawc:12;color:rs;pitch:90
GColumn: circle;c:0,255,0;twist;part:5;r:0.75;pitch:90;move:0,0.1,0;rc:-0.02
SmallBoop: circle;effect:flying_glyph;yaw:[playerName];pitch:[playerName];r:0.1;part:3;rc:0.03;mr:0.3;twist
TpUp: circle;c:200,50,210;twist;part:5;r:0.5;pitch:90;move:0,0.33,0;offset:0,-0.2,0
TpDown: circle;c:150,50,10;part:5;r:0.5;pitch:90;move:0,-0.33,0;offset:0,2.2,0
PotionEffects:
# When set to true player poition effect will expire even if player is offline
# Keep in mind that player potion effect durability will be updated on players login event so by checking players potions effect while he is offline can show incorrect state
DeductWhileOffline: false
Cmi Version (using/cmi version): 8.6.11
Server Type (Spigot/Paperspigot/etc): Thermos 1.7.10
Description of issue or feature request: If a new player join to server firstly
ERROR (DELETE IF YOU HAVE NO ERROR):
CONFIG SECTION (DELETE IF NOT RELEVANT):
Cmi Version (using
/cmi version
): 8.6.11Server Type (Spigot/Paperspigot/etc): Thermos 1.7.10
Server Version (using
/ver
): 1.7.10 (latest)