Inactive [ADMN/GEN] SlotGroups v0.2.8 - An alternative to reserved slots - R6 Compatible! [1.1-R6]

Discussion in 'Inactive/Unsupported Plugins' started by gothroach, Jun 18, 2011.

  1. Offline

    gothroach




    This plugin has been moved to dev.bukkit.org. It will continue to be updated there, the below topic is left for archival purposes only.




    SlotGroups - A different approach to slot management.
    Updated: March 2nd, 2012.
    Version: 0.2.8
    CB: 1.1-R6


    Download: SlotGroups on dev.bukkit.org

    Development/Old Downloads: SlotGroups Versions

    Description
    SlotGroups gives you the ability to create multiple independent slot groups. Each one has their own maximum player count and group full kick messages, enabling more advanced slot management than is possible with typical reserved slots.​

    For example, you could give your 10 admins and moderators a slot group with 10 slots and set the default slot group to be 30 slots. This would allow all of the 10 moderators and admins to be on the server without taking up any of the 30 slots in the normal player group, while still keeping an overall cap of 40 players on the server.​

    You can configure as many slot groups as you like, creating some interesting possibilities. Slot inheritance has been implemented recently, increasing the possibilities even further.​


    I made this plugin to fill a very specific need on my server, and as such it is still pretty specialized. I'm working on adding more features to give it more general appeal, and am definitely looking for feature requests! If there's something you'd like to see added, please request it on the SlotGroups Redmine or post it in this topic. I will be releasing the source on GitHub once I have it tidied up more and am generally more comfortable with it.​

    Features
    • Create multiple independent or inherited slot groups.
    • Have different maximum slot counts for different players or groups.
    • Make slot distribution more fair.
    • Have certain slot groups 'overflow' into others.
    • Users can automatically be put in a 'Default' slot group.
    • Manage user slot group membership from within the game.
    • Put the server in lockdown mode, preventing all but specific users from being able to join.
    • Add/Edit/Remove slot groups in the config file, then apply in-game using `/slotgroups reload`.
    • Slot group in-game list.
    • Requires Vault for permissions. Through Vault, SlotGroups should work with the popular permissions plugins in use today.
    How to Use
    • Download and extract the .zip package.
    • Place the contents of the .zip in your Plugins folder.
    • Configure SlotGroups.yml to your liking.
    • Set your max-players in your server.properties to the total number of slots in all slot groups.
    • Add relevant SlotGroups command and slot group permissions to groups or users as desired.
    • Enjoy!
    Commands
    • /slotgroups (/sg)
      • Shows the main command syntax.
    • /sg list
      • Lists all loaded slot groups plus their current and max players.
    • /sg reload
      • Reloads the configuration file from disk.
    • /sg version
      • Displays version information.
    • /sg lockdown
      • Locks all slots that do not have override set to true.
    • /sg unlock
      • Unlocks all slots.
    • /slotgroupsuser (/sguser)
      • Shows the syntax for user management commands.
    • /sguser set <user> <group>
      • Puts <user> into slot group <group>.
    • /sguser remove <user> <group>
      • Removes <user> from slot group <group>.
    • /sguser info <user>
      • Shows slot group information for <user>.
    Permissions
    • slotgroups.list
      • Gives access to `/sg list`.
    • slotgroups.reload
      • Gives access to `/sg reload`.
    • slotgroups.lockdown
      • Gives access to `/sg lockdown` and `/sg unlock`.
    • slotgroups.user.set
      • Gives access to `/sguser set`.
    • slotgroups.user.remove
      • Gives access to `/sguser remove`.
    • slotgroups.user.info
      • Gives access to `/sguser info`.
    • slotgroups.group.<group>
      • Puts a group or user in slot group <group>.
    Links
    To Do
    • Add per-group configurable login queue.
    • Add optional per-group AFK settings.
    • Create public API for slot groups and counts.
    • Add in-game commands for manipulating slot groups.
    • Add in-game commands for manipulating slot groups Permissions group membership.
    • Release accompanying /who plugin with support for displaying slot group slot counts.
    • Add more configuration options.
    • Make commands work in console.
    • Add command to lock/unlock specific slots while in-game.
    Images
    Show Spoiler

    • `/slotgroups list` output:
      [​IMG]


    Conflicts
    Show Spoiler

    • SimpleReserve
    • Reservations


    Known Limitations/Bugs
    Show Spoiler

    • No /sg commands work in console yet.
    • You should set your server.properties max-players to equal the number of slots in all your slot groups to prevent issues.
    • Existing plugins are not slot group aware and will report the number of max-players in your server.properties. I will be releasing the /who plugin I use on my server that is slot group aware.
    • Changing a Permissions group's slot group won't take effect until /sg reload or the server restarts.
     
    Habbo4Life likes this.
  2. Offline

    ChrizC

  3. Offline

    gothroach

    Thanks much, my fingers naturally put the 'I' in there.
     
    ChrizC likes this.
  4. Offline

    Derphiria

    this is a very nice plugin, i would like to use it but i get this error message in the console:

    is that because i use "GroupManager" and not "Permissions" ?
    i use Bukkit 860.
    i don't have any other slot plugins.
     
  5. Offline

    iMattxC

    no permissions 2.7.4? :(
     
  6. Offline

    gothroach

    Currently, only Permissions 3.x.x is supported, but I will look into adding 2.7.x and GroupManager permissions now.
     
  7. Offline

    MonsieurApple

    Is GroupManager not supported?
     
  8. Offline

    gothroach

    SlotGroups v0.2.1
    • Added Permissions 2.7.3 and GroupManager support.
    • SlotGroups now creates a default configuration file if none is found.
    • Slot group inheritance has been implemented.
    • Slot groups can now be selectively enabled/disabled.
    • Various internal code structure changes and optimizations.
    • `/sg reload` temporarily disabled.
    @Derphiria @iMattxC @MonsieurApple - GroupManager and Permissions 2.7.3 support have been added.

    This release has been tested to work with Permissions 2.7.3, 3.1.5b, and the GroupManager bundled with Essentials 2.3.3. Slot group inheritance works quite well on my server, but please do report if you have any issues with it. I will be setting up a wiki/FAQ for the plugin within the next few days to assist with installation and configuration.
     
  9. Offline

    gothroach

    SlotGroups v0.2.2
    • Re-enabled `/sg reload` and updated to work properly with inheritance.
    • Small changes for CB RB 928.
    • More internal code optimizations/changes.

    This build has been tested with both CB 928 and 860. The reload command has been re-enabled, allowing slot editing while the server is on again.
     
  10. Offline

    N0CTURNAL

    How do I add groups? How do I move people in groups too Lol.
     
  11. Offline

    gothroach

    To add groups, add another entry under `slots:` in the config file. There are several there as examples that you can copy/paste and edit if you wish. You can reload the config file while the server is running by running `/sg reload`.

    You add players to groups by adding the slot group's permission node to either the player or the player's Permissions group. The nodes are in the format `slotgroups.group.<name>` and there are some examples in the config file.

    I'll be adding commands to add/remove users from slots in-game in the next version, which should make management a lot easier.
     
  12. Offline

    N0CTURNAL

    Ok Thanks :D Lol
     
  13. Offline

    gothroach

    SlotGroups v0.2.3
    • Added `/sguser` command and basic user management from within the game.
    • Added `/sg lockdown` and `/sg unlock` commands.
    • Changed the way permissions are determined.
    • Fixed various small bugs.
    • Tested with CB RB 935.
    This is only basic user management - I will be adding more in-depth user, group, and slot group management from within the game. The lockdown mode was implemented due to occasionally needing to prevent normal users from being able to log in on my server so I could perform administrative tasks without interruption, but it could be useful in many situations.

    EDIT: I uploaded the incorrect version initially, it's now fixed.
     
  14. Offline

    GmK

    gothroach likes this.
  15. Offline

    Gleydar

    Do you have to set the "/sguser set "ingame?? Cause everytime I type : /slotgroups /sgusers XXX Admin Then it echos Invalid command. Do I type I wrong, if yes, how is it spelled rhigt??
     
  16. Offline

    gothroach

    @Gleydar
    Try just `/sguser set <name> Admin`.

    As I said, I'm definitely going to be improving the in-game interface.
     
  17. Offline

    Gleydar

    Yes, I tried that too, but then it says "invalid console Command..." How do I type it correctly in the console, then?
    And if I don't have any other Permission system, the Plugins in the console echoted "no permission system detected"
    Could you please tell me how to fix it?
    Thanks bevore
    (Sorry for my bad English"
     
  18. Offline

    gothroach

    Ah, that would be the problem. Currently, the plugin uses the Permissions system for keeping track of users' group memberships. If it does not detect GroupManager or Permissions, then it will disable itself.
     
  19. Offline

    Gleydar

    Jes but I use the Premission plugin too. So if I wat me in the Admin group, then I have to set me in the Permission config file in the Admin group too?? But my friend should be a moderator, so I have to create a Moderator groo in the permission plugin??
     
  20. Offline

    MartN

    love it!
    but can you add whitelist support? :(
    actualy the whitelist doesn't work and everyone can join
    that would be very nice
     
  21. Offline

    gothroach

    Absolutely, I'll add that today. I don't personally know any server operators who use whitelist so I didn't think to test that, sorry.

    EDIT: I ended up being busier than expected, I'll add the whitelist support in with the next planned version tomorrow.
     
  22. Offline

    gothroach

    SlotGroups v0.2.3a
    • Fixed whitelist support.
    @MartN Let me know how this works out for you!

    This is a small release just to fix whitelists.

    Unfortunately, the rest of the next minor revision is not ready yet.
     
  23. Offline

    MartN

    Test it, works great!
    Thank you, thank you, thank you :)

    If you have a donate link i will send you 5 bucks for the great work :)

    //Edit: found one error in my log files:

    Code:
    2011-07-02 14:31:01 [SEVERE] Could not pass event PLAYER_LOGIN to SlotGroups
    java.lang.StackOverflowError
        at org.gothroach.SlotGroups.SlotGroupConfig.getSlotByName(SlotGroupConfig.java:195)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:380)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
        at org.gothroach.SlotGroups.SlotGroups.checkChildren(SlotGroups.java:382)
     
  24. Offline

    darrenstraight

    No luck either for me I'm affraid, using permissions 3.0
    Code:
    2011-07-05 20:38:38 [SEVERE] Could not pass event PLAYER_LOGIN to SlotGroups
    java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler.getDefaultGroup(Ljava/lang/String;)Lcom/nijiko/permissions/Group;
        at org.gothroach.SlotGroups.SlotGroups.getTrueSlotGroup(SlotGroups.java:423)
        at org.gothroach.SlotGroups.SlotGroupPlayerListener.onPlayerLogin(SlotGroupPlayerListener.java:44)
        at org.bukkit.plugin.java.JavaPluginLoader$12.execute(JavaPluginLoader.java:321)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:321)
        at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:184)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:82)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Tried Removing "defaultgroup: Default" to see if that would help but no luck!

    Code:
    2011-07-07 10:53:33 [INFO] [SlotGroups] Linked to Permissions 3.0b.
    2011-07-07 10:53:33 [INFO] [SlotGroups] Loading configuration...
    2011-07-07 10:53:33 [INFO] [SlotGroups] Loaded slot group 'Member' with 12 slots.
    2011-07-07 10:53:33 [INFO] [SlotGroups] Loaded slot group 'Staff' with 10 slots.
    2011-07-07 10:53:33 [INFO] [SlotGroups] Loaded slot group 'Admin' with 2 slots.
    2011-07-07 10:53:33 [INFO] [SlotGroups] Finished loading 3 slot groups with 24 total slots.
    2011-07-07 10:53:33 [INFO] [SlotGroups] SlotGroups v0.2.3a loaded.
    2011-07-07 10:53:33 [INFO] [LogBlock] Permissions found.
    2011-07-07 10:53:33 [WARNING] [LogBlock] BukkitContrib not found. Can't log chest accesses.
    2011-07-07 10:53:33 [INFO] [LogBlock] Scheduled consumer with bukkit scheduler.
    2011-07-07 10:53:33 [INFO] Logblock v1.10 enabled.
    2011-07-07 10:53:33 [INFO] Done (0.456s)! For help, type "help" or "?"
    2011-07-07 11:10:55 [SEVERE] Could not pass event PLAYER_LOGIN to SlotGroups
    java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler.getDefaultGroup(Ljava/lang/String;)Lcom/nijiko/permissions/Group;
    at org.gothroach.SlotGroups.SlotGroups.getTrueSlotGroup(SlotGroups.java:423)
    at org.gothroach.SlotGroups.SlotGroupPlayerListener.onPlayerLogin(SlotGroupPlayerListener.java:44)
    at org.bukkit.plugin.java.JavaPluginLoader$12.execute(JavaPluginLoader.java:321)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:321)
    at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:184)
    at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:82)
    at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-07-07 11:10:55 [INFO] JBryant [*IP Address hidden*] logged in with entity id 210 at ([world] 31.375, 64.0, 67.03125)
    
     
  25. Offline

    imaxorz

    Is there a way to set it up so if the guest (default) slots are full they can still join as long as some of the regular player slots are available until a regular player joins.
     
  26. Offline

    Amrod

    here's my config file :
    Code:
    slots:
    #All default/new users.  Lowest priority and least likely to be able to join.
      - name: Touriste
        size: 1
        message: "Nombre de slot atteint pour les touristes"
        children: []
        permission: default
    
    #Registered members.  Can use default slots if Members slot group is full.
      - name: Citoyen
        size: 14
        message: "This server has no available slots!"
        children: ['Touriste']
        permission: member
    
    #Reserved slots.  High slot count and can inherit from members or default.
      - name: Maire
        size: 3
        message: "I'm sorry, but all available slots are occupied!"
        children: ['Citoyen']
        permission: special
    
    #Moderators.  Slots are equal to the number of moderators, but inheritance is
    #  enabled anyways.
      - name: Modo
        size: 2
        message: "No moderator slots available.  Please contact an admin to remedy this."
        children: ['Maire']
        permission: moderator
    
    #Admins.  Slots are greater than the number of admins, but inheritance is
    #  enabled anyways.
      - name: Admins
        size: 4
        message: "This server is well and truly full somehow."
        children: ['Modo']
        permission: admin
    
    I tried to add the permission slotgroups.group.<group> to each group like this :
    Code:
    groups:
        Touriste:
            default: true
            info:
                prefix: '&3'
                suffix: '&3'
                build: false
                rank: 0
            inheritance:
            permissions:
            - essentials.spawn
            - essentials.list
            - essentials.help
            - essentials.motd
            - essentials.rules
            - essentials.msg
            - essentials.helpop
            - essentials.me
            - slotgroups.group.Touriste
        Citoyen:
            default: false
            info:
                prefix: '&e'
                suffix: '&e'
                build: true
                rank: 0
                '1': ''
            inheritance:
            - Touriste
            permissions:
            - essentials.sethome
            - essentials.home
            - essentials.mail
            - essentials.mail.send
            - essentials.afk
            - iConomy.payment
            - war.player
            - iConomyChestShop.shop.buy
            - worldguard.region.info.own
            - worldguard.region.info.member
            - worldguard.region.flag.own.*
            - worldguard.region.addmember.own.*
            - worldguard.region.addowner.own.*
            - worldguard.region.removemember.own.*
            - essentials.signs.mail.use
            - lockette.user.create.*
            - multiverse.world.spawn
            - tetris.use
            - iConomyChestShop.shop.sell
            - essentials.signs.disposal.use
            - falsebook.blocks.gate
            - falsebook.blocks.bridge
            - falsebook.blocks.door
            - slotgroups.group.Citoyen
        Mage:
            default: false
            info:
                prefix: '&3'
                suffix: '&3'
                build: true
                rank: 0
                '1': ''
            inheritance:
            - Citoyen
            permissions:
            - essentials.sethome
            - essentials.home
            - essentials.mail
            - essentials.mail.send
            - essentials.afk
            - iConomy.payment
            - war.player
            - iConomyChestShop.shop.buy
            - craftbook.mech.*
            - worldguard.region.info.own
            - worldguard.region.info.member
            - worldguard.region.flag.own.*
            - worldguard.region.addmember.own.*
            - worldguard.region.addowner.own.*
            - worldguard.region.removemember.own.*
            - essentials.signs.mail.use
            - lockette.user.create.*
            - multiverse.world.spawn
            - tetris.use
            - iConomyChestShop.shop.sell
            - essentials.signs.disposal.use
            - slotgroups.group.Citoyen
        Maire:
            default: false
            info:
                prefix: '&6'
                suffix: '&6'
                build: true
                rank: 0
            inheritance:
            - Mage
            permissions:
            - essentials.clearinventory
            - essentials.getpos
            - essentials.realname
            - essentials.compass
            - essentials.depth
            - essentials.mail
            - essentials.mail.send
            - essentials.me
            - essentials.home
            - essentials.sethome
            - essentials.ping
            - essentials.whois
            - essentials.rules
            - essentials.sell
            - essentials.warp
            - essentials.warp.list
            - essentials.seen
            - slotgroups.group.Maire
        Modo:
            default: false
            info:
                prefix: '&2'
                suffix: '&2'
                build: true
                rank: 0
            inheritance:
            - Maire
            permissions:
            - essentials.time
            - essentials.kick
            - essentials.ban
            - essentials.mute
            - essentials.unban
            - essentials.warp
            - essentials.warplist
            - essentials.tp
            - essentials.tphere
            - lockette.admin.break
            - lockette.admin.snoop
            - lockette.admin.reload
            - essentials.tpohere
            - essentials.tpo
            - essentials.spawnmob
            - essentials.clearinventory.others
            - bb.admin.*
            - worldguard.region.list
            - worldguard.region.info
            - worldguard.region.remove
            - worldguard.region.addmember.*
            - worldguard.region.addowner.*
            - worldguard.region.removemember
            - worldguard.region.removeowner.*
            - essentials.invsee
            - permissions.group
            - essentials.signs.mail.create
            - essentials.warp.list
            - essentials.weather
            - essentials.tempban
            - essentials.seen
            - magiccarpet.mc
            - magiccarpet.ml
            - essentials.time.world
            - slotgroups.group.Modo
        Admin:
            default: false
            info:
                prefix: '&4'
                suffix: '&4'
                build: true
                rank: 0
            inheritance:
            - Modo
            permissions:
            - '*'

    But it doesn't work. Only when I'm in admin group (permission plugin) I'm in the admins slot groups.
    But for all the other groups(permissions ) they still are in slotgroup touriste :(

    can you tell me what I did wrong ?
     
  27. Offline

    gothroach

    Which version of Permissions are you running? It appears that there are some issues with Permissions 3.0 that I haven't yet resolved.

    I've been busy lately, but will be releasing a new version in the next couple of days that's nearly a complete recode of the main functions. Hopefully that'll fix the outstanding issues, in addition to making new feature easier.
     
  28. Offline

    Amrod

    I don't have permissions 3.0 I'm still on 2.7.
    I don't understand english very well (I'm french) but I think there's a problem with the line permission in the slotgroups configuration, but I don't understand how to configure it well.

    Is it possible for the next update to add an in-game command to config the groups of permissions (put a group in a slotgroup ) and add a line in the slotgroup config like enable=true/false for each slotgroups, to choose which slotgroups we want to use ?

    For my example I only want that the "touriste" group in permission have a restricted access to my server.
     
  29. Offline

    gothroach

    @Amrod

    I'm planning on making it so that you can simply add Permissions groups to slotgroups, making it easier to manage them. The permissions nodes for the groups will remain so that they can be applied to individual users. This will also make it much easier for me to make a good in-game system for managing the slotgroups.

    The configuration as-is isn't very intuitive; I wrote it for myself without other people in mind. That will be remedied with a much better config file format.
     
  30. Offline

    TehSkull

    I'm loving your plugin. It does exactly what I need it to do. I await the next version so it can work with Permissions 3.0. As it is right now, players can only log into the default group. Even our operators are stuck as the default group.
     

Share This Page