走一份遗产清单
Walking a list of inheritance
对于一个游戏,我们有一个排名列表,例如 default、mod、jrmod、admin 等。每个排名都存储在一个数据库中,并包含一些信息,就像它的内容一样继承及其权限。每个rank也可以继承,比如admin继承srmod,srmod继承mod,jrmod继承default。这允许在没有数据重复的情况下堆叠权限。
问题是当前加载等级时,会设置一个用户等级,然后该等级的继承和加载,然后是那些继承。然而,这意味着权限继承只有 2 层。对于我们上面的示例,admin 继承了 srmod,后者继承了 mod。然后它停止了。
我不知道我可以使用哪种算法来沿着继承线走下去,并加载这些权限。此代码在Java,每个等级可以有多个继承,例如jrmod继承默认和领主等级。
你只需要在 while 循环中检查 Rank 是否具有继承性,只要它有一个获得该等级的权限,然后再次检查并...
List<String> permissions = new
Rank rank = getRank(player);
while (rank.hasInheritance()) {
rank = rank.getInheritance();
permissions.addAll(rank.getPermissions());
}
对于一个游戏,我们有一个排名列表,例如 default、mod、jrmod、admin 等。每个排名都存储在一个数据库中,并包含一些信息,就像它的内容一样继承及其权限。每个rank也可以继承,比如admin继承srmod,srmod继承mod,jrmod继承default。这允许在没有数据重复的情况下堆叠权限。
问题是当前加载等级时,会设置一个用户等级,然后该等级的继承和加载,然后是那些继承。然而,这意味着权限继承只有 2 层。对于我们上面的示例,admin 继承了 srmod,后者继承了 mod。然后它停止了。
我不知道我可以使用哪种算法来沿着继承线走下去,并加载这些权限。此代码在Java,每个等级可以有多个继承,例如jrmod继承默认和领主等级。
你只需要在 while 循环中检查 Rank 是否具有继承性,只要它有一个获得该等级的权限,然后再次检查并...
List<String> permissions = new
Rank rank = getRank(player);
while (rank.hasInheritance()) {
rank = rank.getInheritance();
permissions.addAll(rank.getPermissions());
}