Commit Graph

395 Commits

Author SHA1 Message Date
Lion Kortlepel
931d94b7d8 start integrating lua with the rest 2024-02-06 17:50:22 +01:00
Lion Kortlepel
43429eadb3 fixup 2024-02-06 00:11:31 +01:00
Lion Kortlepel
6af471f025 start working on event handlers 2024-02-05 20:45:46 +01:00
Lion Kortlepel
5468e5c854 make the compiler happy 2024-02-05 20:22:22 +01:00
Lion Kortlepel
a0241d1b36 replace literally the entire lua engine 2024-02-05 19:49:39 +01:00
Lion Kortlepel
55fff0138b remove old lua stuff 2024-02-05 19:49:16 +01:00
Lion Kortlepel
94ea20b6b7 add AGPL-3.0 license header 2024-02-05 19:48:46 +01:00
Lucca Jiménez Könings
9c44c1fbe8 move undef macros into Compat.h
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lucca Jiménez Könings
cd9f8e3056 add FreeBSD build target
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lion Kortlepel
d0cc23333c ensure client stays referenced while referenced in thread pool 2024-01-26 10:32:41 +01:00
Lion Kortlepel
7d813f7562 use a single strand per client to avoid writing to tcp out of order 2024-01-25 08:52:11 +01:00
Lion Kortlepel
8654beb706 implement most of the Playing state, vehicle positions, vehicle data 2024-01-22 18:23:50 +01:00
Lion Kortlepel
630d5f1cfa implement session sync 2024-01-22 16:56:07 +01:00
Lion Kortlepel
bde689d31a implement fully async read and write with individual timeouts 2024-01-21 22:54:36 +01:00
Lion Kortlepel
303a619ece implement async accept, async read for tcp 2024-01-20 19:20:33 +01:00
Lion Kortlepel
b06991aaca migrate codebase to new network
marked non-implemented stuff with an exception
2024-01-19 17:34:36 +01:00
Lion Kortlepel
e0fe6693e0 implement vehicle specifics, code needed for the rest of the server 2024-01-19 17:33:53 +01:00
Lion Kortlepel
3de142a6d0 use boost::scoped_thread in IThreaded 2024-01-19 14:42:21 +01:00
Lion Kortlepel
9502048525 move packet to protocol 2024-01-17 14:59:45 +01:00
Lion Kortlepel
9e99177fcb implement compression and decompression 2024-01-17 14:52:09 +01:00
Lion Kortlepel
9ea0931e13 implement udp connection 2024-01-16 00:58:14 +01:00
Lion Kortlepel
e9805c3679 refactor identification to its own method 2024-01-15 22:22:27 +01:00
Lion Kortlepel
6a411171f9 start implementing parsing of packets server-side 2024-01-15 22:11:44 +01:00
Lion Kortlepel
4aca87d3e6 fully implement tcp and udp send and recv of packet types 2024-01-15 20:56:44 +01:00
Lion Kortlepel
7e9bb0cbf2 start rewriting networking 2024-01-15 20:39:32 +01:00
Lion Kortlepel
443871ec0f remove usages of weak_ptr 2024-01-11 14:30:25 +01:00
Lion Kortlepel
130e1acdb3 refactor client disconnect, client interation
anywhere a client is disconnected, TNetwork::Disconnect is called now.
Nothing else is valid.
ForEachClientWeak() was fully removed.
2024-01-11 14:14:34 +01:00
Lion Kortlepel
aa29d04b60 remove unused TVehicleDataLockPair 2024-01-11 14:14:34 +01:00
Lion Kortlepel
b9f73f77c3 major refactor of Client and Server
this refactor includes changes to TClient:

- all member fields are now public, but protected with Sync (an alias
  for boost::synchronized_value
- removed all (now) obsolete getters and setters

changes to TServer and TNetwork:

- thread-safe ID generation, previously it was possible for there to be
  ID duplicates. this is now solved by moving id generation and
  assignment into the same mutex locked context.
- deprecated ForEachClientWeak and replaced some usages of it with
  ForEachClient, getting rid of the weak_ptr shit in most places
- implemented a bunch of new functions for getting rid of more weak_ptr
  everywhere
2024-01-11 14:14:31 +01:00
Lion Kortlepel
c6aa7776fc make update message adjustable by provider 2024-01-09 17:41:05 +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
cebb2634a1 bump version 2024-01-08 17:43:54 +01:00
Lion Kortlepel
1f72a45231 bump version number 2023-12-29 01:43:03 +01:00
Lion Kortlepel
e724a2e467 Merge remote-tracking branch 'origin/master' into feature-tags 2023-12-28 13:57:49 +01:00
Lion Kortlepel
8cccbe8542 Merge remote-tracking branch 'origin/master' into 226-allow-env-to-override-serverconfig 2023-12-28 13:49:02 +01:00
Lion Kortlepel
6787843b37 pretty-print tags on startup 2023-12-28 12:58:29 +01:00
Lion Kortlepel
16d3c6f796 Merge remote-tracking branch 'origin/master' into feature-tags 2023-12-28 12:36:22 +01:00
Lion
c7e228fbae bump version to 3.2.0
due to new features like ENV reading this is now a feature release, so minor
2023-12-28 11:56:25 +01:00
Lion Kortlepel
89db370e12 use env variables by default to override config values 2023-12-25 16:16:01 +01:00
Lion Kortlepel
ac41547123 bump version to 3.1.4 2023-12-21 13:05:33 +01:00
Lion Kortlepel
81299db946 fix console initializing too early
the console was initialized too early, leading to the server waiting for
it to shut down if the authkey is invalid, among other issues.
2023-12-21 12:49:20 +01:00
Starystars67
dc4ead532d Changed default tag to Freeroam as that is the majority of servers. 2023-12-18 14:10:07 +00:00
Starystars67
8c73eb8aea Added Tags Feature to the BeamMP Server. This allows better filtering on the server list. 2023-12-10 12:50:24 +01:00
Lion Kortlepel
9f01268538 update version to 3.1.3 2023-12-09 20:01:53 +01:00
Lion Kortlepel
dea203c108 make IThreaded::~IThreaded virtual to make destruction happen 2023-12-05 18:03:13 +01:00
Lion Kortlepel
e245c9e9e2 fix pps monitor warning about virtual dtor 2023-12-05 18:02:35 +01:00
Lion Kortlepel
667da22b0e Merge remote-tracking branch 'origin/master' into new-buildsystem 2023-12-05 17:59:05 +01:00
Lion Kortlepel
a6eb2f7bfe switch to vcpkg+cmake, add debian build to workflows
using lionkor's template (MIT licensed)

This is a combination of 64 commits.
2023-12-05 17:57:19 +01:00
Lion Kortlepel
7f206fd0d4 bump version to 3.1.2 2023-12-03 17:49:12 +01:00