summaryrefslogtreecommitdiff
path: root/wrapper_player.py
blob: aca0e608601500a34a9ce06787e84cd3ebd083ab (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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()])