Commit Graph
100 Commits
Author SHA1 Message Date
Lion a9385c47e1 Adjust allow guests feature in heartbeat to follow Backend#33 (#341)
https://github.com/BeamMP/Backend/issues/33
2024-06-20 09:00:13 +02:00
Lion 1e9c4e357c adjust allow guests feature in heartbeat to follow Backend#33
https://github.com/BeamMP/Backend/issues/33
2024-06-20 08:58:58 +02:00
Lion a998a7c091 Reuse HTTP connections (#339)
fix #223
2024-06-16 03:10:29 +02:00
Lion 33b5384398 Add config setting to allow/deny guests (#335)
fix #247
2024-06-11 09:01:49 +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
Lion 2fcb53530a Add more info to return to backend's /pkToUser endpoint (#332)
Features added were tested through a custom client (since @sla-ppy is
too cheap to own the game) with @lionkor while pair programming.

Fixes: #303
2024-06-01 12:25:01 +02:00
Lion 93192fd9b5 Fix #326 Arch Compile Issue "copy_n is not a member of 'std';" (#327)
added ```#include <algorithm>``` to Common.h, needed for "copy_n"
2024-05-24 23:01:48 +02:00
Lion a3670bff4a Add platform, lua, openssl version to version command, show lua version on startup (#325)
Closes #300
2024-05-24 12:58:30 +02:00
Lion fd2f713485 bump version 2024-05-21 08:52:05 +02:00
Lion c880460a55 Fix macos compile Issue (#324)
Related [Issue 206](https://github.com/BeamMP/BeamMP-Server/issues/206)
2024-05-19 12:57:49 +02:00
Lion 5f9726f10f Use hard disconnect instead of ClientKick in timeout (#320) 2024-05-11 13:00:25 +02:00
Lion Kortlepel fcd408970b always initialize ping timer 2024-05-11 12:44:41 +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 c9d926f9e3 Fix Lua assert error when adding values to tables (e.g. in event arguments) (#318)
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-11 12:18:56 +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 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 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
https://github.com/BeamMP/BeamMP-Server/commit/b068a9b48f21cc80c6aa2ae3580fc9a5e3d411e0)
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
Lion 4d7967d5d9 bump version (#314) 2024-05-06 14:37:50 +02:00
Lion Kortlepel 5dd4c97ed1 bump version 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
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
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
Lion bef623a281 Fix assigment of ID's so two unique users dont get the same ID (#277)
Closes #154
2024-02-08 23:58:18 +01:00
Lion 5f5af9b0a7 Add version command (#274)
closes #148
2024-02-07 21:51:41 +01:00
Lion e72c217e63 Remove all unused platforms from FUNDING.yml 2024-01-25 12:14:25 +01:00
Lion 75bae8ee5a Create FUNDING.yml 2024-01-25 12:14:25 +01:00
Lion b9c9f22feb Update README.md 2024-01-23 21:04:37 +01:00
Lion a3ca9573a5 Update LICENSE 2024-01-23 21:00:11 +01:00
Lion Kortlepel aff537afdf add AGPL-3.0 license header 2024-01-23 21:00:11 +01:00
Lion Kortlepel acc2dd29e9 update lionkor/commandline to v2.4.2
this fixes stdin/stdout redirect on windows
2024-01-23 19:19:29 +01:00
Lion 39badf432d remove whitespace 2024-01-17 13:15:30 +01:00
Lion Kortlepel 9915c83363 fix release arm64 workflow 2024-01-15 14:49:17 +01:00
Lion Kortlepel 9f5a30a871 fix windows build wrongly calling vcpg from the submodule 2024-01-15 14:49:17 +01:00
Lion Kortlepel 6832fd05d6 remove --build-id=none from build flags 2024-01-15 14:49:17 +01:00
Lion Kortlepel c6aa7776fc make update message adjustable by provider 2024-01-09 17:41:05 +01:00
Lion b0f5976121 Update release.yml to fix release message 2024-01-09 15:35:47 +01:00
Lion Kortlepel 1bd47fa649 add noninteractive flag for debian/ubuntu 2024-01-09 15:35:47 +01:00
Lion Kortlepel 0e924d0d51 fix bootstrap call 2024-01-09 15:35:47 +01:00
Lion Kortlepel 70a7a41882 add vcpkg bootstrap step 2024-01-09 15:35:47 +01:00
Lion Kortlepel 6ee816d10d add lua to vcpkg dependencies on windows 2024-01-09 15:35:47 +01:00
Lion Kortlepel 8695413211 add ubuntu 20.04, debian 12 scripts 2024-01-09 15:35:47 +01:00
Lion Kortlepel 52c5a995cc fix wrong action dependency 2024-01-09 15:35:47 +01:00
Lion Kortlepel 9d5568dc56 make all ci/cd build actions matrix generic 2024-01-09 15:35:47 +01:00
Lion c62a1b6add add arm64 builds to github actions
Update linux.yml to build ARM64 binaries for debian11

update linux.yml to fix incorrect runs-on tags

add ubuntu 22.04 arm64 build

Update linux.yml

Update linux.yml

Update linux.yml

Update linux.yml

Update linux.yml

Update linux.yml

Update 2-configure.sh

Update 2-configure.sh

Update 1-install-deps.sh

Update 1-install-deps.sh

Update 2-configure.sh

Update 2-configure.sh

Update linux.yml

use get-cmake

update vcpkg

force arm64 triplet
2024-01-09 15:35:47 +01:00
Lion Kortlepel 4228e18c90 reset default ID to 0 2024-01-09 15:34:33 +01:00
Lion Kortlepel 023e968302 refactor position packet handling, add regression tests 2024-01-09 15:34:33 +01:00
Lion Kortlepel a4eb10b6a4 fix MP.GetPositionRaw 2024-01-09 15:34:33 +01:00
Lion Kortlepel 0166e488d0 fix calling GlobalParser as static 2024-01-09 15:34:33 +01:00
Lion Kortlepel 0836fd3af8 fix bug in HandlePosition which caused the vehicle position not to be
saved properly
2024-01-09 15:34:33 +01:00
Lion Kortlepel 9791b8875c fix wrong order of SendErrorsShowMessage and SendErrors 2024-01-09 15:34:16 +01:00
Lion 01e8a1644a Bump version to v3.2.2 (#253) 2024-01-08 19:40:00 +01:00
Lion Kortlepel cebb2634a1 bump version 2024-01-08 17:43:54 +01:00
Lion 21a7ca1b64 Update README.md to remove mention of scripts and add ARM instructions (#243) 2023-12-30 15:07:39 +01:00
Lion bd4ab2b10d Update README.md 2023-12-30 10:22:12 +01:00
Lion 1cdc8e8f48 bump version number (#241) 2023-12-29 01:43:40 +01:00
Lion Kortlepel 1f72a45231 bump version number 2023-12-29 01:43:03 +01:00
Lion 002223afda Fix Server.log empty when stdout or stdin redirected (#235) 2023-12-28 21:27:44 +01:00
Lion Kortlepel ecc79b1918 update commandline to fix redirect issue 2023-12-28 21:23:31 +01:00
Lion d5000aea87 Remove changelog (#232)
now fully replaced by github releases due to issue-based workflow
2023-12-28 14:25:42 +01:00
Lion 810788a3e4 Add Tags Feature (#192)
This PR adds a tags functionality to the BeamMP server config and
heartbeat.
The intended purpose of this is to enable better filtering on the server
list based on keywords such as gamemode or roleplay.
2023-12-28 13:58:59 +01:00
Lion Kortlepel e724a2e467 Merge remote-tracking branch 'origin/master' into feature-tags 2023-12-28 13:57:49 +01:00
Lion Kortlepel 54ba295fce remove changelog
now fully replaced by github releases due to issue-based workflow
2023-12-28 13:53:32 +01:00
Lion f419550061 Allow env to override serverconfig (#227) 2023-12-28 13:51:00 +01:00