[Feat] Респект и уважуха (#476)

* db

* wd comment

* manager & commands

* system & round end results

* raise ban event

* client manager & cached values

* role pick tweak

* tweak last commit

* more fixes

* weights fix

* Fix for short rounds

* tweak in cached dictionary

* reva pick system

* fix last commit

* cult role pick

* nukeops role picking

* fix cache in async & show command

* ooc msg show value

* move pick method to manager & traitor pick fix
This commit is contained in:
HitPanda
2023-10-08 15:53:28 +03:00
committed by Aviu00
parent a29e004eba
commit 7c9bd1d934
37 changed files with 3752 additions and 25 deletions

View File

@@ -1401,6 +1401,69 @@ INSERT INTO player_round (players_id, rounds_id) VALUES ({players[player]}, {id}
#endregion
#region Player Reputation (WD edit)
public async Task SetPlayerReputation(Guid player, float value)
{
await using var db = await GetDb();
var reputation = await db.DbContext.PlayerReputations
.SingleOrDefaultAsync(p => p.UserId == player);
if (reputation == null)
{
reputation = new PlayerReputation()
{
UserId = player,
Reputation = value
};
db.DbContext.PlayerReputations.Add(reputation);
}
else
{
reputation.Reputation = value;
}
await db.DbContext.SaveChangesAsync();
}
public async Task ModifyPlayerReputation(Guid player, float value)
{
await using var db = await GetDb();
var reputation = await db.DbContext.PlayerReputations
.SingleOrDefaultAsync(p => p.UserId == player);
if (reputation == null)
{
reputation = new PlayerReputation()
{
UserId = player,
Reputation = 0f + value
};
db.DbContext.PlayerReputations.Add(reputation);
}
else
{
reputation.Reputation += value;
}
await db.DbContext.SaveChangesAsync();
}
public async Task<float> GetPlayerReputation(Guid player)
{
await using var db = await GetDb();
var reputation = await db.DbContext.PlayerReputations
.SingleOrDefaultAsync(p => p.UserId == player);
return reputation?.Reputation ?? 0f;
}
#endregion
protected abstract Task<DbGuard> GetDb([CallerMemberName] string? name = null);
protected void LogDbOp(string? name)