863 Commits

Author SHA1 Message Date
sla-ppy
5afc07b0b3 add RateLimiter class 2024-06-20 16:39:03 +02:00
sla-ppy
bc5e407d60 refactor dos protection 2024-06-20 07:28:55 +02:00
sla-ppy
df308c1dc5 Merge branch 'simple-dos-protected' of github.com:Igor20264/BeamMP-Server into simple-dos-protected 2024-06-18 16:49:04 +02:00
SaltySnail
277036fc52 fix not following naming convention 2024-06-16 03:00:18 +02:00
SaltySnail
e776848a76
Update src/Http.cpp
Co-authored-by: Lion <development@kortlepel.com>
2024-06-16 02:53:01 +02:00
SaltySnail
63fa65e9a7
Update src/Http.cpp
Co-authored-by: Lion <development@kortlepel.com>
2024-06-16 02:52:55 +02:00
SaltySnail
c07baeed1a add reusing Http connections 2024-06-16 02:45:53 +02:00
Lion
33b5384398
Add config setting to allow/deny guests (#335)
fix #247
2024-06-11 09:01:49 +02:00
SaltySnail
e94cfd641d remove debug print 2024-06-10 23:16:45 +02:00
SaltySnail
6e590ff18a fix naming of the ENV 2024-06-10 23:16:16 +02:00
SaltySnail
91bc7dea79
Update src/TNetwork.cpp
Co-authored-by: Lion <development@kortlepel.com>
2024-06-10 23:12:23 +02:00
Lion
8b94b1f0ef
Add an entry in serverconfig.toml for the time between update reminders (#329)
fix #321
2024-06-10 22:59:09 +02:00
SaltySnail
5dab48af92 fix #247, add allow guests config setting. 2024-06-10 22:06:09 +02:00
SaltySnail
c61816dfeb fix 0....2h being allowed as time format 2024-06-01 23:42:44 +02:00
sla-ppy
566f0b55f7 remove debug info 2024-05-28 14:53:19 +02:00
sla-ppy
58a7e39419 add more info to return to pkToUser endpoint 2024-05-28 14:15:41 +02:00
SaltySnail
bf7f1ef1a5 change update reminder frequency description to include an example of using a float 2024-05-25 21:59:34 +02:00
SaltySnail
e35bf4fe15 change TimeFromStringWithLiteral to work with floats 2024-05-25 21:43:54 +02:00
SaltySnail
29c3fed374 fix #321 2024-05-25 20:34:33 +02:00
sla-ppy
1b60e89f26 add lua info on LuaEngine startup 2024-05-24 12:31:01 +02:00
sla-ppy
06e5805428 change version cmd behaviour 2024-05-24 12:12:20 +02:00
Maximilian Rehms
7f54bcfaec
successful implemented suggested change to "lua_nil"
Co-authored-by: Lion <development@kortlepel.com>
2024-05-18 22:36:57 +02:00
Maximilian Rehms
40e5496819 compiles now on macos 2024-05-18 15:06:26 +02:00
Lion
5f9726f10f
Use hard disconnect instead of ClientKick in timeout (#320) 2024-05-11 13:00:25 +02:00
Lion
cf5ebcbd1a
Fix lua number (int vs double) handling, add lua unit tests for json encode + decode, fix empty array or table serializing to null (#319) 2024-05-11 12:19:13 +02:00
Lion Kortlepel
9f47978f0f
use hard disconnect insteadof clientkick 2024-05-11 12:17:02 +02:00
Lion Kortlepel
a0f649288e
fix lua number handling, add lua unit tests for json encode + decode 2024-05-10 15:54:52 +02:00
Lion Kortlepel
c5dff8b913
fix lua assertion on event argument passing
When adding elements to a table, the .add() function does not behave as
expected in various cases, making it really shit and difficult to use.
Instead, we keep our own index and just add one by one. It works, and
it's easy to understand.

This may lead to indices which are nil, i.e. non-fully-sequential
tables, but I can't be asked to worry about it because that shouldn't be
an issue when we use .set() everywhere.
2024-05-10 14:45:06 +02:00
Lion
586510041d
fix TriggerGlobalEvent not passing event arguments correctly (#307)
This is supposed to close #106 (The code is by @lionkor from
b068a9b48f)
2024-05-08 11:47:23 +02:00
Lion
1794c3fe45
Add Lua execution profiler Util.DebugExecutionTime() (#267)
Adds `Util.DebugExecutionTime()`, which returns a table of
`function_name: milliseconds`, in which each function's execution time
is averaged over all time.

You can call this function like so:
```lua
-- event to print the debug times
MP.RegisterEvent("printStuff", "printStuff")
-- prints the execution time of all event handlers
function printStuff()
	print(Util.DebugExecutionTime())
end
-- run every 5 seconds (or 10, or 60, whatever makes sense for you
MP.CreateEventTimer("printStuff", 5000)
```

Pretty print function:
```lua
function printDebugExecutionTime()
    local stats = Util.DebugExecutionTime()
    local pretty = "DebugExecutionTime:\n"
    local longest = 0
    for name, t in pairs(stats) do
        if #name > longest then
            longest = #name
        end
    end
    for name, t in pairs(stats) do
        pretty = pretty .. string.format("%" .. longest + 1 .. "s: %12f +/- %12f (min: %12f, max: %12f) (called %d time(s))\n", name, t.mean, t.stdev, t.min, t.max, t.n)
    end
    print(pretty)
end
```

`Util.DebugExecutionTime()` returns a table, where each key is an event
handler function name, and each value is a table consisting of `mean`
(simple average), `stddev` (standard deviation aka mean of the
variance), `min` and `max`, all in milliseconds, as well as `n` as the
number of samples taken.
2024-05-08 11:46:02 +02:00
Lion Kortlepel
40158dc252
fix compile error 2024-05-08 11:31:12 +02:00
Neptnium
5ece60574a
Make Plugin load order deterministic
fix typo "mResourceServerPath" named "mFolder"

Fix typo number 2
2024-05-08 11:31:05 +02:00
Neptnium
c605498a2d
Merge branch 'BeamMP:minor' into minor 2024-05-07 08:26:44 +02:00
Igor
f26b091042
Merge branch 'minor' into simple-dos-protected 2024-05-06 22:21:10 +03:00
sla-ppy
db8719b5cd fix timeout for synced players 2024-05-06 12:02:16 +02:00
Lion Kortlepel
cf8f10b949
add --port=value argument 2024-05-06 11:56:26 +02:00
Lion Kortlepel
6f50cad76b
add BEAMMP_PROVIDER_PORT_ENV to allow provider to change which ENV
variable the port is fetched from
2024-05-06 11:56:26 +02:00
Lion Kortlepel
234bdf5877
add ENV variable to disable config generation and parsing 2024-05-06 11:46:21 +02:00
Lion Kortlepel
5cf6d1d228
add Util.LogDebug 2024-04-20 20:16:57 +02:00
Lion Kortlepel
1237e7e533
add lua logging facilities as Util.Log*() functions 2024-04-19 11:10:50 +02:00
Neptnium
d81087b5af
fix TriggerGlobalEvent not passing event arguments correctly (closes #106) 2024-04-18 18:43:04 +02:00
Igor
a008015d78 add a simple DOS protection system 2024-03-29 10:56:05 +03:00
Lion Kortlepel
c85e026c2d
cleanup 2024-03-07 00:45:00 +01:00
Lion Kortlepel
e4826e8bf1
remove test code 2024-03-07 00:42:36 +01:00
Lion Kortlepel
590b159f14
switch to a runnning calculation for stdev and mean 2024-03-07 00:25:47 +01:00
Lion Kortlepel
40533c04bc add total calls to stats 2024-03-06 10:27:22 +01:00
Lion Kortlepel
946c1362e1 add custom profiling via Debug(Start|Stop)Profile 2024-03-06 10:27:22 +01:00
Lion Kortlepel
4347cb4af2 add min, max, stddev to stats 2024-03-06 10:27:22 +01:00
Lion Kortlepel
7deea900fb add Util.DebugExecutionTime 2024-03-06 10:27:22 +01:00
Lion Kortlepel
cbc1483537 add profiling code 2024-03-06 10:27:22 +01:00