This repository has been archived on 2024-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
redstoner-utils/wrapper_player.py
2015-11-23 22:17:40 +01:00

90 lines
2.5 KiB
Python

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()])