RE:NODE

Minecraft15 წუთის საკითხავი

LuckPerms Minecraft სერვერზე: ჯგუფები, node-ები და კონტექსტები

როგორ დააყენო LuckPerms-ის ჯგუფები, მემკვიდრეობა, თითო სამყაროს კონტექსტები და web editor Paper სერვერზე, იმ permission node-ებით, რომლებიც მართლა დაგჭირდება.

0 მკითხველი

Operator სტატუსი გადამრთველია ერთი მდგომარეობით: ყველაფერი, მათ შორის სერვერის გაჩერებისა და სამყაროს რედაქტირების უფლებაც. LuckPerms სწორედ იმისთვის არის, რომ მისი გამოყენება შეწყვიტო. ატვირთე jar ფაილი, ყველას წაართვი op, შექმენი სამი-ოთხი ჯგუფი და ამის შემდეგ წვდომა ხდება სია, რომლის წაკითხვა და შეცვლაც სერვერის მუშაობისას შეგიძლია და რომელსაც მოდერატორს გადასცემ იმის გარეშე, რომ /stop-იც გადაეცეს. ინსტალაცია ხუთ წუთს გრძელდება. დანარჩენის დამოუკიდებლად გარკვევას კი მთელი შაბათ-კვირა სჭირდება: როგორ ურთიერთქმედებს მემკვიდრეობა და წონა, რას ნიშნავს სინამდვილეში permission node, როგორ ხდის კონტექსტი იმას, რომ ერთი ჯგუფი creative სამყაროში სხვაგვარად იქცეს, და როგორ გაიგო, რატომ უარყოფს სერვერი უფლებას, რომლის მინიჭებაშიც დარწმუნებული ხარ. ამ პოსტში სწორედ ეს არის.

დააყენე LuckPerms და აირჩიე მისი საცავი#

LuckPerms ერთი plugin-ია რამდენიმე პლატფორმის build-ით, და ისინი ურთიერთშემცვლელი არ არის. Paper ან Spigot სერვერს Bukkit build სჭირდება; Velocity ან BungeeCord proxy-ს - თავისი. აიღე jar luckperms.net-დან, ჩააგდე plugins/-ში და სერვერი ნორმალურად გადატვირთე. ამისთვის, ისევე როგორც ნებისმიერი სხვა plugin-ის დასაყენებლად, /reload არ გამოიყენო - ის ნახევრად ტვირთავს ყველაფერს და გიქმნის შეცდომებს, რომლებიც plugin-ის ბაგს ჰგავს.

RE:NODE-ის Minecraft ხაზი მუშაობს Paper-ზე, სათანადო Java ვერსიით უკვე დაყენებულით, ამიტომ შენთვის საჭირო Bukkit build-ია. plugin-ებს შენ ტვირთავ, file manager-ით ან SFTP-ით - plugin-ების ინსტალერი და შერჩეული plugin-ების სია არ არსებობს, რაც იმასაც ნიშნავს, რომ არაფერია დაბლოკილი. გადაათრიე jar ფაილი file manager-ში plugins/-ში, გადატვირთე კონსოლიდან და უყურე გაშვების ხაზებს.

პირველი გაშვებისას იქმნება plugins/LuckPerms/config.yml და მონაცემთა ბაზა. ნაგულისხმევად ეს ბაზა H2-ია, ერთი ფაილი plugin-ის საქაღალდეში, და ერთი სერვერისთვის სრულიად კარგი პასუხია. არჩევანს მნიშვნელობა მაშინ აქვს, როცა ერთზე მეტი სერვერი გაქვს, ან როცა მონაცემების გარედან წაკითხვა გინდა.

storage-methodრა არისროდის გამოიყენე
h2ნაგულისხმევი. ერთი ფაილი plugin-ის საქაღალდეშიერთი სერვერი, შეცვლის მიზეზი არ არის
sqliteკიდევ ერთი ერთფაილიანი ბაზაიგივე, რაც ზემოთ
mysql, mariadb, postgresqlდისტანციური SQL სერვერირამდენიმე სერვერი იზიარებს ერთ permission-ების ნაკრებს
mongodbდისტანციური დოკუმენტური ბაზაიგივე, თუ ის უკვე გაქვს
yaml, json, hocon, tomlბრტყელი ფაილები, რომლებსაც გახსნი და შეცვლიმონაცემები git-ში გინდა და ეთანხმები, რომ უფრო ნელია

ბრტყელი ფაილების რეჟიმები იმიტომ ცდუნებს, რომ მათი წაკითხვა შეიძლება. ისინი იმ რეჟიმებიც არის, რომლებსაც ხალხი აფუჭებს: სერვერის მუშაობისას users/<uuid>.yml-ს ცვლის და შემდეგ ჩაწერაზე ცვლილება იკარგება. თუ წასაკითხი ასლი გინდა, ბაზა დატოვე და გაუშვი /lp export backup, რომელიც plugin-ის საქაღალდეში წერს ყველა ჯგუფის, მომხმარებლისა და track-ის შეკუმშულ სნეპშოტს; /lp import backup მას უკან აბრუნებს. ღირს ამის გაკეთება ნებისმიერ დიდ ცვლილებამდე.

/lp info ბეჭდავს საცავის მეთოდს, შეტყობინებების სერვისს და plugin-ის ვერსიას. ეს პირველი ბრძანებაა, რომელიც უნდა გაუშვა, როცა რაღაც არასწორად გამოიყურება, და ის, რომელსაც დახმარების თხოვნისას ჩააკოპირებ.

ჯგუფები, წონა და მემკვიდრეობა#

LuckPerms-ს ზუსტად ერთი სავალდებულო ჯგუფი აქვს, default. ყველა მოთამაშე მასშია, სანამ არ გადაიყვან, და მისი წაშლა არ შეიძლება. დანარჩენს თვითონ ააგებ.

code
$ lp creategroup builder$ lp creategroup moderator$ lp creategroup admin$ lp group builder setweight 10$ lp group moderator setweight 50$ lp group admin setweight 100$ lp group moderator parent add builder$ lp group admin parent add moderator

იქ ორი მექანიზმი მუშაობს, და მათი აღრევა დაბნეულობის ყველაზე გავრცელებული წყაროა.

Parent არის მემკვიდრეობა. parent add ჯგუფს აძლევს ყველაფერს, რაც მის parent-ს აქვს. სინამდვილეში ის ინახება როგორც permission node, group.builder, სწორედ ამიტომ ნახავ ამ node-ს export-ებში და სწორედ ამიტომ არის მოთამაშისთვის group.vip-ის მინიჭება იგივე, რაც მისი VIP ჯგუფში შეყვანა. მემკვიდრეობა გარდამავალია, ამიტომ ზემოთ მოცემულ მაგალითში admin-საც აქვს ყველაფერი, რაც builder-ს.

წონა არის გაუტოლების წესი. როცა მოთამაშის ორი ჯგუფი ერთსა და იმავე node-ს სხვადასხვა მნიშვნელობით განსაზღვრავს, იმარჯვებს უფრო მაღალი წონის ჯგუფი. წონა ასევე წყვეტს, რომელი prefix გამოჩნდება და რა თანმიმდევრობით ჩანს ჯგუფები /lp listgroups-ში. წონა თავისთავად არაფერს აკეთებს: მძიმე ჯგუფი node-ების გარეშე არაფერს გასცემს.

როცა ორ-სამ ჯგუფზე მეტი გაქვს, გადაწყვეტის თანმიმდევრობა ზუსტად უნდა იცოდე:

  1. პირდაპირ მომხმარებელზე დაყენებული node-ები ჯგუფიდან მიღებულ ნებისმიერ მნიშვნელობას სჯობს.
  2. ჯგუფებს შორის იმარჯვებს უფრო მაღალი წონა.
  3. ერთი დონის ორ მნიშვნელობას შორის false სჯობს true-ს - უარყოფა შეგნებული განცხადებაა და LuckPerms მას ასე ეპყრობა.
  4. wildcard ზუსტ node-ზე ნაკლებად კონკრეტულია, ამიტომ essentials.home, დაყენებული false-ზე, მაინც მოქმედებს იმ ადამიანზე, ვისაც essentials.* აქვს.

ბოლო წესი გიჩვენებს, როგორ აგო ჯგუფი, რომელსაც თითქმის ყველაფერი აქვს: მიეცი wildcard, შემდეგ უარყავი რამდენიმე node, რომელიც არ გინდა.

code
$ lp group moderator permission set essentials.* true$ lp group moderator permission set essentials.gamemode false$ lp group moderator permission set essentials.give false

ფრთხილად იყავი შიშველ *-თან. LuckPerms მას გადაწყვეტს ყველა იმ permission-ის მიმართ, რომელიც ოდესმე რომელიმე plugin-მა დაარეგისტრირა, მათ შორის node-ების, რომლებიც არასოდეს წაგიკითხავს და რომლებიც მომდევნო plugin-ის განახლებასთან ერთად მოვა. დატოვე ის ჯგუფისთვის, რომლის ერთადერთი წევრი შენ ხარ, და მაშინაც ამჯობინე იმ plugin-ების wildcard-ების ჩამოთვლა, რომლებიც გიგულისხმია.

ბრძანებები, რომლებსაც მართლა აკრეფ#

ბრძანებაა /lp, და მუშაობს /luckperms, /perm, /perms და /permission ასევე. პანელის კონსოლში წინა slash არ იწერება, რადგან კონსოლი სერვერის სტანდარტული შეყვანაა და არა ჩატის ველი - ეს იგივე წესია, რაც ყველა სხვა ბრძანებაზე, და ის მოცემულია Minecraft სერვერის ბრძანებების სწრაფ სახელმძღვანელოში.

ბრძანებარას აკეთებს
lp creategroup <name>ქმნის ჯგუფს
lp listgroupsყველა ჯგუფი, წონითა და parent-ებით
lp group <g> permission set <node> [true/false]აძლევს ან უარყოფს node-ს
lp group <g> permission unset <node>node-ს მთლიანად შლის
lp group <g> permission infoჯგუფის საკუთარ node-ებს ჩამოთვლის
lp group <g> parent add <parent>მემკვიდრეობა
lp group <g> setweight <n>გაუტოლების პრიორიტეტი
lp group <g> listmembersვინ არის მასში, მომხმარებლები და ჯგუფები
lp user <name> infoჯგუფები, ძირითადი ჯგუფი, prefix, meta
lp user <name> parent add <g>მოთამაშეს ჯგუფს ამატებს
lp user <name> parent set <g>მისი ჯგუფების ადგილას ამ ერთს აყენებს
lp user <name> permission check <node>შედეგი და საიდან მოდის
lp user <name> clearყველა node-სა და parent-ს default-მდე ხსნის
lp search <node>ყველა მომხმარებელი და ჯგუფი, ვისაც ეს node აქვს
lp editorხსნის web editor-ს
lp verbose on <filter>წერს permission-ების ცოცხალ შემოწმებებს
lp export <file> / lp import <file>სნეპშოტი და აღდგენა

დაუკვირდი განსხვავებას unset-სა და set false-ს შორის. unset შენს განცხადებას შლის და გადაწყვეტას მემკვიდრეობას უტოვებს; set false აქტიური უარყოფაა, რომელიც უფრო დაბალი წონის ჯგუფებს გადაფარავს. როცა გინდა, რომ ჯგუფს რაღაც უბრალოდ არ ჰქონდეს, თითქმის ყოველთვის unset გიგულისხმია.

არცერთი მათგანის შემდეგ გადატვირთვა არ არის საჭირო. LuckPerms ცვლილებებს მაშინვე იყენებს და მოთამაშის permission-ები ადგილზევე თავიდან ითვლება. გამონაკლისია plugin-ები, რომლებიც permission-ის შემოწმებას შესვლისას ქეშავს - რამდენიმე ჯერ კიდევ ასე იქცევა - და მათ relog ასწორებს.

Permission node-ები და სად ვიპოვო ისინი#

node არის პატარა ასოებით დაწერილი, წერტილებით გაყოფილი სტრიქონი, რომელიც plugin-მა გამოიგონა. essentials.home სტანდარტი არ არის: ის არსებობს იმიტომ, რომ EssentialsX-მა გამოაცხადა. ამიტომ არ არსებობს მთავარი სია და ამიტომ არის პატიოსანი პასუხი კითხვაზე „რომელია X-ის node“ ასეთი: „წაიკითხე plugin-ის დოკუმენტაცია, ან გახსენი მისი jar“.

ყველა Bukkit plugin-ს jar-ში plugin.yml აქვს, რომელიც აცხადებს მის ბრძანებებსა და permission-ებს ნაგულისხმევი მნიშვნელობებით. გახსენი jar ნებისმიერი არქივატორით - პანელის file manager არქივს ადგილზე გახსნის, ასე რომ არაფრის ჩამოტვირთვა არ დაგჭირდება - და წაიკითხე plugin.yml. ეს ფაილი ზუსტად ამ ვერსიის ავტორიტეტული სიაა, რასაც დოკუმენტაციაზე ხშირად ვერ იტყვი.

node-ები, რომლებსაც თითქმის ყველა სერვერზე შეხვდები:

NodePluginრას უშვებს
essentials.home, essentials.sethomeEssentialsXსახლების სისტემა
essentials.sethome.multiple.vipEssentialsXმეტი სახლი, config-ის ჩანაწერზე მიბმული
essentials.tpa, essentials.tpacceptEssentialsXმოთამაშეების teleport მოთხოვნები
essentials.kit.toolsEssentialsXერთი დასახელებული kit
worldedit.*WorldEditმთელი WorldEdit. ნუ მისცემ ვინმეს უდარდელად
worldguard.region.claimWorldGuardრეგიონის დაკავება
coreprotect.inspect, coreprotect.lookupCoreProtectბლოკების ლოგის წაკითხვა
coreprotect.rollbackCoreProtectმისი გაუქმება. მხოლოდ მოდერატორებს
luckperms.editorLuckPermsweb editor-ის გახსნა
minecraft.command.gamemodePapervanilla /gamemode ბრძანება

ბოლო სტრიქონი vanilla ბრძანებების ნიმუშია Bukkit-ზე დაფუძნებულ სერვერზე: minecraft.command.<name>. არსებობს minecraft.command.tp, minecraft.command.give, minecraft.command.time და დანარჩენი, ანუ /time set day-ის გაცემა შეგიძლია სხვა არაფრის გაცემის გარეშე.

ერთი გაფრთხილება ყველაფერს აზიანებს, თუ მას გამოტოვებ. Bukkit-ში operator-ს ეძლევა ყველა permission, რომლის გამოცხადებული ნაგულისხმევი op-ია, და ეს LuckPerms-ის ქვემოთ ხდება. შენი ფრთხილად დაყენებული უარყოფა op-ზე მყოფ მოთამაშეზე არ იმოქმედებს. წაართვი op ყველას, საკუთარი თავის ჩათვლით, და ამის ნაცვლად admin ჯგუფს მიეცი luckperms.* და ის, რაც გჭირდება. ამის საზღვრებს სამი გასაღები განსაზღვრავს plugins/LuckPerms/config.yml-ში: enable-ops წყვეტს, პატივს სცემს თუ არა სერვერი vanilla op სისტემას საერთოდ, commands-allow-op წყვეტს, შეუძლია თუ არა op-ს LuckPerms-ის ბრძანებების გაშვება, და auto-op (ნაგულისხმევად გამორთულია) აიძულებს LuckPerms-ს, თვითონ მისცეს და წაართვას op სტატუსი luckperms.autoop permission-ის მიხედვით. სერვერზე სწორი ჯგუფების ხით ლამაზი საბოლოო მდგომარეობაა enable-ops: false - მაგრამ ჯერ საკუთარი ჯგუფი მოაწყე, თორემ თავს გარეთ დაიტოვებ და კონსოლიდან მოგიწევს გასწორება.

კონტექსტები: permission-ები სამყაროსა და სერვერის მიხედვით#

კონტექსტი არის node-ზე მიმაგრებული პირობა. LuckPerms-ს ორი აქვს, world და server, და plugin-ებს შეუძლიათ სხვები დაამატონ.

code
$ lp group builder permission set worldedit.* true world=creative$ lp group default permission set essentials.tpa false server=survival$ lp user Steve parent add vip server=lobby

world არის სამყაროს საქაღალდის სახელი, ანუ world, world_nether, world_the_end ან რასაც შენმა multi-world plugin-მა შექმნა. ის ყოველგვარი დაყენების გარეშე მუშაობს.

server არ მუშაობს, და ამაზე ყველა ებმევა. server-ის კონტექსტები ემთხვევა server: მნიშვნელობას config.yml-ში, რომლის ნაგულისხმევია global. სანამ ამას თითოეულ სერვერზე არ შეცვლი - server: survival ერთზე, server: lobby მეორეზე - ყველა server= კონტექსტი, რომელსაც დაწერ, უბრალოდ არასოდეს დაემთხვევა. დააყენე ის, სანამ პირველ კონტექსტს დაწერ, და გახსოვდეს, რომ მას MOTD-ში სერვერის სახელთან არაფერი აქვს საერთო.

კიდევ ოთხი config გასაღები წყვეტს, როგორ ურთიერთქმედებს გლობალური მონაცემები კონტექსტურ მონაცემებთან:

  • include-global - მოქმედებს თუ არა კონტექსტის გარეშე node-ები ყველგან. დატოვე true, თუ არ გინდა, რომ ყველა permission აშკარად შეზღუდული იყოს.
  • include-global-world - იგივე კითხვა სამყაროს კონტექსტებზე.
  • apply-global-groups და apply-global-world-groups - იგივე ორი კითხვა ჯგუფის წევრობაზე და არა ცალკეულ node-ებზე.

მათი შეხების მიზეზი ქსელია, სადაც რანგი უნდა არსებობდეს მხოლოდ ერთ სერვერზე. ნაგულისხმევი მნიშვნელობებით მოთამაშე, რომელიც კონტექსტის გარეშე vip-ში ჩააყენე, VIP-ია ყველგან; ჩვეულებრივ ეს გინდა, და გამონაკლისები უკეთ წყდება ჯგუფის server= კონტექსტით დამატებით, ვიდრე გლობალური გადამრთველების შეცვლით.

Web editor#

/lp editor არის ფუნქცია, რომელიც LuckPerms-ს სასიამოვნოს ხდის. ის შენს მიმდინარე permission მონაცემებს დროებით paste-ზე ტვირთავს და გაძლევს ბმულს web გვერდზე, სადაც ჯგუფები, node-ები, parent-ები, წონები და meta ცხრილადაა გაშლილი, რომლის რედაქტირება, გაფილტვრა და ჯგუფებს შორის კოპირება-ჩასმა შეგიძლია. როცა დაასრულებ, editor ან ცვლილებას პირდაპირ სერვერზე აბრუნებს, ან გაძლევს /lp applyedits <code> ხაზს, რომელიც ჩატში ან კონსოლში უნდა ჩასვა. ორივე შემთხვევაში არაფერი იცვლება, სანამ არ გამოიყენებ, ამიტომ editor დათვალიერების უსაფრთხო გზაცაა.

ორი პრაქტიკული შენიშვნა. editor-ს სჭირდება, რომ სერვერი HTTPS-ით bytebin.lucko.me-ს მიწვდებოდეს; თუ გამავალი მოთხოვნები დაბლოკილია, /lp editor ვერ იმუშავებს და ერთადერთი გზა ბრძანების ხაზი რჩება. და applyedits კოდი განსხვავებაა და არა სნეპშოტი, ამიტომ ძველი კოდის გამოყენება სხვა ცვლილებების შემდეგ ისეთს გააკეთებს, რაც არ გიგულისხმია. გამოიყენე ან გააუქმე ის იმავე სესიაში.

მასობრივი ცვლილებისთვის, რომელშიც editor სუსტია - ჯგუფის ყველგან გადარქმევა, node-ის ყველა მომხმარებლისგან წაშლა - არსებობს /lp bulkupdate, რომელიც მხოლოდ კონსოლიდან გაიშვება და დადასტურებას ითხოვს, რადგან ბაზის ყველა სტრიქონს ცვლის. ჯერ export გააკეთე.

Prefix-ები, track-ები და დროებითი რანგები#

LuckPerms თითო ჯგუფზე prefix-სა და suffix-ს ინახავს პრიორიტეტის ნომრით და თვითონ არსად ბეჭდავს. ეს ხალხს უკვირს. ჩატის ფორმატი ჩატის plugin-ს ეკუთვნის - EssentialsX Chat ან ნებისმიერი plugin, რომელიც Vault-ს ან PlaceholderAPI-ს კითხულობს - და LuckPerms მხოლოდ მნიშვნელობას აწვდის.

code
$ lp group vip meta setprefix 50 "&6[VIP] &r"$ lp group admin meta setprefix 100 "&c[Admin] &r"$ lp user Steve meta set nickcolour "&b"

რიცხვი პრიორიტეტია: როცა მოთამაშე რამდენიმე ჯგუფშია, ჩანს ყველაზე მაღალი პრიორიტეტის prefix. ის შეგნებულად ცალკეა ჯგუფის წონისგან, ამიტომ შეიძლება გქონდეს მძიმე ჯგუფი ხილული ნიშნის გარეშე. placeholder-ებისთვის %luckperms_prefix%, %luckperms_suffix% და %luckperms_primary_group_name% ხელმისაწვდომია ყველგან, სადაც PlaceholderAPI არის, რაც ჩატის, scoreboard-ისა და tab-სიის plugin-ების უმეტესობას ფარავს.

track არის ჯგუფების დალაგებული კიბე, და ის იმისთვის არსებობს, რომ დაწინაურება ორი ბრძანების ნაცვლად ერთი იყოს.

code
$ lp createtrack ranks$ lp track ranks append default$ lp track ranks append member$ lp track ranks append trusted$ lp user Steve promote ranks

promote მოთამაშეს track-ის შემდეგ ჯგუფში გადაჰყავს და წინას უშლის; demote უკან ბრუნდება. ეს სწორი ფორმაა ნდობის კიბისთვის და მასში შეცდომის დაშვება ბევრად უფრო რთულია, ვიდრე ძველი ჯგუფის ხელით წაშლის დამახსოვრება.

დროებითი permission-ები და ჯგუფები კარგი ჰიგიენის მეორე ნახევარია. საცდელი მოდერატორი თვითონ უნდა ამოიწუროს:

code
$ lp user Steve parent addtemp moderator 14d$ lp group builder permission settemp worldedit.* true 7d

ხანგრძლივობა იწერება როგორც 30m, 12h, 7d, 2w, 3mo, 1y და შეიძლება გაერთიანდეს (1d12h). LuckPerms node-ს ვადის ამოწურვისას შლის, გადატვირთვისა და შეხსენების გარეშე. გამოიყენე ეს ყველა უფლებაზე, რომელსაც დასასრული აქვს, რადგან ალტერნატივაა მუდმივი მოდერატორი, რომლის დანიშვნაც არავის ახსოვს - ზუსტად ის შეცდომა, რომელზეც whitelist-ები, როლები და permission-ები წერს.

ერთი permission-ების ნაკრები მთელ ქსელზე#

თუ proxy გაქვს, საერთო საცავის აზრი ისაა, რომ ლობიში ნაყიდი რანგი survival-შიც არსებობს. სამი რამ უნდა დაემთხვეს.

წაკითხვა და ჩაწერაVelocity proxyLuckPerms აქაცLobbyserver=lobbySurvivalserver=survivalსაერთო ბაზაჯგუფები და მომხმარებლები
ერთი permission ბაზა პატარა ქსელის უკან
  1. ერთი და იგივე საცავი. დააყენე storage-method დისტანციურ ბაზაზე და ყველა სერვერს, proxy-ს ჩათვლით, მიეცი იგივე მონაცემები.
  2. შეტყობინებების სერვისი. მხოლოდ საერთო საცავის შემთხვევაში თითოეული სერვერი ცვლილებას მხოლოდ შემდეგ გამოკითხვისას ამჩნევს, sync-minutes-ის მიხედვით. messaging-service-ის დაყენება - sql ბაზას იყენებს თავიდან, pluginmsg შეტყობინებას proxy-ით აგზავნის, redis-ს Redis სერვერი სჭირდება - ცვლილებებს წამზე ნაკლებ დროში ავრცელებს. /lp networksync მას ხელით აიძულებს.
  3. `server:` მნიშვნელობა თითოეულ სერვერზე. მის გარეშე კონტექსტები არ მუშაობს, როგორც ზემოთ.

LuckPerms proxy-ზე იმაზე მნიშვნელოვანია, ვიდრე ხალხი ფიქრობს: proxy არის ადგილი, სადაც მოთამაშის ჯგუფი ცნობილია მანამ, სანამ რომელიმე backend მას დაინახავს, და სწორედ ამაზეა დამოკიდებული proxy-ის მხარეს ბრძანებები და სერვერზე დამოკიდებული whitelist-ები. თვითონ ქსელის მოწყობა Minecraft ქსელის აგებაში Velocity-ით არის; permission-ების ნაწილი მხოლოდ ზემოთ მოცემული სამი პუნქტია.

როცა permission არ მუშაობს#

გაიარე ეს თანმიმდევრობით. თითქმის ყოველთვის პირველი სამიდან ერთ-ერთია.

  • მოთამაშე op-ია? მაშინ Bukkit node-ს იძლევა LuckPerms-ის შემოწმებამდე და შენი უარყოფა უხილავია. /deop და ისევ სცადე.
  • დაგავიწყდა რომელიმე უარყოფა? /lp search essentials.fly ჩამოთვლის ყველა ჯგუფსა და მომხმარებელს, ვისაც ეს node აქვს, მნიშვნელობით. ეს პოულობს false-ს, რომელიც ექვსი თვის წინ default-ზე დააყენე.
  • node ზუსტად სწორად წერია? node-ები არ მოწმდება. essentials.homes დაკმაყოფილებით შეინახება და არაფერს მისცემს.
  • კონტექსტი ხომ არ ბლოკავს? შეამოწმე server: config.yml-ში ზუსტად იმ სერვერზე და სამყაროს სახელი შეადარე საქაღალდის სახელს.
  • ჯგუფი მართლა აღწევს მოთამაშემდე? /lp user <name> info ბეჭდავს მის ჯგუფებსა და ძირითად ჯგუფს. თუ ჯგუფი არ ჩანს, parent არასწორ ჯგუფს დაემატა.
  • plugin ქეშავს? relog არაფერი ღირს და ამას გამორიცხავს.

როცა ამ ყველაფრით ვერაფერი აიხსნება, ჩართე verbose რეჟიმი, რომელიც წერს სერვერის ყველა permission შემოწმებას და პასუხს:

code
$ lp verbose on Steve$ lp verbose paste

paste არის შემოწმებების გაფილტვრადი ლოგი: node, შედეგი და plugin, რომელმაც იკითხა. ის პასუხობს კითხვას, რომელსაც სხვა ინსტრუმენტები ვერ პასუხობს, კერძოდ: რომელ node-ს ამოწმებს plugin. ძალიან ხშირად ეს არ არის node, რომელსაც დოკუმენტაცია ასახელებს - ბრძანება გადაერქვა, ან plugin ჯერ parent node-ს ამოწმებს. დასრულებისას /lp verbose off, რადგან დატვირთულ სერვერზე ყველა შემოწმების ჩაწერა უფასო არ არის.

FAQ#

ჯერ კიდევ მჭირდება ვინმესთვის op-ის მიცემა?

არა, და არც უნდა მისცე. admin ჯგუფს მიეცი luckperms.*, plugin-ების wildcard-ები, რომლებიც სჭირდება, და minecraft.command.*, თუ vanilla ბრძანებები გინდა, შემდეგ ყველას წაართვი op. დატოვე ერთი op ანგარიში, რომლითაც არასოდეს თამაშობ, იმ დღისთვის, როცა საკუთარ permission-ებს გააფუჭებ - ან გამოიყენე პანელის კონსოლი, რომელიც მოთამაშე არ არის და permission-ებს საერთოდ არ ექვემდებარება.

სად ინახავს LuckPerms მოთამაშეების მონაცემებს და რა ხდება, თუ ვინმე სახელს შეიცვლის?

მომხმარებლები UUID-ით ინახება, ამიტომ სახელის შეცვლისას permission-ები თან მიჰყვება. LuckPerms ინახავს სახელი-UUID ქეშს, რომ ბრძანებებმა სახელები მიიღონ, და ის შესვლისას ახლდება. მოთამაშისთვის, რომელიც არასოდეს შემოსულა, ბრძანებაში პირდაპირ მისი UUID გამოიყენე.

შემიძლია ფაილები ბრძანებების ნაცვლად ხელით შევცვალო?

მხოლოდ ბრტყელი ფაილების საცავის მეთოდებზე, მხოლოდ გაჩერებულ სერვერზე, და ეს ცუდი ჩვევაა. სერვერის მუშაობისას სიმართლის წყარო ბაზაა, ამიტომ ხელით ცვლილება შემდეგ შენახვაზე გადაიწერება. მასობრივი სამუშაოსთვის გამოიყენე web editor, ხოლო backup-ებისთვის /lp export.

რატომ არ ჩანს ჩემი prefix ჩატში?

იმიტომ, რომ LuckPerms ჩატის შეტყობინებებს არ წერს. გჭირდება plugin, რომელიც ჩატს აფორმატებს და prefix-ს კითხულობს, Vault-ით ან %luckperms_prefix% placeholder-ით. დააყენე prefix-ის პრიორიტეტიც და არა მხოლოდ მნიშვნელობა - ერთი და იგივე პრიორიტეტის ორი ჯგუფი თვითნებურ გამარჯვებულს იძლევა.

ეხება თუ არა LuckPerms წარმადობას?

მნიშვნელოვნად არა. permission-ების შემოწმება მეხსიერებიდან წყდება და ბაზას შესვლისას, ცვლილებისას და სინქრონიზაციის ტაიმერზე ეხებიან. ხარჯი, რომელიც მაინც გამოჩნდება, არის * wildcard სერვერზე ორმოცი plugin-ით, რადგან ის ყველა დარეგისტრირებული permission-ის მიმართ უნდა გადაწყდეს. თუ lag-ს დასდევ, დამნაშავე სხვაგანაა - დაიწყე რატომ ეცემა TPS და რა ვქნათ-დან.


კომენტარები

სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.

0/2000