Skocz do zawartości
xYundy

LuckPerms - z czym to się je?

Rekomendowane odpowiedzi

Poradnik w budowie. Powinienem go dziś skończyć 🙂

80px.png

LuckPerms - z czym to się je?

Poradnik instalacji, konfiguracji i obsługi wtyczki LuckPerms

 

Wprowadzenie

Poradnik ten powstał z myślą o wszystkich, którzy jeszcze nigdy nie korzystali z wtyczki LuckPerms oraz dla tych, którym jej konfiguracja i użytkowanie sprawia trudności lub stała się złem wcielonym.

Mam nadzieję, że dzięki temu poradnikowi zrozumiesz jak możesz wykorzystać wtyczkę LuckPerms na swoim serwerze, dlaczego jest ona godnym zastępcą PEX'a (potrafiącym chociażby równie łatwo nadawać rangi tymczasowo) oraz dowiesz się jakie dodatkowe narzędzia związane z zarządzaniem uprawnieniami są udostępniane wraz z nią.

W celu łatwiejszej nawigacji poradnik został podzielony na kilka sekcji. Odnośniki do nich znajdziesz w spisie treści znajdującym się poniżej.

W miarę swoich możliwości będę starać się aktualizować poradnik na bieżąco, ale nawet jeśli poradnik nie będzie sprawdzony z najnowszą wersją wtyczki powinien wciąż być aktualny - z dnia na dzień nie zmienią przecież wszystkich komend 🙂

Spis treści

Dlaczego warto zainteresować się LuckPerms?

Pobranie i instalacja wtyczki LuckPerms

Konfiguracja wtyczki LuckPerms

Podstawowe pojęcia w LuckPerms

Drzewko permisji - czyli jak szybko sprawdzić istniejące uprawnienia?

Grupa domyślna - z czym to się je?

Tworzenie grup oraz prefiksy i sufiksy

Nadawanie permisji użytkownikom i grupom

Dodawanie użytkowników do grupy oraz wagi i dziedziczenie

"Tracks" - czyli jak nie pogubić się w hierarchii grup

 

 

Lista aktualizacji poradnika:

Spoiler

14.01.2019 12:26 - Początkowa wersja poradnika w wersji rozwojowej.

15.01.2019 - Dodanie informacji o nadawaniu permisji

Jeśli mój poradnik Ci pomógł, zostaw łapkę w górę albo serce - to zmotywuje mnie do działania i tworzenia większej liczby poradników!

 

Edytowane przez xYundy
  • Polubienie 6
  • Super 1
  • Wygryw 1
  • Dziwne 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dlaczego warto zainteresować się LuckPerms?

Wiele ludzi zastanawia się, czy w ogóle warto zainteresować się wtyczką LuckPerms, ponieważ istnieje już wiele innych rozwiązań tego typu np. PEX. Oto kilka powodów, dla których warto jednak przesiąść się na LuckPerms.

Dostępność

LuckPerms jest dostępne na praktycznie każdą platformę. Bez względu, czy będziesz tworzyć serwer dla Java Edition za pomocą Bukkita, Spigota albo Sponge, sieć serwerów korzystającą z BungeeCord lub VeloCity, czy może serwer Bedrock Edition za pomocą Nukkita.

LuckPerms działa nawet na Minecrafcie w wersji 1.8, więc nawet jeśli chcesz stworzyć serwer na klasycznych silnikach możesz skorzystać z jego dobrodziejstw.

Elastyczność

LuckPerms pozwala Ci na przechowywanie uprawnień na wiele równych sposobów. Od zwykłych plików, po lokalną bazę H2, czy serwery bazodanowe takie jak: MySQL, MariaDB, PostgreSQL, czy MongoDB.

Dostępność dla deweloperów

LuckPerms posiada szeroko rozwinięte API, dzięki czemu nawet jeśli sam nie jesteś twórcą wtyczek to możesz być pewien, że znajdując wtyczkę rozszerzająca działanie LuckPerms nie wywali się ona po kolejnej aktualizacji, bo korzysta z oficjalnego API.

Stabilność i wydajność

LuckPerms został stworzony z myślą zarówno o małych jak i wielkich serwerach, dlatego jego głównym celem jest jak najefektywniejsze działanie przy jak najmniejszym zużyciu zasobów. Oznacza to mniej więcej tyle, że ten system permisji nie będzie zbytnio obciążał Twojego serwera.

Wygoda użytkowania

Choć na pozór LuckPerms wydaje się skomplikowane, tak naprawdę jest bardzo proste w konfiguracji i zawiera szereg narzędzi, które pozwalają na szybkie i przyjemne zarządzanie permisją na serwerach Minecraft (np. drzewka permisji, edytor GUI), a których na próżno szukać w innych wtyczkach. O obsłudze niektórych z tych narzędzi dowiesz się więcej właśnie w tym poradniku.

Używam już wtyczki [x] od wielu lat i wciąż działa świetnie! Dlaczego miałbym(miałabym) ją zmieniać?

To prawda, możesz być zakochany(a) w jakieś wtyczce od lat i do tej pory nie sprawiała Ci ona żadnych problemów. Jednak większość z wtyczek do zarządzania permisjami została stworzona na początku istnienia bumu na bukkita. Oznacza to mniej więcej tyle, że wtyczki te albo zostały już porzucone przez autorów i nie są dalej rozwijane lub np. nie wspierają UUID.

Dobrym przykładem znanej wtyczki jest PermissionEx (PEX), który nie jest już rozwijany. Warto więc byś rozważył(a) zastąpienie go właśnie LuckPerms.

LuckPerms jest na bieżąco rozwijane - dlatego możesz być przekonany(a), że nie zostaniesz na lodzie bez względu na wersję Minecrafta jaką używasz!

 

  • Polubienie 5

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pobranie i instalacja wtyczki LuckPerms

W celu pobrania wtyczki, wejdź na poniższą stronę internetową:

Cytat

Następnie w zakładce Download wybierz interesującą Cię platformę. Wtyczka od razu zacznie się pobierać.

 

Spoiler

1695969248_Pobieraniewtyczki.thumb.JPG.f6af04cff4424e1c1ce72606fd67e205.JPG

 

Po pobraniu wtyczki umieść ją we właściwym folderze w plikach serwerowych. Na przykład dla serwera Bukkit/Spigot będzie to katalog plugins.

Po zainstalowaniu wtyczki uruchom serwer ponownie. Wtyczka powinna się poprawnie załadować 🙂 

Aby móc zacząć dodawać uprawnienia, musisz nadać sobie samemu(samej) uprawnienia do LuckPerms. Wykonasz to komendą:

/lp user <twoj_nick> permission set luckperms.* true

Uwaga! Jeśli chcesz użyć innej metody przechowywania permisji niż domyślna (lokalna baza H2) po pierwszym uruchomieniu serwera wyłącz go i zmień konfigurację wtyczki. (Patrz: Konfiguracja wtyczki LuckPerms)

 

 

Edytowane przez xYundy
  • Polubienie 4

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Konfiguracja wtyczki LuckPerms

Spolszczony plik konfiguracyjny znajdziesz tutaj:

Spoiler
####################################################################################################
# +----------------------------------------------------------------------------------------------+ #
# |                                   __         __   ___  __         __                         | #
# |                        |    |  | /  ` |__/  |__) |__  |__)  |\/| /__`                        | #
# |                        |___ \__/ \__, |  \  |    |___ |  \  |  | .__/                        | #
# |                                                                                              | #
# |                                  https://luckperms.github.io                                 | #
# |                                                                                              | #
# |  KOD ZRODLOWY: https://github.com/lucko/LuckPerms                                            | #
# |  WIKI:        https://github.com/lucko/LuckPerms/wiki                                        | #
# |  BUG REPORTS: https://github.com/lucko/LuckPerms/issues                                      | #
# |                                                                                              | #
# |  Wyjasnienie wszystkich opcji jest dostepne tutaj:                                           | #
# |   ==>  https://github.com/lucko/LuckPerms/wiki/Configuration                                 | #
# |                                                                                              | #
# |  Nowe opcje nie sa dodawane do pliku automatycznie. W przypadku nie znalezienie opcji        | #
# |  uzywane sa wartosci domyslne. Najnowsza wersja pliku dostepna jest pod adresem wyzej        | #
# +----------------------------------------------------------------------------------------------+ #
####################################################################################################

# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                                    USTAWIENIA PODSTAWOWE                                     | #
# |                                                                                              | #
# |                  Najwazniejsze ustawienia kontrolujace zachowanie LuckPerms.                 | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# Nazwa serwera, uzywana do przyznawania uprawnien per serwer.
#
# - Jesli ta opcja jest ustawiona na "global" ustawienie jest ignorowana.
# - W innym przypadku wartosc ta jest ustawiana wszystkim graczom w kontekscie "serwera"
# - See: https://github.com/lucko/LuckPerms/wiki/Context
server: global

# If the servers own UUID cache/lookup facility should be used when there is no record for a player
# already in LuckPerms.
#
# - When this is set to 'false', commands using a player's username will not work unless the player
#   has joined since LuckPerms was first installed.
# - To get around this, you can use a player's uuid directly in the command, or enable this option.
# - When this is set to 'true', the server facility is used. This may use a number of methods,
#   including checking the servers local cache, or making a request to the Mojang API.
use-server-uuid-cache: false




# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                                  USTAWIENIA PRZECHOWYWANIA                                   | #
# |                                                                                              | #
# |               Ustal gdzie LuckPerms bedzie przechowywal informacje o permisji.               | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# Gdzie wtyczka powinna przechowywac dane
#
# - Wiekszosc opcji zostala szczegolowo objasniona w WIKI:
#   https://github.com/lucko/LuckPerms/wiki/Choosing-a-Storage-type
#
# - Dostepne opcje:
#
#   |  Bazy zdalne / zewnetrzne - wymagaja skonfigurowania ponizej danych do polaczenia z serwerem bazodanowym
#   |=> MySQL
#   |=> MariaDB (preferred over MySQL)
#   |=> PostgreSQL
#   |=> MongoDB
#
#   |  Flatfile/baza lokalna - nie wymaga dodatkowej konfiguracji
#   |=> H2 (preferred over SQLite)
#   |=> SQLite
#
#   |  Czytelne i edytowalne pliki tekstowe - nie wymaga dodatkowej konfiguracji
#   |=> YAML (.yml files)
#   |=> JSON (.json files)
#   |=> HOCON (.conf files)
#   |=> TOML (.toml files)
#   |
#   | By default, user, group and track data is separated into different files. Data can be combined
#   | and all stored in the same file by switching to a combined storage variant.
#   | Just add '-combined' to the end of the storage-method, e.g. 'yaml-combined'
#
# - Baza danych H2 jest opcja domyslna.
# - Jesli chcesz uzyc plikow tekstowy, by moc edytowac uprawnienia "tradycyjnie", sugerujemy uzycie plikow YAML.
storage-method: h2

# The following block defines the settings for remote database storage methods.
#
# - You don't need to touch any of the settings here if you're using a local storage method!
# - The connection detail options are shared between all remote storage types.
data:

  # Define the address and port for the database.
  # - The standard DB engine port is used by default
  #   (MySQL: 3306, PostgreSQL: 5432, MongoDB: 27017)
  # - Specify as "host:port" if differs
  address: localhost

  # The name of the database to store LuckPerms data in.
  # - This must be created already. Don't worry about this setting if you're using MongoDB.
  database: minecraft

  # Credentials for the database.
  username: root
  password: ''

  # These settings apply to the MySQL connection pool.
  # - The default values will be suitable for the majority of users.
  # - Do not change these settings unless you know what you're doing!
  pool-settings:

    # Sets the maximum size of the MySQL connection pool.
    # - Basically this value will determine the maximum number of actual
    #   connections to the database backend.
    # - More information about determining the size of connection pools can be found here:
    #   https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
    maximum-pool-size: 10

    # Sets the minimum number of idle connections that the pool will try to maintain.
    # - For maximum performance and responsiveness to spike demands, it is recommended to not set
    #   this value and instead allow the pool to act as a fixed size connection pool.
    #   (set this value to the same as 'maximum-pool-size')
    minimum-idle: 10

    # This setting controls the maximum lifetime of a connection in the pool in milliseconds.
    # - The value should be at least 30 seconds less than any database or infrastructure imposed
    #   connection time limit.
    maximum-lifetime: 1800000 # 30 minutes

    # This setting controls the maximum number of milliseconds that the plugin will wait for a
    # connection from the pool, before timing out.
    connection-timeout: 5000 # 5 seconds

    # This setting allows you to define extra properties for connections.
    properties:
      useUnicode: true
      characterEncoding: utf8

  # The prefix for all LuckPerms SQL tables.
  # - Change this is you want to use different tables for different servers.
  table_prefix: 'luckperms_'

  # The prefix to use for all LuckPerms collections. Change this if you want to use different
  # collections for different servers. The default is no prefix.
  mongodb_collection_prefix: ''

  # MongoDB ClientConnectionURI for use with replica sets and custom connection options
  # - See https://docs.mongodb.com/manual/reference/connection-string/
  mongodb_connection_URI: ''

# Define settings for a "split" storage setup.
#
# - This allows you to define a storage method for each type of data.
# - The connection options above still have to be correct for each type here.
split-storage:
  # Don't touch this if you don't want to use split storage!
  enabled: false
  methods:
    # These options don't need to be modified if split storage isn't enabled.
    user: h2
    group: h2
    track: h2
    uuid: h2
    log: h2




# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                            UPDATE PROPAGATION & MESSAGING SERVICE                            | #
# |                                                                                              | #
# |    Controls the ways in which LuckPerms will sync data & notify other servers of changes.    | #
# |     These options are documented on greater detail on the wiki under "Instant Updates".      | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# This option controls how frequently LuckPerms will perform a sync task.
#
# - A sync task will refresh all data from the storage, and ensure that the most up-to-date data is
#   being used by the plugin.
# - This is disabled by default, as most users will not need it. However, if you're using a remote
#   storage type without a messaging service setup, you may wish to set this to something like 3.
# - Set to -1 to disable the task completely.
sync-minutes: -1

# If the file watcher should be enabled.
#
# - When using a file-based storage type, LuckPerms can monitor the data files for changes, and
#   automatically update when changes are detected.
# - If you don't want this feature to be active, set this option to false.
watch-files: true

# Define which messaging service should be used by the plugin.
#
# - If enabled and configured, LuckPerms will use the messaging service to inform other connected
#   servers of changes.
# - Use the command "/lp networksync" to manually push changes.
# - Data is NOT stored using this service. It is only used as a messaging platform.
#
# - If you decide to enable this feature, you should set "sync-minutes" to -1, as there is no need
#   for LuckPerms to poll the database for changes.
#
# - Possible options:
#   => sql       Uses the SQL database to form a queue system for communication. Will only work when
#                'storage-method' is set to MySQL or MariaDB. This is chosen by default if the
#                option is set to 'none' and SQL storage is in use. Set to 'notsql' to disable this.
#   => pluginmsg Uses the plugin messaging channels to communicate with the proxy.
#                LuckPerms must be installed on your proxy & all connected servers backend servers.
#                Won't work if you have more than one proxy.
#   => lilypad   Uses LilyPad pub-sub to push changes. You need to have the LilyPad-Connect plugin
#                installed.
#   => redis     Uses Redis pub-sub to push changes. Your server connection info must be configured
#                below.
#   => none      Disables the service.
messaging-service: none

# If LuckPerms should automatically push updates after a change has been made with a command.
auto-push-updates: true

# If LuckPerms should push logging entries to connected servers via the messaging service.
push-log-entries: true

# If LuckPerms should broadcast received logging entries to players on this platform.
#
# - If you have LuckPerms installed on your backend servers as well as a BungeeCord proxy, you
#   should set this option to false on either your backends or your proxies, to avoid players being
#   messaged twice about log entries.
broadcast-received-log-entries: true

# Settings for Redis.
# Port 6379 is used by default; set address to "host:port" if differs
redis:
  enabled: false
  address: localhost
  password: ''




# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                                    CUSTOMIZATION SETTINGS                                    | #
# |                                                                                              | #
# |              Settings that allow admins to customize the way LuckPerms operates.             | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# Controls how temporary permissions/parents/meta should be accumulated.
#
# - The default behaviour is "deny".
# - This behaviour can also be specified when the command is executed. See the command usage
#   documentation for more info.
#
# - Possible options:
#   => accumulate   durations will be added to the existing expiry time
#   => replace      durations will be replaced if the new duration is later than the current
#                   expiration
#   => deny         the command will just fail if you try to add another node with the same expiry
temporary-add-behaviour: deny

# Controls how LuckPerms will determine a users "primary" group.
#
# - The meaning and influence of "primary groups" are explained in detail on the wiki.
# - The preferred approach is to let LuckPerms automatically determine a users primary group
#   based on the relative weight of their parent groups.
#
# - Possible options:
#   => stored                  use the value stored against the users record in the file/database
#   => parents-by-weight       just use the users most highly weighted parent
#   => all-parents-by-weight   same as above, but calculates based upon all parents inherited from
#                              both directly and indirectly
primary-group-calculation: parents-by-weight

# If the plugin should check for "extra" permissions with users run LP commands.
#
# - These extra permissions allow finer control over what users can do with each command, and who
#   they have access to edit.
# - The nature of the checks are documented on the wiki under "Argument based command permissions".
# - Argument based permissions are *not* static, unlike the 'base' permissions, and will depend upon
#   the arguments given within the command.
argument-based-command-permissions: false

# If the plugin should check whether senders are a member of a given group before they're able to
# edit the groups data or add/remove other users to/from it.
# Note: these limitations do not apply to the web editor!
require-sender-group-membership-to-modify: false

# If the plugin should send log notifications to users whenever permissions are modified.
#
# - Notifications are only sent to those with the appropriate permission to receive them
# - They can also be temporarily enabled/disabled on a per-user basis using
#   '/lp log notify <on|off>'
log-notify: true

# Defines the options for prefix and suffix stacking.
#
# - The feature allows you to display multiple prefixes or suffixes alongside a players username in
#   chat.
# - It is explained and documented in more detail on the wiki under "Prefix & Suffix Stacking".
#
# - The options are divided into separate sections for prefixes and suffixes.
# - The 'duplicates' setting refers to how duplicate elements are handled. Can be 'retain-all',
#   'first-only' or 'last-only'.
# - The value of 'start-spacer' is included at the start of the resultant prefix/suffix.
# - The value of 'end-spacer' is included at the end of the resultant prefix/suffix.
# - The value of 'middle-spacer' is included between each element in the resultant prefix/suffix.
#
# - Possible format options:
#   => highest                        Selects the value with the highest weight, from all values
#                                     held by or inherited by the player.
#
#   => lowest                         Same as above, except takes the one with the lowest weight.
#
#   => highest_own                    Selects the value with the highest weight, but will not
#                                     accept any inherited values.
#
#   => lowest_own                     Same as above, except takes the value with the lowest weight.
#
#   => highest_inherited              Selects the value with the highest weight, but will only
#                                     accept inherited values.
#
#   => lowest_inherited               Same as above, except takes the value with the lowest weight.
#
#   => highest_on_track_<track>       Selects the value with the highest weight, but only if the
#                                     value was inherited from a group on the given track.
#
#   => lowest_on_track_<track>        Same as above, except takes the value with the lowest weight.
#
#   => highest_not_on_track_<track>   Selects the value with the highest weight, but only if the
#                                     value was inherited from a group not on the given track.
#
#   => lowest_not_on_track_<track>    Same as above, except takes the value with the lowest weight.
meta-formatting:
  prefix:
    format:
      - "highest"
    duplicates: first-only
    start-spacer: ""
    middle-spacer: " "
    end-spacer: ""
  suffix:
    format:
      - "highest"
    duplicates: first-only
    start-spacer: ""
    middle-spacer: " "
    end-spacer: ""




# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                            PERMISSION CALCULATION AND INHERITANCE                            | #
# |                                                                                              | #
# |    Modify the way permission checks, meta lookups and inheritance resolutions are handled.   | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# The algorithm LuckPerms should use when traversing the "inheritance tree".
#
# - Possible options:
#   => breadth-first            See: https://en.wikipedia.org/wiki/Breadth-first_search
#   => depth-first-pre-order    See: https://en.wikipedia.org/wiki/Depth-first_search
#   => depth-first-post-order   See: https://en.wikipedia.org/wiki/Depth-first_search
inheritance-traversal-algorithm: depth-first-pre-order

# +----------------------------------------------------------------------------------------------+ #
# | Permission resolution settings                                                               | #
# +----------------------------------------------------------------------------------------------+ #

# If users on this server should have their global permissions applied.
# When set to false, only server specific permissions will apply for users on this server
include-global: true

# If users on this server should have their global world permissions applied.
# When set to false, only world specific permissions will apply for users on this server
include-global-world: true

# If users on this server should have global (non-server specific) groups applied
apply-global-groups: true

# If users on this server should have global (non-world specific) groups applied
apply-global-world-groups: true

# +----------------------------------------------------------------------------------------------+ #
# | Inheritance settings                                                                         | #
# +----------------------------------------------------------------------------------------------+ #

# If the plugin should apply wildcard permissions.
#
# - If set to true, LuckPerms will detect wildcard permissions, and resolve & apply all registered
#   permissions matching the wildcard.
apply-wildcards: true

# If the plugin should parse regex permissions.
#
# - If set to true, LuckPerms will detect regex permissions, marked with "r=" at the start of the
#   node, and resolve & apply all registered permissions matching the regex.
apply-regex: true

# If the plugin should complete and apply shorthand permissions.
#
# - If set to true, LuckPerms will detect and expand shorthand node patterns.
apply-shorthand: true

# If the plugin should apply Bukkit child permissions.
#
# - Plugin authors can define custom permissions structures for their plugin, which will be resolved
#   and used by LuckPerms if this setting is enabled.
apply-bukkit-child-permissions: true

# If the plugin should apply Bukkit default permissions.
#
# - Plugin authors can define permissions which should be given to all users by default, or setup
#   permissions which should/shouldn't be given to opped players.
# - If this option is set to false, LuckPerms will ignore these defaults.
apply-bukkit-default-permissions: true

# If the plugin should apply attachment permissions.
#
# - Other plugins on the server are able to add their own "permission attachments" to players.
# - This allows them to grant players additional permissions which last until the end of the
#   session, or until they're removed.
# - If this option is set to false, LuckPerms will not include these attachment permissions when
#   considering if a player should have access to a certain permission.
apply-bukkit-attachment-permissions: true

# +----------------------------------------------------------------------------------------------+ #
# | Extra settings                                                                               | #
# +----------------------------------------------------------------------------------------------+ #

# Allows you to set "aliases" for the worlds sent forward for context calculation.
#
# - These aliases are provided in addition to the real world name. Applied recursively.
# - Remove the comment characters for the default aliases to apply.
world-rewrite:
#  world_nether: world
#  world_the_end: world

# Define special group weights for this server.
#
# - Group weights can also be applied directly to group data, using the setweight command.
# - This section allows weights to be set on a per-server basis.
group-weight:
#  admin: 10




# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                                      FINE TUNING OPTIONS                                     | #
# |                                                                                              | #
# |     A number of more niche settings for tweaking and changing behaviour. The section also    | #
# | contains toggles for some more specialised features. It is only necessary to make changes to | #
# |                  these options if you want to fine-tune LuckPerms behaviour.                 | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# +----------------------------------------------------------------------------------------------+ #
# | Server Operator (OP) settings                                                                | #
# +----------------------------------------------------------------------------------------------+ #

# Controls whether server operators should exist at all.
#
# - When set to 'false', all players will be de-opped, and the /op and /deop commands will be
#   disabled.
enable-ops: true

# Enables or disables a special permission based system in LuckPerms for controlling OP status.
#
# - If set to true, any user with the permission "luckperms.autoop" will automatically be granted
#   server operator status. This permission can be inherited, or set on specific servers/worlds,
#   temporarily, etc.
# - Additionally, setting this to true will force the "enable-ops" option above to false. All users
#   will be de-opped unless they have the permission node, and the op/deop commands will be
#   disabled.
# - It is recommended that you use this option instead of assigning a single '*' permission.
auto-op: false

# Defines if "opped" players should be able to use all LuckPerms commands by default.
#
# - Set to false to only allow users who have the permissions access to the commands
commands-allow-op: true

# +----------------------------------------------------------------------------------------------+ #
# | Vault integration settings                                                                   | #
# +----------------------------------------------------------------------------------------------+ #

# If Vault lookups for offline players on the main server thread should be enabled.
#
# LuckPerms has a "catch" for plugins attempting to perform unsafe offline player data lookups
# from the main server thread. This catch raises an exception (causes an error to occur) when unsafe
# lookups are made, instead of allowing the lookup to happen, which would likely cause the server
# to lag.
#
# However, if you're willing to accept the consequences, the catch can be disabled by setting this
# option to 'true.
vault-unsafe-lookups: false

# If the vault-server option below should be used.
#
# - When this option is set to false, the server value defined above under "server" is used.
use-vault-server: false

# The name of the server used within Vault operations.
#
# - If you don't want Vault operations to be server specific, set this to "global".
# - Will only take effect if use-vault-server is set to true above.
vault-server: global

# If global permissions should be considered when retrieving meta or player groups
vault-include-global: true

# If Vault operations should ignore any world arguments if supplied.
vault-ignore-world: false

# If LuckPerms should print debugging info to console when a plugin uses a Vault function
vault-debug: false

# +----------------------------------------------------------------------------------------------+ #
# | Miscellaneous (and rarely used) settings                                                     | #
# +----------------------------------------------------------------------------------------------+ #

# If LuckPerms should produce extra logging output when it handles logins.
#
# - Useful if you're having issues with UUID forwarding or data not being loaded.
debug-logins: false

# If LuckPerms should use the "server-name" property from the "server.properties" file as the
# "server" option within LuckPerms.
use-server-properties-name: false

# If LuckPerms should allow usernames with non alphanumeric characters.
#
# - Note that due to the design of the storage implementation, usernames must still be 16 characters
#   or less.
allow-invalid-usernames: false

# If LuckPerms should allow a users primary group to be removed with the 'parent remove' command.
#
# - When this happens, the plugin will set their primary group back to default.
prevent-primary-group-removal: false




# +----------------------------------------------------------------------------------------------+ #
# |                                                                                              | #
# |                                      DEFAULT ASSIGNMENTS                                     | #
# |                                                                                              | #
# +----------------------------------------------------------------------------------------------+ #

# This section allows you to define defaults to give users whenever they connect to the server.
# The default assignments are highly configurable and conditional.
#
# There is one default assignment built into LuckPerms, which will add all users to the "default"
# group if they are not a member of any other group. This setting cannot be disabled. However, you
# can use this section to add more of your own.
#
# IMPORTANT:
# In order to save storage space, LuckPerms does not store users who have no permissions defined,
# and are only a member of the default group. Adding default assignments to this section will negate
# this effect. It is HIGHLY RECCOMENDED that instead of assigning defaults here, you add permissions
# to the "default" group, or set the "default" group to inherit other groups, and then use the
# group-name-rewrite rule above.
#
# It is also important to note that these rules are considered every time a player logs into the
# server, and are applied directly to the user's data. Simply removing a rule here will not reverse
# the effect of that rule on any users who have already had it applied to them.
#
# The "has" and "lacks" conditions below support standard boolean logic, using the 'and' & 'or'
# characters used in Java.
# e.g. "(some.other.permission | some.permission.other) & some.thing.else" == a user has
# 'some.other.permission', or 'some.permission.other', and they also have 'some.thing.else'
#
# Groups are represented by the permission node: group.<group name>
# Per server and per world nodes are represented by "server-world/permission" or "server/permission"
#
# Within conditions, permission nodes MUST be escaped using "<" and ">". See the example below.
#
# Explanation of the examples below: (they're just to demonstrate the features & use cases)
#
# rule1:
# If a user is either in the vip or vip+ group, and they have the "titles.titlecollector" permission
# set to true, and the "some.random.permission" set to false... if they're not in the group
# "prison_titlepack" on the "prison" server, then give add them to the "prison_titlepack" group on
# the "prison" server, and remove "some.random.permission".
#
# rule2:
# If the user isn't in any of the following groups on the skyblock server: sb_level1, sb_level2,
# sb_level3, then add them to sb_level1 on the skyblock server.
#
# rule3:
# If the user is a member of the default group, remove them from default, add them to member, and
# set their primary group to member.
#
# WARNING: Unlike internal commands, this system does not ensure that a group exists before adding
# a user to it. It also does not unsure that a user is a member of a group before making that group
# their primary group.
#
# Before you use "give: group.<name>" or "set-primary-group", make sure that the group exists, and
# that the user is a member of the group.
default-assignments:
#  rule1:
#    if:
#      has-true: (<group.vip> | <group.vip+>) & <titles.tilecollector>
#      has-false: <some.random.permission>
#      lacks: <prison/group.prison_titlepack>
#    give:
#      - prison/group.prison_titlepack
#    take:
#      - some.random.permission
#  rule2:
#    if:
#      lacks: <skyblock/group.sb_level1> & <skyblock/group.sb_level2> & <skyblock/group.sb_level3>
#    give:
#      - skyblock/group.sb_level1
#  rule3:
#    if:
#      has-true: <group.default>
#    take:
#      - group.default
#    give:
#      - group.member
#    set-primary-group: member

 

Jeśli chcesz używać LuckPerms na kilku serwerach jednocześnie (połączonych np. za pomocą BungeeCord'a) lub chcesz mieć dostęp do permisji z poziomu strony WWW lub innej zewnętrznej aplikacji rozważ zmianę bazy danych na jedną z baz zewnętrznych np. MySQL lub MariaDB. Bazy te są bardzo często dostępne w ofercie hostingów WWW oraz hostingów Minecraft.

Edytowane przez xYundy
  • Polubienie 4

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Podstawowe pojęcia w LuckPerms

 

Permisja/Uprawnienie

Na serwerze Minecraft oznacza to pozwolenie lub zabronienie wykonania przez gracza(y) jakiejś istniejącej funkcji lub komendy oraz funkcjonalności realizowanych przez wtyczki lub samą gręUprawnienie składa się ze znaków alfanumerycznych podzielonych na sekcje kropkami. Na przykład:

Cytat

minecraft.command.ban

Jest uprawnieniem pozwalającym na wykonanie przez użytkownika komendy /ban w celu zbanowania gracza.

Cytat

fancychat.usecolors

Jest uprawnieniem pozwalającym użytkownikowi używać kolorów na chacie, dzięki wtyczce FancyChat

Cytat

limitslots.bypass

Jest uprawnieniem pozwalającym graczowi dołączyć do serwera mimo tego, że jest pełen.

Choć powyższe permisje są tylko przykładami (i to w większości fikcyjnymi) możesz zauważyć, że w świecie Minecraft'a permisję można przypisać właściwie do wszystkiego. Większość wtyczek jakie dodajesz na serwer posiadają swoją listę permisji. To właśnie te uprawnienia możesz przydzielać użytkownikom i grupom na serwerze, by zadbać o odpowiedni ład i porządek np. nie udostępniając poleceń administracyjnych lub moderacyjnych zwykłym użytkownikom.

Grupa

Zamiast nadawać uprawnienia użytkownikom indywidualnie (to byłoby straszne na większych serwerach!), możesz skorzystać z grup uprawnień, które możesz przypisać do użytkownika.

Wyobraź sobie, że stworzyłeś(aś) sobie grupę administrator. Przydzieliłeś(aś) jej uprawnienia do banowania oraz odbanowywania graczy - przecież to właśnie te zadania należą do obowiązków administratorów. Następnie  przydzieliłeś(aś) użytkownika Jacek do grupy administrator. Od teraz Jacek ma dostęp do wszystkich permisji zawartych w grupie administrator (w naszym przykładzie do tych związanych z banowaniem i odbanowywaniem) oraz do wszystkich innych przypisanych bezpośrednio do niego.

Dziedziczenie

W przypadku większych serwerów liczba grup może być znacznie większa. Przydzielanie tych samych uprawnień kilku grupom indywidualnie mogłoby być męczące. Na szczęście możemy skorzystać z systemu dziedziczenia. Na przykład, wszyscy gracze domyślnie dziedziczą uprawnienia z grupy default.

Wyobraź sobie, że masz na serwerze 3 grupy:

  • default - to w niej masz uprawnienia, które posiadają wszyscy gracze
  • moderator - ta grupa posiada uprawnienia do moderowania chatu i wyrzucania graczy z serwera
  • administrator - ta grupa posiada uprawnienia do zarządzania serwerem

Ustawiłeś(aś) ich dziedziczenie na serwerze w następujący sposób:

Spoiler

schemat_uprawnien.jpg.14fad7b9b2ec61d608b8c5baa2671e45.jpg

Grupa moderator dziedziczy uprawnienia od grupy default, czyli posiada te same uprawnienia co grupa default oraz uprawnienia zawarte w grupie moderator.

Grupa administrator dziedziczy uprawnienia od grupy moderator, czyli posiada te same uprawnienia co grupa moderator (oraz te, które ta grupa dziedziczy od grupy default) oraz uprawnienia zawarte w grupie administrator.

Dzięki dziedziczeniu zamiast przydzielać każdej z tych grup te same uprawnienia możesz przydzielić tylko te, którymi się różnią. Prawda, że proste?

Kontekst

Dzięki uniwersalnemu podejściu do uprawnień przez wtyczkę LuckPerms, musisz zrozumieć czym jest kontekst. Najbardziej podstawowa definicja kontekstu to:

Cytat

Kontekst, jest to zależność/okoliczność, w ramach której stosujemy dane uprawnienia. Pojedynczy kontekst składa się z klucza i wartości reprezentowanej w formie klucz=wartosc

Brzmi i tak trochę strasznie, co? Objaśnijmy to sobie na przykładzie!

Jak przed chwilą sobie powiedzieliśmy, kontekst to jakaś zależność lub okoliczność w ramach której stosujemy jakieś uprawnienie. Załóżmy, że chcesz nadać wszystkim graczom jakieś uprawnienie np. do latania, ale chcesz by gracze mogli skorzystać z tego uprawnienia tylko w piekle (world_nether). Aby to osiągnąć musimy w chwili nadawania permisji zastosować właśnie kontekst, w którym te uprawnienie ma zostać przydzielone.

W naszym przykładzie kluczem kontekstu jest: "world", a wartością "world_nether". W LuckPerms taką parę prezentujemy w formie: world=world_nether.

Jeśli więc chcielibyśmy nadać takie uprawnienie graczowi Jacek tylko w piekle, komenda wyglądałoby tak:

/lp user Jacek permission set essentials.fly world=world_nether

Jak zauważyłeś(aś) na końcu polecenia dodaliśmy właśnie wspomniany kontekst.

Edytowane przez xYundy
  • Polubienie 3

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Drzewko permisji - czyli jak szybko sprawdzić istniejące uprawnienia?

Wiele twórców serwerów narzeka na bajzel w permisjach. Jedni twórcy wtyczek skrupulatnie opisują uprawnienia zawarte we wtyczce, inni robią to zdawkowo albo wcale. W przypadku serwera, który posiada kilka lub kilkanaście wtyczek w pewnej chwili można się pogubić w tym jakie permisje na serwerze istnieją oraz jaka, z której wynika. Na szczęście LuckPerms posiada funkcję generowania tzw. drzewek permisji czyli listy uprawnień ułożonych według ich hierarchii.

Aby móc sprawdzić listę uprawnień dostępną na Twoim serwerze, wystarczy że wpiszesz w konsoli następujące polecenie:

/lp tree

Serwer zwróci Ci informacje o tym, pod jakim adresem będziesz mógł(a) zobaczyć listę:

drzewko_link.JPG.a474ed1cfe59e0f5cf323f14023bfa01.JPG

Następnie wystarczy, że wejdziesz pod wskazany adres, a ukaże Ci się strona z drzewkiem. Może ono wyglądać np. tak:

Spoiler
├── craftbukkit
├── aac
│  ├── aac.*
│  ├── aac.admin
│  ├── aac.ban
│  ├── aac.bypass
│  ├── aac.debug
│  ├── aac.kick
│  ├── aac.manage
│  ├── aac.message
│  ├── aac.notify
│  ├── aac.restorechunk
│  ├── aac.unban
│  ├── aac.verbose
│  ├── aac.version
├── AAC
│  ├── AAC.bypass
│  ├── AAC.message
│  ├── AAC.notify
├── bukkit
│  ├── bukkit.broadcast
│  │  ├── bukkit.broadcast.admin
│  │  ├── bukkit.broadcast.user
│  ├── bukkit.command
│  │  ├── bukkit.command.help
│  │  ├── bukkit.command.plugins
│  │  ├── bukkit.command.reload
│  │  ├── bukkit.command.restart
│  │  ├── bukkit.command.spigot
│  │  ├── bukkit.command.timings
│  │  ├── bukkit.command.tps
│  │  ├── bukkit.command.version
├── help
│  ├── help.svip
│  ├── help.reload
│  ├── help.use
├── luckperms
│  ├── luckperms.applyedits
│  ├── luckperms.bulkupdate
│  ├── luckperms.check
│  ├── luckperms.creategroup
│  ├── luckperms.createtrack
│  ├── luckperms.debug
│  ├── luckperms.deletegroup
│  ├── luckperms.deletetrack
│  ├── luckperms.editor
│  ├── luckperms.export
│  ├── luckperms.import
│  ├── luckperms.info
│  ├── luckperms.listgroups
│  ├── luckperms.listtracks
│  ├── luckperms.migration
│  ├── luckperms.reloadconfig
│  ├── luckperms.search
│  ├── luckperms.sync
│  ├── luckperms.tree
│  ├── luckperms.verbose
│  ├── luckperms.group
│  │  ├── luckperms.group.clear
│  │  ├── luckperms.group.clone
│  │  ├── luckperms.group.editor
│  │  ├── luckperms.group.info
│  │  ├── luckperms.group.listmembers
│  │  ├── luckperms.group.rename
│  │  ├── luckperms.group.setdisplayname
│  │  ├── luckperms.group.setweight
│  │  ├── luckperms.group.showtracks
│  │  ├── luckperms.group.meta
│  │  │  ├── luckperms.group.meta.addprefix
│  │  │  ├── luckperms.group.meta.addsuffix
│  │  │  ├── luckperms.group.meta.addtempprefix
│  │  │  ├── luckperms.group.meta.addtempsuffix
│  │  │  ├── luckperms.group.meta.clear
│  │  │  ├── luckperms.group.meta.info
│  │  │  ├── luckperms.group.meta.removeprefix
│  │  │  ├── luckperms.group.meta.removesuffix
│  │  │  ├── luckperms.group.meta.removetempprefix
│  │  │  ├── luckperms.group.meta.removetempsuffix
│  │  │  ├── luckperms.group.meta.set
│  │  │  ├── luckperms.group.meta.setprefix
│  │  │  ├── luckperms.group.meta.setsuffix
│  │  │  ├── luckperms.group.meta.settemp
│  │  │  ├── luckperms.group.meta.settempprefix
│  │  │  ├── luckperms.group.meta.settempsuffix
│  │  │  ├── luckperms.group.meta.unset
│  │  │  ├── luckperms.group.meta.unsettemp
│  │  ├── luckperms.group.parent
│  │  │  ├── luckperms.group.parent.add
│  │  │  ├── luckperms.group.parent.addtemp
│  │  │  ├── luckperms.group.parent.clear
│  │  │  ├── luckperms.group.parent.cleartrack
│  │  │  ├── luckperms.group.parent.info
│  │  │  ├── luckperms.group.parent.remove
│  │  │  ├── luckperms.group.parent.removetemp
│  │  │  ├── luckperms.group.parent.set
│  │  │  ├── luckperms.group.parent.settrack
│  │  ├── luckperms.group.permission
│  │  │  ├── luckperms.group.permission.check
│  │  │  ├── luckperms.group.permission.checkinherits
│  │  │  ├── luckperms.group.permission.clear
│  │  │  ├── luckperms.group.permission.info
│  │  │  ├── luckperms.group.permission.set
│  │  │  ├── luckperms.group.permission.settemp
│  │  │  ├── luckperms.group.permission.unset
│  │  │  ├── luckperms.group.permission.unsettemp
│  ├── luckperms.log
│  │  ├── luckperms.log.grouphistory
│  │  ├── luckperms.log.notify
│  │  ├── luckperms.log.recent
│  │  ├── luckperms.log.search
│  │  ├── luckperms.log.trackhistory
│  │  ├── luckperms.log.userhistory
│  ├── luckperms.sponge
│  │  ├── luckperms.sponge.option
│  │  │  ├── luckperms.sponge.option.clear
│  │  │  ├── luckperms.sponge.option.info
│  │  │  ├── luckperms.sponge.option.set
│  │  │  ├── luckperms.sponge.option.unset
│  │  ├── luckperms.sponge.parent
│  │  │  ├── luckperms.sponge.parent.add
│  │  │  ├── luckperms.sponge.parent.clear
│  │  │  ├── luckperms.sponge.parent.info
│  │  │  ├── luckperms.sponge.parent.remove
│  │  ├── luckperms.sponge.permission
│  │  │  ├── luckperms.sponge.permission.clear
│  │  │  ├── luckperms.sponge.permission.info
│  │  │  ├── luckperms.sponge.permission.set
│  ├── luckperms.track
│  │  ├── luckperms.track.append
│  │  ├── luckperms.track.clear
│  │  ├── luckperms.track.clone
│  │  ├── luckperms.track.info
│  │  ├── luckperms.track.insert
│  │  ├── luckperms.track.remove
│  │  ├── luckperms.track.rename
│  ├── luckperms.user
│  │  ├── luckperms.user.clear
│  │  ├── luckperms.user.clone
│  │  ├── luckperms.user.demote
│  │  ├── luckperms.user.editor
│  │  ├── luckperms.user.info
│  │  ├── luckperms.user.promote
│  │  ├── luckperms.user.showtracks
│  │  ├── luckperms.user.meta
│  │  │  ├── luckperms.user.meta.addprefix
│  │  │  ├── luckperms.user.meta.addsuffix
│  │  │  ├── luckperms.user.meta.addtempprefix
│  │  │  ├── luckperms.user.meta.addtempsuffix
│  │  │  ├── luckperms.user.meta.clear
│  │  │  ├── luckperms.user.meta.info
│  │  │  ├── luckperms.user.meta.removeprefix
│  │  │  ├── luckperms.user.meta.removesuffix
│  │  │  ├── luckperms.user.meta.removetempprefix
│  │  │  ├── luckperms.user.meta.removetempsuffix
│  │  │  ├── luckperms.user.meta.set
│  │  │  ├── luckperms.user.meta.setprefix
│  │  │  ├── luckperms.user.meta.setsuffix
│  │  │  ├── luckperms.user.meta.settemp
│  │  │  ├── luckperms.user.meta.settempprefix
│  │  │  ├── luckperms.user.meta.settempsuffix
│  │  │  ├── luckperms.user.meta.unset
│  │  │  ├── luckperms.user.meta.unsettemp
│  │  ├── luckperms.user.parent
│  │  │  ├── luckperms.user.parent.add
│  │  │  ├── luckperms.user.parent.addtemp
│  │  │  ├── luckperms.user.parent.clear
│  │  │  ├── luckperms.user.parent.cleartrack
│  │  │  ├── luckperms.user.parent.info
│  │  │  ├── luckperms.user.parent.remove
│  │  │  ├── luckperms.user.parent.removetemp
│  │  │  ├── luckperms.user.parent.set
│  │  │  ├── luckperms.user.parent.settrack
│  │  │  ├── luckperms.user.parent.switchprimarygroup
│  │  ├── luckperms.user.permission
│  │  │  ├── luckperms.user.permission.check
│  │  │  ├── luckperms.user.permission.checkinherits
│  │  │  ├── luckperms.user.permission.clear
│  │  │  ├── luckperms.user.permission.info
│  │  │  ├── luckperms.user.permission.set
│  │  │  ├── luckperms.user.permission.settemp
│  │  │  ├── luckperms.user.permission.unset
│  │  │  ├── luckperms.user.permission.unsettemp
├── masuitechat
│  ├── masuitechat.nick
│  ├── masuitechat.channel
│  │  ├── masuitechat.channel.global
│  │  ├── masuitechat.channel.local
│  │  ├── masuitechat.channel.private
│  │  ├── masuitechat.channel.server
│  │  ├── masuitechat.channel.staff
├── minecraft
│  ├── minecraft.autocraft
│  ├── minecraft.command
│  │  ├── minecraft.command.advancement
│  │  ├── minecraft.command.ban
│  │  ├── minecraft.command.ban-ip
│  │  ├── minecraft.command.banlist
│  │  ├── minecraft.command.blockdata
│  │  ├── minecraft.command.clear
│  │  ├── minecraft.command.clone
│  │  ├── minecraft.command.debug
│  │  ├── minecraft.command.defaultgamemode
│  │  ├── minecraft.command.deop
│  │  ├── minecraft.command.difficulty
│  │  ├── minecraft.command.effect
│  │  ├── minecraft.command.enchant
│  │  ├── minecraft.command.entitydata
│  │  ├── minecraft.command.execute
│  │  ├── minecraft.command.fill
│  │  ├── minecraft.command.function
│  │  ├── minecraft.command.gamemode
│  │  ├── minecraft.command.gamerule
│  │  ├── minecraft.command.give
│  │  ├── minecraft.command.help
│  │  ├── minecraft.command.kick
│  │  ├── minecraft.command.kill
│  │  ├── minecraft.command.list
│  │  ├── minecraft.command.locate
│  │  ├── minecraft.command.me
│  │  ├── minecraft.command.op
│  │  ├── minecraft.command.pardon
│  │  ├── minecraft.command.pardon-ip
│  │  ├── minecraft.command.particle
│  │  ├── minecraft.command.playsound
│  │  ├── minecraft.command.recipe
│  │  ├── minecraft.command.reload
│  │  ├── minecraft.command.replaceitem
│  │  ├── minecraft.command.save-all
│  │  ├── minecraft.command.save-off
│  │  ├── minecraft.command.save-on
│  │  ├── minecraft.command.say
│  │  ├── minecraft.command.scoreboard
│  │  ├── minecraft.command.seed
│  │  ├── minecraft.command.selector
│  │  ├── minecraft.command.setblock
│  │  ├── minecraft.command.setidletimeout
│  │  ├── minecraft.command.setworldspawn
│  │  ├── minecraft.command.spawnpoint
│  │  ├── minecraft.command.spreadplayers
│  │  ├── minecraft.command.stats
│  │  ├── minecraft.command.stop
│  │  ├── minecraft.command.stopsound
│  │  ├── minecraft.command.summon
│  │  ├── minecraft.command.teleport
│  │  ├── minecraft.command.tell
│  │  ├── minecraft.command.tellraw
│  │  ├── minecraft.command.testfor
│  │  ├── minecraft.command.testforblock
│  │  ├── minecraft.command.testforblocks
│  │  ├── minecraft.command.time
│  │  ├── minecraft.command.title
│  │  ├── minecraft.command.toggledownfall
│  │  ├── minecraft.command.tp
│  │  ├── minecraft.command.trigger
│  │  ├── minecraft.command.weather
│  │  ├── minecraft.command.whitelist
│  │  ├── minecraft.command.worldborder
│  │  ├── minecraft.command.xp
├── nonetherroof
│  ├── nonetherroof.bypass
├── protocol
│  ├── protocol.*
│  ├── protocol.admin
│  ├── protocol.info
├── stafftools
│  ├── stafftools.authenticate
│  ├── stafftools.staffchat
│  ├── stafftools.stafflist
│  ├── stafftools.staffmode
│  ├── stafftools.vanish
│  ├── stafftools.anticommandspam
│  │  ├── stafftools.anticommandspam.bypass
│  ├── stafftools.miner
│  │  ├── stafftools.miner.bypass
│  ├── stafftools.vanished
│  │  ├── stafftools.vanished.see
│  ├── stafftools.xray
│  │  ├── stafftools.xray.bypass
├── vault
│  ├── vault.admin
│  ├── vault.update
├── viaversion
│  ├── viaversion.update

 

Dzięki temu nigdy nie będziesz musiał się martwić o to, że pogubisz się w dostępnych uprawnieniach oraz w tym, które powinieneś(aś) przydzielić danej grupie.

Drzewka uprawnień można generować również dla jednej konkretnej wtyczki i/lub sprawdzić które uprawnienia posiada dany gracz. Więcej informacji na ten temat znajdziesz w oficjalnej wiki.

  • Polubienie 3

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Grupa domyślna - z czym to się je?

Główną cechą LuckPerms jest tzw. grupa domyślna (czyt. default). Jest to grupa, której nie można (a już na pewno nie powinno się, chyba że w naprawdę w wyjątkowych przypadkach) usunąć lub przestawić. Oto główne powody podane przez autora, dlaczego zdecydował się na takie rozwiązanie:

  • Graczy na serwerze można podzielić na 2 grupy: standardowego zwykłego gracza oraz gracza posiadającego przydzielone dodatkowe uprawnienia lub grupy. Nikt z nas nie chciałby niepotrzebnie marnować przestrzeni dyskowej na zapisywanie informacji o przydzielonej grupie zwykłym graczom (czyli każdego regularnemu graczowi, w tym takiemu który wszedł na serwer tylko na kilka minut). Jedyni "zapisani" gracze to gracze, którzy mają przydzieloną grupę np. administracjagracz z rangą vip lub gracze posiadający indywidualne uprawnienia.
  • Zmiana grupy uprawnień potrafi wprowadzić zamieszanie np.
    • Twoja domyślna grupa to default. Kiedy gracz dołącza do serwera, przydzielana jest mu grupa default, a informacja o tym jest zapisywana.
    • Po pewnym czasie postanawiasz zmienić domyślną grupę na gracz.
    • I tak oto skończyłeś(aś) ze starymi graczami z grupą default i z każdym nowym graczem przydzielonym do grupy gracz. W skrócie - nie jest dobrze.
  • Nawet jeśli założymy, że tak jak postanowiliśmy zrealizować to w LuckPerms nie będziemy zapisywać informacji o domyślnej grupie, a będziemy dodawać ją "w locie":
    • Twoja domyślna grupa to znów default. Każdy gracz, który dołącza do serwera jest do niej dołączony w locie.
    • Postanawiasz dodać graczowi Jacek permisję do latania, czyli "essentials.fly". W tej chwili informacje o graczu Jacek zostały zapisane, włączając w to informacje o dodanym indywidualnie uprawnieniu oraz o przynależności do grupy default.
    • Tak jak ostatnio postanawiasz zmienić domyślną grupę na gracz.
    • Super! Wszyscy "defaultowi" gracze są teraz w grupie gracz, ale Jacek nie! I ponownie - nie jest dobrze.

 

Z tego powodu grupa domyślna jest ustawiona na stałe. Czy to oznacza, że gracz musi być w grupie o nazwie default? Niekoniecznie - możesz zmienić nazwę wyświetlaną grupy default. Służy do tego komenda.

/lp group default setdisplayname <wyswietlana_nazwa>

A co jeśli dałem(am) ciała i utworzyłem(am) już grupę gracz i ustawiłem(am) jej permisje? Na szczęście nie musisz przypisywać wszystkiego od nowa. Możesz użyć sprytnego triku, dodając nowo stworzoną grupę jako "rodzica" grupy default tym samym pozwalając jej odziedziczyć uprawnienia z Twojej grupy. Służy do tego komenda:

/lp group default parents add <nazwa_twojej_grupy> 

 

Edytowane przez xYundy
  • Polubienie 3

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tworzenie grup oraz prefiksy i sufiksy

Hura! Czas na stworzenie grup uprawień! Wykorzystujemy do tego polecenie creategroup. Jego składania wygląda następująco:

/lp creategroup <nazwa_grupy>

Załóżmy, że chcesz stworzyć grupę admin.

68747470733a2f2f692e696d6775722e636f6d2f6e4432517536652e706e67.png.919c3ea9091c347abdac2d74334c63cd.png

Gratulacje! Stworzyłeś(aś) grupę admin! Jeśli jesteś ciekaw(a) jakie polecenia są dostępne dla grup, możesz skorzystać z polecenia:

/lp group

Zasada ta działa również w przypadku innych komend. W tym przypadku powinieneś(aś) zobaczyć następujące polecenia:

68747470733a2f2f692e696d6775722e636f6d2f373565366a39522e706e67.png.25be412305b4c692874766f6c89cd870.png

Na razie nie będziemy dodawać permisji do naszych rang, a skupimy się na sprawach estetycznych tj. prefiksach, sufiksach i nazwach wyświetlanych.

Uwaga: Aby móc skorzystać z w/w elementów, na Twoim serwerze Bukkit/Spigot musi zostać zainstalowany Vault oraz wtyczka formatująca chat (lub inna wspierająca Vault'a lub LuckPerms wyświetlająca informacje o rangach).

Oto lista kilku przykładowych wtyczek formatujących czat:

Spoiler

VaultChatFormatter - autorstwa twórcy LuckPerms

EssentialsXChat - zaktualizowana wersja Essentials

ChatControl - genialna wtyczka do obsługi chatu

DeluxeChat - używaj placeholderów z Vault'a lub z LuckPerms

Standardowym przykładem wykorzystania prefiksów i sufiksów jest czat. Oto przykładowa wiadomość na czacie:

[Admin] xYundy najlepszy gracz: Witajcie!

Gdzie prefiks to: [Admin]

A sufiks to: najlepszy gracz

Możesz je ustawić za pomocą poniższych komend:

Ustaw prefiks dla danej grupy

/lp group <nazwa_grupy> meta setprefix <prefix> 

Ustaw sufiks dla danej grupy

/lp group <nazwa_grupy> meta setsuffix <prefix>

A co jeśli np. chcesz wykorzystać wtyczkę wyświetlającą graczy online posortowanych według grup? Jak pamiętasz graczy umieszczamy w grupie default. Efekt działania takiej wtyczki mógłby wyglądać tak:

Gracze ONLINE (6):
admin: Tomek, Jacek
mod: Kangaroo
default: JestemKoksem, Lesiu331, Makowka

Z pewnością przyznasz, że nie wygląda to za dobrze. Podobnie jak nazwy pozostałych grup. Na szczęście możemy zmienić nazwę wyświetlaną danej grupy. W tym celu użyj komendy:

/lp group <nazwa_grupy> setdisplayname <nazwa_wyswietlana>

Dzięki zastosowaniu tego polecenia w/w lista mogłaby wyglądać tak:

Gracze ONLINE (6):
Administratorzy: Tomek, Jacek
Moderatorzy: Kangaroo
Gracze: JestemKoksem, Lesiu331, Makowka

Od razu lepiej!

Edytowane przez xYundy
  • Polubienie 3

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nadawanie permisji użytkownikom i grupom

Skoro opanowaliśmy już tworzenie grup oraz podstawowe pojęcia i założenia LuckPerms możemy przystąpić do przydzielania uprawnień.

Jak wcześniej mówiliśmy uprawnienia możemy przydzielać:

  • grupom
  • konkretnym użytkownikom

Dowiedzieliśmy się również, że uprawnienia mogą być nadawane lub odbierane w kontekście (czyli w określonych warunkach) o czym możesz poczytać tutaj lub na oficjalnej wiki.

 

Poleceniem służącym do dodawania uprawnień grupie jest:

/lp group <nazwa_grupy> permission set <uprawnienie> true

Analogicznie, aby zabrać uprawnienia danej grupie (np. odziedziczonych po innej grupie) służy polecenie:

/lp group <nazwa_grupy> permission set <uprawnienie> false

Jeśli chcesz usunąć nadanie lub zabranie permisji użyj komendy:

/lp group <nazwa_grupy> permission unset <uprawnienie>

 

Analogicznie wyglądają polecenia do nadawania uprawnień pojedynczym użytkownikom, jedyną różnicą jest początek polecenia tj. zamiast:

/lp group <nazwa_grupy>

musisz użyć:

/lp user <nazwa_uzytkownika>

 

Podobnie jak w innych systemach permisji, funkcjonują tutaj uprawnienia z gwiazdką *. Służą one do nadania uprawnień z danej wtyczki (jeśli to obsługuje) uprawnień kompleksowo. Załóżmy, że posiadamy wtyczkę z uprawnieniami:

- wtyczka.admin.fly
- wtyczka.admin.tp
- wtyczka.admin.god
- wtyczka.mod.mute

Jeśli chcielibyśmy nadać użytkownikowi Jacek (albo całej grupie) uprawnienia do wszystkich poleceń admina moglibyśmy dodać każde z osobna lub użyć polecenia:

/lp user Jacek permission set wtyczka.admin.* true

 

Uprawnienia możemy również nadawać lub odbierać czasowo. Załóżmy, że chcemy nadać graczowi Tomek uprawnienia do polecenia /fly na 10 minut. W tym celu użyjesz polecenia:

/lp user Tomek permission setterm essentials.fly true 10m

Tak więc ogólna składania tego polecenia wygląda następująco:

/lp <user|group> <nazwa_gracza|nazwa_grupy> permission settemp <uprawnienie> <true|false> <czas> <modyfikator_czasu>
  • czas podajemy za pomocą następujących znaków (które można łączyć np. 1h30m😞
    • - do dni
    • h - do godzin
    • m - do minut
    • - do sekund
  • modyfikator_czasu przyjmuje następujące opcje:
    • accumulate - aktualny pozostały czas trwania jest sumowany z nowo nadanym np. gracz miał jeszcze 30 minut pozwolenia na latanie, a po użyciu komendy z tym kontekstem i czasem 1h30m ma 2h
    • replace - zachowanie domyślne, po prostu podmienia czas - a nie sumuje
    • deny - w przypadku jeśli uprawnienie jest już ustawione na jakiś okres czasu, nie zostanie ono ponownie nadanie, a czas jego trwania nie zostanie zmieniony

Jeśli chcesz usunąć tymczasowe uprawnienie skorzystaj z komendy:

/lp <user|group> <nazwa_gracza|nazwa_grupy> permission unsettemp <uprawnienie>

 

Edytowane przez xYundy
  • Polubienie 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dodawanie użytkowników do grupy oraz wagi i dziedziczenie

Świetnie! Opanowaliśmy już to jak nadawać uprawnienia - czas na dodanie użytkowników do swoich grup. Ale za nim do tego dojdziemy zapoznajmy się z wagami i dziedziczeniem.

Załóżmy, że na naszym serwerze znajdują się następujące grupy uprawnień:

  • admin - grupa dla administratorów
  • mod - grupa dla moderatorów
  • vip - grupa dla graczy, którzy zakupili rangę VIP
  • default - grupa, do której należą wszyscy gracze

Aby nie nadawać tych samych uprawnień jakie ma grupa mod grupie administrator lub grupie vip, która ma default skorzystamy z dziedziczenia. W poprzedniej części poradnika poznałeś(aś) definicję i schemat działania dziedziczenia. Ale jak je wykorzystać w praktyce? Najprostszą formą przypisania podgrupy grupom (może być ich kilka) jest polecenie:

/lp group <nazwa_grupy> parent add <nazwa_grupy_podrzednej>

W naszym przykładzie, aby sprawić by grupa admin dziedziczyła uprawnienia grupy mod użylibyśmy komendy:

/lp group admin parent add mod

Prawda, że proste?

A co jeśli chcesz usunąć podgrupę danej grupy? Nie ma sprawy użyj komendy:

/lp group <nazwa_grupy> parent remove <nazwa_grupy_podrzednej>

W przypadku chęci usunięcia wszystkich grup podrzędnych w danej grupie użyj polecenia:

/lp group <nazwa_grupy> parent clear

 

W przypadku większej ilości grup warto wskazać ich wagę (tj. priorytet). Im wyższa jest jej waga tym uprawnienia w niej zawarte są ważniejsze. Służy do tego polecenie:

/lp group <nazwa_grupy> setweight <waga>

 

 

Dobra, czas dodać użytkownika do grupy. Możemy to zrobić zarówno na stałe, jak i tymczasowo.

 

Aby dodać użytkownika do grupy na stałe użyj komendy:

/lp user <nazwa_uzytkownika> parent add <nazwa_grupy>

Pamiętaj: Użytkownika możesz dodać do kilku grup. Aby być pewnym, że wszystkie uprawnienia i prefiksy działają poprawnie ustal im odpowiednie wagi!

 

Aby usunąć użytkownika z grupy, w której był na stałe użyj polecenia:

/lp user <nazwa_uzytkownika> parent remove <nazwa_grupy>

 

A co jeśli chcesz dodać kogoś do grupy tymczasowo? Na przykład dodać gracza do grupy VIP na 30 dni?

Użyj następującego polecenia:

/lp user <nazwa_uzytkownika> parent addtemp <grupa> <czas> <modyfikator_czasu>

Gdzie:

  • czas podajemy za pomocą następujących znaków (które można łączyć np. 1h30m)
    • - do dni
    • h - do godzin
    • m - do minut
    • - do sekund
  • modyfikator_czasu przyjmuje następujące opcje:
    • accumulate - aktualny pozostały czas trwania jest sumowany z nowo nadanym np. gracz miał jeszcze 30 minut pozwolenia na latanie, a po użyciu komendy z tym kontekstem i czasem 1h30m ma 2h
    • replace - zachowanie domyślne, po prostu podmienia czas - a nie sumuje
    • deny - w przypadku jeśli uprawnienie jest już ustawione na jakiś okres czasu, nie zostanie ono ponownie nadanie, a czas jego trwania nie zostanie zmieniony

Aby usunąć gracza z grupy tymczasowej przed czasem użyj polecenia:

/lp user <nazwa_uzytkownika> parent removetemp <grupa>

 

Edytowane przez xYundy
  • Polubienie 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"Tracks" - czyli jak nie pogubić się w hierarchii grup

#TODO

  • Polubienie 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do rozmowy!

Możesz napisać odpowiedź teraz, a następnie się zarejestrować. Jeżeli już masz konto, zaloguj się teraz.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.


  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...