summaryrefslogtreecommitdiff
path: root/wrapper_player.py
diff options
context:
space:
mode:
Diffstat (limited to 'wrapper_player.py')
-rw-r--r--wrapper_player.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/wrapper_player.py b/wrapper_player.py
new file mode 100644
index 0000000..aca0e60
--- /dev/null
+++ b/wrapper_player.py
@@ -0,0 +1,89 @@
+import time
+import mysqlhack
+from mysql_utils import *
+from thread_utils import *
+from players_secret import *
+from datetime import datetime
+from com.ziclix.python.sql import zxJDBC
+
+class py_player:
+ def __init__(self,player):
+ self.player = player
+ self.login_time = time.time()
+ self.logging_in = False
+
+ self.nickname = self.name
+ self.registered = False
+ self.password = "None"
+ self.banned = False
+ self.banned_reason = "You have been banned!"
+ self.played_time = time.time() - self.login_time
+ self.last_login = datetime.now()
+ self.first_seen = datetime.now()
+
+ def kick(self, kick_message = "You have been kicked from the server!"):
+ self.player.KickPlayer(kick_message)
+
+ @property
+ def name(self):
+ return self.player.getName()
+
+ @property
+ def uuid(self):
+ return str(self.player.getUniqueId())
+
+
+class Py_players:
+ def __init__(self):
+ self.players = []
+
+ def __len__(self):
+ return len(self.players)
+
+ def __getitem__(self, player):
+ for py_player in self.players:
+ if py_player.name == player.getName():
+ return py_player
+ else:
+ return None
+
+ def remove(self, player):
+ self.players.remove(player)
+
+ def append(self, player):
+ self.players.append(player)
+
+py_players = Py_players()
+
+@async(daemon=True)
+def fetch_player(player):
+ with mysql_connect() as sql:
+ sql.execute("SELECT * FROM utils_players WHERE uuid = ?", (player.uuid,))
+ result = sql.fetchall()
+
+ if len(result) is 0:
+ with mysql_connect() as sql:
+ sql.execute("INSERT INTO utils_players \
+ (uuid, name, nickname, registered, password, banned, \
+ banned_reason, played_time, last_login, first_seen) \
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+
+ args=(player.uuid, player.name, player.nickname, player.registered,
+ player.password, player.banned,
+ player.banned_reason, player.played_time,
+ player.last_login, player.first_seen))
+ else:
+ pass
+
+
+
+@hook.event("player.PlayerJoinEvent","lowest")
+def on_join(event):
+ player = py_player(event.getPlayer())
+ py_players.append(player)
+ fetch_player(player)
+
+
+@hook.event("player.PlayerQuitEvent","highest")
+def on_leave(event):
+ py_players.remove(py_players[event.getPlayer()])