1360 Commits

Author SHA1 Message Date
Lion Kortlepel
b995a222ff
bump version 2024-05-10 14:57:22 +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
0c740ccedf
bump version v3.4.0 2024-05-08 12:01:33 +02:00
Lion
b0cf5c7838
Fix lua assertions crashing the server (#198)
The server would crash on a Lua plugin ASSERT() - this now instead
prints an error. May still lead to weird behavior, but less weird than a
crash.
2024-05-08 11:48:56 +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
ee599e970d
Make Plugin load order deterministic (alphabetic) (#315)
Add Feature / Fix: #306
2024-05-08 11:31:34 +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
Lion
4d7967d5d9
bump version (#314) 2024-05-06 14:37:50 +02:00
Lion Kortlepel
5dd4c97ed1
bump version v3.3.0 2024-05-06 14:37:34 +02:00
Lion
13390c5388
Remove backup1, backup2 backend endpoints (#313) 2024-05-06 12:05:30 +02:00
Lion Kortlepel
2f995a71ae
remove backup1, backup2 endpoints 2024-05-06 12:04:56 +02:00
Lion
3b5c6491a3
Fix timeout for synced players (#289)
Fix: #275.

While I was at it, I also refactored the debug output so its more
appealing to read.

I dont see further ways to improve on this currently.
2024-05-06 12:02:31 +02:00
sla-ppy
db8719b5cd fix timeout for synced players 2024-05-06 12:02:16 +02:00
Lion
a3c4b82a5d
Allow provider to define server port ENV via BEAMMP_PROVIDER_PORT_ENV (#244) 2024-05-06 11:59:28 +02:00
Lion Kortlepel
3b0e49fb06
add /bigobj to fix compiling on windows 2024-05-06 11:56:26 +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
03d91b1f4d
Disable server config generation via ENV variable BEAMMP_PROVIDER_DISABLE_CONFIG (#240) 2024-05-06 11:53:57 +02:00
Lion Kortlepel
e407d246e2
update vcpkg 2024-05-06 11:47:00 +02:00
Lion Kortlepel
234bdf5877
add ENV variable to disable config generation and parsing 2024-05-06 11:46:21 +02:00
Lion
c3b4528c89
Add lua Util.LogInfo(), Util.LogError(), etc. functions (#309)
```lua
Util.LogInfo("Hello, World!")
Util.LogWarn("Cool warning")
Util.LogError("Oh no!")
Util.LogDebug("hi")
```
now produces

```
[19/04/24 11:06:50.142] [Test] [INFO] Hello, World!    
[19/04/24 11:06:50.142] [Test] [WARN] Cool warning    
[19/04/24 11:06:50.142] [Test] [ERROR] Oh no!
[19/04/24 11:06:50.142] [Test] [DEBUG] hi
```

where `Test` is the lua state id.
2024-05-06 11:39:12 +02:00
Lion Kortlepel
5cf6d1d228
add Util.LogDebug 2024-04-20 20:16:57 +02:00
Lion Kortlepel
65017d0834
add lua log to test common 2024-04-19 11:35:39 +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
Lion Kortlepel
7e1f86478d
make mutex mutable 2024-03-07 01:03:16 +01: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
88721d4f7f add boost circular buffer to dependencies 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
Lion
e2d7721438
Update lionkor/commandline to v2.4.2 (#265)
This fixes stdin/stdout redirect on windows.
2024-02-24 20:41:17 +01:00
Lion
0146a1cbe8
Housekeeping (#293) 2024-02-24 20:36:12 +01:00
Lion Kortlepel
352a3aa536
update contributing 2024-02-15 17:38:21 +01:00
Lion Kortlepel
ac8c386c61
run gh workflows on PR and push differently 2024-02-15 17:38:21 +01:00
Lion Kortlepel
d1fb15fc9a
run ci/cd on PR open, reopen and ready for review 2024-02-15 17:38:21 +01:00
Lion Kortlepel
f376d9f7be
update vcpkg 2024-02-15 17:38:21 +01:00
Lion Kortlepel
2f3dcfeb5a
update commandline 2024-02-15 17:38:21 +01:00
Lion
913ba1c793
Link to the docs instead of the wiki in ServerConfig.toml (#291)
Changed the update message as well.
Closes #290
2024-02-15 12:38:48 +01:00
Lion
9a0c9d3ce4
Fix unicycle counting as car (#288)
Fixes #246.
2024-02-15 10:13:49 +01:00
sla-ppy
a0d9be18b7 documentate unicycle dirty fix 2024-02-14 13:51:37 +01:00
alex.ita
87d2e3355a
Update Common.cpp 2024-02-14 11:56:02 +01:00
alex.ita
afb3763eab
Update TConfig.cpp 2024-02-14 11:51:24 +01:00