CMI - 300+ Commands/Insane Kits/Portals/Essentials/Economy/MySQL & SqLite/Much More!

MC Plugin CMI - 300+ Commands/Insane Kits/Portals/Essentials/Economy/MySQL & SqLite/Much More! 9.8.7.7
For 1.7.10 - 1.21.x Over 300 must have commands/features for your server!

  • Small improvement for scan command to assume that you want to scan entire world when you provide world name without a range
  • Added option to auto fill empty space in holograms by adding %filler% variable to the line and setting filler amount in a GUI. Keep in mind that this is based on font, so some misalignments could happen. Line example would be like '1. %cmi_baltop_name_1%%filler%%cmi_baltop_money_1%' actual spacing is defined in hologram gui, by default its set to 245 points which is slightly lower than max hologram width while using new method
    upload_2025-9-29_17-13-9.png
  • Small change for kits in gui to show kits description under its name instead of it being the last thing
  • Some small adjustments for ban handling for paper type servers
  • fix for chatbubbles not working on 1.21-1.21.3 paper type server versions
  • Additional adjustment for silent chest editing handling
  • Fix for an error on portal creation check
  • Small fix/change for maxhp to accept fractional numbers like /maxhp set Zrips 20.5
  • Fix for dialogs command not processing -s variable properly
  • Fix for locale not being processed correctly with some language's
  • Improvement for /cmi sc command for newer servers to paste sign text in same order based on how you copied it, so looking at sign back face while copying the sign will paste its back side on the side you are looking at sign, so sign orientation is no longer a factor, now its based on your direction
  • Added extra variable for sc command as oneside, which will only copy one sign side based on which one you are looking at, same thing will apply when pasting it, it will only change the side you are looking at
  • Now cmi sc command is based on your sign color access which will clean up pasted text colors based on cmi.color.signs.[color] permission node access
  • Added option to require cmi.openshulker.edit permission node to edit shulker backpack from your inventory. Keep in mind that this permission node is given by default, so you will need to negate it if you want to prevent shulker backpack editing from your inventory and only want to allow previewing it
  • Some adjustment for afk checks for the players who joins server and doesn't perform any actions afterwards
  • Fix for notarget preventing from animals targeting you when you hold their food in hands
  • Added better tab complete for saveditems commands to properly fill in saved item names for get/remove sub commands
  • Small improvement on economy detection which will now attempt secondary check when server fully loads in case you have economy plugin which loads after CMI (incorrect setup, as economy plugins should load before any plugins initialize)
  • Fix for an error relating to economy balance formatting failing in some instances
  • Some internal changes relating to chatbubble handling, which is preparation for later update and better support for paper type servers by providing more features relating to any message in game <- work in progress
  • Fix for an issue when loading kits
  • Fix for an issue with shulker backpacks
  • Reworked mirror command which now has more options which are being calculated in a different way than before. Visual particles showing where block will be placed with information of how many updating dynamically. By default mirror is limited to max 16 blocks placed per action, so informational message in action bar will indicate how many blocks from how many potential ones will be placed, in case potential placed block amount exceeds max allowed then we will only place first ones in the batch. 22 different mirror modes with 3 modes which can place blocks in a circle in defined amounts. Additionally now its possible to define offset of starting point giving you 8 options which will cover all mirror combinations you might ever need, so its no longer mirrored around one specific block, it can mirror on block edge point allowing you to build in even block numbers.
  • Performance improvement when you have forced player data load on player login enabled
  • Fix for invremove not working correctly
  • Fix for an error message in some cases when you send bungee type message
  • Bringing back java 8 server support. How long it will last I cant say, but for time being its back.
  • Some changes relating to shulkerbackpack handling to address potential exploit with hacked clients
  • Fix for an issue with recipe command which could have skipped some of the recipes if you had custom data packs or 3rd party plugins partially replacing existing items
  • Added auto backup system for database. This will be enabled by default and will save basic database information every 24 hours. Checks of backups will happen after 1 minute of server startup and then on regular 1 hour intervals. By default only player data and player rewards tables will be saved, as those are most crucial to have, while rest 2 can have quite a bit of information which can inflate backup file. Independent if you are running Mysql or sqlite type databases, backups will be saved in separate DatabaseBackups folder as sqlite files which will provide simpler management. Additionally backup files can be automatically zipped to take up less space. Keep in mind that in case you will want to restore players data (yes, you can do that now) then that file will be unzipped, which could take few extra seconds (in case you do have 700MB unzipped database, otherwise its more or less instant) and file will remain there until auto backup goes around and removes it. This doesn't apply to custom backup files (doesn't end with cmi.sqlite.db) which will remain until you remove those manually. Zipping files can drop storage size from 500MB to something like 65MB, tho I would still recommend to only backup main 2 tables just like it is set by default
  • New command as /cmi database [action] (playerName) (dataType) (fileName) got added which can either create new backup file (from console only) or restore specified players data from specified tables on the fly. Creating backups by default will create one with current time which will be part of auto backup system and in case total file count gets over the limit then oldest files will be removed. If custom name is provided (should end with .db) then it will be used and will not be auto removed, so you can create permanent backup files. Player restoration can be done from either last backup file (the file which ends with cmi.sqlite.db) if specific file isn't provided, or the one you provide. By default saving or restoring player data will do it for main data table and player rewards one, otherwise you will need to define specific ones you want to restore/backup or configure config file appropriately.
  • Fix for an error message when performing titlemsg command with recent versions
  • Fix for an issue relating to silent chests
  • Fix for usermeta not working correctly when you have saved hex color codes like {#226655}
  • Fix for cheque being deposited with left or Q keys, now its properly limited to only right click action
  • Fix for itemframe command not working correctly on spigot 1.21.6+ servers when setting invisibility state
  • Some optimization for hologram handling when player logsoff
  • Small change for notarget command to allow for players to pickup exp orbs
  • Fix for killall command not working correctly when defining its range
  • Performance optimization relating to global variable replacement in locale lines or commands
  • Fix for inventory saving on spigot servers
  • Fix for flight charge still charging player when he switches to spectator mode, we should only charge in survival and adventure modes
  • Dialogs placeholder comparison got option to check by numeric values, which can check if values is higher or lower than returned from placeholder giving you more freedom. For example Placeholder: '%cmi_user_stats_kill_entity:Zombie%>=20' will mean that player can only use specified field/dialog if player killed 4 or more zombies
  • Dialogs permission check got option to check if player doesn't have specified permission node by adding ! in front, for example Permission: '!cmi.command.heal' which means that players who doesn't have access to this permission node will be able to use field/dialog
  • Fix for silent chest issue
  • Fix for heal command accepting negative values
  • Fix for itemframe command not working on 1.21.6+ servers
  • Fix for gamerule GUI being shrunken with latest CMILib versions
  • Added custom model data support for elytra item handling, so now you can request specific item with specific custom model data for launch, consumption or general flight item. Defined like PAPER;cm{10095}
  • Optimized hologram handling when using new display method
  • Fix for give command showing double error message when target player fails to be determined, additionally fixed an issue where incorrect message would be shown when item you want to get wasn't recognized
  • Fix for cuff command showing info window when it fails due to you trying to cuff yourself.
  • Added option to define dialog conditions not only by permission but by placeholder value, this will either expect to have placeholder which returns generic value or custom value you specified. More information is at zrips.net/cmi/commands/dialogs at new conditions section.
  • Like
Reactions: rmellis
Its all about dialogs!!!
Check out https://www.zrips.net/cmi/commands/dialogs/ for more information
  • Added text type input field for dialogs. Variable like [value] can be used in commands/opendialog sections to insert actual input value which could then be processed to your own needs
  • Added option to define custom value for singleton button selection in dialogs, this is to allow you to use [value] variable inside commands or open dialog based on selected value instead of having hard preset commands. Additionally singleton section now can have base action definition set for entire singleton and not specifically for each option, which simplifies setup in case you want to use [value] for semi dynamic outcomes
  • Added option to use [value] for boolean type input in dialogs, which will replace it with true/false value depending on the selection. Optionally custom value can be defined when box is selected or not, which will output that instead of true/false
  • Support for placeholders in some dialog input config sections. Check wiki page for more information
  • Added option to hide input, visual fields, buttons and disable entire dialogs if player doesn't have specified permission node, this allows you to hide parts of dialog UI. Keep in mind that due to how buttons work if you try to disable one of those it will be replaced with 1 pixel thick button which does nothing just to keep correct button placement in UI, this only applies when you have more than one button columns. For text and input fields, those will be completely hidden
  • Changed default command processing source for dialogs, previously it was done from console by default, now its done from the player, if you want to shift it back to console then add asConsole! at the start of each command. This is just to avoid issues in the future and minimize potential exploits when players perform commands they don't have access too.
  • General recode/update/improvement for existing Dialog handling for simpler handling internally and for the ones which will want to use it as API
  • Added tooltip support for custom dialogs. Can be defined with basic Tooltip: 'Some text' entry, supports multi lines and placeholders. more information about it at https://www.zrips.net/cmi/commands/dialogs/ recommendation to look over it as some changes were made and bigger example was provided with more use cases
  • Added option to show item field in dialogs
  • Added option to have boolean (tick) field in dialogs which can perform different actions based on selected state
  • Added option to have singleton button (changes what you have selected by clicking on it) which can perform different commands based on what is selected
  • Some rework/update for base dialog handling code for better scaling and better compatibility for the future updates, this is mainly to start including more input fields you could properly manipulate for your own needs
  • Small update for shulker backpack handling to avoid recording extra data into it after UI is being closed
  • Added option to disable shulker targeting while you are in afk, enabled by default. This will make you "invisible" to shulkers while being in afk mode, as a protection system and just natural behavior result, entering into afk mode will not disable bullets which already are flying towards you, so players will not be able to abuse this system by entering afk mode to "hide" from shulkers, bullets will keep tracking player, only new ones will not get fired
  • Fix for give command not tab completing item names in some cases
  • Fix for dialog commands trying to perform command on the first player who initiated those if you used variable replacement approach and not just clean basic commands
  • Fix for sign dialog editor ignoring area protection in some cases
  • Fix for command warmups and cooldowns not always triggering if command was initiated with namespace
  • Fix for a bug when defining custom Dialogs and incorrectly setting its values resulting into error message
  • Fix for anti afk detection failing to recognize players afk state with some anti afk machines
  • Fix relating to sit animation and you being teleported back to original world if you got moved away by another plugin
  • Fix for %cmi_user_weather% misreporting weather as thunderstorm when its clear
upload_2025-7-29_17-45-54.png

  • Small update for sign dialog UI for 1.21.6 servers not working, this option got pushed forwards to only be available as of 1.21.7+ servers
  • Major performance boost (relatively speaking) for color processing, especially with gradients applied to longer lines of text. This will need newest CMILib version
  • Fix for itemnbt wanting to show lines as [encoded] when they are not
  • Small improvement for old item format recognition which should include wider range of those, you might still need to do /cmi util convertitems on 1.21.4 when transitioning to newer servers
  • Fix for /cmi killall -list outputting empty list
  • Fix for armorchange event not triggering in some instances and preventing things like armor effects not being recognized
  • Update for sign dialog editor to fire up SignChangeEvent when its being update and in case 3rd party plugin cancels it then we will simply close UI
  • Added new command as /cmi dialogs [dialogName] (playerName) which will open defined dialog for the player. By default you will have 3 example dialogs in new Dialogs folder. You can create UI elements which will perform either defined commands, open another dialog window or redirect player to defined web url. This is just an initial update and initial set of features. At the moment there isn't ingame editor, so all should be done by editing files directly. As a "secret" update you can now do /cmi reload dialogs which will only reload dialogs without introducing lag spikes on the server as this action is way less taxing than reloading entire plugin in one go. You can read more at https://www.zrips.net/cmi/commands/dialogs/
Top Bottom