furo
b475c67039
Various improvements to announcements
2024-09-18 12:16:29 +02:00
furo
8b27a6e852
Add hot_reload
to reload map while preserving state
2024-08-27 01:19:40 +02:00
furo
f897af8dbb
Use CJsonWriter
for creating server info JSON
2024-08-23 20:07:11 +02:00
heinrich5991
87aa251d73
Don't show "you've been banned" for VPN bans
...
Players are supposed to turn of their VPN or complain to the admins if
they get banned for using a VPN. Calling this "banned" seems to be
confusing, as players ask for an unban even after they turned off the
VPN.
2024-08-20 16:51:37 +02:00
Dennis Felsing
082580f586
Don't show ban time for vpn bans
2024-08-05 20:27:16 +02:00
Zwelf
af4da41c4c
Record Player and Team finishes in Teehistorian
2024-05-04 21:40:06 +02:00
Zwelf
fcd8aae388
Record player name in Teehistorian files
2024-05-04 20:44:20 +02:00
Dennis Felsing
d028756bbb
Revert "Record player name in Teehistorian files"
...
This reverts commit 783f4e3093
.
2024-04-16 12:41:14 +08:00
Dennis Felsing
6c9af4d2cc
Revert "Record Player and Team finishes in Teehistorian"
...
This reverts commit ece1ec07f5
.
2024-04-16 12:41:10 +08:00
Zwelf
ece1ec07f5
Record Player and Team finishes in Teehistorian
2024-04-16 00:50:05 +02:00
Zwelf
783f4e3093
Record player name in Teehistorian files
2024-04-16 00:50:05 +02:00
heinrich5991
17402cc43f
Rename all variables for strict camel-casing of abbreviations
...
This is the strict version, ID → Id, UI → Ui, except DDNet which stays
DDNet.
This would fix #7750 .
Done using a naive rename script (for bash, use `shopt -s globstar`):
```fish
sed -i \
-e 's/\([a-z]_\?\)ID/\1Id/g' \
-e 's/\([^ ]\)\<UI\>/\1Ui/g' \
-e 's/UI()/Ui()/g' \
-e 's/\<CUI\>/CUi/g' \
-e 's/\([\ta-z.(&]\|[,=|] \)ID\>/\1Id/g' \
-e 's/\<ID\>\([^ ").]\)/Id\1/g' \
-e 's/\<ID\([0-9]\)/Id\1/g' \
-e 's/\<ID\>\( [<=>:+*/-]\)/Id\1/g' \
-e 's/int ID/int Id/g' \
-e 's/\([a-z]_\?\)GPU/\1Gpu/g' \
-e 's/\([a-z]_\?\)IP/\1Ip/g' \
-e 's/\([a-z]_\?\)CID/\1Cid/g' \
-e 's/\([a-z]_\?\)MySQL/\1Mysql/g' \
-e 's/MySql/Mysql/g' \
-e 's/\([a-xz]_\?\)SQL/\1Sql/g' \
-e 's/DPMode/DpMode/g' \
-e 's/TTWGraphics/TTwGraphics/g' \
\
-e 's/Ipointer/IPointer/g' \
-e 's/\.vendorId/.vendorID/g' \
-e 's/\.windowId/.windowID/g' \
-e 's/SDL_GetWindowFromId/SDL_GetWindowFromID/g' \
-e 's/SDL_AudioDeviceId/SDL_AudioDeviceID/g' \
-e 's/SDL_JoystickId/SDL_JoystickID/g' \
-e 's/SDL_JoystickInstanceId/SDL_JoystickInstanceID/g' \
-e 's/AVCodecId/AVCodecID/g' \
src/**/*.cpp src/**/*.h {datasrc,scripts}/**/*.py
git checkout -- src/engine/external
```
I like this option because it presents clear rules.
Still needs fixups because of the naive replacement, I'd do this if we
want this merged.
2024-03-05 15:44:09 +01:00
heinrich5991
bf0f699b42
ClientEmpty
→ ClientSlotEmpty
...
Makes it clearer to me, didn't know what an empty client is supposed to
be.
CC #7968
2024-02-19 21:36:21 +01:00
Robert Müller
be98c17738
Make it less likely that antibot message is sent from random tees
...
Instead of sending the message from the first client which is not ingame, choose the first client which is fully empty, to make it less likely that the message is sent from a currently connecting client.
2024-02-11 22:12:15 +01:00
furo
1a94aa6d8a
Use 0.7 translation layer for Sv_RaceFinish
netmessage.
2023-12-29 08:33:36 +01:00
heinrich5991
be53d83019
Remove #include <system.h>
from one more header
2023-12-12 00:44:46 +01:00
furo
d9a726eb48
Stop all recording of server demos on shutdown.
2023-12-02 11:10:20 +01:00
Robert Müller
5aa9003180
Remove unused ver
parameter of MACRO_INTERFACE
2023-11-28 21:46:03 +01:00
Robert Müller
794e6b750b
Also apply name bans to clans, trim space from clans
...
Apply the name bans system also to player clans, meaning players joining with banned clan names are kicked and changing the clan to a banned name while ingame has no effect.
Additionally, trim UTF-8 whitespace from beginning and end of clan. This was already done for player names but not for clans.
Closes #7516 .
2023-11-25 23:00:57 +01:00
furo
9627e7b3a8
Simplify TickSpeed getters
2023-11-23 15:33:30 +01:00
Robert Müller
29a32b7acc
Use const char *
instead of char const *
consistently
...
Both are equivalent. Seems to already be used consistently for all other types.
2023-11-20 22:26:19 +01:00
heinrich5991
330d1ebaf6
Add possibility to persist game data past map changes
2023-08-27 16:11:45 +02:00
heinrich5991
84948adad1
Allow antibot to record data into teehistorian
2023-08-25 14:26:09 +02:00
Zwelf
3c2d8afff6
Create new teehistorian event for player rejoin
2023-08-25 00:42:54 +02:00
Zwelf
d7164211e6
Rename OnClientEngineJoin and OnClientEngineDrop to make the name fit its usage
2023-08-15 22:22:42 +02:00
ChillerDragon
e3afe0dba4
Allow server to redirect clients
...
This is a preperation for #6754 (redirect players on map vote)
And an implementation of #5662 (redirect players)
2023-07-27 11:30:11 +02:00
Edgar
1d30462e50
clean time score handling, with positive time values
2023-05-22 16:36:46 +02:00
Alexander Akulich
2ad5c020e0
Add a simpler IServer::SnapNewItem() API based on some more generated data
2023-02-10 23:12:24 +03:00
heinrich5991
05f2c1e43f
Hand the client IP addresses to the antibot module
2023-01-11 01:35:50 +01:00
Edgar
4a506f03a6
report extra player info to master http
2022-11-14 08:04:34 +01:00
Robert Müller
5c2f162da2
Remove unused DemoRecorder_IsRecording
method
2022-08-25 17:57:03 +02:00
Alexander Akulich
301355d588
engine/server.h: Remove outdated comment
2022-08-15 15:05:59 +03:00
Robert Müller
c696d93e41
Add documentation for IServer::GetClientVersion
2022-08-03 23:28:51 +02:00
Robert Müller
24b30434da
Handle CServer::GetClientInfo
return to fix use of undefined value
...
```
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:790:2: error: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn,-warnings-as-errors]
return Info.m_DDNetVersion;
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:785:5: note: Assuming 'ClientID' is not equal to SERVER_DEMO_CLIENT
if(ClientID == SERVER_DEMO_CLIENT)
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:785:2: note: Taking false branch
if(ClientID == SERVER_DEMO_CLIENT)
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:789:2: note: Calling 'CServer::GetClientInfo'
GetClientInfo(ClientID, &Info);
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:646:13: note: Assuming 'ClientID' is >= 0
dbg_assert(ClientID >= 0 && ClientID < MAX_CLIENTS, "client_id is not valid");
^
/home/runner/work/ddnet/ddnet/src/base/tl/../system.h:58:38: note: expanded from macro 'dbg_assert'
#define dbg_assert(test, msg) assert(test)
^
/usr/include/assert.h:93:27: note: expanded from macro 'assert'
(static_cast <bool> (expr) \
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:646:13: note: Left side of '&&' is true
dbg_assert(ClientID >= 0 && ClientID < MAX_CLIENTS, "client_id is not valid");
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:646:30: note: Assuming 'ClientID' is < MAX_CLIENTS
dbg_assert(ClientID >= 0 && ClientID < MAX_CLIENTS, "client_id is not valid");
^
/home/runner/work/ddnet/ddnet/src/base/tl/../system.h:58:38: note: expanded from macro 'dbg_assert'
#define dbg_assert(test, msg) assert(test)
^
/usr/include/assert.h:93:27: note: expanded from macro 'assert'
(static_cast <bool> (expr) \
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:646:2: note: '?' condition is true
dbg_assert(ClientID >= 0 && ClientID < MAX_CLIENTS, "client_id is not valid");
^
/home/runner/work/ddnet/ddnet/src/base/tl/../system.h:58:31: note: expanded from macro 'dbg_assert'
#define dbg_assert(test, msg) assert(test)
^
/usr/include/assert.h:93:7: note: expanded from macro 'assert'
(static_cast <bool> (expr) \
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:647:13: note: 'pInfo' is not equal to null
dbg_assert(pInfo != 0, "info can not be null");
^
/home/runner/work/ddnet/ddnet/src/base/tl/../system.h:58:38: note: expanded from macro 'dbg_assert'
#define dbg_assert(test, msg) assert(test)
^
/usr/include/assert.h:93:27: note: expanded from macro 'assert'
(static_cast <bool> (expr) \
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:647:2: note: '?' condition is true
dbg_assert(pInfo != 0, "info can not be null");
^
/home/runner/work/ddnet/ddnet/src/base/tl/../system.h:58:31: note: expanded from macro 'dbg_assert'
#define dbg_assert(test, msg) assert(test)
^
/usr/include/assert.h:93:7: note: expanded from macro 'assert'
(static_cast <bool> (expr) \
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:649:5: note: Assuming field 'm_State' is not equal to STATE_INGAME
if(m_aClients[ClientID].m_State == CClient::STATE_INGAME)
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:649:2: note: Taking false branch
if(m_aClients[ClientID].m_State == CClient::STATE_INGAME)
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:667:2: note: Returning without writing to 'pInfo->m_DDNetVersion'
return 0;
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:789:2: note: Returning from 'CServer::GetClientInfo'
GetClientInfo(ClientID, &Info);
^
/home/runner/work/ddnet/ddnet/src/engine/server/server.cpp:790:2: note: Undefined or garbage value returned to caller
return Info.m_DDNetVersion;
^
```
2022-07-31 23:37:28 +02:00
Robert Müller
9a012312b8
Move and extend GetClientVersion
to remove many version.h
includes
...
The `CServer::GetClientVersion` method needs the `version.h` include, so it's moved from the header to the source file, so the include can be removed from the header.
The `GetClientVersion` method is often called with the same `Client != SERVER_DEMO_CLIENT ? GetClientVersion(Client) : CLIENT_VERSIONNR` expression, which also needs the `version.h` include. This expression is moved inside the method, so the include can be removed from all the server entities' and player code.
The `CGameContext::GetClientVersion` method is made a delegate to reduce duplicate code.
The includes of the server entities are also organized further.
2022-07-31 23:21:10 +02:00
Robert Müller
ba1608529e
Move message copy inside SendPackMsgTranslate
...
Fix clang warning: Address of stack memory associated with local variable 'aBuf' is still referred to by the stack variable 'tmp' upon returning to the caller. This will be a dangling reference [clang-analyzer-core.StackAddressEscape]
Mark the input parameters as const pointers and mark the protocol message `Pack` methods as const.
2022-07-11 19:02:16 +02:00
Chairn
a69dc599a9
Huge variable naming format
...
Fix pointer and pointer array variable naming
Huge renaming to match our rules
Used regex: (?!(return|delete)\b)\b\w+ (m_|ms_|g_|gs_|s_)[^a]\w+\[
(?!(return|delete)\b)\b\w+ (?!(m_|ms_|g_|gs_|s_))[^a]\w+\[
Further format static variables
Format almost all pointer names accordingly
Used regex: (?!(return)\b)\b\w+
\*(?!(m_p|p|s_p|m_ap|s_ap|g_p|g_ap|ap|gs_ap|ms_ap|gs_p|ms_p))\w+\b[^:\(p]
clang-format
Fix CI fail
Fix misnamed non pointer as pointer and non array as array
Used regex: (?!(return|delete)\b)\b\w+ (m_|ms_|g_|gs_|s_)p\w+\b
(?!return\b)\b\w+ (ms_|m_|g_|gs_|s_)a\w+\b[^\[]
clang-format
Revert to SCREAMING_SNAKE_CASE and reinstate dead code
2022-07-08 18:01:29 +02:00
Robert Müller
f3fbe891a6
Fix player input player flags translation with sixup
...
The sixup translated player flags were previously applied in `OnDirectInput` directly to the player input data.
However, the input data has already been copied at that point, so predicted inputs were using the incorrect flags.
This is fixed by moving the player flags translation to `OnClientPrepareInput`, which is called first and only once on each new player input before it is copied.
2022-07-01 00:00:17 +02:00
heinrich5991
fa4bcd5ec0
Unify logging infrastructure between IConsole
and dbg_msg
...
This makes the "black console window" less important on Windows (or
anywhere else, for that matter), lets you see logs from other threads in
the f1 console, and removes the distinction between `IConsole::Print`
and `dbg_msg`.
2022-04-29 15:21:26 +02:00
c0d3d3v
3438642dd8
fix 4781 and refactor of the client id for server demos
2022-03-07 19:03:43 +01:00
Dennis Felsing
e2c48ec47e
Don't try to send messages outside of sv_max_clients (fixes# 4750)
2022-02-21 16:33:53 +01:00
Robert Müller
843d021f82
add IServer::ChangeMap to fix change_map command
...
(cherry picked from commit 97d907304c56f643a9ed99e60c35052f950b27fb)
2021-12-15 03:36:25 +03:00
Alexander Akulich
145816b046
IServer: Change GetMapName() type to const char *
...
Partially follow upstream 77daedc814
2021-12-15 03:04:03 +03:00
Zwelf
eacd314701
Move team and practice mode recording to the beginning of the tick
2021-09-14 22:33:09 +02:00
Alexander Akulich
6b49bf1388
Make spectators stay specs on map changed
...
Based on PRs to the upstream:
https://github.com/teeworlds/teeworlds/pull/2065
https://github.com/teeworlds/teeworlds/pull/2066
Co-authored-by: Jordy Ruiz <jordy.ruiz@univ-lille.fr>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2021-02-23 19:36:52 +03:00
Alexander Akulich
2790270abf
Adopt upstream refactoring: Mark several functions as 'const'
2021-02-23 18:26:16 +03:00
heinrich5991
246d2ac3d6
Allow IServer users to check when client's names change
...
Use that available interface to process name change spam protection more
cleanly.
2020-10-14 16:42:35 +02:00
def
3be8a592e5
Run clang-format
...
Purely automatic change. In case of conflict with this change, apply the
other change and rerun the formatting to restore it:
$ python scripts/fix_style.py
2020-09-26 21:50:15 +02:00
heinrich5991
31cfa9250d
Fix server port in teehistorian
...
Official servers weren't affected because they didn't use the default of
`sv_port 0`.
2020-08-29 14:14:37 +02:00
Zwelf
2eb3d23ef4
Rewrite score using the new interface
...
delete file_score for now as it will be replaced by a sqlite backend
2020-08-03 12:58:52 +02:00