Commit Graph

791 Commits

Author SHA1 Message Date
20dka
66f014ae42 add autocomplete for lua,kick,settings commands 2022-11-23 09:34:50 +01:00
20dka
12245d81a1 fix compilation error and use boost for string lowercase 2022-11-23 09:34:50 +01:00
20dka
a6e0332e3c add command 'quit' as alternative to 'exit' 2022-11-23 09:34:50 +01:00
20dka
c461a63d9d update client pointer lock approach 2022-11-23 09:34:50 +01:00
20dka
69726a9b03 add owner check to other vehicle packets 2022-11-23 09:34:50 +01:00
20dka
9acb6951d6 add owner check to position packets 2022-11-23 09:34:50 +01:00
Lion Kortlepel
6ebfe5743c add :Wait(timeout_s) function to the result of MP.TriggerGlobalEvent 2022-11-23 09:34:50 +01:00
Lion Kortlepel
3c138e2891 change date format from d/m/y to Y/m/d 2022-11-23 09:34:50 +01:00
Lion Kortlepel
2279ba4d6b attempt to report errors from event triggers 2022-11-23 09:34:50 +01:00
Lion Kortlepel
30b038a6bb revert adding nil to json
it causes issues, not worth it
2022-11-23 09:34:50 +01:00
Lion Kortlepel
06b238d63f remove unused code 2022-11-23 09:34:50 +01:00
Lion Kortlepel
1856dd2002 fix various little things in the json encode and decode 2022-11-23 09:34:50 +01:00
Lion Kortlepel
b068a9b48f fix TriggerGlobalEvent not passing event arguments correctly (closes #106) 2022-11-23 09:34:50 +01:00
Lion Kortlepel
e8d66ef983 add git hash to version print on startup
this helps us debug issues
2022-11-23 09:34:50 +01:00
Lion Kortlepel
7f47337e1b modify authkey notice to mention the possibility of entering an invalid key
this makes it clear that you may put anything as your key, as long as
you only want private servers.
2022-11-23 09:34:50 +01:00
Lion Kortlepel
b0b4dc51b0 fix crash when the header of a TCP packet is negative 2022-11-23 09:34:50 +01:00
Lion Kortlepel
7abfae425d move around includes to satisfy the magical msvc 2022-11-23 09:34:50 +01:00
Lion Kortlepel
4791af4453 use system_clock::to_time_t instead of high_resolution_clock::* 2022-11-23 09:34:50 +01:00
Lion Kortlepel
c51d713969 add uuid source files
were missed last commit related to uuids
2022-11-23 09:34:50 +01:00
Lion Kortlepel
9e469b04f1 add Util.GenerateUUID lua api
This api generates a pseudorandom RFC 4122 compliant UUID
(https://www.ietf.org/rfc/rfc4122.txt). It's pseudorandom, so it is
*unlikely* to have collisions.
2022-11-23 09:34:49 +01:00
Lion Kortlepel
96273e1d06 fix invalid include, reformat TConsole 2022-11-23 09:34:49 +01:00
Lion Kortlepel
c717037895 add debug command to track statistics and debug client connections
The `debug` command shows info useful to develpers of the client and
server
2022-11-23 09:34:49 +01:00
Lion Kortlepel
692129cb81 add ToHumanReadableSize, which formats data sizes into MiB, GiB, etc.
this is needed in order to display data sizes in upcoming changes
related to tracking statistics about the server's performance
2022-11-23 09:34:49 +01:00
Lion Kortlepel
6842dccfc3 rework UDP recv loop, add packet statistics tracking
The UDPServerMain was badly designed and had multiple potential bugs and
unexpected & silent failures. The changes simplify the code here, and
tracks those unexpected failures in app-wide statistics. Also added,
while at that, some more tracking of how many packets and bytes are
sent & received per client
2022-11-23 09:34:49 +01:00
Lion Kortlepel
48ce7c9721 add settings set/get/list/help console command
this makes use of the new settings-in-a-hashmap in order to make
changing any settings (except authkey) easy.
2022-11-23 09:34:49 +01:00
Lion Kortlepel
bec09a4761 change settings to be a hash map instead of a fixed struct
this makes adding settings and changing settings incredibly easy, both
from the console and from lua.
2022-11-23 09:34:49 +01:00
Lion Kortlepel
b10d5d0f4e fix empty events causing issues in the server
an empty event packet, if sent just right, could crash the server
2022-10-31 11:31:15 +01:00
Lion Kortlepel
5581fd1692 fix chat message impersonation issue
instead of using the supplied name, we ignore it entirely and use the
server's internal name for the client
2022-10-31 11:31:15 +01:00
Lion Kortlepel
d36bb7962c ignore empty chat messages
this could happen with a malicious client of some kind, we should simply
ignore them
2022-10-31 11:31:15 +01:00
Lion Kortlepel
4e8bd993d5 remove J packet handler
it wasn't used by anything in the launcher, mod, or during the join
sequence, so i removed it for now.
2022-10-31 11:31:15 +01:00
Lion Kortlepel
abff9bfbdb fix crash when chat message is malformed 2022-10-31 11:31:15 +01:00
Lion Kortlepel
b024533f90 fix crash when the header of a TCP packet is negative 2022-10-31 11:31:15 +01:00
Lion Kortlepel
f9251ff92c add more warning prints on unexpected cases 2022-10-31 11:31:15 +01:00
Lion Kortlepel
99f41c28cb fix #135 by making onPlayerDisconnect blocking, and calling it before removing the player
before, the handlers were not waited for, so the client was usually
destructed before lua got to the actual event handler call. Now, the
handler is called and waited on, and once all handlers are done, the
client is properly removed from the players internally, thus making
calls to GetPlayerName, GetPlayerIdentifiers, etc. return nil etc.
2022-10-31 11:31:15 +01:00
Lion Kortlepel
bbd27c9cba fix formatting bug in status (closes #143) 2022-10-31 11:31:15 +01:00
Lion Kortlepel
2b61f11a86 fix EnsureArgsCount not properly printing min/max 2022-10-31 11:24:13 +01:00
Lion Kortlepel
917c501faf fix typo causing beammp forum id not to show in identifiers (fix #137) 2022-10-22 21:16:31 +02:00
Lion Kortlepel
bdf2da758c remove pps from heartbeat
"PPS has no meaning anymore and is completely irrelevant. You should
ignore it, it is not an indicator of ANYTHING. If it’s high, that means
NOTHING. If it’s low, that means NOTHING. If it’s -, that means
NOTHING."

It's packets per second per player per vehicle, but is only sent every
30 seconds, its not averaged, and on the client-side, it shows a ping
icon next to it.

A client can open a new connection to the server and send a `P`, and
measure the time to the `P` response packet. The connection is then
closed. This was added ages ago, please use this instead for ping :)
2022-10-17 14:05:51 +02:00
Lion Kortlepel
92632b53b5 fix binary data breaking in UDPRcvFromClient 2022-10-15 23:30:09 +02:00
Lion Kortlepel
87965433c2 change log levels of common warnings and errors to debug
this hides a lot of the "standard" errors we get behind the debug flag.
for example, disconnecting a disconnected player would be such an error
2022-10-15 23:16:16 +02:00
Lion Kortlepel
75ff9f7571 remove "backend response failed to parse as valid json" 2022-10-15 23:16:16 +02:00
Lion Kortlepel
94c0547a35 fix crash when the client disconnects while sending first identify setting 2022-10-15 23:16:16 +02:00
Lion Kortlepel
54730d2baf remove heartbeat spam logging 2022-10-15 23:16:16 +02:00
Lion Kortlepel
064e71e59f fix client version check 2022-10-15 23:16:16 +02:00
Lion Kortlepel
4320a91e5c use message() instead of what() for ec 2022-10-15 23:16:16 +02:00
Lion Kortlepel
7d1318653c fix boost::system::error_code 2022-10-15 23:16:16 +02:00
Lion Kortlepel
67d02d4cf2 remove unused error check 2022-10-15 23:16:16 +02:00
Lion Kortlepel
cc6b7846b2 add system include 2022-10-06 00:51:51 +02:00
Lion Kortlepel
88f5db514f remove unused headers 2022-10-06 00:46:35 +02:00
Lion Kortlepel
e595192829 rename header to boost errc 2022-10-06 00:43:17 +02:00