Fixed bug and refactored field names

This commit is contained in:
Walter 2025-02-14 16:57:36 +01:00
parent 0a7917a27b
commit c200728f51
3 changed files with 48 additions and 10 deletions

View File

@ -0,0 +1,38 @@
# Generated by Django 5.1.6 on 2025-02-14 15:54
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('users', '0021_remove_player_bloonsa_levelratings_and_more'),
]
operations = [
migrations.RenameField(
model_name='player',
old_name='creationDate',
new_name='creation_date',
),
migrations.RenameField(
model_name='player',
old_name='creationIP',
new_name='creation_ip',
),
migrations.RenameField(
model_name='player',
old_name='latestActivity',
new_name='latest_activity',
),
migrations.RenameField(
model_name='player',
old_name='latestIP',
new_name='latest_ip',
),
migrations.RenameField(
model_name='player',
old_name='suspectedCheater',
new_name='suspected_cheater',
),
]

View File

@ -5,11 +5,11 @@ from django.contrib.auth.models import User
class Player(models.Model): class Player(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True, related_name="player") user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True, related_name="player")
# Logging # Logging
creationIP = models.GenericIPAddressField() creation_ip = models.GenericIPAddressField()
latestIP = models.GenericIPAddressField() latest_ip = models.GenericIPAddressField()
creationDate = models.DateTimeField(default=timezone.now) creation_date = models.DateTimeField(default=timezone.now)
latestActivity = models.DateTimeField(default=timezone.now) latest_activity = models.DateTimeField(default=timezone.now)
suspectedCheater = models.BooleanField(default=False) # This should be set when tripping the anti-cheat suspected_cheater = models.BooleanField(default=False) # This should be set when tripping the anti-cheat
# States # States
suspended = models.BooleanField(default=False) # This is a shadow-ban, stats will still save but not all will show up on leaderboards suspended = models.BooleanField(default=False) # This is a shadow-ban, stats will still save but not all will show up on leaderboards
banned = models.BooleanField(default=False) # Account gets logged out upon logging in banned = models.BooleanField(default=False) # Account gets logged out upon logging in
@ -26,17 +26,17 @@ class Player(models.Model):
return self.bloonsa_level_scores.filter(clear=True).count() return self.bloonsa_level_scores.filter(clear=True).count()
def has_beaten_bloonsa_level(self, level): def has_beaten_bloonsa_level(self, level):
bool(self.bloonsa_level_scores.filter(clear=True, level=level).first()) return bool(self.bloonsa_level_scores.filter(clear=True, level=level).first())
def __str__(self): def __str__(self):
statesDict = { statesDict = {
"cheater": "😈" if self.suspectedCheater else "", "cheater": "😈" if self.suspected_cheater else "",
"suspended": "🔒" if self.suspended else "", "suspended": "🔒" if self.suspended else "",
"banned": "" if self.banned else "", "banned": "" if self.banned else "",
"admin": "👑" if self.admin else "", "admin": "👑" if self.admin else "",
} }
states = "".join(statesDict.values()) + " " states = "".join(statesDict.values()) + " "
return f"{states}{self.user} - {self.latestIP}".strip(" ") return f"{states}{self.user} - {self.latest_ip}".strip(" ")
class Log(models.Model): class Log(models.Model):

View File

@ -28,8 +28,8 @@ class BloonsaUtil:
return player return player
ip = self.get_ip(request=request) ip = self.get_ip(request=request)
player = Player(user=request.user, player = Player(user=request.user,
creationIP=ip, creation_ip=ip,
latestIP=ip) latest_ip=ip)
player.save() player.save()
return player return player