DonatorJoin+ 2.2.2

An advanced message manager for join & quit events (server + world) per rank.

  1. didjee2
    Native Minecraft Version:
    1.14
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    Source Code:
    https://git.dbsoftwares.eu/dbsoftwares/DonatorJoinPlus
    DonatorJoin+

    Features
    • Disable default join & quit messages.
    • Priorities (if someone has multiple ranks which are set to have a join message, it will only send the highest priority message - priorities can be disabled!)
    • Custom Join message per rank (can be disabled)
    • Custom Quit message per rank (can be disabled)
    • Sound on join / quit (you can find the sounds here)
    • Firework on join / quit
    • Define join / quit messages based on rank OR permission
    • Supports SuperVanish & PremiumVanish
    • Supports clip's PlaceHolderAPI
    • Fully customizable
    • Multiple storage types
    • Ability to toggle donator join messages on/off
    • Per world donator join messages
    • Donator Slots system (read more below)
    • Multiple message lines using <nl>
    • Metrics using bstats
    [​IMG]
    Requirements
    • Vault (last version)
    Commands - Permissions
    • /djp reload - donatorjoinplus.reload
    • /djp toggle [player] - donatorjoinplus.toggle & donatorjoinplus.toggle.others
    • /djp enable [player] - donatorjoinplus.toggle & donatorjoinplus.toggle.others
    • /djp disable [player] - donatorjoinplus.toggle & donatorjoinplus.toggle.others
    • /djp setslotgroup (player) (groupname) - donatorjoinplus.setslotgroup
    • /djp listsounds - donatorjoinplus.listsounds (this command lists available sounds of your server version and creates a paste at https://paste.dbsoftwares.eu (this might load a while))
    Example

    [​IMG]

    SlotForcer / Donator Slots
    SlotForcer is a system that allows the server to go over its max player limit by a preset amount.


    For example, when your server is full, and you staff to be able to join still, then this is a perfect tool to do so.

    By making a slotforcer limit for the group "staff" with 10 additional slots, you would allow a server of f.e. 20 slots to go up to 30 slots (with 10 of them guaranteed being staff).

    IMPORTANT:
    Not many permission systems have loaded in player permissions when the PlayerLoginEvent gets fired (which is used for this system), so to use this system, you have to set the slotgroup with /djp setslotgroup (player) (groupname) (with groupname being the name from the limit int he config).

    NOTE:
    • These slots are only being used when the server is FULL.
    • If your hosting service restricts the amount of allowed slots, you should not use this feature, as this might lead into the suspension of your service (depending on the host you use).

    Discord
    Searching a quick way to get support? Join our Discord where we'll be happy to help!

    [​IMG]
    Support me
    [​IMG]

    Default Configuration
    You can find this config on our git aswell.
    Code (YAML):

    ################################################################################################
    #    ____                            _                        _           _                    #
    #   |  _ \    ___    _ __     __ _  | |_    ___    _ __      | |   ___   (_)  _ __      _      #
    #   | | | |  / _ \  | '_ \   / _` | | __|  / _ \  | '__|  _  | |  / _ \  | | | '_ \   _| |_    #
    #   | |_| | | (_) | | | | | | (_| | | |_  | (_) | | |    | |_| | | (_) | | | | | | | |_   _|   #
    #   |____/   \___/  |_| |_|  \__,_|  \__|  \___/  |_|     \___/   \___/  |_| |_| |_|   |_|     #
    #                                                                                              #
    ################################################################################################

    # Debugging mode, this will help you give extra information if something is not working.
    debug
    : false

    storage
    :
     # Possible storage types: FILE:JSON, FILE:YAML, MYSQL, SQLITE, H2. If using H2 or SQLITE, make sure to set max-pool-size to 1!
      type
    : 'FILE:JSON'

      # FILE only: when set to true, the data will be written to disk every time a toggle happens.
      # THIS CAN BE VERY INEFFICIENT, especially on larger servers.
      # When on false, file only gets saved when server shuts down (data can get lost with f.e. crashes)
      save-per-change
    : false

      # The hostname (IP) to connect to
      hostname
    : '127.0.0.1'
      # Port to be used
      port
    : 3306
      # The database / scheme name
      database
    : 'database'
      # The username, should at least have write & read access to the database above!
      username
    : 'username'
      # The password corresponding to the username above
      password
    : 'password'
      # Should DonatorJoinPlus try to establish a SSL connection? (only for SQL)
      useSSL
    : true

      pool
    :
       # How many connections are allowed to be made?
        # Find more information at:
        # https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
        # Pool sizing SHOULD BE SET TO 1 WHEN USING H2 OR SQLITE
        max-pool-size
    : 5
        # How many idle connections should be maintained?
        # It is recommended to set this to the same value as the max-pool-size
        min-idle
    : 5
        # Maximum lifetime of a connection. Time in seconds.
        max-lifetime
    : 1500
        # How long should DonatorJoinPlus wait before timing out a connection?
        connection-timeout
    : 8

    # Set to false to disable default MC join message.
    joinmessage
    : false

    # Set to false to disable default MC quit message.
    quitmessage
    : false

    # If true, only the highest priority rank will be broadcasted!
    # If false, a broadcast for any found rank will be sent.
    usepriorities
    : true

    # If false, DonatorJoinPlus will use the 'name' you set in the ranks below as group identifiers.
    # People with a group with the same name as the rank will get the join message.
    #
    # If true, DonatorJoinPlus will use the 'permission' you set in the ranks below as identifier.
    # If the user has the permission it will send the highest priority join message,
    # or all if usepriorities is set to false.
    usepermissions
    : true

    messages
    :
      prefix
    : '&e&lDonatorJoin&b&l+ &7» '
      never-joined
    : '&cThat player didn''t join before!'
      no-perm
    : '&cYou are not allowed to do this!'
      reloaded
    : '&aThe plugin has been reloaded successfully!'
      enabled
    : '&aJoin & quit messages are now enabled!'
      enabled-other
    : '&aJoin & quit messages are now enabled for &b{player}!'
      disabled
    : '&cJoin & quit messages are now disabled!'
      disabled-other
    : '&aJoin & quit messages are now enabled for &b{player}!'
      not-for-console
    : '&cThe console cannot use this!'
      usage
    : '&ePlease use &b{usage}&e!'
      group-not-found
    : '&eSlotGroup &b{group} &ewas not found!'
      group-set
    : '&b{player}''s &eslot group has been set to &b{group}&e!'
      error
    : '&cAn error occured, check the console for more info!'

    firstjoin
    :
      enabled
    : true
      message
    :
       - '&eWelcome &b{player} &eto the network! &7&oGood luck and have fun!'

    # Some permission plugins do not load permissions quicky enough for this to work.
    # If your permission plugin seems to be one of them, please use: /djp setslotgroup (player) (groupname / none) instead
    # DO NOTE THAT THIS FEATURE IS EXPERIMENTAL, NOT MUCH TESTING HAS BEEN DONE
    slotforcer
    :
      enabled
    : false

      # This in total would allow the maxplayers on a server to go up with 23 slots.
      # If your hosting service RESTRICTS the max players, then YOU SHOULD NOT USE THIS (as your server can be suspended)
      limits
    :
       # Make sure the name is UNIQUE (this is CASE INSENSITIVE)
        - name
    : 'vip'
          # These are ADDITIONAL slots that can be allocated.
          # For example with maxplayers set to 20, then 5 extra people with a permission can join.
          additional
    : 5
          # The permission to identify the limit with
          permission
    : 'donatorjoin.limit.exceed.vip'
        - name
    : 'mvp'
          additional
    : 8
          permission
    : 'donatorjoin.limit.exceed.mvp'
        - name
    : 'staff'
          additional
    : 10
          permission
    : 'donatorjoin.limit.exceed.staff'

    ranks
    :
      - name
    : 'vip'
        permission
    : 'djp.vip'
        priority
    : 10
        join
    :
          enabled
    : true
          message
    : '&6[&3VIP&6] &b%player% &ehas joined the game!'
          sound
    :
            enabled
    : true
            sound
    : ENTITY_IRONGOLEM_DEATH
          firework
    : true
          commands
    :
            enabled
    : false
            commands
    :
             # TitleManager example
              - 'tm bc &a&lVIP &b%player% %nl% &ehas joined the game!'
      - name
    : 'elite'
        permission
    : 'djp.elite'
        priority
    : 20
        join
    :
          enabled
    : true
          message
    : '&6[&aElite&6] &b%player% &ehas joined the game!'
          sound
    :
            enabled
    : true
            sound
    : ENTITY_IRONGOLEM_DEATH
          firework
    : true
          commands
    :
            enabled
    : false
            commands
    :
             # TitleManager example
              - 'tm bc &a&lElite &b%player% %nl% &ehas joined the game!'
        quit
    :
          enabled
    : true
          message
    : '&e%player% has left the game'
          sound
    :
            enabled
    : true
            sound
    : ENTITY_IRONGOLEM_DEATH
          firework
    : false
          commands
    :
            enabled
    : false
            commands
    :
             # TitleManager example
              - 'tm bc &a&lVIP &b%player% %nl% &ehas left the game!'
        world
    :
          join
    :
            enabled
    : false
            message
    : '&8(&cServer&8) &7(&aVIP&7) &b%player% &ehas joined the world!'
            sound
    :
              enabled
    : true
              sound
    : ENTITY_IRONGOLEM_DEATH
            firework
    : true
            commands
    :
              enabled
    : false
              commands
    :
               # TitleManager example
                - 'tm bc &a&lVIP &b%player% %nl% &ehas joined the world!'
          quit
    :
            enabled
    : false
            message
    : '&8(&cServer&8) &7(&aVIP&7) &b%player% &ehas left the world!'
            sound
    :
              enabled
    : true
              sound
    : ENTITY_IRONGOLEM_DEATH
            firework
    : false
            commands
    :
              enabled
    : false
              commands
    :
               # TitleManager example
                - 'tm bc &a&lVIP &b%player% %nl% &ehas left the world!'
      - name
    : 'MVP'
        permission
    : 'djp.mvp'
        priority
    : 20
        join
    :
          enabled
    : true
          message
    : '&8(&cServer&8) &7(&9MVP&7) &b%player% &ehas joined the game!'
          sound
    :
            enabled
    : true
            sound
    : BLOCK_PORTAL_TRAVEL
          firework
    : true
          commands
    :
            enabled
    : false
            commands
    :
             # TitleManager example
              - 'tm bc &9&lMVP &b%player% %nl% &ehas joined the game!'
        quit
    :
          enabled
    : true
          message
    : '&8(&cServer&8) &7(&9MVP&7) &b%player% &ehas left the game!'
          sound
    :
            enabled
    : true
            sound
    : BLOCK_PORTAL_TRAVEL
          firework
    : false
          commands
    :
            enabled
    : false
            commands
    :
             # TitleManager example
              - 'tm bc &9&lMVP &b%player% %nl% &ehas left the game!'
        world
    :
          join
    :
            enabled
    : false
            message
    : '&8(&cServer&8) &7(&9MVP&7) &b%player% &ehas joined the world!'
            sound
    :
              enabled
    : true
              sound
    : BLOCK_PORTAL_TRAVEL
            firework
    : true
            commands
    :
              enabled
    : false
              commands
    :
               # TitleManager example
                - 'tm bc &9&lMVP &b%player% %nl% &ehas joined the world!'
          quit
    :
            enabled
    : false
            message
    : '&8(&cServer&8) &7(&9MVP&7) &b%player% &ehas left the world!'
            sound
    :
              enabled
    : true
              sound
    : BLOCK_PORTAL_TRAVEL
            firework
    : false
            commands
    :
              enabled
    : false
              commands
    :
               # TitleManager example
                - 'tm bc &9&lMVP &b%player% %nl% &ehas left the world!'
     

Recent Reviews

  1. GamePvP
    GamePvP
    5/5,
    Version: 2.2.2
    Hey,

    First very cool plugin. I had a question and I would like to introduce this plugin on my channel. I would be glad if this video would then come to your plugin page under tutorial. For your German Community.

    Pair of information

    Youtube = GamePvP
    Discord = @ GamePvP # 1234

    Write me on discord times.

    With best regards,
    GamePvP
    1. didjee2
      Author's Response
      Couldn't send you a friend request (discord didn't find it), but you could join my Discord server (discord.dbsoftwares.eu) and make a ticket in the botcommands channel (the ticket is basically a PM then).

      I'm glad you like my plugin though :)
  2. ArcaneVoid
    ArcaneVoid
    5/5,
    Version: 2.1.5
    Great support. the developer worked with me for several hours helping me solve the issue I was having. Great plugin!
    1. didjee2
      Author's Response
      Glad that you got it working :)

      If you have any more issues / suggestions, feel free to contact me!
  3. RubenCaleb
    RubenCaleb
    5/5,
    Version: 2.1.5
    Only Op can see the message :(, the default rank without Op can't see it :( help me please
    1. didjee2
      Author's Response
      Could you explain me a bit more? And send the config you use aswell please (make sure to not include any mysql password or something).

      You could PM me or contact me on Discord for this.
  4. JasperWorld
    JasperWorld
    5/5,
    Version: 2.1.1
    Love it, thanks for adding my suggestion too! I will recommend the plugin on my server.
    1. didjee2
      Author's Response
      Thank you for giving me the suggestion!

      I'm glad you like my plugin.
  5. SrGuittar
    SrGuittar
    5/5,
    Version: 2.0.3
    Excellent plugin 100% recommended! Please add join and quit perworld messages! <3
    1. didjee2
      Author's Response
      What do you mean exactly with that? Like a join / quit message when someone joins / leaves a world? You can PM me on Spigot with the answer or join the Discord for a faster response: https://discord.gg/HyszgYr !

      I'm glad you like it btw!

      EDITED: finished the feature already, gonna test it in a few hours on my test server.
  6. JasperWorld
    JasperWorld
    5/5,
    Version: 2.0.3
    I have a suggestion that I kinda need in my server, /djp enable/disable (player) (djp.toggle.others) and /djp enable/disable (djp.toggle)
    PD: Discord link is broken.
    1. didjee2
      Author's Response
      Yes, sorry about the Discord being broken, you can also (for now) use: https://discord.gg/HyszgYr

      Also, I’m glad that you like DJ+! I will look into adding this when I get home in a few hours. (Might be best for you to jump onto the Discord and remind me, as I tend to forget things quickly).
  7. SeptyYTB
    SeptyYTB
    3/5,
    Version: 2.0.2
    ERROR Error at SQL INSERT Query: java.sql.SQLException: database disk image is malformed
    11.07 14:28:21 [Server] ERROR Error at SQL INSERT Query: java.sql.SQLException: database disk image is malformed
    How i can resolve this (My Config File Is Default
    ################################################################################################

    # ____ _ _ _ #

    # | _ \ ___ _ __ __ _ | |_ ___ _ __ | | ___ (_) _ __ _ #

    # | | | | / _ \ | '_ \ / _` | | __| / _ \ | '__| _ | | / _ \ | | | '_ \ _| |_ #

    # | |_| | | (_) | | | | | | (_| | | |_ | (_) | | | | |_| | | (_) | | | | | | | |_ _| #

    # |____/ \___/ |_| |_| \__,_| \__| \___/ |_| \___/ \___/ |_| |_| |_| |_| #

    # #

    ################################################################################################



    # Set to false to disable default MC join message.

    joinmessage: false



    # Set to false to disable default MC quit message.

    quitmessage: false



    # If true, only the highest priority rank will be broadcasted!

    # If false, a broadcast for any found rank will be sent.

    usepriorities: true



    # If false, DonatorJoinPlus will use the 'name' you set in the ranks below as group identifiers.

    # People with a group with the same name as the rank will get the join message.

    #

    # If true, DonatorJoinPlus will use the 'permission' you set in the ranks below as identifier.

    # If the user has the permission it will send the highest priority join message,

    # or all if usepriorities is set to false.

    usepermissions: true



    ranks:
    - name: 'Helper'
    priority: 10
    join:
    enabled: true
    message: '&8(&cServer&8) &7(&aVIP&7) &b%player% &ehas joined the game!'
    sound:
    enabled: true
    sound: BLOCK_SAND_FALL
    firework: true
    quit:
    enabled: true
    message: '&8(&cServer&8) &7(&aVIP&7) &b%player% &ehas left the game!'
    sound:
    enabled: true
    sound: BLOCK_SAND_FALL
    firework: false
    - name: 'Castor'
    priority: 20
    join:
    enabled: true
    message: '&8(&cServer&8) &7(&9MVP&7) &b%player% &ehas joined the game!'
    sound:
    enabled: true
    sound: BLOCK_SAND_FALL
    firework: true
    quit:
    enabled: true
    message: '&8(&cServer&8) &7(&9MVP&7) &b%player% &ehas left the game!'
    sound:
    enabled: true
    sound: BLOCK_SAND_FALL
    firework: false
    1. didjee2
      Author's Response
      Uhm DonatorJoin+ does not use SQL at all. Meaning that it's impossible to be caused by DJP. Could you also please use the thread / PM for questions / bugs.

      PM me with a more detailed log so I am able to help you finding the plugin!
  8. Ver_Elite
    Ver_Elite
    5/5,
    Version: 2.0.2
    The best, and excellent plugin. Thank you man.

    I've like your all plugins for a long time. :) <3
    1. didjee2
      Author's Response
      Glad you like my plugins ;)
  9. Fighter2000
    Fighter2000
    5/5,
    Version: 2.0.2
    best .....................................................................................
    1. didjee2
      Author's Response
      Thank you! I'm glad you like DJP.
  10. SkyAcer009
    SkyAcer009
    5/5,
    Version: 2.0.0
    Perfect and excellent plugin. Thank you very much :)
    I've been looking for such a plugin for a while.
    1. didjee2
      Author's Response
      Amazing that you like it :)