LetMeIn

I've create this plugin because I needed a nice way to handle many, many players trying to join the server when it's full.

LetMeIn was created thinking on survival servers that can't use BungeeCord for waiting lobbies and needs to reject connections when the server is full. LetMeIn will organized a prioritized queue outside the server and will only let the head players to get in, it will also show nice information about the queue in the kick and ping messages.

Features

  • Everything is configurable
  • Multiple priority level suport
  • Priority is given using your permission system
  • No lag. 99% of the work is done outside the main server thread.
  • Kick players to open slot for a donor, if you give permission for that
  • Allow players to enter the server even when it is full, without kicking anybody
  • Made in Pure Bukkit, supports any server software with Bukkit support, including Cauldron / MCPC+ / Thermos
  • Compatible. It does only simple interactions with the Bukkit API, you might be able to use it fine in all future Bukkit versions, all we need is UUID support and Vault.
  • Show how many players you've skipped
  • Show how many players have skipped you

Requeriments

  • Vault
  • Any permission plugin that can provide permission when the player is offline, PermissionsEX can do that.

Configuration

# PLEASE NOTE: This plugins requires Vault and a Vault compatible plugin that can check permissions when a player is offline!
# Bukkit's superperms is NOT supported because it requires the player to be online.
#
# The maximum priority value that is scanned when a player is added to the join queue
# Higher values allows you to set higher priority levels but will increase the numer of calls to the permission plugin
# The default value allows you to set the following permissions:
#   letmein.priority.3
#   letmein.priority.2
#   letmein.priority.1
#
# If a player has multiple priority permissions then the highest one
# will be used as long as it's equals or below the max value bellow
# [Default: 3] [Recommended: 1 ~ 10] [Min: 1] [Max: 2147483646]
max-priority: 3

# The priority value that is given to a player who does not have any priority permission
# Increase this if you need to assign negative priority to specifc players.
# This value can be higher than max-priority
# [Default: 0] [Recommended: 0 ~ 10] [Min: 0] [Max: 2147483646]
default-priority: 0

# Players will be able to join when they reach this position
# This will allow the queue to run faster.
# [Default: 5] [Recommended: 2 ~ 5] [Min: 1] [Max: 2147483647]
allow-to-join-post: 5

# The message file will be created after this config file is loaded
language: en

# If the player does not reconnect after this amount of time, the player will be removed from the queue
# The clients should have an auto join mod
# [Unit: Seconds] [Default: 30] [Min: 1] [Max: 2147483647]
timeout: 30

# We will be getting permissions from earlier states of the connection, the player will not be authenticated yet
# so UUIDs might be incorrect, specially if a cracked player attempts to join, so how should we get the UUID?
# Should we trust the UUID privided in the AsyncPlayerPreLogin event or should we get it by the login name?
# Please note that cracked players can type any username as they which, including invalid ones, so both them are unsafe.
# The UUID method works better on online:true servers, if a cracked player join the queue he will fail to authenticate later
# The nick method might work better on online:false
# [Default: uuid] [Options: uuid, nick]
get-player-by: uuid

Permissions

## Please note that Bukkit's SuperPerms is not supported, the permissions bellow are merely informative
permissions:

  letmein.disabled:
    description: |
      LetMeIn will ignore player connections when the player has this permission, the connection will be processed as if LetMeIn wasn't there.
      The player may still be kicked by an other player with letmein.kick permission,
      so you still need to give letmein.protected if you want to completely disable this plugin for him

  letmein.protected:
    description: A player with this permission will never be kicked to allow an other player to join

  letmein.kick:
    description: |
      When a player with this permission is near the head of the queue (value defined in allow-to-join-post config)
      a player without letmein.protected permission may be kicked to allow this player join quicker.
      The player is NOT randomly choosen, players without letmein.protected enters in a kick queue when they join the server
      this grants that only the longest sessions will be kicked. You can also define timed protection after the player join
      in the configs.

  letmein.staff:
    description: Allow a player to join when the server is full, skiping the queue and ignoring the server limits

  letmein.priority.1: # The number can be increased to give higher priority
    description: |
      By default the players have priority zero, if you assign a higher permission then the player will be
      able to skip players with lower priority in the queue. Increase the number to give higher permissions.
      The number must be between 1 and the max priority defined in the config, both numbers are inclusive.

Commands

No commands yet.


Comments

Posts Quoted:
Reply
Clear All Quotes

About This Project

Categories

Members

Recent Files

Bukkit