MoxPerms 0.13

Extremly efficient permission plugin! Contains converter!

  1. Msql
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Contributors:
    Morkazoid
    Languages Supported:
    English, Polish
    MoxPerms - Extremly efficient permission plugin! Contains converter!
    It can not generate laggs when it works in background!

    Introducing:

    MoxPerms is a permission plugin that concentraces on performance.
    It is created specially for big/medium servers that are carrying about TPS (and small ones who want to grow clearly without useless future permission plugin migrations due to TPS loss!)
    If you have bigger database in, for example, PEX plugin, and you are wondering sometimes, why some plugins that checks for permissions like essentials are affecting your server's TPS or there is high pct in timings when player joins in some cases, here is answer - because your permission plugin is slowing down your server and any other plugin that uses permissions!
    With MoxPerms your server's performance will be fine. Trust me :)!
    MoxPerms is having two types of working:
    • Normal - Type of working that all normal permission plugins are using, but a little faster!
    • Runnable - This type is a monster. It removes any lagg when plugin is loading all data for player when he, for example, join to the game. There is no chance to affect server's performance with this type because plugin using this option is working out of main thread (in the background)! Warning - it means it is asynchronous. Any plugin, that checks for permissions without delay when player joins to game will always get false return when it will check for any permission, because permissions are not loaded in the same moment when player joins to the game. But hey - having plugin like this is like finding a gold nugget in river :p!
    Worth to note - any MoxPerms command can not affect performance, because everything is getting/setting in background. Everytime, when you will execute any /moxp command, you will get message like "Waiting for result..", when other permission plugin like PermissionsEx will make main thread pause for a while when it will wait for data from database - that means it will pause your server (frezee main thread).​

    Donation wall:

    If you want be on this list, send us donate.
    We will promote your server here or whatever you will want!
    Donations are giving us motivation to add new things into our plugins because by that we know that someone appreciates our work!
    Also we are adding and developing our stuff for free, so dontaions are, for us, very nice gift from you :p!
    If you want donate us, please give information in donation in which plugin you want to be added to the donation wall.

    1. Null :c You can be first!
    [​IMG]

    Features:
    • Extremly lightweight permission system managment!
    • Supports .* permissions (ex. test.*) without performance affect!
    • Fully customizable chat formating - you can customize chat as you want!
    • Chat color customization for groups and players!
    • Tablist format customization for groups and players!
    • Supports MySQL database userdata storage (groups configuration is in .yml file - you can configure permissions for your sub servers locally and storage user data globally!)
    • Runnable option - this option gives extremly high performance boost. It makes player loader to work in background. What it means? There will be no option to do any lagg when player data will be loaded!
    • You can define your own prefixes and suffixes for groups and users!
    • You dont have to put same permissions to other groups - you can make a chains. For example - if you want to create VIP group and you want to make it have Player group permissions, just type in field "chain" "Player" and VIP will have all player permissions! Now, if you do not want to allow VIP having some Player permissions like "permission.player", you can add negated permission to VIP group, like "-permission.player"! Note: To make chains working correctly, you have to sort your groups from basic (Upper lines - Player) to most advenced (Lower lines: Admin), because plugin is scanning for chains from up to last loaded group while loading group's chains.
    • At this moment, there is build in PermissionsEx > MoxPerms userdata converter, so you can easily migrate from PEX to MoxPerms!
    • MoxPerms supports player nicks and UUIDs in the same moment! You can turn on nick switch detection in config - when player will change nickname and join with same UUID on other nickname, plugin will automaticly transfer user data from past nick with old nick purgation! It means that MoxPerms supports offline mode and online mode in the same moment!
    • MoxPerms is having great API for plugin developers - events and easy access to 4 managers: MysqlManager, DataManager, PermissionManager and TablistManager from plugin's main instance!
    • A lot of commands that gives access to easy user data managment from Minecraft!
    • Messages files and locale support! You can define your own messages by configuring messages-<locale>.yml! At this moment there are done 2 language files: PL (Polish) and EN (English).
    • Possibility to set up Global Permissions for players! With this option, players will have local permissions for one server and global permissions that will be same everywhere! Thanks to this feature, you can sell premium groups or features for all your servers without executing command everywhere to add permissions/groups to player!
    Commands:
    • /mox help - Displays list of commands.
    • /mox reload - Reloades configuration files - warning, the command does not affect mysql configurations.
    • /moxp user <player> info - Displays information about the player.
    • /moxp user <player> remove - Removes player from database.
    • /moxp user <player> group set <group.name> - Assigns the player to the specified group.
    • /moxp user <player> group remove - Removes player from specified group.
    • /moxp user <player> prefix set <prefix> - Sets player's prefix (text before nickname).
    • /moxp user <player> prefix remove - Removes player's prefix (text before nickname).
    • /moxp user <player> suffix set <suffix> - Sets player's suffix (text after nickname).
    • /moxp user <player> suffix remove - Removes player's suffix (text after nickname).
    • /moxp user <player> chatcolor set <color> - Sets the default chat color of the player.
    • /moxp user <player> chatcolor remove - Removes default chat color of the player.
    • /moxp user <player> permission add <permission> - Adds permission locally to the player.
    • /moxp user <player> permission remove <permission> - Removes permission from player locally
    • /moxp user <player> gperm add <permission> - Adds global permission to the player.
    • /moxp user <player> gperm remove <permission> - Removes global permission from the player.
    • /moxp user <player> tabformat set <tab.format> - Sets custom tablist format for player.
    • /moxp user <player> tabformat remove - Removes tablist format directly from player's user data
    • /moxp-convert pex - Converts data from PermissionsEx to MoxPerms
    Permissions:
    • moxp.admin - allows everything. Admin permission. Do not give it to non trusted people.
    • moxp.command.info - allows to get informations about players in database - command: /moxp user <player> info
    • moxp.command.reload - allows to reload messages and some config values - command /moxp reload
    • moxp.command.user.remove - allows to remove player from database - command: /moxp user <player> remove
    • moxp.command.user.check - allows to check if player have or not permission - command: /moxp user <player> check <permission>
    • moxp.command.user.group.set - allows to set group of player - command: /moxp user <player> group set <group>
    • moxp.command.user.group.remove - allows to delete group of player and set it to default - command: /moxp user <player> group delete
    • moxp.command.user.prefix.set - allows to set prefix of player - command: /moxp user <player> prefix set <prefix>
    • moxp.command.user.prefix.remove - allows to delete prefix of player and set it to group default's value - command: /moxp user <player> prefix delete
    • moxp.command.user.suffix.set - allows to set suffix of player - command: /moxp user <player> suffix set <suffix>
    • moxp.command.user.suffix.remove - allows to delete suffix of player and set it to group default's value. - command: /moxp user <player> suffix delete
    • moxp.command.user.chatcolor.set - allows to set chat color of player - command: /moxp user <player> chatcolor set <chat-color-format>
    • moxp.command.user.chatcolor.remove - allows to delete chat color of player and set it to group default's value - command: /moxp user <player> tabformat delete
    • moxp.command.user.tablistformat.set - allows to set tablist format of player - command: /moxp user <player> tabformat set <tab-format>. It should include %player% in <tab-format>.
    • moxp.command.user.tablistformat.remove - allows to delete tablist format of player and set it to group default - command: /moxp user <player> chatcolor delete
    • moxp.command.user.permission.add - allows to add permission to player - command: /moxp user <player> permission add <permission>
    • moxp.command.user.permission.remove - allows to delete chat color of player and set it to group default. - command: /moxp user <player> permission remove <permission>
    Instalation:
    1. Put MoxPerms in your plugins folder and start server. It will automatically disable server after generating configuration files.
    2. Configure your database in config.yml. If plugin will be unable to connect to database, it will disable server to avoid grief (If this will happen, check server's latest logs, there is the case).
    3. You have now your MoxPerms installed and basicly configured. Now, you can configure your groups.yml and configure lest things in config.yml. If you want to convert user data from other permission plugin using command "/moxp-convert", you need to configure your groups.yml with same groups that previous plugin had.
    Default config.yml:
    Code (YAML):
    #Please - use text wrapping in your text editor to read comments, or you will se huge text lines!

    #Plugin language (actually avaible only "en", and "pl")
    locale
    : en

    #UUID support - if player is online mode and he will join with other nick, but same UUID and if he is in database, plugin will automaticly set all data from old to new nick and delete data from old nick (it will affect performance by a bit, because plugin in event onPlayerJoin will have to send 1 more query to mysql and wait for result, and if plugin will find other nick with same uuid in database, we will need to update mysql, so we will have to send 1-2 more queries and wait for answer to load correctly player data after changes).
    #Please note that - if your mysql database is on other server and ping between this servers is high (>10ms), it can make some mini lag spikes (>0.02s) when player will join the server. That will be easy to fell when a lot of players will join in the same moment.
    uuid
    : true

    #Runnable - If this option is true, plugin will load permission data in background when player joins to the server.
    #It means that, for some miliseconds, bukkit will not see any permissions on player, but plugin will not generate ANY lag.
    #This option is great for big servers with thousands of users.
    #Plugins that checking permissions in PlayerJoinEvent and PlayerConnectEvent, when this option is true, will not working propetly.
    #The return of "player.hasPermission("something");" in this case will be aways FALSE if player is not having OP!
    runnable
    : false

    #Chat options
    chat
    :

      #Chat format. You can define your own chat format there!
      #Placeholders: %prefix%, %suffix%, %player%, %chat-color%, %message%
      format
    : "&r%prefix%&r&f&o%player%&r%suffix%&f:&r %chat-color%%message%"

      #Disable plugin's chat formating if there is vault plugin.
      #Vault may affect plugin's chat formating.
      #If you are using EssentialsChat or plugin like this, let this value be true.
      format-disable-if-vault
    : true

    #Do you want to enable tablist formating?
    #You can specify your own formats using commands and editing option "tablistFormat" in file groups.yml
    tablistFormat-enabled
    : true

    #MySQL database configuration (there will be all player data).
    #Using reload command will not reload this configuration. you HAVE TO restart server, to use other mysql database configuration!
    mysql
    :
      username
    : "root"
      password
    : "password"
      database
    : "MoxPerms"
      host
    : "localhost"
      port
    : 3306
      tableName
    : "Users"
      nickColumnName
    : "Nick"
      uuidColumnName
    : "Uuid"
      groupColumnName
    : "Group"
      permissionsColumnName
    : "Perms"
      prefixColumnName
    : "Prefix"
      suffixColumnName
    : "Suffix"
      chatColorColumnName
    : "ChatColor"
      tablistFormatColumnName
    : "TablistFormat"
    Default groups.yml:
    Code (YAML):
    groups:
      default
    :
        chain
    : ""
        prefix
    : "&7[&9Default&7] "
        suffix
    : " &7[&3Newb&7]"
        chat-color
    : "&7"
        is-default
    : true
        tablist-format
    : "&7%player%&"
        permissions
    :
         - something.*
      vip
    :
        chain
    : "default"
        prefix
    : "&f[&6VIP&f] "
        suffix
    : " &&f[&6VIP&f]"
        chat-color
    : "&7"
        is-default
    : false
        tablist-format
    : "&e%player%"
        permissions
    :
         - permission.vip
     

    Features to add:
    • Per world permissions support (I really do not know who uses this type of feature, because good plugins always having their own world-managment configuration - anyway I will add it soon).
    • Timed permissions - you will be able to add permissions to player that will disapear after some time!
    • Timed groups - same as with permission, but it will work with groups!
    • Group editing commands - now it is possible to configure groups only by editing groups.yml and using "/moxp reload" but soon it will be possible also with "/moxp group" command!
    • Fast commands - As we know, typing something like "/moxp user <user> permission add <permission>" is in some moments flustrating, but with fast commands it will be extremly easy, just look: "/mpermadd <user> <permission>"
    • More permission extensions - There is only one at this moment what defines "everything behind" - it is < .* >, but I am planning to add more of those! For example < .+ > will give only permission to the next word after ".", up to next ".", for example: "test.+" gives access to "test.something" but not to "test.something.next"!
    • Converters for other permissions plugins
    You can give us ideals by sending private message! :)

    Servers using MoxPerms:
    • GC2.PL ~300-1000 players online (server may be firewalled from external countries) - stats
    AlexW and Toldi like this.

Recent Reviews

  1. DDiiLLeeSS
    DDiiLLeeSS
    5/5,
    Version: 0.12
    Hello, you can add such a function / moxp user Name group add group | With this command you can make a group history. Example: If a player bought a donut on the server and after that he applied for the project's personnel he was given ... after the withdrawal, he earns donat staff and purchased donate
    1. Msql
      Author's Response
      Hello. We are working around this plugin. Note that this plugin is new and necessary features will be added in future :P