blob: c3dabb41fa46a88ad306c6710bdddc82aa52b156 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# vim: expandtab ft=python ts=4 sw=4 sts=4:
import os
from . import prints
__PLAYERSFILE__ = 'players'
class MCPlayers:
"Tracks online players"
def __init__(self, wrapper, file_export=False):
self.players = set()
self.wrapper = wrapper
wrapper.hook_start(self.__reset__)
wrapper.hook_stop(self.__reset__)
wrapper.hook_line('logged in with entity id', self.__user_join__)
wrapper.hook_line('left the game', self.__user_leave__)
self.file_export = file_export
self.__reset__()
def clean(self):
try:
os.remove(__PLAYERSFILE__)
except FileNotFoundError:
pass
def __reset__(self):
if self.file_export:
open(__PLAYERSFILE__, 'w') # Just create empty file
def __user_join__(self, line):
username = line[len('[00:00:00] [Server thread/INFO]: '):]
username = username[:username.index('[')]
prints.info("User '" + username + "' joined server.")
self.players.add(username)
if self.file_export:
with open(__PLAYERSFILE__, 'a') as file:
file.write(username + '\n')
def __user_leave__(self, line):
username = line[len('[00:00:00] [Server thread/INFO]: '):]
username = username[:username.index(' ')]
prints.info("User '" + username + "' left server.")
self.players.remove(username)
if self.file_export:
with open(__PLAYERSFILE__, 'w') as file:
file.write('\n'.join(self.players))
if self.players:
file.write('\n')
|