对于游戏,我们有一个等级列表,例如默认等级,mod,jrmod,admin等。每个等级都存储在数据库中,并包含一些信息,就像继承的内容和权限一样。每个等级也可以从另一个等级继承,例如,admin继承srmod,后者继承mod,而srmod继承jrmod,后者继承default。这允许在不重复数据的情况下堆叠权限。
问题是,当前在加载等级时,将设置用户等级,然后继承并加载该等级,然后再继承。但是,这意味着权限继承仅深入2层。对于上面的示例,admin继承了srmod,后者继承了mod。然后停止。
我迷失了我可以使用哪种算法沿继承路线行进并加载这些权限。此代码是Java语言,每个等级可以有多个继承,例如jrmod继承default和Lord等级。
[您只需要在while循环中检查Rank是否具有继承,并且只要它具有一个继承,就可以获得他们对该等级的许可,然后再次检查并...
List<String> permissions = new
Rank rank = getRank(player);
while (rank.hasInheritance()) {
rank = rank.getInheritance();
permissions.addAll(rank.getPermissions());
}