Anton Tarasenko
2 years ago
2 changed files with 99 additions and 0 deletions
@ -0,0 +1,25 @@
|
||||
; In this config you can add several different user groups by adding |
||||
; `[<group_name> UserGroup]` section for rach group. Every user can belong to |
||||
; several different groups. |
||||
; `priority` describes how important the group is. For example, if a user |
||||
; belongs to two different groups and both groups have different access rights |
||||
; for a certain command - the one with the highest priority will be chosen by |
||||
; default. |
||||
; You can specify several `user` entries with players stead id to add user to |
||||
; the certain group. |
||||
|
||||
[admin UserGroup] |
||||
priority=400 |
||||
;user= |
||||
|
||||
[moderator UserGroup] |
||||
priority=200 |
||||
;user= |
||||
|
||||
[trusted UserGroup] |
||||
priority=100 |
||||
;user= |
||||
|
||||
[wanted UserGroup] |
||||
priority=0 |
||||
;user= |
@ -0,0 +1,74 @@
|
||||
/** |
||||
* Acedia's class for defining user group in config files. |
||||
* Copyright 2022 Anton Tarasenko |
||||
*------------------------------------------------------------------------------ |
||||
* This file is part of Acedia. |
||||
* |
||||
* Acedia is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* Acedia is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Acedia. If not, see <https://www.gnu.org/licenses/>. |
||||
*/ |
||||
class UserGroup extends AcediaConfig |
||||
perobjectconfig |
||||
config(AcediaUserGroups); |
||||
|
||||
var public config int priority; |
||||
var public config array<string> user; |
||||
|
||||
protected function HashTable ToData() |
||||
{ |
||||
local int i; |
||||
local HashTable data; |
||||
local ArrayList wrappedUserArray; |
||||
|
||||
data = __().collections.EmptyHashTable(); |
||||
data.SetInt(P("priority"), priority); |
||||
wrappedUserArray = __().collections.EmptyArrayList(); |
||||
for (i = 0; i < user.length; i += 1) { |
||||
wrappedUserArray.AddString(user[i]); |
||||
} |
||||
data.SetItem(P("user"), wrappedUserArray); |
||||
wrappedUserArray.FreeSelf(); |
||||
return data; |
||||
} |
||||
|
||||
protected function FromData(HashTable source) |
||||
{ |
||||
local int i; |
||||
local ArrayList wrappedUserArray; |
||||
|
||||
DefaultIt(); |
||||
if (source == none) { |
||||
return; |
||||
} |
||||
priority = source.GetInt(P("priority"), 0); |
||||
wrappedUserArray = source.GetArrayList(P("user")); |
||||
if (wrappedUserArray == none) { |
||||
return; |
||||
} |
||||
for (i = 0; i < wrappedUserArray.GetLength(); i += 1) { |
||||
user[user.length] = wrappedUserArray.GetString(i); |
||||
} |
||||
wrappedUserArray.FreeSelf(); |
||||
} |
||||
|
||||
protected function DefaultIt() |
||||
{ |
||||
priority = 0; |
||||
user.length = 0; |
||||
} |
||||
|
||||
defaultproperties |
||||
{ |
||||
configName = "AcediaUserGroups" |
||||
supportsDataConversion = true |
||||
} |
Loading…
Reference in new issue