სერვერების უმეტესობას ეკრანზე ინფორმაციის სამი ნაწილი სჭირდება: სამყაროში მოლივლივე ტექსტი (ჰოლოგრამები), გვერდითი პანელი მარჯვნივ (scoreboard) და ფორმატირებული მოთამაშეების სია header-ით, footer-ით და რანგის prefix-ებით (tab სია). Paper-ზე ჩვეულებრივი ნაკრებია DecentHolograms ჰოლოგრამებისთვის, TAB plugin tab სიისთვის, nametag-ებისა და გვერდითი პანელისთვის, და PlaceholderAPI, რომელიც ორივეს ცოცხალი მნიშვნელობებით კვებავს, როგორიცაა მოთამაშის ბალანსი ან რანგი. სამივე უფასოა და კარგად მოვლილი. რაც სწორად უნდა გააკეთო, განახლების სიხშირეა: ყოველი placeholder ყოველ ხაზზე ყოველი მოთამაშისთვის ყოველ განახლებაზე ითვლება, და გვერდითი პანელი, რომელიც თხუთმეტ ხაზს წამში ათჯერ აახლებს ორმოცდაათი მოთამაშისთვის, შენი tick-ის გაზომვადი ნაჭერია. vanilla ბრძანებები - text display entity-ები და /scoreboard - მარტივი სერვერებისთვის საკმარისია და დამატებით არაფერი ჯდება.
ეს გზამკვლევი თითოეულ ნაწილს, საჭირო ბრძანებებსა და კონფიგურაციას განიხილავს და იმას, როგორ შეინარჩუნო ისინი იაფად. რანგის prefix-ები შენი უფლებების კონფიგურაციაზეა დამოკიდებული, რომელიც განხილულია LuckPerms-ში.
PlaceholderAPI: შემაკავშირებელი#
scoreboard-სა თუ ჰოლოგრამაზე თითქმის ყველაფერი დინამიკური PlaceholderAPI-დან მოდის. ეს plugin-ია, რომელიც სხვა plugin-ებს საშუალებას აძლევს, მნიშვნელობები placeholder-ებად გამოაჩინონ, როგორიცაა %player_name%, %vault_eco_balance% ან %luckperms_prefix%, და საჩვენებელ plugin-ებს - მათი მოთხოვნა.
PlaceholderAPI placeholder-ების უმეტესობას თავად არ შეიცავს. ისინი expansion-ებით მოდის, რომლებიც მისი eCloud-იდან ჩამოიტვირთება:
/papi ecloud download Player/papi ecloud download Vault/papi ecloud download Server/papi ecloud download LuckPerms/papi reload/papi parse me %player_name% has %vault_eco_balance_formatted%/papi parse me <text> შენთვის placeholder-ებს ხსნის და შედეგს ბეჭდავს, რაც placeholder-ის მუშაობის შემოწმების ყველაზე სწრაფი გზაა, სანამ მას scoreboard-ზე დასვამ. თუ placeholder უცვლელად დაიბეჭდა, expansion აკლია ან მომწოდებელი plugin დაყენებული არ არის. ზოგიერთი plugin თავის placeholder-ებს თავად არეგისტრირებს და expansion არ სჭირდება; მათი დოკუმენტაცია გეტყვის, რომლები.
ჯერ PlaceholderAPI დააყენე, შემდეგ საჩვენებელი plugin-ები. საჩვენებელი plugin-ები მას იძახებენ; ის expansion-ებს იძახებს; expansion-ები კი იძახებენ plugin-ებს, რომლებსაც მონაცემები ეკუთვნის.
ჰოლოგრამები DecentHolograms-ით#
DecentHolograms მიმდინარე Paper-ზე ჰოლოგრამების გავრცელებული უფასო plugin-ია. ჰოლოგრამა ხაზების დასტაა გარკვეულ ადგილას; ხაზები შეიძლება იყოს ტექსტი, ნივთები ან მოთამაშის თავები, და ჰოლოგრამებს შეიძლება ჰქონდეს რამდენიმე გვერდი, რომლებსაც მოთამაშეები დაწკაპუნებით ფურცლავენ.
/dh create welcome &6Welcome to the server/dh line add welcome 1 &7Type &f/rules &7before you build/dh line add welcome 1 #ICON: DIAMOND_PICKAXE/dh line add welcome 1 &7Online: &f%server_online%/dh movehere welcome/dh list/dh delete welcomeრას აკეთებს ეს ბრძანებები:
/dh create <name> [content]ქმნის ჰოლოგრამას იქ, სადაც დგახარ, არასავალდებულო პირველი ხაზით./dh line add <hologram> <page> <content>გვერდს ხაზს უმატებს ბოლოში. გვერდი1პირველია.#ICON: <MATERIAL>ხაზს ტექსტის ნაცვლად მოლივლივე ნივთად აქცევს.- placeholder-ები ხაზებში მუშაობს, როცა PlaceholderAPI დაყენებულია.
ჰოლოგრამები ფაილებად ინახება plugins/DecentHolograms/holograms/-ში, თითო ჰოლოგრამაზე ერთი, რაც მათ მასობრივ რედაქტირებას, სერვერებს შორის კოპირებას და backup-ს ამარტივებს.
DecentHolograms-ის ჰოლოგრამები პაკეტებზეა დაფუძნებული: სერვერი თითო ხაზისთვის რეალურ entity-ებს არ ქმნის, ამიტომ მათით სავსე lobby სერვერის მხარეს ცოტა ჯდება. ხარჯი განახლებაშია. placeholder-ების შემცველი ყოველი ხაზი ინტერვალით ახლდება ყოველი მოთამაშისთვის, ვისაც მისი დანახვა შეუძლია; ნელა ცვალებადი მნიშვნელობებისთვის განახლების ინტერვალი გრძელი შეინახე (ლიდერბორდს ყოველ წამში განახლება არ სჭირდება) და placeholder-ებით დატვირთული ჰოლოგრამები დატვირთული spawn-ის ზონებიდან მოშორებით დადგი.
ძველი სერვერები ხშირად HolographicDisplays-ს იყენებენ, რომელიც თითო ხაზზე ჯავშნის სადგამს ქმნიდა. მიმდინარე ვერსიებისთვის ის ნაკლებად აქტიურად ვითარდება; FancyHolograms კიდევ ერთი მიმდინარე ვარიანტია, display entity-ებზე აგებული. აირჩიე ჰოლოგრამების ერთი plugin და მას მიჰყევი.
vanilla ალტერნატივა
1.19.4-დან Minecraft-ს აქვს text display entity-ები, რომლებიც იმავე საქმეს ყოველგვარი plugin-ის გარეშე აკეთებს:
/summon minecraft:text_display ~ ~2 ~ {text:"Welcome to the server",billboard:"center"}billboard:"center" ტექსტს ყოველთვის მოთამაშისკენ მიმართავს. ეს ფორმა 1.21.5-ისა და უფრო ახალი ვერსიების ტექსტის სინტაქსს იყენებს; ადრინდელი ვერსიები ტექსტს JSON სტრიქონად ელიან. text display-ები რეალური entity-ებია, სამყაროსთან ერთად ინახება და PlaceholderAPI-ს მხარს არ უჭერს. რამდენიმე სტატიკური წარწერისთვის პატარა სერვერზე ისინი იდეალურია. ყველაფრისთვის, რაც დინამიკურია ან რასაც ხშირად გადაალაგებ, plugin უფრო მარტივია.
გვერდითი scoreboard-ები#
გვერდითი პანელი ეკრანის მარჯვენა მხარეს მყოფი ყუთია. vanilla მას 15 ხაზით და თითო საჩვენებელ სლოტზე ერთდროულად ერთი objective-ით ზღუდავს.
vanilla-ს გზა, რომელიც მინითამაშებისა და სტატისტიკის მარტივი თვალყურისდევნებისთვის საკმარისია:
/scoreboard objectives add kills playerKillCount "Kills"/scoreboard objectives setdisplay sidebar kills/scoreboard objectives modify kills numberformat blankბოლო ხაზი (1.20.3 და უფრო ახალი) მალავს მარჯვენა მხარეს ჩამწკრივებულ წითელ ქულების რიცხვებს, რაც ხალხის უმეტესობას დეკორატიული გვერდითი პანელისგან სურს. vanilla scoreboard-ებს არ შეუძლიათ თითო მოთამაშეზე დინამიკური ტექსტის ჩვენება, როგორიცაა მოთამაშის საკუთარი ბალანსი, და სწორედ ამიტომ იყენებენ სერვერები plugin-ებს.
plugin-ის გვერდითი პანელი ყოველ მოთამაშეს საკუთარ ხაზებს აჩვენებს, placeholder-ებისგან აწყობილს. TAB-ს გვერდითი პანელის მოდული აქვს (ქვემოთ), და არსებობს scoreboard-ის სპეციალური plugin-ებიც. ნებისმიერისთვის ორი წესი:
- თხუთმეტი ხაზი ჭერია, და წაკითხვადი გვერდითი პანელები ჩვეულებრივ ათზე ნაკლებია. სერვერის სახელი, რანგი, ბალანსი, online რაოდენობა, ვებსაიტი. მეცამეტე ხაზს არავინ კითხულობს.
- განაახლე ის, რაც იცვლება. online რაოდენობა შეიძლება ყოველ რამდენიმე წამში განახლდეს; ვებსაიტის მისამართი არასოდეს იცვლება და საერთოდ არ უნდა ხელახლა ითვლებოდეს.
tab სია TAB-ით#
TAB, NEZNAMY-ის მიერ, მოთამაშეების სიის სტანდარტია. ის მართავს header-სა და footer-ს, სიაში თითოეული მოთამაშის სახელის ფორმატს, რანგის მიხედვით დალაგებას, nametag-ის prefix-ებსა და suffix-ებს თავების ზემოთ, გვერდით პანელს, belowname და playerlist objective-ებს და boss bar-ებს. ის მუშაობს Paper-ზე და Velocity-ზე ან BungeeCord-ზე, ასე რომ ქსელში tab სიის მართვა ყველა backend-ზე შეუძლია.
კონფიგურაცია plugins/TAB/config.yml-შია, ჯგუფებისა და მომხმარებლების გადაფარვებით groups.yml-სა და users.yml-ში (ან ქსელებში - მონაცემთა ბაზაში). სტრუქტურა მთავარ ვერსიებს შორის შეიცვალა, ამიტომ დაიწყე იმ ფაილიდან, რომელსაც შენი ვერსია აგენერირებს. გამარტივებული header და footer ასე გამოიყურება:
header-footer: enabled: true header: - "&6&lMY SERVER" - "&7Survival - 1.21" footer: - "&7Online: &f%online% &7Ping: &f%ping%ms" - "&7example.com"%online% და %ping% TAB-ის საკუთარი შიდა placeholder-ებია და PlaceholderAPI არ სჭირდებათ. PlaceholderAPI-ის placeholder-ებიც მუშაობს, როგორც კი ის დაყენდება.
prefix-ები და დალაგება ჯგუფებიდან მოდის. TAB-ს შეუძლია ჯგუფი LuckPerms-იდან წაიკითხოს, თითო ჯგუფზე prefix გამოიყენოს და სია ისე დაალაგოს, რომ სტაფი თავში იყოს:
admin: tabprefix: "&c[Admin] " tagprefix: "&c"vip: tabprefix: "&a[VIP] "_DEFAULT_: tabprefix: "&7"tabprefix არის prefix მოთამაშეების სიაში; tagprefix - თავის ზემოთ. ნაცვლად იმისა, რომ prefix-ები საერთოდ TAB-ში დაწერონ, ბევრი სერვერი მათ LuckPerms-ში აყენებს და TAB-ში %luckperms_prefix%-ს იყენებს, ასე რომ რანგს ჭეშმარიტების ერთი წყარო აქვს.
განახლების სიხშირეები და რა ჯდება ისინი#
ეს ის ნაწილია, რომელიც წყვეტს, შენი საჩვენებელი plugin-ები უფასოა თუ ლაგის წყარო.
ყოველი placeholder კოდის პატარა ნაწილია. %player_name% უბრალო მოძებნაა; %vault_eco_balance% ეკონომიკის plugin-ს ეკითხება, რომელმაც შეიძლება მონაცემთა ბაზას მიმართოს; მესამე მხარის ზოგიერთი placeholder ყოველ online მოთამაშეზე ან ყოველ claim-ზე იტერაციას აკეთებს. საჩვენებელი plugin-ები placeholder-ებს ტაიმერით ხსნიან, თითო მოთამაშეზე.
არითმეტიკა გვერდითი პანელისთვის: 50 მოთამაშე x 10 ხაზი placeholder-ებით x წამში 10 განახლება = წამში 5,000 placeholder-ის გახსნა. თუ ამ placeholder-ებიდან ერთი ნელია, სერვერი ნელია.
TAB გაძლევს საშუალებას, განახლების ინტერვალები თითო placeholder-ზე დააყენო config.yml-ში, PlaceholderAPI-ის განახლების ინტერვალების განყოფილებაში, ნაგულისხმევი მნიშვნელობითა და თითო placeholder-ის გადაფარვებით, მილიწამებში:
placeholderapi-refresh-intervals: default-refresh-interval: 500 "%server_uptime%": 1000 "%vault_eco_balance%": 2000 "%player_name%": -1-1 ნიშნავს, რომ პირველი გახსნის შემდეგ აღარასოდეს განახლდეს - სწორია მნიშვნელობებისთვის, რომლებიც სესიის განმავლობაში ვერ შეიცვლება. გრძელი ინტერვალები სწორია ყველაფრისთვის, რაც იშვიათად იცვლება: ბალანსი, რომელიც ყოველ ორ წამში ახლდება, თამაშში ვერ განსხვავდება ყოველ ნახევარ წამში განახლებულისგან.
TAB-ს ასევე აქვს /tab cpu, რომელიც ბეჭდავს, რამდენ CPU დროს იყენებს TAB-ის თითოეული ფუნქცია და თითოეული placeholder. თუ placeholder ძვირია, ის თავში გამოჩნდება. ეს პირველი ბრძანებაა, რომელიც უნდა გაუშვა, როცა შენს tab-ს ან გვერდითი პანელის კონფიგურაციას ეჭვობ, spark-ისთვის ხელის მოკიდებამდე. თუ სრული სურათი გჭირდება, spark-ის რეპორტის წაკითხვა საჩვენებელ plugin-ებს call tree-ში ყველაფერ დანარჩენთან ერთად აჩვენებს.
ლიდერბორდები, ტაიმერები და სხვა გავრცელებული ჩვენებები#
სერვერების უმეტესობას საბოლოოდ საფუძვლების მიღმა ერთი და იგივე რამდენიმე ჩვენება უნდა. თითოეულს იაფი და ძვირი გზა აქვს.
ლიდერბორდები. "ათი ყველაზე მდიდარი მოთამაშის" ჰოლოგრამა spawn-ზე კლასიკაა. ძვირი გზაა placeholder, რომელიც ეკონომიკის ყველა ანგარიშს ყოველ გახსნაზე ალაგებს. იაფი გზაა plugin ან expansion, რომელიც დალაგებულ სიას cache-ში ინახავს და ყოველ რამდენიმე წუთში აახლებს - ეკონომიკისა და სტატისტიკის plugin-ების უმეტესობა, რომლებიც top-სიის placeholder-ებს გთავაზობენ, ამას აკეთებს, და მათი დოკუმენტაცია გეტყვის, რამდენად ხშირად. ჰოლოგრამის განახლების ინტერვალი შესაბამისად დააყენე. ვერავინ შეამჩნევს, რომ ლიდერბორდი სამი წუთის წინანდელია; ყველა შეამჩნევს, თუ სერვერი ყოველ განახლებაზე ფერხდება.
თამაშის დრო და სტატისტიკა. vanilla-ს სტატისტიკის placeholder-ები კითხულობს მოთამაშის სტატისტიკას, რომელიც უკვე მეხსიერებაშია, რაც online მოთამაშეებისთვის იაფია. placeholder-ები, რომლებიც offline მოთამაშეების სტატისტიკას დისკიდან კითხულობს, იაფი არ არის და ხშირად განახლებად ხაზზე არასოდეს უნდა გამოჩნდეს.
ღონისძიებების უკუთვლა. ყოველკვირეული ღონისძიების უკუთვლა გვერდით პანელში ან boss bar-ში პოპულარული და უვნებელია, თუ ის placeholder-ს იყენებს, რომელიც ფიქსირებული დროიდან ითვლის. მოერიდე უკუთვლის იმპლემენტაციებს, რომლებიც თითო მოთამაშეზე განმეორებად task-ს უშვებს.
სამყაროს მიხედვით გვერდითი პანელები. TAB-სა და გვერდითი პანელის plugin-ების უმეტესობას შეუძლია სხვადასხვა გვერდითი პანელის ჩვენება თითო სამყაროზე ან პირობაზე - მინითამაშის პანელი არენის შიგნით, survival-ისა სხვაგან. გამოიყენე პირობები, ნაცვლად რამდენიმე plugin-ისა, რომელთაგან თითოეული გვერდით პანელს სხვადასხვა სამყაროში ფლობს; ორი plugin, რომელიც ერთსა და იმავე ჩვენებაზე ჩხუბობს, ციმციმის ყველაზე გავრცელებული მიზეზია.
სტაფის ინფორმაცია. მხოლოდ სტაფისთვის ხაზი TPS-ით ან MSPT-ით სასარგებლო და იაფია, მაგრამ დაიცავი ის უფლებით, რომ ჩვეულებრივმა მოთამაშეებმა ის არასოდეს გახსნან. TAB ზუსტად ამისთვის უჭერს მხარს უფლებებზე დაფუძნებულ ჩვენების პირობებს.
წესი ყველასთვის: გადაწყვიტე, რამდენად მოძველებული შეიძლება იყოს თითოეული მნიშვნელობა, და მისი განახლება ამის მიხედვით დააყენე. ჩვენება, რომელიც მილიწამამდე ზუსტია, იხდის სიზუსტისთვის, რომელსაც ვერავინ ხედავს.
ქსელები, Bedrock და სხვა კიდური შემთხვევები#
proxy-ის ქსელები. დააყენე TAB proxy-ზე tab სიისთვის, რომელიც ყველა backend-ის მოთამაშეებს თანმიმდევრული prefix-ებით აჩვენებს. placeholder-ებს, რომლებიც backend-ზეა დამოკიდებული - მოთამაშის ბალანსი survival-ზე - backend-ებზე TAB-ის bridge plugin სჭირდებათ, რომ PlaceholderAPI-ის მნიშვნელობები ზემოთ გადასცენ. ჰოლოგრამები თითო backend-ზე რჩება. Velocity proxy-ის ქსელი განლაგებას განიხილავს.
Bedrock მოთამაშეები. Geyser-ის გავლით Bedrock კლიენტები tab სიასა და გვერდით პანელს ხედავენ, მაგრამ ფორმატირება შეიძლება განსხვავდებოდეს - ზოგიერთი ფერის კოდი და სიგანე სხვანაირად გამოისახება. განლაგება მარტივი შეინახე, თუ შენი მოთამაშეების დიდი წილი Bedrock-ზეა. Geyser crossplay დეტალებს შეიცავს.
გუნდების კონფლიქტი. nametag-ის prefix-ები scoreboard-ის გუნდებს იყენებს. მოთამაშის გუნდის კონტროლი ერთდროულად მხოლოდ ერთ plugin-ს შეუძლია. თუ TAB, nametag-ის plugin და მინითამაშის plugin ყველა გუნდებს აყენებს, prefix-ები ციმციმებს ან ქრება. აირჩიე nametag-ების ერთი მფლობელი და დანარჩენებში ეს ფუნქცია გამორთე.
მოციმციმე გვერდითი პანელები. ძველი scoreboard-ის plugin-ები ყოველ განახლებაზე მთელ გვერდით პანელს თავიდან აწყობდნენ, რასაც ზოგიერთი კლიენტი ციმციმად გამოსახავს. TAB და თანამედროვე plugin-ები ხაზებს ადგილზე აახლებს. თუ ციმციმს ხედავ, ჩვეულებრივ ეს მეორე plugin-ია, რომელიც ასევე წერს გვერდით პანელზე.
RE:NODE-ზე კონსოლს tab-ით შევსება აქვს, რაც გრძელ /dh და /papi ბრძანებებში გეხმარება, ფაილ მენეჯერს კი სინტაქსის გამოკვეთის მქონე რედაქტორი აქვს TAB-ის YAML-ისთვის, ასე რომ შეწევის შეცდომა reload-მდე ჩანს. CPU-ს გრაფიკი შენი გეგმის ლიმიტის მიმართ აშკარას ხდის, დაუჯდა თუ არა რამე ახალ გვერდით პანელს.
გონივრული საწყისი კონფიგურაცია#
ტიპური survival სერვერისთვის:
- PlaceholderAPI Player, Server, Vault და LuckPerms expansion-ებით.
- TAB ორხაზიანი header-ით (სერვერის სახელი, თამაშის რეჟიმი), footer-ით online რაოდენობითა და ვებსაიტით, LuckPerms-ის prefix-ებით, სტაფი პირველად დალაგებული.
- გვერდითი პანელი ექვსიდან რვა ხაზამდე: რანგი, ბალანსი, online, თამაშის დრო, ვებსაიტი. placeholder-ები ყოველ ერთ-ორ წამში ახლდება, სტატიკური ხაზები - არასოდეს.
- DecentHolograms spawn-ზე წესებისთვის, მისალმებისთვის და ყოველკვირეული ლიდერბორდისთვის, რომელიც ყოველ წუთში ახლდება.
/tab cpuშემოწმებული კონფიგურაციის შემდეგ და ყოველი დამატების შემდეგ.
ეს ფარავს იმას, რის დანახვასაც მოთამაშეები ელიან, მასზე tick-ის დროის დახარჯვის გარეშე. ყველაფერი ამის მიღმა - ანიმირებული header-ები, ცისარტყელისფერი nametag-ები, ჰოლოგრამა ყოველ warp-ზე - გემოვნების საკითხია, და თითოეულ ნაწილს მცირე ხარჯი აქვს, რომლის გაზომვაც ღირს. თუ ქსელის სრულ spawn-ს აშენებ, plugin-ები, რომელთა დაყენებაც ღირს მათ ნაკრების დანარჩენ ნაწილთან კონტექსტში აჩვენებს.
FAQ#
მჭირდება თუ არა PlaceholderAPI TAB-ისთვის?
TAB-ის საკუთარი placeholder-ებისთვის, როგორიცაა %online% და %ping% - არა. ის გჭირდება ყველაფრისთვის, რაც სხვა plugin-ებიდან მოდის - ბალანსები, რანგები LuckPerms-იდან, claim-ები, თამაშის დრო. სერვერების უმეტესობა მას აყენებს.
რატომ აჩვენებს ჩემი scoreboard მარჯვნივ წითელ რიცხვებს?
ეს vanilla-ს ქულების ჩვენებაა. 1.20.3-სა და უფრო ახალ ვერსიებზე /scoreboard objectives modify <objective> numberformat blank მათ vanilla objective-ებისთვის მალავს; plugin-ების გვერდით პანელებს ჩვეულებრივ მათი დამალვის ოფციაც აქვს.
ცუდია თუ არა ჰოლოგრამები წარმადობისთვის?
პაკეტებზე დაფუძნებული ჰოლოგრამები, როგორიცაა DecentHolograms, არსებობისთვის ცოტა ჯდება. ხარჯი ბევრ ხაზზე placeholder-ების ბევრი მოთამაშისთვის განახლებაშია. განახლების ინტერვალები გრძელი შეინახე და მოერიდე placeholder-ებს, რომლებიც მძიმე სამუშაოს აკეთებს.
რატომ ქრება ან ციმციმებს prefix-ები?
ორი plugin ერთდროულად აკონტროლებს scoreboard-ის გუნდებს ან გვერდით პანელს. აირჩიე ერთი plugin nametag-ების მფლობელად და ერთი გვერდითი პანელის მფლობელად, და სხვაგან ეს ფუნქციები გამორთე.
შემიძლია plugin-ების ნაცვლად vanilla ბრძანებების გამოყენება?
კი, სტატიკური ჰოლოგრამებისთვის (text display entity-ები) და საერთო scoreboard-ებისთვის, როგორიცაა მკვლელობების რაოდენობა. vanilla ვერ აჩვენებს ყოველ მოთამაშეს მის საკუთარ დინამიკურ მნიშვნელობებს ან ფორმატირებულ header-სა და footer-ს ცოცხალი placeholder-ებით.




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