Cleaned up some code + added redeem
This commit is contained in:
@@ -10,6 +10,8 @@ class PlayerNotLinked(Exception):
|
||||
pass
|
||||
class QuestionNotFound(Exception):
|
||||
pass
|
||||
class PlayerNotFound(Exception):
|
||||
pass
|
||||
|
||||
class DatabaseConnection:
|
||||
# databases -> worldcraft and worldcraft_discord
|
||||
@@ -28,6 +30,13 @@ class DatabaseConnection:
|
||||
password="@fZQ6Uu3+U^WH1i2JNemgTC7",
|
||||
database=database
|
||||
)
|
||||
elif database == "s13_ecobridge":
|
||||
self.mydb = mysql.connector.connect(
|
||||
host="192.168.1.251",
|
||||
user="u13_H9QOWK3I5x",
|
||||
password="^K2HjsLeTtPTl9+Ek.Y21p7S",
|
||||
database=database
|
||||
)
|
||||
|
||||
self.cursor = self.mydb.cursor()
|
||||
|
||||
@@ -41,9 +50,12 @@ class DatabaseConnection:
|
||||
self.mydb.close()
|
||||
|
||||
class QuizPlayersDB:
|
||||
def __init__(self):
|
||||
def __init__(self, conn=None):
|
||||
self.tablename = "quizplayers"
|
||||
self.discorddbconn = DatabaseConnection(database="worldcraft_discord")
|
||||
if (conn is not None):
|
||||
self.discorddbconn = conn
|
||||
else:
|
||||
self.discorddbconn = DatabaseConnection(database="worldcraft_discord")
|
||||
cursor = self.discorddbconn.get_cursor()
|
||||
cursor.execute("create table IF NOT EXISTS {} (discordid tinytext NOT NULL, wins int DEFAULT 0, rewards int DEFAULT 0, toclaim int DEFAULT 0)".format(self.tablename))
|
||||
|
||||
@@ -54,29 +66,32 @@ class QuizPlayersDB:
|
||||
res = cursor.fetchone()
|
||||
return res[0] == 1
|
||||
|
||||
|
||||
def player_won(self, discordid, reward):
|
||||
cursor = self.discorddbconn.get_cursor()
|
||||
if self.player_exists(discordid):
|
||||
sql = f"UPDATE {self.tablename} SET wins = wins + 1, rewards = rewards + {str(reward)}, toclaim = toclaim + {str(reward)} WHERE id = {str(q_id)}"
|
||||
sql = f"UPDATE {self.tablename} SET wins = wins + 1, rewards = rewards + {str(reward)}, toclaim = toclaim + {str(reward)} WHERE discordid = {str(discordid)}"
|
||||
cursor.execute(sql)
|
||||
else:
|
||||
sql = f"INSERT INTO {self.tablename} (discordid, wins, rewards, toclaim) VALUES ({discordid}, 1, {reward}, {reward})"
|
||||
sql = f"INSERT INTO {self.tablename} (discordid, wins, rewards, toclaim) VALUES ({str(discordid)}, 1, {reward}, {reward})"
|
||||
cursor.execute(sql)
|
||||
self.discorddbconn.get_db().commit()
|
||||
self.discorddbconn.get_db().commit()
|
||||
|
||||
def close(self):
|
||||
self.discorddbconn.close()
|
||||
|
||||
class QuizDB:
|
||||
def __init__(self):
|
||||
self.tablename = "questions"
|
||||
self.discorddbconn = DatabaseConnection(database="worldcraft_discord")
|
||||
cursor = self.discorddbconn.get_cursor()
|
||||
cursor.execute("create table IF NOT EXISTS {} (id int NOT NULL PRIMARY KEY AUTO_INCREMENT, question text NOT NULL, answer text NOT NULL, asked int DEFAULT 0)".format(self.tablename))
|
||||
cursor.execute("create table IF NOT EXISTS {} (id int NOT NULL PRIMARY KEY AUTO_INCREMENT, question text NOT NULL, answer text NOT NULL, reward int NOT NULL, asked int DEFAULT 0)".format(self.tablename))
|
||||
|
||||
def add_question(self, question, answer):
|
||||
def add_question(self, question, answer, reward):
|
||||
cursor = self.discorddbconn.get_cursor()
|
||||
sql = "insert into {} (question, answer) VALUES (%s, %s)".format(self.tablename)
|
||||
val = (question, answer)
|
||||
sql = f"insert into {self.tablename} (question, answer, reward) VALUES ('{question}', '{answer}', {str(reward)})"
|
||||
try:
|
||||
cursor.execute(sql, val)
|
||||
cursor.execute(sql)
|
||||
self.discorddbconn.get_db().commit()
|
||||
return cursor.lastrowid
|
||||
except:
|
||||
@@ -124,8 +139,6 @@ class QuizDB:
|
||||
def close(self):
|
||||
self.discorddbconn.close()
|
||||
|
||||
|
||||
|
||||
# this will save the uuid of the player and discord id
|
||||
class PlayerDBLinker:
|
||||
def __init__(self):
|
||||
@@ -154,6 +167,12 @@ class PlayerDBLinker:
|
||||
res = cursor.fetchone()
|
||||
return res[0] >= 1
|
||||
|
||||
def get_minecraftUUID(self, discordid):
|
||||
cursor = self.discorddbconn.get_cursor()
|
||||
cursor.execute("select minecraftUUID from {} where discordid='{}'".format(self.tablename, discordid))
|
||||
res = cursor.fetchone()
|
||||
return res[0]
|
||||
|
||||
def linkPlayer(self, minecraftUUID, discordid):
|
||||
cursor = self.discorddbconn.get_cursor()
|
||||
sql = "insert into {} (minecraftUUID, discordid) VALUES (%s, %s)".format(self.tablename)
|
||||
@@ -162,10 +181,10 @@ class PlayerDBLinker:
|
||||
try:
|
||||
cursor.execute(sql, val)
|
||||
self.discorddbconn.get_db().commit()
|
||||
|
||||
except:
|
||||
raise SQLInsertError()
|
||||
|
||||
|
||||
def unlinkPlayer(self, minecraftname, discordid):
|
||||
# get uuid from server database -> check if in linkerdatabase
|
||||
serverdb_cursor = self.serverdbconn.get_cursor()
|
||||
|
||||
Reference in New Issue
Block a user