modified: bot.py
This commit is contained in:
30
bot.py
30
bot.py
@@ -167,20 +167,38 @@ db_cursor.execute(create_table_query)
|
||||
db_connection.commit()
|
||||
|
||||
def insert_user_data(user_id, guild_id, permission, points, ban, askmultus, filter_value, chat_history, xp=0, level=1):
|
||||
"""Fügt neue Benutzerdaten in die Datenbank ein."""
|
||||
# Zuerst prüfen, ob die Daten bereits existieren
|
||||
if user_data_exists(user_id, guild_id):
|
||||
print(f"Data for user_id {user_id} and guild_id {guild_id} already exists. Skipping insertion.")
|
||||
return
|
||||
|
||||
insert_query = """
|
||||
INSERT INTO user_data (user_id, guild_id, permission, points, ban, askmultus, filter_value, rank, chat_history, xp, level)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
||||
"""
|
||||
serialized_chat_history = json.dumps(chat_history)
|
||||
data = (user_id, guild_id, permission, points, ban, askmultus, filter_value, 0, serialized_chat_history, xp, level)
|
||||
|
||||
try:
|
||||
db_cursor.execute(insert_query, data)
|
||||
db_connection.commit()
|
||||
print("User data inserted successfully.")
|
||||
print(f"User data for user_id {user_id} and guild_id {guild_id} inserted successfully.")
|
||||
except Exception as e:
|
||||
print(f"Error inserting user data: {e}")
|
||||
db_connection.rollback()
|
||||
|
||||
def user_data_exists(user_id, guild_id):
|
||||
"""Überprüft, ob bereits Daten für die Kombination aus user_id und guild_id existieren."""
|
||||
connection = connect_to_database()
|
||||
cursor = connection.cursor()
|
||||
select_query = "SELECT 1 FROM user_data WHERE user_id = %s AND guild_id = %s"
|
||||
cursor.execute(select_query, (user_id, guild_id))
|
||||
result = cursor.fetchone()
|
||||
cursor.close()
|
||||
close_database_connection(connection)
|
||||
return result is not None
|
||||
|
||||
def update_user_data(user_id, guild_id, field, value):
|
||||
global db_connection, db_cursor # Verbindung global nutzen
|
||||
try:
|
||||
@@ -479,22 +497,26 @@ def calculate_xp_needed_for_level(level):
|
||||
|
||||
async def add_xp_to_user(user_id, guild_id, xp_gained):
|
||||
"""Fügt einem Benutzer XP hinzu und überprüft, ob er ein Level aufsteigt."""
|
||||
# Lade Benutzerdaten (XP, Level, etc.)
|
||||
user_data = load_user_data(user_id, guild_id)
|
||||
|
||||
# Füge die XP hinzu
|
||||
# Füge die gewonnenen XP hinzu
|
||||
user_data["xp"] += xp_gained
|
||||
|
||||
# Berechne die benötigten XP für das aktuelle Level
|
||||
level = user_data["level"]
|
||||
xp_needed = calculate_xp_needed_for_level(level)
|
||||
|
||||
# Überprüfe, ob der Benutzer ein Level aufsteigt
|
||||
# Überprüfe, ob der Benutzer aufgestiegen ist
|
||||
while user_data["xp"] >= xp_needed:
|
||||
# Reduziere die überschüssigen XP und erhöhe das Level
|
||||
user_data["xp"] -= xp_needed
|
||||
user_data["level"] += 1
|
||||
|
||||
# Berechne die neuen XP-Anforderungen für das nächste Level
|
||||
xp_needed = calculate_xp_needed_for_level(user_data["level"])
|
||||
|
||||
# Aktualisiere die Datenbank
|
||||
# Speichere die aktualisierten Benutzerdaten in der Datenbank
|
||||
update_user_data(user_id, guild_id, "xp", user_data["xp"])
|
||||
update_user_data(user_id, guild_id, "level", user_data["level"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user