Updated game
This commit is contained in:
1 parent
6a56e5a921
commit
f924016478
7 files changed
+180
-65
No files matched your search
@@ -0,0 +1,69 @@
|
||||
import sqlite3
|
||||
import pathlib
|
||||
|
||||
database_file_path = "game_database.sqlite"
|
||||
|
||||
def execute_identifier_update():
|
||||
if not pathlib.Path(database_file_path).exists():
|
||||
print(f"Fehler: Die Datenbankdatei '{database_file_path}' wurde nicht gefunden.")
|
||||
raise SystemExit(1)
|
||||
|
||||
old_player_identifier = input("Bitte gib die aktuelle ID ein: ").strip().upper()
|
||||
new_player_identifier = input("Bitte gib die neue gewünschte ID ein: ").strip().upper()
|
||||
|
||||
if not old_player_identifier or not new_player_identifier:
|
||||
print("Fehler: Beide IDs müssen eingegeben werden.")
|
||||
raise SystemExit(1)
|
||||
|
||||
if old_player_identifier == new_player_identifier:
|
||||
print("Die neue ID ist identisch mit der alten.")
|
||||
raise SystemExit(0)
|
||||
|
||||
database_connection = sqlite3.connect(database_file_path)
|
||||
database_connection.isolation_level = None
|
||||
database_cursor = database_connection.cursor()
|
||||
|
||||
try:
|
||||
database_cursor.execute("BEGIN TRANSACTION;")
|
||||
|
||||
database_cursor.execute("SELECT display_name FROM player WHERE player_identifier = ?", (old_player_identifier,))
|
||||
player_record = database_cursor.fetchone()
|
||||
|
||||
if not player_record:
|
||||
print(f"Fehler: Es wurde kein Spieler mit der ID '{old_player_identifier}' gefunden.")
|
||||
database_cursor.execute("ROLLBACK TRANSACTION;")
|
||||
raise SystemExit(1)
|
||||
|
||||
database_cursor.execute("SELECT display_name FROM player WHERE player_identifier = ?", (new_player_identifier,))
|
||||
existing_player_record = database_cursor.fetchone()
|
||||
|
||||
if existing_player_record:
|
||||
print(f"Fehler: Die ID '{new_player_identifier}' wird bereits von einem anderen Spieler verwendet.")
|
||||
database_cursor.execute("ROLLBACK TRANSACTION;")
|
||||
raise SystemExit(1)
|
||||
|
||||
player_name = player_record[0]
|
||||
print(f"\nÄndere ID für Spieler '{player_name}' von '{old_player_identifier}' zu '{new_player_identifier}'...")
|
||||
|
||||
database_cursor.execute("UPDATE player SET player_identifier = ? WHERE player_identifier = ?", (new_player_identifier, old_player_identifier))
|
||||
|
||||
database_cursor.execute("UPDATE player SET target_identifier = ? WHERE target_identifier = ?", (new_player_identifier, old_player_identifier))
|
||||
database_cursor.execute("UPDATE player SET pending_attacker_identifier = ? WHERE pending_attacker_identifier = ?", (new_player_identifier, old_player_identifier))
|
||||
|
||||
database_cursor.execute("UPDATE kill_log SET killer_identifier = ? WHERE killer_identifier = ?", (new_player_identifier, old_player_identifier))
|
||||
database_cursor.execute("UPDATE kill_log SET victim_identifier = ? WHERE victim_identifier = ?", (new_player_identifier, old_player_identifier))
|
||||
database_cursor.execute("UPDATE kill_log SET victim_previous_target = ? WHERE victim_previous_target = ?", (new_player_identifier, old_player_identifier))
|
||||
|
||||
database_cursor.execute("COMMIT TRANSACTION;")
|
||||
print("\nErfolg! Die ID wurde überall in der Datenbank geaendert.")
|
||||
|
||||
except sqlite3.Error as database_error:
|
||||
database_cursor.execute("ROLLBACK TRANSACTION;")
|
||||
print(f"\nEin Datenbankfehler ist aufgetreten: {database_error}")
|
||||
raise SystemExit(1)
|
||||
|
||||
finally:
|
||||
database_connection.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
execute_identifier_update()
|
||||
Reference in new issue
Block a user