Universal DonatorJoin+ 2.2.3

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

  1. 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
    • Fully customizable
    • Multiple storage types
    • Ability to toggle donator join messages on/off
    • Per world donator join messages
    • Donator Slots system (read more below)
    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)
    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.

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

    [​IMG]
    Support me
    Do you like my work? Please help me by donating, even the smallest amount counts!

    Default Configuration
    Code (YAML):

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

    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
    : false

    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!'

    # 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
    : '&8(&cServer&8) &7(&aVIP&7) &b%player% &ehas joined the game!'
          sound
    :
            enabled
    : true
            sound
    : ENTITY_IRONGOLEM_DEATH
          firework
    : true
        quit
    :
          enabled
    : true
          message
    : '&8(&cServer&8) &7(&aVIP&7) &b%player% &ehas left the game!'
          sound
    :
            enabled
    : true
            sound
    : ENTITY_IRONGOLEM_DEATH
          firework
    : false
        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
          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
      - 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
        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
        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
          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
     
     
    #1 didjee2, Jun 26, 2015
    Last edited: May 14, 2019
  2. didjee2 updated DonatorJoin+ with a new update entry:

    DonatorJoin+ 1.0.2

    Read the rest of this update entry...
     
  3. didjee2 updated DonatorJoin+ with a new update entry:

    DonatorJoin+ 1.0.3

    Read the rest of this update entry...
     
  4. Thanks, could you also give a review? Btw, adding quit message option when I'm online
     
  5. didjee2 updated DonatorJoin+ with a new update entry:

    DonatorJoin+ 1.0.4

    Read the rest of this update entry...
     
  6. Pretty nice plugins. I wish it would be permission node based. Because it doesn't work with Sub-Groups, and I have a prison server which uses sub-groups for donator ranks.
     
  7. I'll try to add support for Sub-Groups :3
     
  8. Wow. This is a very useful plugin, I am making a Kohi style hub and this plugin will do my server justice! Thanks man!
     
  9. Thanks!
     
  10. I only tested on 1.10.2 and I get this error when I join with Owner Rank.
    Code (Text):
    [09:44:52] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to DonatorJoinPlus v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.PlayerList.onPlayerJoin(PlayerList.java:333) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.PlayerList.a(PlayerList.java:159) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.LoginListener.b(LoginListener.java:144) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.LoginListener.E_(LoginListener.java:54) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.NetworkManager.a(NetworkManager.java:233) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.ServerConnection.c(ServerConnection.java:140) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:832) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571) [spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_92]
    Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Sound.PORTAL_TRAVEL
        at java.lang.Enum.valueOf(Unknown Source) ~[?:1.8.0_92]
        at org.bukkit.Sound.valueOf(Sound.java:1) ~[spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        at com.dbsoftware.donatorjoin.DonatorJoin.onJoin(DonatorJoin.java:85) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_92]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_92]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_92]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.10.2.jar:git-Spigot-687a019-568e27f]
        ... 14 more
    Ignore this i solved the problem already!
     
    #13 ChimpGamer, Jul 4, 2016
    Last edited: Jul 4, 2016
  11. And I got a idea for the plugin not that i'm gonna use it but maybe helpful for others that you get the DonatorJoin message in the middle of the screen big and maybe I don't know if it is possible That you get potion effects on join.
     
    • Agree Agree x 1
  12. Code (Text):
    [23:36:59] [Server thread/ERROR]: Could not pass event PlayerQuitEvent to DonatorJoinPlus v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.PlayerList.disconnect(PlayerList.java:384) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:1060) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.aufdemrand.denizen.utilities.packets.intercept.AbstractListenerPlayIn.a(AbstractListenerPlayIn.java:220) [denizen-0.9.8-SNAPSHOT%201.9.2.jar:?]
        at net.minecraft.server.v1_9_R1.NetworkManager.handleDisconnection(NetworkManager.java:317) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.ServerConnection.c(ServerConnection.java:175) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:820) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_92]
    Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Sound.RANDOM.BOWHIT
        at java.lang.Enum.valueOf(Unknown Source) ~[?:1.8.0_92]
        at org.bukkit.Sound.valueOf(Sound.java:1) ~[spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        at com.dbsoftware.donatorjoin.DonatorJoin.onQuit(DonatorJoin.java:111) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_92]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_92]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.9.2.jar:git-Spigot-e000104-4cb3258]
        ... 13 more
     
    on 1.9.4 and up i get this pls fix didjee2
     
  13. It's because of the sound. Get the new sound names on the Sound page of Spigot.
     
  14. Avi

    Avi

    Really nice plugin! I have different join messages for higher ranking staff, donators and such!!

    Idea:
    What would be really handy, is if you set up a default join message for everyone! Currently I have Essentials and when myself or a high ranking staff joins, it shows up with the Essentials join message AND the custom one I have set up. So I had to disable the Essentials messages and make the default join message for every single rank, which makes the config quite long. It'd be handy if this had that feature! For example:

    DefaultJoinMessage: "[+] player1 has joined the game."

    Then you can have the normal join, then set up specific join messages for donators and the like.

    Just an idea! Really nice plugin though.
     
  15. Can you remember me? I'll add it if I don't forget, this noon ;)
     
  16. Hi the owner of centrix nice plugin there but there is some small bugs you should work on it more! Ty
     
  17. Lol Hi ;)
    Can you list me the bugs?