Files
hjha-server/GameDAL/Club/ClubBankPlayerInGame.cs
xiaoou e9616125ce feat: initial commit - HJHA game server full source
6 major server modules (PdkFriendServer/GlobalSever/ServerCore/GameModule/GameNetModule) +
game logic (GameFix/GameDAL/ServerData) +
network layer (NetWorkMessage) +
data layer (ObjectModel) +
utilities (MrWu/Core/Config/CloudAPI/dll) +
adapters (zyxAdapter/base)

.NET 8.0 C# solution, 16 projects, 958 source files
2026-07-07 12:02:15 +08:00

117 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Server.DB.Redis;
using System.Text;
using StackExchange.Redis;
using MrWu.Debug;
namespace GameDAL {
/// <summary>
/// 竞技比赛的 禁止玩家游玩
/// </summary>
public class ClubBankPlayerInGame {
public const int DbIdx = 6;
private ClubBankPlayerInGame() { }
static ClubBankPlayerInGame() {
instance = new ClubBankPlayerInGame();
}
public static ClubBankPlayerInGame instance {
get;
private set;
}
/// <summary>
/// 数据库单项操作
/// </summary>
public IDatabaseProxy dbp {
get {
return redisManager.Getdb(DbIdx);
}
}
/// <summary>
/// 数据库操作
/// </summary>
public IDatabase db {
get {
return redisManager.GetDataBase(DbStyle.main, DbIdx);
}
}
/*
* 数据结构
*
* ClubBankPlayers:clubid [243633,243663]
* ClubBankPlayers:clubid [243634,246338]
*
* */
public const string baseKey = "ClubBankPlayers";
/// <summary>
/// 获取竞技比赛的 禁止同桌 所有集合的 key
/// </summary>
/// <param name="clubid"></param>
/// <returns></returns>
public string GetClubBankKey(int clubid) {
return $"{baseKey}:{clubid}";
}
public List<int> GetAll(int clubId)
{
string key = GetClubBankKey(clubId);
var values = dbp.SetMembers(key);
var ret = values.Select(x=>int.Parse(x)).ToList();
return ret;
}
/// <summary>
/// 添加一个禁止游玩的玩家 (过期时间一年)
/// </summary>
/// <param name="clubId">竞技比赛id</param>
/// <param name="userId">用户id</param>
/// <returns></returns>
public bool Add(int clubId, int userId) {
string key = GetClubBankKey(clubId);
var isSuccess = dbp.SetAdd(key, userId);
db.KeyExpire(key, TimeSpan.FromDays(365));
return isSuccess;
}
/// <summary>
/// 移除玩家限制
/// <param name="clubId">竞技比赛id</param>
/// <param name="userId">用户id</param>
/// </summary>
public bool Remove(int clubId, int userId) {
string key = GetClubBankKey(clubId);
var isSuccess = dbp.SetRemove(key, userId);
db.KeyExpire(key, TimeSpan.FromDays(365));
return isSuccess;
}
/// <summary>
/// 移除
/// </summary>
public bool Remove(int clubId) {
string key = GetClubBankKey(clubId);
var isSuccess = dbp.KeyDelete(key);
return isSuccess;
}
/// <summary>
/// 是否包含玩家
/// <param name="clubId">竞技比赛id</param>
/// <param name="userId">用户id</param>
/// </summary>
public bool Contains(int clubId, int userId) {
string key = GetClubBankKey(clubId);
return dbp.SetContains(key, userId);
}
}
}