95 lines
2.7 KiB
Markdown
95 lines
2.7 KiB
Markdown
# ConnectQueue
|
|
---
|
|
Easy to use queue system for FiveM with:
|
|
- Simple API
|
|
- Priority System
|
|
- Config
|
|
- Ability for whitelist only
|
|
- Require steam
|
|
- Language options
|
|
|
|
**Please report any bugs on the release thread [Here](https://forum.fivem.net/t/alpha-connectqueue-a-server-queue-system-fxs/22228) or through [GitHub](https://github.com/Nick78111/ConnectQueue/issues).**
|
|
|
|
## How to install
|
|
---
|
|
- Drop the folder inside your resources folder.
|
|
- Add `start connectqueue` inside your server.cfg. - *Preferrably at the top*
|
|
- Set convars to your liking.
|
|
- Open `connectqueue/server/sv_queue_config.lua` and edit to your liking.
|
|
- Renaming the resource may cause problems.
|
|
|
|
## ConVars
|
|
---
|
|
set sv_debugqueue true # prints debug messages to console
|
|
set sv_displayqueue true # shows queue count in the server name '[count] server name'
|
|
|
|
## How to use / Examples
|
|
---
|
|
To use the API add `server_script "@connectqueue/connectqueue.lua"` at the top of the `__resource.lua` file in question.
|
|
I would also suggest adding `dependency "connectqueue"` to it aswell.
|
|
You may now use any of the functions below, anywhere in that resource.
|
|
|
|
### OnReady
|
|
This is called when the queue functions are ready to be used.
|
|
```Lua
|
|
Queue.OnReady(function()
|
|
print("HI")
|
|
end)
|
|
```
|
|
All of the functions below must be called **AFTER** the queue is ready.
|
|
|
|
### OnJoin
|
|
This is called when a player tries to join the server.
|
|
Calling `allow` with no arguments will let them through.
|
|
Calling `allow` with a string will prevent them from joining with the given message.
|
|
`allow` must be called or the player will hang on connecting...
|
|
```Lua
|
|
Queue.OnJoin(function(source, allow)
|
|
allow("No, you can't join")
|
|
end)
|
|
```
|
|
|
|
## AddPriority
|
|
Call this to add an identifier to the priority list.
|
|
The integer is how much power they have over other users with priority.
|
|
This function can take a table of ids or individually.
|
|
```Lua
|
|
-- individual
|
|
Queue.AddPriority("STEAM_0:1:33459672", 100)
|
|
Queue.AddPriority("steam:110000103fd1bb1", 10)
|
|
Queue.AddPriority("ip:127.0.0.1", 25)
|
|
|
|
-- table
|
|
local prioritize = {
|
|
["STEAM_0:1:33459672"] = 100,
|
|
["steam:110000103fd1bb1"] = 10,
|
|
["ip:127.0.0.1"] = 25,
|
|
}
|
|
Queue.AddPriority(prioritize)
|
|
```
|
|
|
|
## RemovePriority
|
|
Removes priority from a user.
|
|
```Lua
|
|
Queue.RemovePriority("STEAM_0:1:33459672")
|
|
```
|
|
|
|
## IsReady
|
|
Will return whether or not the queue's exports are ready to be called.
|
|
```Lua
|
|
print(Queue.IsReady())
|
|
```
|
|
|
|
## Other Queue Functions
|
|
You can call every queue function within sh_queue.lua.
|
|
```Lua
|
|
local ids = Queue.Exports:GetIds(src)
|
|
|
|
-- sets the player to position 1 in queue
|
|
Queue.Exports:SetPos(ids, 1)
|
|
-- returns whether or not the player has any priority
|
|
Queue.Exports:IsPriority(ids)
|
|
--- returns size of queue
|
|
Queue.Exports:GetSize()
|
|
-- plus many more...
|
|
``` |