Taxes 7.7

Collects taxes on player and other balances.

  1. EnderSandman
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Contributors:
    EnderSandman
    Supports Minecraft up to version 1.16.5

    Description:

    This is a very simple plugin that allows you to collect taxes on player balances and Towny Nation and Town balances. How often taxes are collected is configurable. Create different tax brackets for primary groups. Has bypass permissions to bypass each type of tax.

    Commands:
    taxes
    - Displays command help for the Taxes plugin.
    aliases: [tax, taxes-help, tax-help]
    permission: taxes.player.help

    taxes-collect - Collects taxes for the specified tax. This command ignores whether the tax is enabled or not. Get tax names from the /tax-listall command.
    aliases: [tax-collect]
    permission: taxes.admin.collect

    taxes-collectall - Collects taxes for the all the taxes. This command ignores whether the tax is enabled or not.
    aliases: [tax-collectall]
    permission: taxes.admin.collectall

    taxes-list - List all the applicable taxes by name for the player.
    aliases: [tax-list]
    permission: taxes.player.list

    taxes-listall - List all taxes in the config by name. This is used for admins.
    aliases: [tax-listall]
    permission: taxes.admin.listall

    taxes-info - Displays detailed information for the specified tax name for the player. Get tax names from the /tax-list command.
    aliases: [tax-info]
    permission: taxes.player.info

    taxes-infoall - Displays all the detailed information for the specified tax name. This is for admins to view config settings in-game. Get tax names from the /tax-listall command.
    aliases: [tax-infoall]
    permission: taxes.admin.infoall

    taxes-reload - Reloads the the Taxes configuration data.
    aliases: [tax-reload]
    permission: taxes.admin.reload


    Permissions:
    Code (Text):

    NOTE: The bypass perms are not given to OP.
    This is incase you still want OPs to be taxed.
    These bypass perms have to be given out to groups/players to work.

    taxes.*:
        description: Gives all permissions for this plugin.
        default: op
        children:
            taxes.admin: true
            taxes.player: true

    taxes.player:
        description: Gives access to all Player permissions.
        default: op
        children:
            taxes.player.help: true
            taxes.player.list: true
            taxes.player.info: true
     
    taxes.admin:
        description: Gives access to all Admin permissions.
        default: op
        children:
            taxes.admin.reload: true
            taxes.admin.collect: true
            taxes.admin.collectall: true
            taxes.admin.listall: true
            taxes.admin.infoall: true
     
    taxes.bypass.*:
        description: Gives access to all bypass permissions.
        default: false
        children:
            taxes.bypass.playerbalancetax: true
            taxes.bypass.nationtax: true
            taxes.bypass.towntax: true

    taxes.player.help:
        description: Give access to the /taxes command.
        default: op
       
    taxes.player.list:
        description: Give access to the /taxes-list command.
        default: op
       
    taxes.player.info:
        description: Give access to the /taxes-info command.
        default: op
       
    taxes.admin.reload:
        description: Give access to the /taxes-reload command.
        default: op

    taxes.admin.collect:
        description: Give access to the /taxes-collect command.
        default: op

    taxes.admin.collectall:
        description: Give access to the /taxes-collectall command.
        default: op

    taxes.admin.listall:
        description: Give access to the /taxes-listall command.
        default: op
       
    taxes.admin.infoall:
        description: Give access to the /taxes-infoall command.
        default: op

    taxes.bypass.playerbalancetax:
        description: Player Balance Tax will not be collected from players with this permission.
        default: false

    taxes.bypass.nationtax:
        description: Towny Nation Tax will not be collected from players with this permission.
        default: false

    taxes.bypass.towntax:
        description: Towny Town Tax will not be collected from players with this permission.
        default: false
     

    Dependencies:
    • Vault - versions 1.5.*
    • Towny - Only if you enable collecting taxes from Towny Nations and Towns.
    Config Files:
    config.yml
    - configure taxes and tax collection.
    language.yml - configure plugin messages.
    data.yml - used to store runtime data. No Touchie! :)


    defaultConfig.yml:
    Code (Text):

    # ==================================================================================================
    # This config allows you to configure how often and how much taxes are
    # collected from various balances like Player, Towny, etc.
    # ==================================================================================================

    # Taxes - Here are the balance hooks that this plugin can currently tax.
    #         Additional balances hooks cannot just be added.
    #         If you want additional balances hooks, please submit a request to the
    #         author of the plugin.
    Taxes:
        # Tax on player balances
        PlayerBalanceTax:
            # If enabled, this tax will be collected. Set to false to turn off this tax.
            Enabled: true
            # TaxFrequency - How often to taxes are collected for the specified tax.
            #                It is specified as a number and units like 2w means 2 weeks.
            #                Units: s=seconds, m=minutes, h=hours, d=days, w=weeks
            TaxFrequency: 1d
            # TaxDepositAccount - Enable this option and set the name if you want the taxes
            #                     collected to be placed in the specified account.
            TaxDepositAccount:
                Enabled: false
                Name: towny_server
            # TaxCollection - Specify the collection to be used to determine how much
            #                 taxes to be collected based on balance amounts. This must
            #                 be one of the names under Collections in this config.
            TaxCollection: OnlyCollection
            # Batch processing to reduce lag.
            BatchProcessing:
                # Set to true to enable batch processing only if you are experiencing lag.
                Enabled: false
                # How many players to process in each batch. Decrease to decrease lag.
                Size: 500
                # Delay between each batch of players in Ticks. 20 Ticks = 1 Second. Increase to decrease lag.
                Delay: 20

        # Tax on Towny Nation accounts.
        NationTax:
            Enabled: false
            TaxFrequency: 1d
            TaxDepositAccount:
                Enabled: false
                Name: towny_server
            TaxCollection: OnlyCollection
            BatchProcessing:
                # Set to true to enable batch processing only if you are experiencing lag.
                Enabled: false
                # How many nations to process in each batch. Decrease to decrease lag.
                Size: 500
                # Delay between each batch of nations in Ticks. 20 Ticks = 1 Second. Increase to decrease lag.
                Delay: 20
        # Tax on Towny Town accounts.
        TownTax:
            Enabled: false
            TaxFrequency: 1d
            TaxDepositAccount:
                Enabled: false
                Name: towny_server
            TaxCollection: OnlyCollection
            BatchProcessing:
                # Set to true to enable batch processing only if you are experiencing lag.
                Enabled: false
                # How many towns to process in each batch. Decrease to decrease lag.
                Size: 500
                # Delay between each batch of towns in Ticks. 20 Ticks = 1 Second. Increase to decrease lag.
                Delay: 20
    # TaxCollections - Each collection specifies a group of tax brackets. There must be at
    #                  least one. The names for the collections can be anything you want
    #                  but must be unique. You can define as  many collections as you want.
    #                  You can use the same collection for multiple taxes above.
    #                  Remember to put the collection name in the TaxCollection field above.
    TaxCollections:
        # Tax collection name. Can be any name you want. Tax Collection names must be unique.
        OnlyCollectionUsed:
            # BracketGroup - Allows tax brackets to be specified for different groups/ranks.
            #                This line specifiess the bracket group name. Bracket
            #                Group names can be anything you want but needs to be unique for
            #                each collection.
            StaffOnly:
                # Groups: Specifies the list of groups/ranks that this group of brackets applies.
                #         The groups/ranks only applies to the player's Primary Group.
                #         Groups also applies to Towny Taxes. The Primary Group of the Nation
                #         and Town owners is used to determine taxes for the nation and town.
                Groups:
                - Mod
                - Admin
                - Owner
                # TaxBrackets - Define the tax brackets. Tax Bracket names can be anything you want.
                #               You can define as many tax brackets as you want.
                #               Must put the tax brackets in order from lowest to highest MaxBalance.
                #               Must use -1 for the MaxBalance of the final tax bracket.
                TaxBrackets:
                    # Tax bracket name. Can be anything you want. Must be unique for each TaxBrackets
                    # section.
                    Poor:
                        # MaxBalance - The highest balance player a can have and still be in
                        #              the specified tax group.
                        #              Use a -1 for the MaxBalance of the final tax group to specify
                        #              any max balance above the previous group's MaxBalance.
                        MaxBalance: 100000.00
                        # TaxType - Type of tax.  Can be either FIXED or PERCENT in all caps.
                        #           FIXED - TaxAmount specifies a fixed amount that is collected
                        #                   for the tax.
                        #           PERCENT - TaxAmount specifies a percent of the current balance
                        #                     that is collected for tax.
                        TaxType: FIXED
                        # TaxAmount - Amount of tax collected each tax time. Can be a fixed ammount or
                        #             percent based on the setting for TaxType.
                        TaxAmount: 0.0
                    MiddleClass:
                        MaxBalance: 500000.00
                        TaxType: PERCENT
                        TaxAmount: 5.0
                    Rich:
                        MaxBalance: -1
                        TaxType: PERCENT
                        TaxAmount: 10.0
            VipsOnly:
                Groups:
                - Vip
                - Vip1
                - Vip2
                TaxBrackets:
                    NoTaxForVips:
                        MaxBalance: -1
                        TaxType: FIXED
                        TaxAmount: 0.0
            AllButVipsStaff:
                # Groups: [] - Specifies all Primary Groups that are not included in
                #              any other bracket groups for this collection.
                Groups: []
                TaxBrackets:
                    Poor:
                        MaxBalance: 100000.00
                        TaxType: PERCENT
                        TaxAmount: 0.0
                    MiddleClass:
                        MaxBalance: 500000.00
                        TaxType: PERCENT
                        TaxAmount: 10.0
                    Rich:
                        MaxBalance: -1
                        TaxType: PERCENT
                        TaxAmount: 20.0
        # Don't care about groups?  Then specify a collection with 1 bracket group
        # with Groups set to []. Like below. Remember to but the collection name
        # NoGroupCollection in the TaxCollection field for the taxes above.
        NoGroupCollection:
            BracketGroupForEveryone:
                Groups: []
                TaxBrackets:
                    Poor:
                        MaxBalance: 100000.00
                        TaxType: PERCENT
                        TaxAmount: 0.0
                    MiddleClass:
                        MaxBalance: 500000.00
                        TaxType: PERCENT
                        TaxAmount: 10.0
                    Rich:
                        MaxBalance: -1
                        TaxType: PERCENT
                        TaxAmount: 20.0
     

    language.yml:
    Code (Text):

    # ==================================================================================================
    #
    # Place Holders (Tax Collection Messages Only):
    # ----------------------------------------------------
    # {PRE_TAX_BALANCE} - The balance before taxes were collected.
    # {POST_TAX_BALANCE} - The balance after taxes were collected.
    # {TAX_AMOUNT_TAXED} - The amount collected for a tax.
    #
    #
    # Player Place Holders:
    # ---------------------
    # {PLAYER_REAL_NAME} - The player's real name.
    # {PLAYER_DISPLAY_NAME} - The player's nickname if they have one. Otherwise real name is used.
    # {PLAYER_BALANCE} - The player's current balance.
    #
    #
    # Tax Place Holders:
    # ------------------
    # {TAX_NAME} - Name of the tax in the config.yml file.
    # {TAX_ENABLED} - Evaluates to Yes if tax is enabled, No otherwise.
    # {TAX_FREQUENCY} - How often tax is collected. Example: 1 day
    # {TAX_DEPOSIT_ENABLED} - Evaluates to Yes if Tax Deposit Account is enabled, No otherwise.
    # {TAX_DEPOSIT_ACCOUNT} - Name of the Tax Deposit Account where taxes are deposited.
    # {TAX_COLLECTION_NAME} - Name of the tax collection.
    # {TAX_NEXT_COLLECTION_TIME} - Date and Time the tax will be collected again.
    # {TAX_NAME_LIST} - Comma seperated list of valid tax names.
    #
    #
    # Tax Collections, Bracket Groups, and Brackets Place Holders:
    # ------------------------------------------------------------
    # {TAX_COLLECTION_NAME} - Name of the tax collection.
    # {TAX_BRACKET_GROUP_NAME} - Name of the tax bracket group.
    # {TAX_BRACKET_GROUP_GROUPS} - The list of groups for a tax bracket group.
    # {TAX_BRACKET_NAME} - Name of the tax bracket
    # {TAX_BRACKET_MIN} - Minimum balance for the tax bracket.
    # {TAX_BRACKET_MAX} - Maximum balance for the tax bracket.
    # {TAX_BRACKET_AMOUNT} - The amount of tax to collect. Either a $ or % amount.
    # {TAX_BRACKET_AMOUNT_TYPE} - The type of tax collected. Either PERCENT or FIXED.
    #
    # NOTE: If a place holder is not replaced in a message, the chances are that that
    #       place holder is a valid place holder for that message.
    #
    # Messages:
    # ---------
    # Messages can be multiline or single line. Messages support the place holders listed
    #          above and color codes. Each message can be disabled by setting Enabled to fale.
    #
    # Multiline example:
    #     Message:
    #         Enabled: true
    #         Contents:
    #         - 'Line 1'
    #         - 'Line 2'
    #         - 'Line 3'
    #
    # Singleline example:
    #     Message:
    #         Enabled: true
    #         Contents:
    #         - 'Entire Message'
    #
    #
    # Some messages are complicated and need to be broken up into multiple sub-messages. Any
    # message sub-message that starts with the word 'Each' means that it can be used multiple
    # times in the message like in a list. These sub-messages can be single or multiple lines.
    # Sub-messages can be disabled by setting them to []. To disable the entire message, it is
    # best to set Enabled to false.
    #
    # Example:
    #     Message:
    #         Enabled: true
    #         Contents:
    #             Header:
    #             - 'Line 1'
    #             EachLine:
    #             - 'Line 1'
    #             - 'Line 2'
    #             - 'Line 3'
    #             Footer:
    #             - 'Line 1'
    #
    # Disable sub-message example (disable footer sub-message):
    #     Message:
    #         Enabled: true
    #         Contents:
    #             Header:
    #             - 'Line 1'
    #             EachLine:
    #             - 'Line 1'
    #             - 'Line 2'
    #             - 'Line 3'
    #             Footer: []
    #
    # Defined Messages:
    # -----------------
    # PlayerTaxCollected - Message that is displayed to the player when a tax is collected.
    #                      This same message is used for all taxes.
    #
    # BroadcastTaxCollectionStart - Broadcast message that is displayed to all players when a tax
    #                               collection is about to start.
    #
    # BroadcastTaxCollectionComplete - Broadcast message that is displayed to all players when a
    #                                  tax collection has completed.
    #
    # PlayerTaxList - Message that is displayed when the /taxes-list command is executed.
    #     Header - Header/title for the message. It is only displayed once.
    #     EachTax - This message is displayed once for each tax that is applicable for the
    #               command that was executed.
    #     Footer - This is the footer of the message. It is only displayed once.
    #
    #
    # PlayerTaxListAll - Message that is displayed when the /taxes-listall command is executed.
    #     Header - Header/title for the message. It is only displayed once.
    #     EachTax - This message is displayed once for each tax that is applicable for the
    #               command that was executed.
    #     Footer - This is the footer of the message. It is only displayed once.
    #
    #
    # PlayerTaxInfo - Message for the /taxes-info <TaxName> command. Displays the details of the
    #                 tax specified by <TaxName> for the player that executed the command in-game.
    #                 This message only displays the Tax Bracket info that is applicable to the
    #                 to the player at the moment the /taxes-info command was executed.
    #
    # PlayerTaxInfoAll - Message for the /taxes-infoall <TaxName> command. Displays the complete
    #                    config details of the tax specified by <TaxName>.
    #                    This message displays all of the Tax Bracket Groups and all of the
    #                    Tax Brackets that are configured for the specified tax.
    #     TaxInfo - Display the tax level info. This is only displayed once.
    #     EachTaxBracketGroup - This is the Tax Bracket Group info. It is displayed for
    #                           each Tax Bracket Group in the specified tax.
    #     EachTaxBracket - This is the Tax Bracket info. It is displayed for each Tax Bracket
    #                      of each Tax Bracket Group.
    #     Footer - This is the footer of the message. It is only displayed once.
    #
    # PlayerInvalidTaxName - Displayed when the player runs a command that requires a tax name
    #                        and the tax name is not valid.
    #
    # ==================================================================================================

    Messages:
        PlayerTaxCollected:
            Enabled: true
            Contents:
            - '&5{TAX_NAME} &6taxes were collected.'
            - '&6Old Balance: &5${PRE_TAX_BALANCE}'
            - '&6New Balance: &5${POST_TAX_BALANCE}'
            - '&6Amount Taxed: &5${TAX_AMOUNT_TAXED}'
            - '&6Taxed at: &5{TAX_BRACKET_AMOUNT} &6(&5{TAX_BRACKET_AMOUNT_TYPE}&6)'
        PlayerTaxList:
            Enabled: true
            Contents:
                Header:
                - '&7&l&m---------------------------------------------'
                - '&5{PLAYER_REAL_NAME}''s &6applicable taxes:'
                - '&7&l&m---------------------------------------------'
                EachTax:
                - '&6Tax Name: &5{TAX_NAME}&6, Current Tax: &5{TAX_BRACKET_AMOUNT}'
                Footer:
                - '&7&l&m---------------------------------------------'
        PlayerTaxListAll:
            Enabled: true
            Contents:
                Header:
                - '&7&l&m---------------------------------------------'
                - '&6Complete list of taxes:'
                - '&7&l&m---------------------------------------------'
                EachTax:
                - '&6Tax Name: &5{TAX_NAME}&6, Enabled: &5{TAX_ENABLED}'
                Footer:
                - '&7&l&m---------------------------------------------'
        PlayerTaxInfo:
            Enabled: true
            Contents:
            - '&6Current &5{PLAYER_REAL_NAME}''s &6tax info for &5{TAX_NAME}&6:'
            - '&6Tax Frequency: &5{TAX_FREQUENCY}'
            - '&6Next Tax Collection: &5{TAX_NEXT_COLLECTION_TIME}'
            - '&6Tax Collection Name: &5{TAX_COLLECTION_NAME}'
            - '&6    Tax Bracket Group Name: &5{TAX_BRACKET_GROUP_NAME}'
            - '&6        Tax Bracket Name: &5{TAX_BRACKET_NAME}'
            - '&6            Balance Range: &5${TAX_BRACKET_MIN} &6- &5${TAX_BRACKET_MAX}'
            - '&6            Current Tax: &5{TAX_BRACKET_AMOUNT}'
        PlayerTaxInfoAll:
            Enabled: true
            Contents:
                TaxInfo:
                - '&7&l&m---------------------------------------------'
                - '&6All Tax info for &5{TAX_NAME}&6:'
                - '&7&l&m---------------------------------------------'
                - '&6Tax Frequency: &5{TAX_FREQUENCY}'
                - '&6Next Tax Collection: &5{TAX_NEXT_COLLECTION_TIME}'
                - '&6Tax Collection Name: &5{TAX_COLLECTION_NAME}'
                EachTaxBracketGroup:
                - '&6    Tax Bracket Group Name: &5{TAX_BRACKET_GROUP_NAME}'
                - '&6    Tax Bracket Group Groups: &5{TAX_BRACKET_GROUP_GROUPS}'
                EachTaxBracket:
                - '&6        Tax Bracket Name: &5{TAX_BRACKET_NAME}'
                - '&6            Balance Range: &5${TAX_BRACKET_MIN} &6- &5${TAX_BRACKET_MAX}'
                - '&6            Current Tax: &5{TAX_BRACKET_AMOUNT}'
                Footer:
                - '&7&l&m---------------------------------------------'
        BroadcastTaxCollectionStart:
            Enabled: true
            Contents:
            - '&5{TAX_NAME} &6being collected.'
        BroadcastTaxCollectionComplete:
            Enabled: true
            Contents:
            - '&5{TAX_NAME} &6collection complete.'
        PlayerInvalidTaxName:
            Enabled: true
            Contents:
            - '&6That is not a valid tax name. Valid tax names are: &5{TAX_NAME_LIST}.'

     

    TODO:
    • Add Language file - DONE
    • Help Command - DONE
    • Info Command to display tax info to the players - DONE
    • Bypass permissions - DONE
    • Tax Brackets by player's primary group - DONE
    • Allow taxes to be deposited in a specified account - DONE
    • Command to force tax collection - DONE
    • Command to list taxes applicable to player - DONE
    • Command to list all taxes - DONE
    • Suggestions?

    Got an issues or question?
    Please post issues and questions in the discussion section and I will address them in a timely manner. Please provide me with an oppertunity to address issues and questions in a timely manner before posting a bad review. If I fail to address the issue or question in a timely manner, feel free to blast me all you want in a review. I will blast myself in your review as well :)

    Got a suggestion?
    Feel free to post suggestions in any manner you like. A review, private message, or in the discussion sections are all acceptable along with any other manner inwhich you can come up with to get my attention.

Recent Reviews

  1. Nokrato
    Nokrato
    4/5,
    Version: 7.7
    we need a GUI please .
  2. leuransw
    leuransw
    4/5,
    Version: 7.2
    I loved this plugin. but not working on 1.16.5. update please.
    xdxdxdxdxdxdxdxdxdxd
  3. Skolman360
    Skolman360
    4/5,
    Version: 7.2
    Its a pretty good and simple plugin but it doesn't seem to work in 1.16.4 could you update the plugin?
  4. Dakon720
    Dakon720
    1/5,
    Version: 7.2
    This plugin does not give info on how to set it up, we had tons of trouble with it, at first it would add money to every player on the server when it was suppose to collect tax, then it would collect taxes at all and just read errors, do not download this
  5. DinVaderXD
    DinVaderXD
    5/5,
    Version: 7.2
    Really good Plugin. Unfortunately when I downloaded it it wasn't updated to the newest Minecraft version but all that changed shortly. I have been using it on a small personal server ever since and I am very happy with it. All time rating is at 4 stars but it should be 5. Some people only rate 1 star if it doesn't work for them or 5 if they are content. Really good plugin and the creator deserves recognition for it.
  6. BraveBurst
    BraveBurst
    5/5,
    Version: 7.2
    Amazing plugin, thanks for creating this! Great to keep the economy more balanced.
  7. wellimlookingfor
    wellimlookingfor
    5/5,
    Version: 7.1
    Not working on 1.8.8
    But you did a great job.
    Thanks for doing that.
    Hope you can fix that.
  8. Ajsmith0429
    Ajsmith0429
    5/5,
    Version: 6.0
    Amazing plugin. This helps keep my server economy in check. Also making sure Baltop is not over-run by inactive players. 10/10
  9. GalaxyCloud
    GalaxyCloud
    5/5,
    Version: 4.3
    very nice work! Working Fine on Spigot 1.15.2. A never seen plugin! Thanks for bringing up this nice resource!
  10. Ant4rez
    Ant4rez
    5/5,
    Version: 4.3
    I very like it works fine on Paper, and it is a cool feature for your economy, but i made a suggestions on the discussion section to be even a better plugin =D