make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_help_view,PermissionGroup::global_info,"b_serverinstance_help_view","Retrieve information about ServerQuery commands"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_version_view,PermissionGroup::global_info,"b_serverinstance_version_view","Retrieve global server version (including platform and build number)"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_info_view,PermissionGroup::global_info,"b_serverinstance_info_view","Retrieve global server information"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_virtualserver_list,PermissionGroup::global_info,"b_serverinstance_virtualserver_list","List virtual servers stored in the sql"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_binding_list,PermissionGroup::global_info,"b_serverinstance_binding_list","List active IP bindings on multi-homed machines"),
//Removed due its useless
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_permission_list,PermissionGroup::global_info,"b_serverinstance_permission_list","List permissions available available on the server instance"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_permission_find,PermissionGroup::global_info,"b_serverinstance_permission_find","Search permission assignments by name or ID"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_start_any,PermissionGroup::global_vsmanage,"b_virtualserver_start_any","Start any virtual server in the server instance"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_stop_any,PermissionGroup::global_vsmanage,"b_virtualserver_stop_any","Stop any virtual server in the server instance"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_change_machine_id,PermissionGroup::global_vsmanage,"b_virtualserver_change_machine_id","Change a virtual servers machine ID"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_change_template,PermissionGroup::global_vsmanage,"b_virtualserver_change_template","Edit virtual server default template values"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverquery_login,PermissionGroup::global_admin,"b_serverquery_login","Login to ServerQuery"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_textmessage_send,PermissionGroup::global_admin,"b_serverinstance_textmessage_send","Send text messages to all virtual servers at once"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_log_view,PermissionGroup::global_admin,"b_serverinstance_log_view","Retrieve global server log"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_log_add,PermissionGroup::global_admin,"b_serverinstance_log_add","Write to global server log"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_stop,PermissionGroup::global_admin,"b_serverinstance_stop","Shutdown the server process"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_modify_settings,PermissionGroup::global_settings,"b_serverinstance_modify_settings","Edit global settings"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_modify_querygroup,PermissionGroup::global_settings,"b_serverinstance_modify_querygroup","Edit global ServerQuery groups"),
make_shared<PermissionTypeEntry>(PermissionType::b_serverinstance_modify_templates,PermissionGroup::global_settings,"b_serverinstance_modify_templates","Edit global template groups"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_select,PermissionGroup::vs_info,"b_virtualserver_select","Select a virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_select_godmode,PermissionGroup::vs_info,"b_virtualserver_select_godmode","Select a virtual server but be invisible"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_info_view,PermissionGroup::vs_info,"b_virtualserver_info_view","Retrieve virtual server information"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_connectioninfo_view,PermissionGroup::vs_info,"b_virtualserver_connectioninfo_view","Retrieve virtual server connection information"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_channel_list,PermissionGroup::vs_info,"b_virtualserver_channel_list","List channels on a virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_channel_search,PermissionGroup::vs_info,"b_virtualserver_channel_search","Search for channels on a virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_client_list,PermissionGroup::vs_info,"b_virtualserver_client_list","List clients online on a virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_client_search,PermissionGroup::vs_info,"b_virtualserver_client_search","Search for clients online on a virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_client_dblist,PermissionGroup::vs_info,"b_virtualserver_client_dblist","List client identities known by the virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_client_dbsearch,PermissionGroup::vs_info,"b_virtualserver_client_dbsearch","Search for client identities known by the virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_token_add,PermissionGroup::vs_admin,"b_virtualserver_token_add","Create new privilege keys"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_token_use,PermissionGroup::vs_admin,"b_virtualserver_token_use","Use a privilege keys to gain access to groups"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_token_delete,PermissionGroup::vs_admin,"b_virtualserver_token_delete","Delete a privilege key"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_log_view,PermissionGroup::vs_admin,"b_virtualserver_log_view","Retrieve virtual server log"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_log_add,PermissionGroup::vs_admin,"b_virtualserver_log_add","Write to virtual server log"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_join_ignore_password,PermissionGroup::vs_admin,"b_virtualserver_join_ignore_password","Join virtual server ignoring its password"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_notify_register,PermissionGroup::vs_admin,"b_virtualserver_notify_register","Register for server notifications"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_notify_unregister,PermissionGroup::vs_admin,"b_virtualserver_notify_unregister","Unregister from server notifications"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_snapshot_create,PermissionGroup::vs_admin,"b_virtualserver_snapshot_create","Create server snapshots"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_snapshot_deploy,PermissionGroup::vs_admin,"b_virtualserver_snapshot_deploy","Deploy server snapshots"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_permission_reset,PermissionGroup::vs_admin,"b_virtualserver_permission_reset","Reset the server permission settings to default values"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_name,PermissionGroup::vs_settings,"b_virtualserver_modify_name","Modify server name"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_maxchannels,PermissionGroup::vs_settings,"b_virtualserver_modify_maxchannels","Modify servers max channels"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_maxclients,PermissionGroup::vs_settings,"b_virtualserver_modify_maxclients","Modify servers max clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_password,PermissionGroup::vs_settings,"b_virtualserver_modify_password","Modify server password"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_default_servergroup,PermissionGroup::vs_settings,"b_virtualserver_modify_default_servergroup","Modify default Server Group"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_default_musicgroup,PermissionGroup::vs_settings,"b_virtualserver_modify_default_musicgroup","Modify default music Group"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_channel_forced_silence,PermissionGroup::vs_settings,"b_virtualserver_modify_channel_forced_silence","Modify channel force silence value"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_ft_settings,PermissionGroup::vs_settings,"b_virtualserver_modify_ft_settings","Modify file transfer settings"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_ft_quotas,PermissionGroup::vs_settings,"b_virtualserver_modify_ft_quotas","Modify file transfer quotas"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_port,PermissionGroup::vs_settings,"b_virtualserver_modify_port","Modify server port"),
#ifndef LAGENCY
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_host,PermissionGroup::vs_settings,"b_virtualserver_modify_host","Modify server host"),
#endif
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_autostart,PermissionGroup::vs_settings,"b_virtualserver_modify_autostart","Modify server autostart"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_min_client_version,PermissionGroup::vs_settings,"b_virtualserver_modify_min_client_version","Modify min client version"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_icon_id,PermissionGroup::vs_settings,"b_virtualserver_modify_icon_id","Modify server icon"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_weblist,PermissionGroup::vs_settings,"b_virtualserver_modify_weblist","Modify web server list reporting settings"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_country_code,PermissionGroup::vs_settings,"b_virtualserver_modify_country_code","Modify servers country code property"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_temporary_passwords_own,PermissionGroup::vs_settings,"b_virtualserver_modify_temporary_passwords_own","Modify own temporary serverpasswords"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_music_bot_limit,PermissionGroup::vs_settings,"b_virtualserver_modify_music_bot_limit","Allow client to edit the server music bot limit"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_modify_default_messages,PermissionGroup::vs_settings,"b_virtualserver_modify_default_messages","Allows the client to edit the default messages"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_min_depth,PermissionGroup::channel,"i_channel_min_depth","Min channel creation depth in hierarchy"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_max_depth,PermissionGroup::channel,"i_channel_max_depth","Max channel creation depth in hierarchy"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_group_inheritance_end,PermissionGroup::channel,"b_channel_group_inheritance_end","Stop inheritance of channel group permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_with_topic,PermissionGroup::channel_create,"b_channel_create_with_topic","Create channels with a topic"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_with_description,PermissionGroup::channel_create,"b_channel_create_with_description","Create channels with a description"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_codec_speex8,PermissionGroup::channel_create,"b_channel_create_modify_with_codec_speex8","Create channels using Speex Narrowband (8 kHz) codecs"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_codec_speex16,PermissionGroup::channel_create,"b_channel_create_modify_with_codec_speex16","Create channels using Speex Wideband (16 kHz) codecs"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_codec_speex32,PermissionGroup::channel_create,"b_channel_create_modify_with_codec_speex32","Create channels using Speex Ultra-Wideband (32 kHz) codecs"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_codec_celtmono48,PermissionGroup::channel_create,"b_channel_create_modify_with_codec_celtmono48","Create channels using the CELT Mono (48 kHz) codec"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_codec_opusvoice,PermissionGroup::channel_create,"b_channel_create_modify_with_codec_opusvoice","Create channels using OPUS (voice) codec"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_codec_opusmusic,PermissionGroup::channel_create,"b_channel_create_modify_with_codec_opusmusic","Create channels using OPUS (music) codec"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_create_modify_with_codec_maxquality,PermissionGroup::channel_create,"i_channel_create_modify_with_codec_maxquality","Create channels with custom codec quality"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_create_modify_with_codec_latency_factor_min,PermissionGroup::channel_create,"i_channel_create_modify_with_codec_latency_factor_min","Create channels with minimal custom codec latency factor"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_with_maxclients,PermissionGroup::channel_create,"b_channel_create_with_maxclients","Create channels with custom max clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_with_maxfamilyclients,PermissionGroup::channel_create,"b_channel_create_with_maxfamilyclients","Create channels with custom max family clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_with_sortorder,PermissionGroup::channel_create,"b_channel_create_with_sortorder","Create channels with custom sort order"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_with_needed_talk_power,PermissionGroup::channel_create,"b_channel_create_with_needed_talk_power","Create channels with needed talk power"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_with_force_password,PermissionGroup::channel_create,"b_channel_create_modify_with_force_password","Create new channels only with password"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_create_modify_with_temp_delete_delay,PermissionGroup::channel_create,"i_channel_create_modify_with_temp_delete_delay","Max delete delay for temporary channels"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_create_modify_conversation_history_length,PermissionGroup::channel_create,"i_channel_create_modify_conversation_history_length","Upper limmit for the setting of the max conversation history limit"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_conversation_history_unlimited,PermissionGroup::channel_create,"b_channel_create_modify_conversation_history_unlimited","Allows the user to set the channel conversation history to unlimited"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_create_modify_conversation_private,PermissionGroup::channel_create,"b_channel_create_modify_conversation_private","Allows the user to set the channel conversation to private"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_modify_maxclients,PermissionGroup::channel_modify,"b_channel_modify_maxclients","Modify channels max clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_modify_maxfamilyclients,PermissionGroup::channel_modify,"b_channel_modify_maxfamilyclients","Modify channels max family clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_conversation_message_delete,PermissionGroup::channel_modify,"b_channel_conversation_message_delete","If set the user is able to delete conversation messages"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_join_ignore_password,PermissionGroup::channel_access,"b_channel_join_ignore_password","Join channel ignoring its password"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_join_ignore_maxclients,PermissionGroup::channel_access,"b_channel_join_ignore_maxclients","Ignore channels max clients limit"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_ignore_view_power,PermissionGroup::channel_access,"b_channel_ignore_view_power","If set the client see's every channel"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_ignore_join_power,PermissionGroup::channel_access,"b_channel_ignore_join_power","Allows the client to bypass the channel join power"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_ignore_subscribe_power,PermissionGroup::channel_access,"b_channel_ignore_subscribe_power","Allows the client to bypass the subscribe power"),
make_shared<PermissionTypeEntry>(PermissionType::b_channel_ignore_description_view_power,PermissionGroup::channel_access,"b_channel_ignore_description_view_power","Allows the client to bypass the channel description view power"),
make_shared<PermissionTypeEntry>(PermissionType::i_max_icon_filesize,PermissionGroup::group,"i_max_icon_filesize","Max icon filesize in bytes"),
make_shared<PermissionTypeEntry>(PermissionType::i_max_playlist_size,PermissionGroup::group,"i_max_playlist_size","Max songs within one playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_max_playlists,PermissionGroup::group,"i_max_playlists","Max amount of playlists a client could own"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_auto_update_max_value,PermissionGroup::group,"i_group_auto_update_max_value","Group auto-update max value"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_show_name_in_tree,PermissionGroup::group,"i_group_show_name_in_tree","Show group name in tree depending on selected mode"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_servergroup_list,PermissionGroup::group_info,"b_virtualserver_servergroup_list","List server groups"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_servergroup_permission_list,PermissionGroup::group_info,"b_virtualserver_servergroup_permission_list","Allows the client to view all server group permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_servergroup_client_list,PermissionGroup::group_info,"b_virtualserver_servergroup_client_list","List clients from a server group"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_channelgroup_permission_list,PermissionGroup::group_info,"b_virtualserver_channelgroup_permission_list","Allows the client to view all channel group permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_channelgroup_client_list,PermissionGroup::group_info,"b_virtualserver_channelgroup_client_list","List clients from a channel group"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_client_permission_list,PermissionGroup::group_info,"b_virtualserver_client_permission_list","Allows the client to view all client permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_channel_permission_list,PermissionGroup::group_info,"b_virtualserver_channel_permission_list","Allows the client to view all channel permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_channelclient_permission_list,PermissionGroup::group_info,"b_virtualserver_channelclient_permission_list","Allows the client to view all client channel permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_playlist_permission_list,PermissionGroup::group_info,"b_virtualserver_playlist_permission_list","Allows the client to view all playlist permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_servergroup_create,PermissionGroup::group_create,"b_virtualserver_servergroup_create","Create server groups"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_needed_modify_power,PermissionGroup::group_168,"i_group_needed_modify_power","Needed group modify power"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_member_add_power,PermissionGroup::group_168,"i_group_member_add_power","Group member add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_needed_member_add_power,PermissionGroup::group_168,"i_group_needed_member_add_power","Needed group member add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_member_remove_power,PermissionGroup::group_168,"i_group_member_remove_power","Group member delete power"),
make_shared<PermissionTypeEntry>(PermissionType::i_group_needed_member_remove_power,PermissionGroup::group_168,"i_group_needed_member_remove_power","Needed group member delete power"),
#else
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_modify_power,PermissionGroup::group_modify,"i_server_group_modify_power","Server group modify power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_needed_modify_power,PermissionGroup::group_modify,"i_server_group_needed_modify_power","Needed server group modify power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_member_add_power,PermissionGroup::group_modify,"i_server_group_member_add_power","Server group member add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_self_add_power,PermissionGroup::group_modify,"i_server_group_self_add_power","Server group self add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_needed_member_add_power,PermissionGroup::group_modify,"i_server_group_needed_member_add_power","Needed server group member add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_member_remove_power,PermissionGroup::group_modify,"i_server_group_member_remove_power","Server group member delete power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_self_remove_power,PermissionGroup::group_modify,"i_server_group_self_remove_power","Server group self delete power"),
make_shared<PermissionTypeEntry>(PermissionType::i_server_group_needed_member_remove_power,PermissionGroup::group_modify,"i_server_group_needed_member_remove_power","Needed server group member delete power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_modify_power,PermissionGroup::group_modify,"i_channel_group_modify_power","Channel group modify power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_needed_modify_power,PermissionGroup::group_modify,"i_channel_group_needed_modify_power","Needed channel group modify power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_member_add_power,PermissionGroup::group_modify,"i_channel_group_member_add_power","Channel group member add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_self_add_power,PermissionGroup::group_modify,"i_channel_group_self_add_power","Channel group self add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_needed_member_add_power,PermissionGroup::group_modify,"i_channel_group_needed_member_add_power","Needed channel group member add power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_member_remove_power,PermissionGroup::group_modify,"i_channel_group_member_remove_power","Channel group member delete power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_self_remove_power,PermissionGroup::group_modify,"i_channel_group_self_remove_power","Channel group self delete power"),
make_shared<PermissionTypeEntry>(PermissionType::i_channel_group_needed_member_remove_power,PermissionGroup::group_modify,"i_channel_group_needed_member_remove_power","Needed channel group member delete power"),
//old enum mapping
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_member_add_power,PermissionGroup::group_modify,"i_group_member_add_power","The displayed member add power (Enables/Disabled the group in the select menu)"),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_needed_member_add_power,PermissionGroup::group_modify,"i_group_needed_member_add_power","The needed displayed member add power (Enables/Disabled the group in the select menu)"),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_member_remove_power,PermissionGroup::group_modify,"i_group_member_remove_power","The displayed member add power (Enables/Disabled the group in the select menu)"),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_needed_member_remove_power,PermissionGroup::group_modify,"i_group_needed_member_remove_power","The needed displayed member add power (Enables/Disabled the group in the select menu)"),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_modify_power,PermissionGroup::group_modify,"i_group_modify_power","The displayed member add power (Enables/Disabled the group in the select menu)"),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_needed_modify_power,PermissionGroup::group_modify,"i_group_needed_modify_power","The needed displayed member add power (Enables/Disabled the group in the select menu)"),
//new enum mapping (must come AFTER the supported permissions)
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_member_add_power,PermissionGroup::group_modify,"i_displayed_group_member_add_power","The displayed member add power (Enables/Disabled the group in the select menu)",false),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_needed_member_add_power,PermissionGroup::group_modify,"i_displayed_group_needed_member_add_power","The needed displayed member add power (Enables/Disabled the group in the select menu)",false),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_member_remove_power,PermissionGroup::group_modify,"i_displayed_group_member_remove_power","The displayed member add power (Enables/Disabled the group in the select menu)",false),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_needed_member_remove_power,PermissionGroup::group_modify,"i_displayed_group_needed_member_remove_power","The needed displayed member add power (Enables/Disabled the group in the select menu)",false),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_modify_power,PermissionGroup::group_modify,"i_displayed_group_modify_power","The displayed member add power (Enables/Disabled the group in the select menu)",false),
make_shared<PermissionTypeEntry>(PermissionType::i_displayed_group_needed_modify_power,PermissionGroup::group_modify,"i_displayed_group_needed_modify_power","The needed displayed member add power (Enables/Disabled the group in the select menu)",false),
make_shared<PermissionTypeEntry>(PermissionType::b_virtualserver_servergroup_delete,PermissionGroup::group_delete,"b_virtualserver_servergroup_delete","Delete server groups"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_clones_uid,PermissionGroup::client,"i_client_max_clones_uid","Max additional connections per client identity"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_clones_ip,PermissionGroup::client,"i_client_max_clones_ip","Max additional connections per client address"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_clones_hwid,PermissionGroup::client,"i_client_max_clones_hwid","Max additional connections per client hardware id"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_idletime,PermissionGroup::client,"i_client_max_idletime","Max idle time in seconds"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_avatar_filesize,PermissionGroup::client,"i_client_max_avatar_filesize","Max avatar filesize in bytes"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_channels,PermissionGroup::client,"i_client_max_channels","Limit of created channels"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_temporary_channels,PermissionGroup::client,"i_client_max_temporary_channels","Limit of created temporary channels"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_semi_channels,PermissionGroup::client,"i_client_max_semi_channels","Limit of created semi-permanent channels"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_max_permanent_channels,PermissionGroup::client,"i_client_max_permanent_channels","Limit of created permanent channels"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_use_priority_speaker,PermissionGroup::client,"b_client_use_priority_speaker","Allows the client to use priority speaker"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_is_priority_speaker,PermissionGroup::client,"b_client_is_priority_speaker","Toogels the client priority speaker mode"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_skip_channelgroup_permissions,PermissionGroup::client,"b_client_skip_channelgroup_permissions","Ignore channel group permissions"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_enforce_valid_hwid,PermissionGroup::client,"b_client_enforce_valid_hwid","Enforces the client to have a valid hardware id"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_allow_invalid_packet,PermissionGroup::client,"b_client_allow_invalid_packet","Allow client to send invalid packets"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_allow_invalid_badges,PermissionGroup::client,"b_client_allow_invalid_badges","Allow client to have invalid badges"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_issue_client_query_command,PermissionGroup::client,"b_client_issue_client_query_command","Issue query commands from client"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_use_reserved_slot,PermissionGroup::client,"b_client_use_reserved_slot","Use an reserved slot"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_request_talker,PermissionGroup::client,"b_client_request_talker","Allow to request talk power"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_avatar_delete_other,PermissionGroup::client,"b_client_avatar_delete_other","Allow deletion of avatars from other clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_is_sticky,PermissionGroup::client,"b_client_is_sticky","Client will be sticked to current channel"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_channel_list,PermissionGroup::client_info,"b_client_music_channel_list","List all music bots in the current channel"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_server_list,PermissionGroup::client_info,"b_client_music_server_list","List all music bots on the sderver"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_info,PermissionGroup::client_info,"i_client_music_info","Permission to view music bot info"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_needed_info,PermissionGroup::client_info,"i_client_music_needed_info","Required permission to view music bot info"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_permissionoverview_own,PermissionGroup::client_info,"b_client_permissionoverview_own","Retrieve clients own permissions overview"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_remoteaddress_view,PermissionGroup::client_info,"b_client_remoteaddress_view","View client IP address and port"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_kick_from_server_power,PermissionGroup::client_admin,"i_client_kick_from_server_power","Client kick power from server"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_needed_kick_from_server_power,PermissionGroup::client_admin,"i_client_needed_kick_from_server_power","Needed client kick power from server"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_kick_from_channel_power,PermissionGroup::client_admin,"i_client_kick_from_channel_power","Client kick power from channel"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_needed_kick_from_channel_power,PermissionGroup::client_admin,"i_client_needed_kick_from_channel_power","Needed client kick power from channel"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_ban_power,PermissionGroup::client_admin,"i_client_ban_power","Client ban power"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_needed_ban_power,PermissionGroup::client_admin,"i_client_needed_ban_power","Needed client ban power"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_complain_delete_own,PermissionGroup::client_admin,"b_client_complain_delete_own","Delete own complains"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_create,PermissionGroup::client_admin,"b_client_ban_create","Add a ban"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_create_global,PermissionGroup::client_admin,"b_client_ban_create_global","Allow to create global bans"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_name,PermissionGroup::client_admin,"b_client_ban_name","Allows the client to ban a client by name"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_ip,PermissionGroup::client_admin,"b_client_ban_ip","Allows the client to ban a client by ip"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_hwid,PermissionGroup::client_admin,"b_client_ban_hwid","Allows the client to ban a client hardware id"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_edit,PermissionGroup::client_admin,"b_client_ban_edit","Allow to edit bans"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_edit_global,PermissionGroup::client_admin,"b_client_ban_edit_global","Allow to edit global bans"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_delete_own,PermissionGroup::client_admin,"b_client_ban_delete_own","Delete own bans"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_delete_own_global,PermissionGroup::client_admin,"b_client_ban_delete_own_global","Delete own global bans"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_ban_delete_global,PermissionGroup::client_admin,"b_client_ban_delete_global","Delete global bans"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_even_textmessage_send,PermissionGroup::client_basic,"b_client_even_textmessage_send","Allows the client to send text messages to himself"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_server_textmessage_send,PermissionGroup::client_basic,"b_client_server_textmessage_send","Send text messages to virtual server"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_channel_textmessage_send,PermissionGroup::client_basic,"b_client_channel_textmessage_send","Send text messages to channel"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_offline_textmessage_send,PermissionGroup::client_basic,"b_client_offline_textmessage_send","Send offline messages to clients"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_set_flag_talker,PermissionGroup::client_basic,"b_client_set_flag_talker","Set the talker flag for clients and allow them to speak"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_modify_description,PermissionGroup::client_modify,"b_client_modify_description","Edit a clients description"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_modify_own_description,PermissionGroup::client_modify,"b_client_modify_own_description","Allow client to edit own description"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_modify_dbproperties,PermissionGroup::client_modify,"b_client_modify_dbproperties","Edit a clients properties in the sql"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_delete_dbproperties,PermissionGroup::client_modify,"b_client_delete_dbproperties","Delete a clients properties in the sql"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_create_modify_serverquery_login,PermissionGroup::client_modify,"b_client_create_modify_serverquery_login","Create or modify own ServerQuery account"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_create,PermissionGroup::client_modify,"b_client_query_create","Create a ServerQuery account for any user"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_create_own,PermissionGroup::client_modify,"b_client_query_create_own","Create your own ServerQuery account"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_list,PermissionGroup::client_modify,"b_client_query_list","List all ServerQuery accounts"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_list_own,PermissionGroup::client_modify,"b_client_query_list_own","List all own ServerQuery accounts"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_rename,PermissionGroup::client_modify,"b_client_query_rename","Rename a ServerQuery account"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_rename_own,PermissionGroup::client_modify,"b_client_query_rename_own","Rename the own ServerQuery account"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_change_password,PermissionGroup::client_modify,"b_client_query_change_password","Change a server query accounts password"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_change_own_password,PermissionGroup::client_modify,"b_client_query_change_own_password","Change a query accounts own password"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_change_password_global,PermissionGroup::client_modify,"b_client_query_change_password_global","Change a global query accounts own password"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_delete,PermissionGroup::client_modify,"b_client_query_delete","Delete a query accounts password"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_query_delete_own,PermissionGroup::client_modify,"b_client_query_delete_own","Delete own query accounts password"),
#ifndef LAGENCY
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_create_temporary,PermissionGroup::client,"b_client_music_create_temporary","Permission to create a music bot"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_create_semi_permanent,PermissionGroup::client,"b_client_music_create_semi_permanent","Allows the client to create semi permanent music bots"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_create_permanent,PermissionGroup::client,"b_client_music_create_permanent","Allows the client to create permanent music bots"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_modify_temporary,PermissionGroup::client,"b_client_music_modify_temporary","Permission to make a music bot temporary"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_modify_semi_permanent,PermissionGroup::client,"b_client_music_modify_semi_permanent","Allows the client to make a bot semi permanent"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_music_modify_permanent,PermissionGroup::client,"b_client_music_modify_permanent","Allows the client to make a bot permanent"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_create_modify_max_volume,PermissionGroup::client,"i_client_music_create_modify_max_volume","Sets the max allowed music bot volume"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_limit,PermissionGroup::client,"i_client_music_limit","The limit of music bots bound to this client"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_delete_power,PermissionGroup::client,"i_client_music_delete_power","Power to delete the music bot"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_needed_delete_power,PermissionGroup::client,"i_client_music_needed_delete_power","Required power to delete the music bot"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_play_power,PermissionGroup::client,"i_client_music_play_power","Power to play music"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_needed_modify_power,PermissionGroup::client,"i_client_music_needed_modify_power","Required power to modify the bot settings"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_modify_power,PermissionGroup::client,"i_client_music_modify_power","Power to modify the music bot settings"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_needed_play_power,PermissionGroup::client,"i_client_music_needed_play_power","Required power to play music"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_rename_power,PermissionGroup::client,"i_client_music_rename_power","Power to rename the bot"),
make_shared<PermissionTypeEntry>(PermissionType::i_client_music_needed_rename_power,PermissionGroup::client,"i_client_music_needed_rename_power","The required rename power for a music bot"),
make_shared<PermissionTypeEntry>(PermissionType::b_playlist_create,PermissionGroup::client,"b_playlist_create","Allows the client to create playlists"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_view_power,PermissionGroup::client,"i_playlist_view_power","Power to see a playlist, and their songs"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_needed_view_power,PermissionGroup::client,"i_playlist_needed_view_power","Needed power to see a playlist, and their songs"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_modify_power,PermissionGroup::client,"i_playlist_modify_power","Power to modify the playlist properties"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_needed_modify_power,PermissionGroup::client,"i_playlist_needed_modify_power","Needed power to modify the playlist properties"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_permission_modify_power,PermissionGroup::client,"i_playlist_permission_modify_power","Power to modify the playlist permissions"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_needed_permission_modify_power,PermissionGroup::client,"i_playlist_needed_permission_modify_power","Needed power to modify the playlist permissions"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_delete_power,PermissionGroup::client,"i_playlist_delete_power","Power to delete the playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_needed_delete_power,PermissionGroup::client,"i_playlist_needed_delete_power","Needed power to delete the playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_song_add_power,PermissionGroup::client,"i_playlist_song_add_power","Power to add songs to a playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_song_needed_add_power,PermissionGroup::client,"i_playlist_song_needed_add_power","Needed power to add songs to a playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_song_remove_power,PermissionGroup::client,"i_playlist_song_remove_power","Power to remove songs from a playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_song_needed_remove_power,PermissionGroup::client,"i_playlist_song_needed_remove_power","Needed power to remove songs from a playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_song_move_power,PermissionGroup::client,"i_playlist_song_move_power","Power to move songs witin a playlist"),
make_shared<PermissionTypeEntry>(PermissionType::i_playlist_song_needed_move_power,PermissionGroup::client,"i_playlist_song_needed_move_power","Needed power to move songs within a playlist"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_use_bbcode_any,PermissionGroup::client,"b_client_use_bbcode_any","Allows the client to use any bbcodes"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_use_bbcode_image,PermissionGroup::client,"b_client_use_bbcode_image","Allows the client to use img bbcode"),
make_shared<PermissionTypeEntry>(PermissionType::b_client_use_bbcode_url,PermissionGroup::client,"b_client_use_bbcode_url","Allows the client to use url bbcode"),
#endif
make_shared<PermissionTypeEntry>(PermissionType::b_ft_ignore_password,PermissionGroup::ft,"b_ft_ignore_password","Browse files without channel password"),
make_shared<PermissionTypeEntry>(PermissionType::b_ft_transfer_list,PermissionGroup::ft,"b_ft_transfer_list","Retrieve list of running filetransfers"),
make_shared<PermissionTypeEntry>(PermissionType::i_ft_quota_mb_download_per_client,PermissionGroup::ft,"i_ft_quota_mb_download_per_client","Download quota per client in MByte"),
make_shared<PermissionTypeEntry>(PermissionType::i_ft_quota_mb_upload_per_client,PermissionGroup::ft,"i_ft_quota_mb_upload_per_client","Upload quota per client in MByte")
returnv2::empty_permission_values;/* TODO: may consider to throw an exception because the existence should be checked by getting the permission flags */
if(!permission_container->flags.permission_set()){/* unregister the permission again because its unset, we delete the channel permission as soon we've flushed the updates */