summaryrefslogtreecommitdiff
path: root/conf/groups.conf
diff options
context:
space:
mode:
authorgepard1984 <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-02-13 01:19:04 +0000
committergepard1984 <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-02-13 01:19:04 +0000
commit526217d77d50dc27b0815e3d5895df7bfa38ff76 (patch)
tree9fb6152ef59b7d08e7f226fbdc47eb6ba9617cc6 /conf/groups.conf
parent87469dc59de62990878ce6ccd29769ebd5b7d675 (diff)
downloadhercules-526217d77d50dc27b0815e3d5895df7bfa38ff76.tar.gz
hercules-526217d77d50dc27b0815e3d5895df7bfa38ff76.tar.bz2
hercules-526217d77d50dc27b0815e3d5895df7bfa38ff76.tar.xz
hercules-526217d77d50dc27b0815e3d5895df7bfa38ff76.zip
- Added `libconfig` (configuration file library: http://www.hyperrealm.com/libconfig/):
- Updated VS9/10 project files. - Updated `configure` & `Makefile`s. - New GM, Commands & Permissions system: - '''This is a backwards compatibility breaking update''', please read tid:58877 - Replaced GM levels with Player Groups. - Commands permissions & other privileges now depend on group, not GM level. - `@help` command improvements: requires "commandname" param and shows more detailed info about commands. - Modified GM whisper system to deliver messages basing on permissions, not GM level. - Remote trade request is now possible only if player is allowed to use `@trade` command as well. - Added a proper permission to use `/changemaptype` command. - `clif_displaymessage` is now capable of displaying multiline messages. - All `ACMD_FUNC`s are static now, and the only way to invoke them is with `is_atcommand()`; all client commands (starting with `/`) are now translated into corresponding atcommands (with exception of `/kick` used on monster, as there is no atcommand to kill single monster). - Removed nonsense "bot check" triggering when player blocked (`/ex`) Server. - Merged `@monster`, `@monsterbig` and `@monstersmall`. - Improved flow of atcommand execution to avoid revealing info about online players or existing commands to non-privileged players. - Merged `atcommand` and `charcommand` script functions (`charcommand` is aliased to `atcommand`). - Fixed `atcommand` script function reading unknown memory area (possible access violation). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15572 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'conf/groups.conf')
-rw-r--r--conf/groups.conf274
1 files changed, 274 insertions, 0 deletions
diff --git a/conf/groups.conf b/conf/groups.conf
new file mode 100644
index 000000000..d93d2aa09
--- /dev/null
+++ b/conf/groups.conf
@@ -0,0 +1,274 @@
+/*
+
+Player groups configuration file
+---------------------------------
+
+This file defines "player groups" and their privileges.
+
+Each group has its id and name, lists of available commands and other
+permissions, and a list of other groups it inherits from.
+
+
+Group settings
+--------------
+<id>
+Unique group number. The only required field.
+
+<name>
+Any string. If empty, defaults to "Group <id>". It is used in several @who
+commands.
+
+<level>
+Equivalent of GM level, which was used in revisions before r xxxxx. You can
+set it to any number, but usually it's between 0 (default) and 99. Members of
+groups with lower level can not perform some actions/commands (like @kick) on
+members of groups with higher level. It is what script command getgmlevel()
+returns. Group level can also be used to override trade restrictions
+(db/item_trade.txt).
+
+<commands>
+A group of settings
+ <command name> : <bool>
+or
+ <commandname> : [ <bool>, <bool> ]
+First boolean value is for atcommand, second one for charcommand. If set to
+true, group can use command. If only atcommand value is provided, false is
+assumed for charcommand. If a command name is not included, false is assumed for
+both atcommand and charcommand.
+For a full list of available commands, see: doc/atcommands.txt.
+Command names must not be aliases.
+
+<log_commands>
+Boolean value. If true then all commands used by the group will be logged to
+atcommandlog. If setting is omitted in a group definition, false is assumed.
+Requires 'log_commands' to be enabled in 'conf/log_athena.conf'.
+
+<permissions>
+A group of settings
+ <permission> : <bool>
+If a permission is not included, false is assumed.
+For a full list of available permissions, see: doc/permissions.txt
+
+<inherit>
+A list of group names that given group will inherit commands and permissions
+from. Group names are case-sensitive.
+
+Inheritance results
+-------------------
+Both multiple inheritance (Group 2 -> Group 1 and Group 3 -> Group 1) and
+recursive inheritance (Group 3 -> Group 2 -> Group 1) are allowed.
+
+Inheritance rules should not create cycles (eg Group 1 inherits from Group 2,
+and Group inherits from Group 1 at the same time). Configuration with cycles is
+considered faulty and can't be processed fully by server.
+
+Command or permission is inherited ONLY if it's not already defined for the
+group.
+If group inherits from multiple groups, and the same command or permission is
+defined for more than one of these groups, it's undefined which one will be
+inherited.
+
+Syntax
+------
+This config file uses libconfig syntax:
+http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files
+
+
+Upgrading from revisions before XXXXX
+-------------------------------------
+<forum link>
+*/
+
+groups: (
+{
+ id: 0 /* group 0 is the default group for every new account */
+ name: "Player"
+ level: 0
+ inherit: ( /*empty list*/ )
+ commands: {
+ /* no commands by default */
+ }
+ permissions: {
+ /* without this basic permissions regular players could not
+ trade or party */
+ can_trade: true
+ can_party: true
+ }
+},
+{
+ id: 1
+ name: "Super Player"
+ inherit: ( "Player" ) /* can do everything Players can and more */
+ level: 0
+ commands: {
+ /* informational commands */
+ commands: true
+ charcommands: true
+ help: true
+ rates: true
+ uptime: true
+ showdelay: true
+ exp: true
+ mobinfo: true
+ iteminfo: true
+ whodrops: true
+ time: true
+ jailtime: true
+ hominfo: true
+ homstats: true
+ showexp: true
+ showzeny: true
+ whereis: true
+ /* feature commands */
+ refresh: true
+ noask: true
+ noks: true
+ main: true
+ autoloot: true
+ alootid: true
+ autotrade: true
+ request: true
+ go: true
+ }
+ permissions: {
+ }
+},
+{
+ id: 2
+ name: "Support"
+ inherit: ( "Super Player" )
+ level: 1
+ commands: {
+ version: true
+ where: true
+ jumpto: true
+ who: true
+ who2: true
+ who3: true
+ whomap: true
+ whomap2: true
+ whomap3: true
+ users: true
+ broadcast: true
+ localbroadcast: true
+ }
+ log_commands: true
+ permissions: {
+ receive_requests: true
+ view_equipment: true
+ }
+},
+{
+ id: 3
+ name: "Script Manager"
+ inherit: ( "Support" )
+ level: 1
+ commands: {
+ tonpc: true
+ hidenpc: true
+ shownpc: true
+ loadnpc: true
+ unloadnpc: true
+ npcmove: true
+ addwarp: true
+ }
+ log_commands: true
+ permissions: {
+ any_warp: true
+ }
+},
+{
+ id: 4
+ name: "Event Manager"
+ inherit: ( "Support" )
+ level: 1
+ commands: {
+ monster: true
+ monstersmall: true
+ monsterbig: true
+ killmonster2: true
+ cleanmap: true
+ item: [true, true]
+ zeny: [true, true]
+ disguise: [true, true]
+ undisguise: [true, true]
+ size: [true, true]
+ raise: true
+ raisemap: true
+ day: true
+ night: true
+ skillon: true
+ skilloff: true
+ pvpon: true
+ pvpoff: true
+ gvgon: true
+ gvgoff: true
+ allowks: true
+ me: true
+ marry: true
+ divorce: true
+ }
+ log_commands: true
+ permissions: {
+ can_trade: false
+ any_warp: true
+ }
+},
+{
+ id: 10
+ name: "Law Enforcement"
+ inherit: ( "Support" )
+ level: 2
+ commands: {
+ hide: true
+ follow: true
+ kick: true
+ disguise: true
+ fakename: true
+ option: true
+ speed: true
+ warp: true
+ kill: true
+ recall: true
+ ban: true
+ block: true
+ jail: true
+ jailfor: true
+ mute: true
+ storagelist: true
+ cartlist: true
+ itemlist: true
+ stats: true
+ }
+ log_commands: true
+ permissions: {
+ join_chat: true
+ kick_chat: true
+ hide_session: true
+ who_display_aid: true
+ hack_info: true
+ any_warp: true
+ view_hpmeter: true
+ }
+},
+{
+ id: 99
+ name: "Admin"
+ level: 99
+ inherit: ( "Support", "Law Enforcement" )
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ can_trade: true
+ can_party: true
+ all_skill: true
+ all_equipment: true
+ skill_unconditional: true
+ use_check: true
+ use_changemaptype: true
+ all_commands: true
+ }
+}
+)
+