Code Monkey home page Code Monkey logo

ror-server's People

Contributors

anotherfoxguy avatar aperion avatar curiousmike56 avatar dependabot[bot] avatar hiradur avatar mikadou avatar ohlidalp avatar tritonas00 avatar ulteq avatar vorot93 avatar zentro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ror-server's Issues

Bring back server bot

Back in RoR 0.3x (RoRNet 2.37) there was a bot that could connect to a RoR server and allow staff to moderate the server via IRC.
In addition to the IRC<->RoR server bridge, it also added extra commands for users to use (e.g. -countdown) and other neat features such as vehicle recording and playback.

The bot stopped working when MSG2_STREAM_UNREGISTER was added to the RoRNet protocol (4c711af) and was then forgotten about as more major RoRNet changes happened. Today I tried to get it working again. The furthest I got was changing the RoRNet version to 2.41 and the MSG2_HELLO value to 1025 in RoRnet.py. The bot seems to receive server info but fails to send its user info: (RoRservices.log output):

2019-03-21 18:49:09,738|main        |DEBUG   | IRC_bot started, will now start RoR_client(s)
2019-03-21 18:49:09,738|main        |DEBUG   | in iteration, ID=test
2019-03-21 18:49:09,739|test        |DEBUG   | logger started
2019-03-21 18:49:09,739|test        |DEBUG   | RoRclient test initialized
2019-03-21 18:49:09,740|test        |DEBUG   | Connecting to server
2019-03-21 18:49:09,740|test        |DEBUG   | Creating socket...
2019-03-21 18:49:09,744|test        |DEBUG   | Successfully connected! Sending hello message.
2019-03-21 18:49:09,744|test        |DEBUG   | S>| HELLO              000:00 (11)
2019-03-21 18:49:09,745|test        |DEBUG   | R<| HELLO              000:00 (4373)
2019-03-21 18:49:09,746|test        |DEBUG   | Received server info.
2019-03-21 18:49:09,746|test        |DEBUG   | Sending our user info.
2019-03-21 18:49:09,746|test        |DEBUG   | S>| USER_INFO          000:00 (360)
2019-03-21 18:49:09,747|test        |ERROR   | Connection error #ERROR_CON005
2019-03-21 18:49:09,747|test        |ERROR   | Connection error #ERROR_CON008
2019-03-21 18:49:09,747|test        |WARNING | Receive thread exiting...
2019-03-21 18:49:09,797|IRC         |DEBUG   | joining #test
2019-03-21 18:49:10,246|test        |CRITICAL| Server sent nothing, while it should have sent us a welcome message.
2019-03-21 18:49:10,247|test        |ERROR   | Couldn't connect to server (#ERROR_CON001)

The server reports Warning Listener: no user name in the log.
It would be great if someone with Python knowledge could at least get the basic functionality of the bot working again. In an ideal world it should use the Discord bot API instead of IRC.

ScriptEngine error while loading AS script

Try to load Main.as (https://github.com/CuriousMike56/Official-RoRNet238-scripts):

22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (0, 0): Error = Failed in call to function 'RegisterObjectType' with 'RoRnet::StreamRegister' (Code: -8)
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (1, 1): Error = Namespace 'RoRnet' doesn't exist.
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (0, 0): Error = Failed in call to function 'RegisterObjectMethod' with 'RoRnet::StreamRegister' and 'string getName()' (Code: -12)
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (1, 1): Error = Namespace 'RoRnet' doesn't exist.
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (0, 0): Error = Failed in call to function 'RegisterObjectProperty' with 'RoRnet::StreamRegister' and 'int type' (Code: -12)
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (1, 1): Error = Namespace 'RoRnet' doesn't exist.
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (0, 0): Error = Failed in call to function 'RegisterObjectProperty' with 'RoRnet::StreamRegister' and 'int status' (Code: -12)
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (1, 1): Error = Namespace 'RoRnet' doesn't exist.
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (0, 0): Error = Failed in call to function 'RegisterObjectProperty' with 'RoRnet::StreamRegister' and 'int origin_sourceid' (Code: -12)
22-01-2019 13:58:22|t01| INFO| ScriptEngine:  (1, 1): Error = Namespace 'RoRnet' doesn't exist.

which comes from https://github.com/RigsOfRods/ror-server/blob/master/source/server/ScriptEngine.cpp#L479-L497

Reloading authorization file

Right now you need to restart the server in order to reload any changes made to the authorization file, it would be great if you could reload the file without restarting. ๐Ÿ˜„

Server fails to recognize "authfile" parameter in config file

The server seems to ignore that fact that the config file is calling for the authfile.

server.cfg:

## The location of the authorizations file
## syntax: authfile = <path-to-file>
authfile = ../settings/admins.txt

server.log:

22-11-2016 00:38:56|t01| WARN| Unrecognized argument `debug` at position 3
22-11-2016 00:38:56|t01| INFO| loading config file ../settings/server.cfg ...
22-11-2016 00:38:56|t01| INFO| Starting server in INET mode
22-11-2016 00:38:56|t01| INFO| IP address: devrain2500.tk
22-11-2016 00:38:56|t01| INFO| Maximum required upload: 15360kbit/s
22-11-2016 00:38:56|t01| INFO| Maximum required download: 1024kbit/s
22-11-2016 00:38:56|t01| INFO| Server name: RoR:RP
22-11-2016 00:38:56|t01| INFO| server started in Internet mode.
22-11-2016 00:38:56|t01| INFO| port:       12235
22-11-2016 00:38:56|t01| INFO| terrain:    any
22-11-2016 00:38:56|t01| INFO| maxclients: 16
22-11-2016 00:38:56|t01| INFO| server is NOT password protected
22-11-2016 00:38:56|t02|DEBUG| Listerer thread starting
22-11-2016 00:38:56|t02|VERBO| Listener ready
22-11-2016 00:38:56|t02|VERBO| Listener awaiting connections
22-11-2016 00:38:56|t03|DEBUG| Killer thread ready
22-11-2016 00:38:56|t01| INFO| Attempting to register on serverlist (//server-list)
22-11-2016 00:38:56|t03|DEBUG| Killer entering cycle
22-11-2016 00:38:56|t02|VERBO| Listener got a new connection
22-11-2016 00:38:57|t02|VERBO| Master Server knocked ...
22-11-2016 00:38:57|t02|VERBO| Listener awaiting connections
22-11-2016 00:38:57|t01| INFO| Registration failed, response code: HTTP 409, body: {"result":false,"message":"Your server name is already used."}
22-11-2016 00:38:57|t01|ERROR| Failed to register on serverlist. Exit
22-11-2016 00:38:57|t01|VERBO| Stopping listener thread...

It also seems to not know what the -debug argument is either.

You can ignore the failed registration as this is just me testing.

Replace copy-pasted libs with poco

This will make the code have a more consistent style, and also the need to maintain/update the code from 3rd party libraries

List of libs that can be replaced with poco:

  • jsoncpp #141
  • sha1.c #140
  • config parsing in config.cpp
  • http.cpp
  • mutexutils.cpp / pthread
  • logger.cpp (maybe?)

Segfault

This happens from time to time:

Thread 2433 "rorserver" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffc57656700 (LWP 21389)]
_int_malloc (av=av@entry=0x7fffec000020, bytes=bytes@entry=8208) at malloc.c:3789
3789	malloc.c: No such file or directory.
#0  _int_malloc (av=av@entry=0x7fffec000020, bytes=bytes@entry=8208) at malloc.c:3789
#1  0x00007ffff6d102ad in __GI___libc_malloc (bytes=8208) at malloc.c:3075
#2  0x00007ffff76b3298 in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00005555555b4454 in __gnu_cxx::new_allocator<queue_entry_t>::allocate (__n=1, this=0x7ffd2ce9e9c8) at /usr/include/c++/7/ext/new_allocator.h:111
#4  std::allocator_traits<std::allocator<queue_entry_t> >::allocate (__n=1, __a=...) at /usr/include/c++/7/bits/alloc_traits.h:436
#5  std::_Deque_base<queue_entry_t, std::allocator<queue_entry_t> >::_M_allocate_node (this=0x7ffd2ce9e9c8) at /usr/include/c++/7/bits/stl_deque.h:602
#6  std::deque<queue_entry_t, std::allocator<queue_entry_t> >::_M_push_back_aux<queue_entry_t const&> (this=this@entry=0x7ffd2ce9e9c8) at /usr/include/c++/7/bits/deque.tcc:487
#7  0x00005555555b40a4 in std::deque<queue_entry_t, std::allocator<queue_entry_t> >::push_back (__x=..., this=0x7ffd2ce9e9c8) at /usr/include/c++/7/bits/stl_deque.h:1552
#8  Broadcaster::QueueMessage (this=0x7ffd2ce9e948, type=type@entry=1039, uid=<optimized out>, uid@entry=-1, streamid=<optimized out>, streamid@entry=4294967295, len=<optimized out>, data=0x7fffec4dcf90 "MOTD: #FFFF00Type !help to view available commands.") at /home/administrator/rorserver/source_243/source/server/broadcaster.cpp:138
#9  0x00005555555bea44 in Client::QueueMessage (this=<optimized out>, msg_type=msg_type@entry=1039, client_id=client_id@entry=-1, stream_id=stream_id@entry=4294967295, payload_len=<optimized out>, payload=<optimized out>) at /home/administrator/rorserver/source_243/source/server/sequencer.cpp:130
#10 0x00005555555c0cf8 in Sequencer::serverSay (this=this@entry=0x5555558f44e0 <s_sequencer>, msg="MOTD: #FFFF00Type !help to view available commands.", uid=uid@entry=1215, type=type@entry=2) at /home/administrator/rorserver/source_243/source/server/sequencer.cpp:611
#11 0x00005555555c0e9b in Sequencer::sendMOTD (this=0x5555558f44e0 <s_sequencer>, uid=1215) at /home/administrator/rorserver/source_243/source/server/sequencer.cpp:517
#12 0x00005555555bdb06 in Receiver::Thread (this=0x7ffd2ce9c918) at /home/administrator/rorserver/source_243/source/server/receiver.cpp:69
#13 0x00005555555bdc2a in LaunchReceiverThread (data=<optimized out>) at /home/administrator/rorserver/source_243/source/server/receiver.cpp:33
#14 0x00007ffff79b06db in start_thread (arg=0x7ffc57656700) at pthread_create.c:463
#15 0x00007ffff6d9a61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Petr comments:

obvious race condition - a different thread modifies it in between
we lock m_queue_mutex there so someone must be forgetting to lock it when writing

Ability to get a list of available servers as a response from the mainserver.

I've been looking at how to recode the multiplayer loby ingame, and the only little problem i have for now is that the list of the servers is just an html list which isn't going to be much of efficient for me. If i'm not mistaken, the WEBSERVER tick must be the main server where everything is registered? We should add a feature where the game would send a packet asking for all available servers, the map, and slots and of course, the IP of the target server.

not working

here is the log
03-04-2017 15:59:17|t01| INFO| Starting server in INET mode
03-04-2017 15:59:17|t01| INFO| IP address: 192.168.0.55
03-04-2017 15:59:17|t01| INFO| Maximum required upload: 15360kbit/s
03-04-2017 15:59:17|t01| INFO| Maximum required download: 1024kbit/s
03-04-2017 15:59:17|t01| INFO| Server name: [2.38] first student
03-04-2017 15:59:17|t01| INFO| server started in Internet mode.
03-04-2017 15:59:17|t01| INFO| port: 12000
03-04-2017 15:59:17|t01| INFO| terrain: any
03-04-2017 15:59:17|t01| INFO| maxclients: 16
03-04-2017 15:59:17|t01| INFO| server is password protected
03-04-2017 15:59:17|t01| INFO| Attempting to register on serverlist (//server-list)
03-04-2017 15:59:20|t01| INFO| Registration failed, response code: HTTP 503, body: {"result":false,"message":"Could not connect to your server and verify it's version. Please check your Firewall or leave it as it is now to create a local only server. Your server is NOT

Server Log Not Updating

I am hosting a 0.4.8 server. I'm attempting to open my log file but all I can see is the startup lines (loading config, server started, port: xxx, etc). It doesn't update. Any clue?

Bring back UserAuth

It should now be possible to reimplement UserAuth. I have introduced the /users API endpoint that expects two parameters, username string and user_token string.

See: https://github.com/RigsOfRods/ror-server/blob/master/source/server/userauth.cpp#L104

This will need to be uncommented and adjusted accordingly for a GET request at http://api.rigsofrods.org. Upon success, it will return true with a HTTP 200 response code. Unauthorized or not found will return false and a HTTP 403 or HTTP 404 respectively.

Crashes when I click stop

When I want to stop my server, the program crashes when I click stop. My server version is RoRnet_2.37. Not sure if there is a newer version.

Rigs Of Rods Linux Server Will Not Stay Running for more than 25 seconds when the masterserver is not working.

So I have tried a month ago to start my RoR Multiplayer Server running on Linux, Ever since the master server has had issues during the transition to only-a-ptr. Actually a few weeks after they said they were backing up the forum. Which was when the issue was opened in the official repo. (That issue was opened by DirtGamer30). So ever since then my 2 RoR servers I run will not stay running for more than 25 seconds. They just stop. There is no error in the putty session for the servers. My bot on IRC just says ERRR Connecting.

Build errors

Latest master fails with:

/home/rorserver/rorserver-git/ror-server/dependencies/jsoncpp/src/lib_json/json_value.cpp: In copy constructor 'Json::Value::Value(const Json::Value&)':
/home/rorserver/rorserver-git/ror-server/dependencies/jsoncpp/src/lib_json/json_value.cpp:343:20: error: overflow in implicit constant conversion [-Werror=overflow]

Running Debian 7.9 with Angelscript enabled.

Edit: Merged #23, now it fails at the linking stage:

[ 98%] Linking CXX executable ../../bin/rorserver
/usr/bin/ld: cannot find -ljsoncpp
collect2: error: ld returned 1 exit status

CMake: Auto-generate ctemplate headers for OS

WITH_WEBSERVER does not build properly on Linux.

[ 76%] Building CXX object source/server/CMakeFiles/rorserver.dir/webserver.cpp.o
/home/hiradur/Desktop/ror-server/source/server/webserver.cpp:46:32: fatal error: ctemplate/template.h: No such file or directory
 #include <ctemplate/template.h>
                                ^
compilation terminated.
make[2]: *** [source/server/CMakeFiles/rorserver.dir/webserver.cpp.o] Error 1

ctemplate headers have to be generated for the OS in use which causes the headache here.

Allow visitors to multiplayer servers to see which terrain each person is on

This is a feature request.

I always find myself asking on the chat what map everyone is using, and I know I'm not the only one because others have asked me. It would be nice to be able to see the terrains which each user is on (possibly using a ping command in the chat or something like this).

Thanks ahead!

Crash with current master: bad UTF-8 continuation byte

Server log shows this error, and then rorserver.exe crashes. (Windows Server 2012 R2)

15-01-2017 17:00:09|t03| INFO| UTF conversion error: bad UTF-8 continuation byte
15-01-2017 17:00:09|t03|ERROR| (UTF conversion error 2)

Log verbosity ignored if running in background

The default configuration in the Linux server package contains:

foreground = n
verbosity = 1
logverbosity = 1 

With foreground disabled, the terminal output ends when it's forked into background as expected:

vmware_2023-10-30_18-42-04

However, with logverbosity = 1 the server.log file should contain the full output. Instead it mirrors the terminal output:

image

Verbosity settings work as expected if you enable foreground mode:

foreground = y
verbosity = 5
logverbosity = 0

image
image

PS: I had to upgrade my Linux Mint virtual machine from 20.2 to 21 in order to get the server package running, otherwise I got the dreaded GLIBC version not found error even after upgrading to 20.3 first.

Sending chat message results in crash

On Windows, sending a chat message will cause the server to crash.
VS debug output:
image
It doesn't crash on Linux, but the chat log outputs a bunch of garbage characters:
image

Player Info does not show in the player list

As the title says, when a player joins the server, the server shows an updated player list. This player list is showing no information about the player other than the fact that the slot is being used (even that is not displayed properly).

Log:

05-11-2016 14:19:22|t03| INFO| Listener creating a new client...
05-11-2016 14:19:22|t03| INFO| New client: Anonymous (en), using RoR 0.4.7.0, without token
05-11-2016 14:19:22|t17| INFO| Server occupancy:
05-11-2016 14:19:22|t17| INFO| Slot Status   UID IP                  Colour, Nickname
05-11-2016 14:19:22|t17| INFO| --------------------------------------------------
05-11-2016 14:19:22|t17| INFO|    0 Free
05-11-2016 14:19:22|t17| INFO| --------------------------------------------------
05-11-2016 14:19:22|t17| INFO| - traffic statistics (uptime: 15 hours, 8 minutes):
05-11-2016 14:19:22|t17| INFO| - total: incoming: 1.29MB , outgoing: 0.12MB
05-11-2016 14:19:22|t17| INFO| - rate (last minute): incoming: 0.3kB/s , outgoing: 0.0kB/s

What it should look like:

Sun Apr 03 01:01:33 2016|t02| INFO| Listener creating a new client...
Sun Apr 03 01:01:33 2016|t02| INFO| New client: Lee (en_US), using RoR 0.39.3, with token ******
Sun Apr 03 01:01:33 2016|t04| INFO| Server occupancy:
Sun Apr 03 01:01:33 2016|t04| INFO| Slot Status   UID IP                  Colour, Nickname
Sun Apr 03 01:01:33 2016|t04| INFO| --------------------------------------------------
Sun Apr 03 01:01:33 2016|t04| INFO|    0 Used     1 ***.***.***.***        0, Lee
Sun Apr 03 01:01:33 2016|t04| INFO| --------------------------------------------------
Sun Apr 03 01:01:33 2016|t04| INFO| - traffic statistics (uptime: 0 hours, 1 minutes):
Sun Apr 03 01:01:33 2016|t04| INFO| - total: incoming: 0.00MB , outgoing: 0.00MB
Sun Apr 03 01:01:33 2016|t04| INFO| - rate (last minute): incoming: 0.0kB/s , outgoing: 0.0kB/s

Authorization file not read

In the latest master, The authorization file is not read since the notifier class was replaced by new code which doesn't support them. See my 2nd reply for more info.

Cannot restart server right away.

You can not restart your server within a certain amount of time. You have to wait for the master server to clear out its entry.

Error:

03-11-2016 21:17:16|t01| INFO| Attempting to register on serverlist (//server-list)
03-11-2016 21:17:17|t01| INFO| Registration failed, response code: HTTP 409, body: {"result":false,"message":"Your server name is already used."}
03-11-2016 21:17:17|t01|ERROR| Failed to register on serverlist. Exit
SWBaseSocket::disconnect() error: Socket is not connected!
Press any key to continue . . .

Edit: Server was cleared from the master server, but the rorserver says it is still there.

[Windows] Building with GUI fails

Building the current master on windows with GUI enabled fails with:

f:\ror-server\source\server\master-server.h(23): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\master-server.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\config.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\broadcaster.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\messaging.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\listener.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\rorserver.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\receiver.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\ScriptEngine.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\sequencer.cpp)
f:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\server\userauth.cpp)
F:\ror-server\source\server\sequencer.h(28): fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory (compiling source file F:\ror-server\source\gui\servergui.cpp)

Empty stream registration crash

This has happened twice today.
A (what appears to be) empty stream registration will occur, causing everyone to crash:

12-09-2019 20:27:57|t241|VERBO| got message: type: 1041, source: 119:13, len: 272
12-09-2019 20:27:57|t241|VERBO|  * new stream registered: 119:13, type: 0, name: '', status: 0
12-09-2019 20:27:57|t241|VERBO|  * 3 RoRBot (slot 0):
12-09-2019 20:27:57|t241|VERBO|   * 3:10, type:character status:0 name:'default'
12-09-2019 20:27:57|t241|VERBO|   * 3:11, type:chat status:0 name:'chat'
12-09-2019 20:27:57|t241|VERBO|  * 103 WhyBeAre (slot 1):
12-09-2019 20:27:57|t241|VERBO|   * 103:29, type:chat status:0 name:'chat'
12-09-2019 20:27:57|t241|VERBO|   * 103:30, type:character status:0 name:'default'
12-09-2019 20:27:57|t241|VERBO|   * 103:34, type:truck status:0 name:'gavrilmv4s.truck'
12-09-2019 20:27:57|t241|VERBO|   * 103:35, type:truck status:0 name:'b6b0UID-semiflat.trailer'
12-09-2019 20:27:57|t241|VERBO|   * 103:36, type:truck status:0 name:'Volvo-VHD-semi-extended-cab.truck'
12-09-2019 20:27:57|t241|VERBO|   * 103:37, type:truck status:0 name:'burnsidetaxi.truck'
12-09-2019 20:27:57|t241|VERBO|  * 108 Player (slot 2):
12-09-2019 20:27:57|t241|VERBO|   * 108:10, type:chat status:0 name:'chat'
12-09-2019 20:27:57|t241|VERBO|   * 108:11, type:character status:0 name:'default'
12-09-2019 20:27:57|t241|VERBO|   * 108:18, type:truck status:0 name:'magnum_offroad.truck'
12-09-2019 20:27:57|t241|VERBO|  * 113 Og-Trainhopper (slot 3):
12-09-2019 20:27:57|t241|VERBO|   * 113:10, type:chat status:0 name:'chat'
12-09-2019 20:27:57|t241|VERBO|   * 113:11, type:character status:0 name:'default'
12-09-2019 20:27:57|t241|VERBO|   * 113:14, type:truck status:0 name:'S10shortbed.truck'
12-09-2019 20:27:57|t241|VERBO|  * 118 ChrisBusFan437 (slot 4):
12-09-2019 20:27:57|t241|VERBO|   * 118:10, type:chat status:0 name:'chat'
12-09-2019 20:27:57|t241|VERBO|   * 118:11, type:character status:0 name:'default'
12-09-2019 20:27:57|t241|VERBO|   * 118:12, type:truck status:0 name:'Jason2013CE300.truck'
12-09-2019 20:27:57|t241|VERBO|  * 119 Stillkickin (slot 5):
12-09-2019 20:27:57|t241|VERBO|   * 119:10, type:chat status:0 name:'chat'
12-09-2019 20:27:57|t241|VERBO|   * 119:11, type:character status:0 name:'default'
12-09-2019 20:27:57|t241|VERBO|   * 119:13, type:truck status:0 name:''
12-09-2019 20:27:57|t09|VERBO| got message: type: 1042, source: 3:0, len: 272
12-09-2019 20:27:59|t209|VERBO| Disconnecting client ID 103: Game connection closed
12-09-2019 20:27:59|t209|DEBUG| adding client to kill queue, size: 0
12-09-2019 20:27:59|t209| INFO| crash statistic: 22 of 114 deletes crashed
12-09-2019 20:27:59|t209|DEBUG| Receiver thread 209 (user ID 103) exits
12-09-2019 20:27:59|t208|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 20:27:59|t208|DEBUG| Sequencer::QueueClientForDisconnect() Internal error, got non-existent user ID: 103(error message: 'Broadcaster: Send error')
12-09-2019 20:27:59|t208|DEBUG| Broadcaster thread 208 (client_id 103) exits
12-09-2019 20:27:59|t03|DEBUG| Killer called to kill WhyBeAre
12-09-2019 20:27:59|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 20:27:59|t03|DEBUG| Killer entering cycle
12-09-2019 20:28:00|t229|VERBO| Disconnecting client ID 113: Game connection closed
12-09-2019 20:28:00|t229|DEBUG| adding client to kill queue, size: 0
12-09-2019 20:28:00|t229| INFO| crash statistic: 23 of 115 deletes crashed
12-09-2019 20:28:00|t229|DEBUG| Receiver thread 229 (user ID 113) exits
12-09-2019 20:28:00|t228|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 20:28:00|t03|DEBUG| Killer called to kill Og-Trainhopper
12-09-2019 20:28:00|t228|DEBUG| Sequencer::QueueClientForDisconnect() Internal error, got non-existent user ID: 113(error message: 'Broadcaster: Send error')
12-09-2019 20:28:00|t228|DEBUG| Broadcaster thread 228 (client_id 113) exits
12-09-2019 20:28:00|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 20:28:00|t03|DEBUG| Killer entering cycle
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:08|t241|VERBO| got message: type: 1036, source: 119:0, len: 28
12-09-2019 20:28:09|t239|VERBO| Disconnecting client ID 118: Game connection closed
12-09-2019 20:28:09|t239|DEBUG| adding client to kill queue, size: 0
12-09-2019 20:28:09|t238|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 20:28:09|t239| INFO| crash statistic: 24 of 116 deletes crashed
12-09-2019 20:28:09|t239|DEBUG| Receiver thread 239 (user ID 118) exits
12-09-2019 20:28:09|t03|DEBUG| Killer called to kill ChrisBusFan437
12-09-2019 20:28:09|t238|DEBUG| Sequencer::QueueClientForDisconnect() Internal error, got non-existent user ID: 118(error message: 'Broadcaster: Send error')
12-09-2019 20:28:09|t238|DEBUG| Broadcaster thread 238 (client_id 118) exits
12-09-2019 20:28:09|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 20:28:09|t03|DEBUG| Killer entering cycle
12-09-2019 20:28:12|t219|VERBO| Disconnecting client ID 108: Game connection closed
12-09-2019 20:28:12|t219|DEBUG| adding client to kill queue, size: 0
12-09-2019 20:28:12|t219| INFO| crash statistic: 25 of 117 deletes crashed
12-09-2019 20:28:12|t219|DEBUG| Receiver thread 219 (user ID 108) exits
12-09-2019 20:28:12|t03|DEBUG| Killer called to kill Player
12-09-2019 20:28:12|t218|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 20:28:12|t218|DEBUG| Broadcaster thread 218 (client_id 108) exits
12-09-2019 20:28:12|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 20:28:12|t03|DEBUG| Killer entering cycle
12-09-2019 21:51:50|t297|VERBO| got message: type: 1041, source: 147:11, len: 272
12-09-2019 21:51:50|t297|VERBO|  * new stream registered: 147:11, type: 0, name: '', status: 0
12-09-2019 21:51:50|t297|VERBO|  * 3 RoRBot (slot 0):
12-09-2019 21:51:50|t297|VERBO|   * 3:10, type:character status:0 name:'default'
12-09-2019 21:51:50|t297|VERBO|   * 3:11, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|  * 143 Stillkickin (slot 1):
12-09-2019 21:51:50|t297|VERBO|   * 143:10, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|   * 143:11, type:character status:0 name:'default'
12-09-2019 21:51:50|t297|VERBO|   * 143:13, type:truck status:0 name:'1990K3500_CREW_D.truck'
12-09-2019 21:51:50|t297|VERBO|  * 144 deathpallie325 (slot 2):
12-09-2019 21:51:50|t297|VERBO|   * 144:10, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|   * 144:11, type:character status:0 name:'default'
12-09-2019 21:51:50|t297|VERBO|  * 145 Player (slot 3):
12-09-2019 21:51:50|t297|VERBO|   * 145:10, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|   * 145:11, type:character status:0 name:'default'
12-09-2019 21:51:50|t297|VERBO|   * 145:13, type:truck status:0 name:'MMCP-DA.truck'
12-09-2019 21:51:50|t297|VERBO|  * 147 Player-2 (slot 4):
12-09-2019 21:51:50|t297|VERBO|   * 147:10, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|   * 147:11, type:truck status:0 name:''
12-09-2019 21:51:50|t297|VERBO|  * 148 SchoolBusDriver4601 (slot 5):
12-09-2019 21:51:50|t297|VERBO|   * 148:10, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|   * 148:11, type:character status:0 name:'default'
12-09-2019 21:51:50|t297|VERBO|   * 148:12, type:truck status:0 name:'95_C2_IM.truck'
12-09-2019 21:51:50|t297|VERBO|  * 149 Base (slot 6):
12-09-2019 21:51:50|t297|VERBO|   * 149:10, type:chat status:0 name:'chat'
12-09-2019 21:51:50|t297|VERBO|   * 149:11, type:character status:0 name:'default'
12-09-2019 21:51:50|t09|VERBO| got message: type: 1042, source: 3:0, len: 272
12-09-2019 21:51:52|t299|VERBO| Disconnecting client ID 148: Game connection closed
12-09-2019 21:51:52|t299|DEBUG| adding client to kill queue, size: 0
12-09-2019 21:51:52|t299| INFO| crash statistic: 35 of 143 deletes crashed
12-09-2019 21:51:52|t299|DEBUG| Receiver thread 299 (user ID 148) exits
12-09-2019 21:51:52|t03|DEBUG| Killer called to kill SchoolBusDriver4601
12-09-2019 21:51:52|t298|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 21:51:52|t298|DEBUG| Broadcaster thread 298 (client_id 148) exits
12-09-2019 21:51:52|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 21:51:52|t03|DEBUG| Killer entering cycle
12-09-2019 21:51:54|t293|VERBO| Disconnecting client ID 145: Game connection closed
12-09-2019 21:51:54|t293|DEBUG| adding client to kill queue, size: 0
12-09-2019 21:51:54|t293| INFO| crash statistic: 36 of 144 deletes crashed
12-09-2019 21:51:54|t293|DEBUG| Receiver thread 293 (user ID 145) exits
12-09-2019 21:51:54|t03|DEBUG| Killer called to kill Player
12-09-2019 21:51:54|t292|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 21:51:54|t292|DEBUG| Broadcaster thread 292 (client_id 145) exits
12-09-2019 21:51:54|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 21:51:54|t03|DEBUG| Killer entering cycle
12-09-2019 21:51:55|t291|VERBO| Disconnecting client ID 144: Game connection closed
12-09-2019 21:51:55|t291|DEBUG| adding client to kill queue, size: 0
12-09-2019 21:51:55|t291| INFO| crash statistic: 37 of 145 deletes crashed
12-09-2019 21:51:55|t291|DEBUG| Receiver thread 291 (user ID 144) exits
12-09-2019 21:51:55|t03|DEBUG| Killer called to kill deathpallie325
12-09-2019 21:51:55|t290|ERROR| send error -1: SWBaseSocket::send() error: Broken pipe
12-09-2019 21:51:55|t290|DEBUG| Broadcaster thread 290 (client_id 144) exits
12-09-2019 21:51:55|t03|ERROR| Internal: Error while disconnecting client - failed to disconnect socket. Message: SWBaseSocket::disconnect() error: Transport endpoint is not connected
12-09-2019 21:51:55|t03|DEBUG| Killer entering cycle

The server bot reports unknown(0) is now using a () in IRC.

Persistent bans

Currently, server bans are cleared when the server restarts. It would be nice if they were stored in a file, by username & IP.

Make unban command work with blacklist

Currently when a user is banned, their UID isn't written to the server.blacklist file. This causes all added bans to be assigned UID -1 when the server restarts. This prevents the !unban command from working, you have to manually edit the blacklist file to remove the ban. A solution would be to assign a UID (starting from 0) on startup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.