[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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user