aboutsummaryrefslogtreecommitdiff
path: root/modules/players.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/players.py')
-rw-r--r--modules/players.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/modules/players.py b/modules/players.py
new file mode 100644
index 0000000..91e50b6
--- /dev/null
+++ b/modules/players.py
@@ -0,0 +1,52 @@
+import os
+import sys
+import re
+import utils
+from utils import conf
+
+services = (
+ utils.Service.config,
+ utils.Service.init,
+ utils.Service.clean,
+ utils.Service.parse
+ )
+
+players = set()
+
+def config(conf):
+ conf.playersFile = conf.folder + '/players'
+
+def init():
+ with open(conf.playersFile, 'w') as f:
+ pass
+
+def clean():
+ os.remove(conf.playersFile)
+
+def parse(line):
+ if 'logged in with entity id' in line:
+ name = line[len('[00:00:00] [Server thread/INFO]: '):]
+ name = name[:name.index('[')]
+ __user_join__(name)
+ elif 'left the game' in line:
+ name = line[len('[00:00:00] [Server thread/INFO]: '):]
+ name = name[:name.index(' ')]
+ __user_leave__(name)
+ else:
+ return False
+ return True
+
+
+def __user_join__(username):
+ print("User '" + username + "' joined server.")
+ with open(conf.playersFile, 'a') as f:
+ players.add(username)
+ f.write(username + '\n')
+
+def __user_leave__(username):
+ print("User '" + username + "' left server.")
+ players.remove(username)
+ with open(conf.playersFile, 'w') as f:
+ f.writelines(players)
+ if players:
+ f.write('\n')