Commit graph

85 commits

Author SHA1 Message Date
heinrich5991 dcd76fd3e1 Add support for Rust code in DDNet
The glue is done using the [cxx crate](https://cxx.rs/) on the Rust
side.

As a proof-of-concept, only a small console command (`rust_version`)
printing the currently used Rust version was added.

You can generate and open the Rust documentation using
`DDNET_TEST_NO_LINK=1 cargo doc --open`.

You can run the Rust tests using `cmake --build <build dir> --target
run_rust_tests`, they're automatically included in the `run_tests`
target as well.

Rust tests don't work on Windows in debug mode on Windows because Rust
cannot currently link with the debug version of the C stdlib on Windows:
https://github.com/rust-lang/rust/issues/39016.

---

The stuff in `src/rust-bridge` is generated using
```
cxxbridge src/engine/shared/rust_version.rs --output src/rust-bridge/engine/shared/rust_version.cpp --output src/rust-bridge/engine/shared/rust_version.h
cxxbridge src/engine/console.rs --output src/rust-bridge/cpp/console.cpp --output src/rust-bridge/cpp/console.h
```
2022-10-19 23:46:06 +02:00
Robert Müller fe38caa7b4 Handle path/link arguments using the console argument parser
Add `IConsole::SetUnknownCommandCallback` to set a callback for unknown commands. The callback is used to handle connect links, .demo and .map files when parsing command line arguments.

This will allow paths/links to be passed at any argument position instead of only the first one.

And this fixes the command `play xyz.demo` not working due to `play ` being considered part of the path.
2022-08-30 22:17:04 +02:00
Robert Müller f3eb93b83a Extend IConsole::PossibleCommands, add index to callback
`PossibleCommands` now passes the item index to the callback and returns the total number of items.

Add `EmptyPossibleCommandCallback` as default parameter.
2022-08-11 10:08:06 +02:00
Robert Müller fade4d2984 Extract CConsole::TraverseChain, fix toggle with multiple chains 2022-05-20 19:41:31 +02:00
Chairn 583d6e6c01 Mark virtual function as override using a script:
while IFS= read -r line; do file=${line%%:*}; lineno=$(echo $line | cut
-d':' -f2); echo "Treating $file line $lineno"; sed -i -e
"${lineno}s/virtual //" -e "${lineno}s/);\$/) override;/" -e
"${lineno}s/)\$/) override/" -e "${lineno}s/const\$/const override/" -e
"${lineno}s/) {/) override {/" -e "${lineno}s/) const {/) const override
{/" -e "${lineno}s/const;$/const override;/" "$file"; done < a
2022-05-17 23:47:32 +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
heinrich5991 1820a0e168 Add some checksum functions to the client
Let's see if it works out, if not, we can revert it.
2022-01-31 21:31:26 +01:00
def 3f7befdd8b Add some further readability checks, mostly redundancy
/media/ddnet/src/engine/server/databases/sqlite.cpp:232:55: warning: the address of ‘char* sqlite3_expanded_sql(sqlite3_stmt*)’ will never be NULL [-Waddress]
  232 |         if(m_pStmt != nullptr && sqlite3_expanded_sql != nullptr)
      |                                  ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
2022-01-22 17:22:01 +01:00
Alexander Akulich 9d3594205d Console: Add Config() getter as in other classes 2021-12-15 03:36:19 +03:00
Jupeyy f909f612f0 Use default color, if print color is white 2021-10-24 01:48:38 +02:00
Jupeyy 853e00ed15 More colors from chat in console 2021-03-08 01:20:28 +01:00
Alexander Akulich c2f276cee1 Port CConfig API from the upstream (0.7.5)
The old (g_Config) API is kept to not break the stuff.

See commits:
    de5859b371
    78076761eb
2021-01-10 17:10:19 +03:00
Alexander Akulich 09c05ab99f Port CConsole::Init() from the upstream code
Partial port of upstream commit c0bf37fb48
2021-01-10 16:51:18 +03:00
heinrich5991 7663641ed2 Fix some variable name's style 2020-11-08 17:15:48 +01: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
Learath 6a936602aa Add ban_region 2020-08-19 12:38:49 +03:00
Learath d200ef0bb0 Remove ugly hack 2020-06-19 21:42:19 +03:00
def cb738ffed0 Fix show_ips to show regular formatting (fixes #1873) 2019-08-01 20:24:30 +02:00
Learath 69d78c21b4 Lighten tee colors 2019-04-26 16:38:16 +03:00
Learath 95a3a69e08 Start phasing out vectors for colors 2019-04-25 18:21:35 +03:00
Learath 0f781df1dd Try handling colors in console 2019-04-25 14:48:53 +03:00
heinrich5991 9761e9606a Make most user input teehistoric
Exclude private stuff like chat messages and votes.
2017-09-20 02:23:28 +02:00
def 0b1842d438 Use filesystem paths for -f command line param 2017-08-11 21:07:20 +02:00
HMH 80fac31175 fixed memory leak in console 2017-07-21 15:51:56 +02:00
heinrich5991 80ea4c8590 Disallow usage of semicolons in chat commands
This prevents player name exploits due to tab completion of nicknames
that could result in unwanted commands being executed.

Print a deprecation message that is supposed to be removed in the
future.
2017-01-03 14:01:51 +01:00
H-M-H c9e65c7931 Merge branch 'master' into sqlmasters 2016-05-03 23:07:24 +02:00
def 61e47422f6 Clean up debug messages a bit (lower case, no useless errors) 2016-05-02 21:35:32 +02:00
H-M-H 9ed66f7adc Cleanup of Sqlconnection
-moved all connectionstuff to a new class
-moved sqlstring functions to an own file
-do not give threads access to CSqlScore
2016-02-20 15:33:35 +01:00
H-M-H 8e24ef8020 commanddescription can now be placed directly in
the commandparamsstring: "s[file]"
2015-12-28 16:19:52 +01:00
H-M-H 11a426c18b added (console-)command usage 2015-12-23 14:29:31 +01:00
H-M-H cd6c297cb0 removed some code duplication and updated autoexec_server.cfg 2015-10-27 00:46:28 +01:00
H-M-H 0e532adb67 Implemented Helper accesslevel
basically just copied everything from moderator-accesslevel implementation

note however that mod_command changed to access_level
2015-10-23 04:21:07 +02:00
heinrich5991 bf1f7d6ccd (Safely) execute settings embedded in maps 2015-08-27 12:55:34 +02:00
def c004a352d2 Highlight in console 2014-12-20 13:37:11 +01:00
def 4b70e195c1 Multiline broadcasts 2014-04-19 00:40:21 +02:00
def 3eaad43b6b Merge remote-tracking branch 'upstream-teeworlds/0.6' into DDRace
Conflicts:
	bam.lua
	data/languages/index.txt
	src/engine/server/server.cpp
	src/engine/shared/network_server.cpp
	src/game/client/components/chat.cpp
	src/game/client/components/menus_settings.cpp
	src/game/server/entities/character.cpp
	src/game/server/gamecontext.cpp
	src/game/version.h
2013-12-26 18:02:22 +01:00
oy 77478707f2 fixed a server crash due to faulty offsets. #1173 2013-12-15 12:30:27 +01:00
GreYFoX cd4ba53bae Merge branch 'master' of git://github.com/teeworlds/teeworlds into DDRace
Conflicts:
	bam.lua
	scripts/build.py
	scripts/make_release.py
	src/engine/server.h
	src/game/client/gameclient.cpp
	src/game/server/gamecontext.cpp
	src/game/server/gamecontext.h
	src/game/server/gamecontroller.cpp
	src/game/server/gamecontroller.h
	src/game/server/player.cpp
	src/game/version.h
2012-04-12 02:09:31 +02:00
XXLTomate f9e4547b31 fixing the console (2) 2012-01-28 11:14:31 +01:00
oy de8c9b23eb added command to toggle config values. Closes #888 2012-01-09 01:25:18 +01:00
GreYFoX ee670118a5 Merge branch 'master' of git://github.com/oy/teeworlds into DDRace
Conflicts:
	src/engine/console.h
	src/engine/server/server.cpp
	src/engine/server/server.h
	src/engine/shared/config.h
	src/engine/shared/console.cpp
	src/engine/shared/console.h
	src/engine/shared/network_server.cpp
@heinrich5991 todo
2012-01-01 00:11:56 +02:00
oy ec4bb94537 added logout command for econ 2011-12-30 19:12:31 +01:00
XXLTomate 137a447065 Victims without callback(s) 2011-11-08 12:30:54 +02:00
Ravomavain 7d1a392f03 Fix chat command and close #81 2011-08-31 22:58:48 +02:00
GreYFoX bf5374adbf Reverted a change 2011-08-31 02:48:58 +02:00
GreYFoX 7e6f6465b7 typo 2011-08-27 14:12:13 +02:00
GreYFoX c7d9b289e7 Added a command to check user status commands 2011-08-26 23:37:10 +02:00
GreYFoX 9fe96f6b04 Test Commands check and feedback on command not executed 2011-08-26 23:24:46 +02:00
GreYFoX b75a26eed9 Fixed the console 2011-08-26 20:03:30 +02:00
Ravomavain 15d0a40825 Add user level access and use this level for /cmds if player is not authed. 2011-08-26 16:28:14 +02:00